4 つの AI エージェントが、あなたが寝ている間に機能をリリースできる。ほとんどの人はそれらを連携させていない。
レビューアをここで起動し、テストジェネレーターをあそこで起動、手動で 1 つずつ、それぞれが前の作業を忘れていく。あなたが依然としてボトルネックだ。
解決策: Planner → Coder → Tester → Reviewer を自動で引き継ぐように連携させる。1 つのトリガー、4 つの段階、朝には完成した機能ができあがる。
コピペ可能なコード付きの完全なパイプラインはこちら 👇
本題に入る前に、私は Telegram チャンネルで AI とバイブコーディングに関する日々のメモを共有しています:https://t.me/zodchixquant 🧠

パイプラインがエージェントの寄せ集めに勝る理由
1 つのエージェントですべてを実行させると、コンテキストウィンドウが計画、コード、テスト、レビューコメントで埋め尽くされ、品質が低下する。
4 人の専門家がいれば、それぞれがクリーンで狭いコンテキストを維持できる。
鍵となるのは ハンドオフファイル だ。各エージェントが出力を書き込み、次のエージェントがそれを読み取れるようにする:Planner は .pipeline/spec.md に仕様を書き、Coder はそれを読んで .pipeline/changes.md に書き込む、といった具合だ。
これらを順番に実行するオーケストレーターは、1 つのスラッシュコマンドだ。これが全てだ:4 つのサブエージェント、1 つのコマンド、ハンドオフ用の共有フォルダ。
エージェント 1: Planner(サブエージェント、opus)
Planner は決してコードを書かない。漠然とした機能リクエストを、Coder が推測せずに従える具体的な仕様に変換する。
.claude/agents/planner.md を作成:
1---2name: planner3description: 機能リクエストを実装仕様に変換します。機能パイプラインの最初の段階として使用します。4tools: Read, Grep, Glob, Write5model: opus6---78あなたは計画の専門家です。実装コードは書きません。910機能リクエストが与えられた場合:111. コードベースの関連部分を読み、現在のパターンを理解します。122. `.pipeline/spec.md` に仕様を書き込みます。内容は以下の通り:13 - 作成または変更するファイル(正確なパスを含む)14 - 必要なインターフェースまたは関数シグネチャ15 - 実装が処理すべきエッジケース16 - 従うべき既存のパターン(コピー元のファイル名を指定)173. 曖昧な点はすべて、仕様の先頭に OPEN QUESTION としてフラグを立てます。1819仕様は簡潔に保ってください。Coder はこれだけを読み、他は読みません。したがって、隙間を残さず、要求されていない要件を発明しないでください。
計画は opus で実行される。この段階が、その後のすべての品質の上限を設定するからだ。曖昧な仕様からは、Coder がどんなに優れていても曖昧なコードしか生まれない。
エージェント 2: Coder(サブエージェント、sonnet)
Coder は仕様を読み、実装を書く。計画は立てず、自身の作業もレビューしない。仕様に書かれている通りに構築するだけだ。
.claude/agents/coder.md を作成:
1---2name: coder3description: .pipeline/spec.md の仕様を実装します。Planner の後、機能パイプラインの第2段階として使用します。4tools: Read, Write, Edit, Grep, Glob, Bash5model: sonnet6---78あなたは実装の専門家です。9101. `.pipeline/spec.md` をすべて読みます。OPEN QUESTIONS がある場合は、推測せずに停止してそれを提示します。112. 仕様に記述されている通りに正確に実装します。仕様が指定するパターンに従います。要求されていない機能は追加しません。123. 簡単なサマリーを `.pipeline/changes.md` に書き込みます:変更したファイル、各変更の内容、Tester が注力すべき点。1314リポジトリにマッチするコードを書きます。無関係なコードのリファクタリングや、仕様の範囲外の「改善」は行いません。
ここで Sonnet を選ぶのは正しい判断だ。明確な仕様に対する実装は、Sonnet が最も得意とするバランスの取れたコスト品質の作業だからだ。
.pipeline/changes.md へのハンドオフメモにより、Tester は闇雲にテストするのではなく、適切な対象に焦点を当てることができる。
エージェント 3: Tester(サブエージェント、sonnet)
Tester は変更内容を読み、機能が動作することを証明するテストを書き、実行する。
.claude/agents/tester.md を作成:
1---2name: tester3description: .pipeline/changes.md に記述された変更に対するテストを作成し実行します。機能パイプラインの第3段階です。4tools: Read, Write, Edit, Grep, Glob, Bash5model: sonnet6---78あなたはテストの専門家です。9101. `.pipeline/changes.md` を読み、何がどこに構築されたかを確認します。112. 変更されたファイルと `.pipeline/spec.md` の仕様を読みます。123. 以下の範囲をカバーするテストを書きます:ハッピーパス、仕様に記載されたエッジケース、そして少なくとも1つの失敗ケース。リポジトリのテストフレームワークに合わせます。134. テストを実行します。失敗したものがあれば、失敗内容を `.pipeline/test-results.md` に書き込み、停止します。自分でコードを修正しないでください。145. すべて合格した場合は、その旨を `.pipeline/test-results.md` に記録します。1516実装の詳細ではなく、振る舞いをテストします。テストの失敗は、パイプラインが Reviewer のために一時停止することを意味し、あなたがその場しのぎの修正をすることを意味しません。
エージェント 4: Reviewer(サブエージェント、opus)
最後のゲートだ。Reviewer はパイプラインが生成したすべてを読み、それがメインブランチに届く前に判定を下す。
.claude/agents/reviewer.md を作成:
1---2name: reviewer3description: パイプライン全体の出力の最終レビュー。人間による承認前の第4、かつ最後の段階です。4tools: Read, Grep, Glob, Bash5model: opus6---78あなたはシニアレビューアです。読み取り専用です。コードは編集しません。9101. `.pipeline/` から仕様、変更サマリー、テスト結果を読みます。112. `git diff` を実行し、実際の変更を確認します。123. 評価します:コードは仕様に合致していますか?テストは有意義ですか、それとも表面的ですか?セキュリティ、パフォーマンス、正確性の問題はありますか?134. 判定を `.pipeline/review.md` に書き込みます:14 - VERDICT: SHIP / NEEDS WORK / BLOCK15 - NEEDS WORK または BLOCK の場合、何をどこで修正すべきかを正確にリストアップします。1617最後の防衛線となりましょう。テストが緑色でもコードが間違っているなら、BLOCK と言ってください。緑色のテストは正しい動作と同じではありません。
読み取り専用ツールにより、Reviewer が編集によって問題を隠蔽することはできず、判断のみを行うことができる。
オーケストレーター:4つすべてを実行する1つのコマンド
ここで、4 つの別々のエージェントをパイプラインに変える部品を紹介する。それらを順番に呼び出すスラッシュコマンドで、各エージェントは前のエージェントが書いたハンドオフファイルを引き継ぐ。
.claude/commands/ship.md を作成:
1以下の機能パイプラインを実行: $ARGUMENTS23これらの段階を順番に実行します。先に進まないでください。各段階の後、次の段階を開始する前にハンドオフファイルが存在することを確認します。451. 上記の機能リクエストを `planner` サブエージェントに委譲します。6 `.pipeline/spec.md` を待ちます。72. 仕様に OPEN QUESTIONS がある場合は、停止して私に表示します。そうでなければ8 `coder` サブエージェントに委譲します。 `.pipeline/changes.md` を待ちます。93. `tester` サブエージェントに委譲します。 `.pipeline/test-results.md` を待ちます。10 テストが失敗した場合は、停止して失敗内容を私に表示します。114. `reviewer` サブエージェントに委譲します。 `.pipeline/review.md` を私に表示します。1213最終的な判定を報告します。何もマージしないでください。私が朝にレビューするためにブランチを残しておいてください。
そして、1 行でチェーン全体が起動する: /ship add rate limiting to the login endpoint.
私が夜間バージョンを実行している場所
そのために私が使っているのが Teamly だ:AI エージェント専用に構築されたマネージドクラウドホスティングだ。
チームを雇用すれば、専用インフラ上で 24 時間 365 日稼働し、サーバーに触れる必要は一切ない。

@Teamly がこの記事に特に関連する理由:ハンドオフの問題がすでに解決されているからだ。
上で手作業で構築したすべて(仕様ファイル、変更ファイル、エージェントを次々に連鎖させるオーケストレーター)を、Teamly は Coordinator で実現する。
エージェント間で作業をルーティングし、コンテキストを次に渡し、全員が読み取る共有ブリーフを保持する。
同じ Planner から Coder、Tester へのフローだが、ハンドオフを自分で配線する必要はない。

違いは、@Teamly がコードだけではないことだ。まったく同じオーケストレーションが、マーケティングチーム、リサーチチーム、サポートチームでも実行される。

あなたの Claude Code パイプラインは夜間に機能をリリースする。Teamly のマーケティングチームは同じ方法で、同じハンドオフロジックを使ってコンテンツをリリースする。
必要なチームを正確に構築
新機能として、そのチームがちょうどリリースした: My Team
たった 3 つの質問であなたのチームを構築できるようになりました。

制御できること: 音声ルール、禁止フレーズ、インテグレーション、チームスタイル(Strict / Casual / Creative)、チームサイズ(2-4 エージェント)。

@Teamly は、各スペシャリストがなぜそこにいるのか、定型文ではなく真の根拠を持ったチームを返す。任意のエージェントを 1 クリックで交換可能。ブリーフが合わなければ編集できる。
ポイントは、明確さを強制する構造化されたブリーフにあり、それによって雇用前に監査できるチームが構成される。
同じハンドオフアーキテクチャを、あなたの特定の問題に合わせて適用する。
まずは無料で試す
Teamly 5 で 3 日間無料で全体をテストでき、4 日目まで請求は発生しない。
継続する場合、料金は 5 エージェントで月額 $29。
1 つの機能をリリースすれば、月額料金を十分に賄える安さだ。

結論
エージェントの寄せ集めとパイプラインの違いは、ハンドオフにある。
4 人の専門家が共有ファイルに書き込み、1 つのオーケストレーターがそれらを順番に実行し、各段階がゼロから始めるのではなく、前の段階の上に構築される。
まず Planner と Coder を構築し、2 段階のチェーンとして実行してみよう。その流れが確固たるものになったら、Tester と Reviewer を追加する。
4 つすべてが配線された頃には、寝る前に機能を起動し、コーヒーを飲みながら判定結果を読むことになるだろう。
AI エージェント、バイブコーディング、Claude Code セットアップに関する日々のメモはこちら: https://t.me/zodchixquant 🧠






