対象読者
-
AIコーディングを導入・検討している開発チーム
-
AIエージェント向けのリポジトリ構成に悩んでいる人
前置き
AIコーディングを導入してから、「Workflowはどこに置くべきなのか」という話になりました。
私は各プロジェクト配下にWorkflowを配置しました。
projects/
├── project-a/
│ └── workflow/
└── project-b/
└── workflow/
理由は単純で、プロジェクトごとに以下の内容が違いました。
-
使用言語
-
アーキテクチャ
-
Backlog
-
ディレクトリ構成(プログラム、設計書含む)
しかし、この構成に対して「Workflowはもっと抽象的なものでは?」という他の人からフィードバックをいただきました。
この時、人によって「Workflow」という言葉の抽象度が異なることに気付きました。
私が考えていたAI向けWorkflow
具体として私が考えていたWorkflowは、AIがそのプロジェクトを開発するための実行手順です。
例えば、以下のようなことをしてほしいとして、AIが実際に行動する流れをWorkflowとして定義していました。
-
プロジェクト構造を確認する
-
Backlogを確認する
-
設計する
-
実装する
-
レビューする
Workflowはもっと抽象的なものでは?というフィードバックをいただいた時に、私はプロジェクトに依存しない共通の開発Workflowをイメージされているのだと受け取りました。
振り返ると、お互いにWorkflowという言葉の抽象度が異なっていたのだと思います。
私の環境では、AI向けWorkflowはプロジェクト固有の方が適していると感じています。
例えば、以下のようなプロジェクト構成があったとして、AI活用しても実装方法もレビュー観点も異なります。
Project A
-
Java
-
Angular
-
Vue
Project B
-
Golang
-
Next.js
そのためAIに共通Workflowだけを読ませると、実装時には使用しない技術の情報までコンテキストに含まれる可能性があります。
-
Javaの情報
-
Angularの情報
-
Next.jsの情報
AIは人間と違い、コンテキストが増えるほど以下の問題が発生しやすくなります。
-
トークン消費
-
判断コスト
-
誤った参照
そのため、「必要な時に必要な情報だけを読む」構成の方がAIには向いていると考えています。
従来のソフトウェア設計では、共通化は保守性を高めるための有効な手段です。
一方AIは不要なコンテキストまで読み込むことで、トークン消費や判断コストが増えることがあります。
AIでは「情報を共通化すること」よりも「不要な情報を読ませないこと」の方が重要になる場面があると感じました。
(※企業としてもAI活用した開発予算の観点もあるでしょう。)
後書き
現時点では、AI向けWorkflowはプロジェクト固有の方が開発体験は良いと感じています。
ただし、設計書やディレクトリ構成、開発ルールなどが組織全体で標準化されているのであれば、共通Workflowという選択肢も十分あり得るのかもしれないなぁと整理しつつ記事化しました。




