dev-agent-teamシリーズの4本目。 設計思想実運用で出た失敗と対処学びの一般化に続いて、 今回は「Claude Code本体が出した新機能を、自作ワークフローと併用する話」。
この記事の要点
  • 本体の新機能が出ても自作ワークフローは陳腐化しない——レイヤーが違う
  • 型(何を・なぜ)とエンジン(どう動かすか)は競合せず積み重なる
  • 大原則:人間の承認ゲートはエンジンの自律ループに越えさせない

dev-agent-team = 型

  • 何を・なぜやるか
  • Stop Condition / 人間の判断点
  • 各Phaseのチェックリスト

/goal・Workflows = エンジン

  • どう動かすか
  • ループ・並列ファンアウト
  • 実行の駆動力

Claude Code本体に /goal(自律ループ)と Dynamic Workflows(並列オーケストレーション) が入った。これを見て、もっともな疑問が湧く—— 「Anthropicがこういう便利機能を出すなら、自作の dev-agent-team はもう要らないのでは?」

今回の改善(PR #16)は、 この問いに正面から答えるためのものだ。結論から言うと 冗長ではない。レイヤーが違う。だから競合せず、積み重なる。

1. 「何を・なぜ」と「どう動かすか」は別レイヤー

整理するとこうなる。

この2つは競合しない。型は「正しい順番で、正しい場所で人間を挟んで進める」ことを保証し、 エンジンは「それを速く・並列に実行する」。 型をより強力なエンジンで実行するために取り込む——というのが今回の方針だ。

逆に言えば、エンジンだけあっても「どこで止まるべきか」「何を人間に確認すべきか」は決まらない。 便利な実行基盤が出たからこそ、それをどう型にはめて使うかの指針が要る。

2. 大原則:人間ゲートはエンジンに越えさせない

今回いちばん大事に据えたのがこれだ。 /goal の自律ループは強力だが、放てば承認も確認もスキップして突っ走る。 だから併用には明確な制約をかけた。

この線引きを運用で効かせるため、ワークフロー定義の Stop Condition に 〔機械検証可〕/〔人間判断〕のタグを付ける規約を導入した。 前者はエンジンに任せてよく、後者は必ず人間で止まる。 タグがあることで「ここは自動化していい / だめ」が一目で分かる。

3. Dynamic Workflows で Phase 2(Discovery)を並列化

併用の具体例として、Phase 2のDiscovery(既存コード調査)を並列化する Dynamic Workflow /dev-agent-discovery を実装した。

多数のファイルやサブシステムにまたがる調査は、1つずつ読むと時間がかかる。 そこで pipeline() で候補ファイルを並列に読解し、 investigation-report(関連ファイル / 類似実装 / 規約 / 暫定変更リスト / 未解決の確認事項) という構造に集約する。

ここで効いているのが先の大原則だ。このワークフローの 内部には人間ゲートを置かない。 並列調査はあくまで機械的なファンアウトで完結させ、 完了後に人間がPhase 3へ進む前にレビューする立て付けにした。 Dynamic Workflowsの併用は「単一フェーズ内のファンアウト」に限定し、 フェーズをまたぐ判断はエンジンに持たせない。

インストール周りも対称に整えた。install.sh / uninstall.shWORKFLOWS 配列を追加し、dynamic-workflows/*.js~/.claude/workflows/ へsymlink配置・削除する (コマンド処理と同じ形、env override対応)。

4. あえて「やらなかった」こと

ここでも線引きを明確にした。やれるけれど今回はスコープから外したものがある。

「便利機能が出たから全部それに乗せ替える」のではなく、 型の本質(人間が判断すべき場所)を守れる範囲でだけエンジンを取り込む。 この判断自体を docs/native-tooling-integration.md に レイヤー対比表・併用ルール・判断早見表として残した。

5. まとめ

本体機能の進化は、自作ワークフローを陳腐化させるとは限らない。 むしろ「型」と「エンジン」のレイヤーを分けて考えると、新機能は型を強化する燃料になる

「新機能が出た=自作の仕組みは不要」と短絡せず、 自分の型のどのレイヤーに効くのかを見極めて取り込む。 この見極めができると、本体の進化を毎回そのまま味方にできる。

なお、この /dev-agent-discovery は構文検証だけで実走していなかった。 次の記事では、実際に動かしてみて出たバグの話を書く。

リポジトリはこちら: fecot/dev-agent-team