Newer
Older
programming-template / docs / 01_GUIDE / GUIDE_05_エージェント運用ルール.md

エージェント運用ルール (Agent Operation Rules)

実装品質を担保するために,3 つの専門エージェントを用いた開発パイプラインを定義する.

基本方針 (Basic Policy)

  • 「実装完了」とは,コーディング・テスト・リファクタリングの全フェーズが完了した状態を指す.
  • 各フェーズは専門エージェントが担当し,フレッシュなコンテキストでレビューする.
  • フェーズのスキップは原則禁止する.リファクタリング不要の判断は Refactorer エージェント自身が行う.
  • 各フェーズ間で人間が確認・判断を行う.

エージェント一覧 (Agent List)

エージェント役割フェーズ
coder機能実装・バグ修正Phase 1
tester仕様ベースのテスト作成・実行Phase 2
refactorerコード品質の改善Phase 3

実装パイプライン (Implementation Pipeline)

開始方法

/implement <タスク内容>

全体フロー

人間: /implement <タスク内容>
  │
  ├─ ブランチ作成(GUIDE_04 準拠)
  │
  ├─ Phase 1 ──▶ [Coder]
  │                実装に集中.テスト・リファクタは行わない
  │
  ├─ 人間の確認ポイント 1
  │    ブラウザ/実機で動作確認
  │    OK → 続行 / NG → フィードバックして修正
  │
  ├─ Phase 2 ──▶ [Tester]
  │                仕様ベースでテスト作成・実行
  │
  ├─ Phase 2 完了後の分岐
  │    全テスト成功 → 自動で Phase 3 へ
  │    テスト失敗 → 人間に報告し判断を仰ぐ
  │
  ├─ Phase 3 ──▶ [Refactorer]
  │                テストを安全網としてリファクタリング
  │                テスト再実行で挙動が変わっていないことを保証
  │
  ├─ Phase 4 ──▶ ドキュメント更新
  │                docs/ と CLAUDE.md を必要に応じて更新
  │                更新がある場合のみ人間の確認を挟む
  │                結果を .claude/commit-context.md に書き出す
  │
  └─ 完了 → /commit でコミット

Phase 1: コーディング (Coding)

  • Coder エージェントが docs/ を読んで実装する.
  • 実装完了後,実装サマリーを出力する.
  • テストやリファクタリングは行わない.
  • コミットはしない.

人間の確認ポイント 1

  • ブラウザ・実機での動作確認(AI にはできない確認).
  • 問題があればフィードバックし,Coder に修正を指示する.

Phase 2: テスト (Testing)

  • Tester エージェントが仕様(docs/04_SPEC/)を基準にテストを作成する.
  • テストは実装コードではなく仕様を基準に書く.
  • 実装が仕様と異なればテストが失敗し,バグを検出する.

Phase 2 完了後の分岐

  • 全テスト成功: テストサマリーを表示し,自動的に Phase 3 に進む.
  • テスト失敗あり: 人間に報告し,判断を仰ぐ.
    • 仕様の問題 → 仕様を修正
    • 実装の問題 → Coder に修正を委譲
    • テストの問題 → Tester に修正を委譲

Phase 3: リファクタリング (Refactoring)

  • Refactorer エージェントがテストを安全網としてコード品質を改善する.
  • 挙動は変更しない.
  • リファクタリング後にテストを再実行し,全テストが通ることを確認する.
  • リファクタリング不要と判断した場合は,理由を明示して終了する.

Phase 4: ドキュメント更新 (Documentation)

Phase 3 完了後,実装内容に応じて docs/CLAUDE.md を更新する.

  • チェック観点:
    • API・データ構造の変更 → docs/04_SPEC/ の該当仕様を更新
    • 環境・依存関係の変更 → docs/02_ENV/ を更新
    • 開発ステップの進捗 → docs/03_PLAN/CLAUDE.md の進捗欄を更新(CLAUDE.md は本ガイドの「CLAUDE.md 進捗欄の更新ルール」に従い簡潔に書く.git log で取れる詳細は書かない)
    • 規約・運用ルールの変更 → docs/01_GUIDE/ を更新
  • 該当なし: ドキュメント更新が不要な変更(軽微なバグ修正,リファクタリングのみ等)はスキップ可.
  • 更新がある場合のみ人間の確認を挟む.更新不要の場合は確認なしで完了処理に進む.
  • コミットコンテキストの書き出し: Phase 4 の結果(更新の有無と理由)を .claude/commit-context.md に書き出す.このファイルは /commit が参照し,docs/CLAUDE.md の更新漏れチェックをスキップするために使う(.gitignore 対象).

完了処理

  • /implement はコミットを行わない.完了後は /commit でコミットする.
  • /commit.claude/commit-context.md が存在する場合,docs/CLAUDE.md の更新漏れチェックをスキップする.存在しない場合(/implement を経由していない場合)は警告のみ行う.

コンテキスト受け渡し (Context Passing)

各エージェントは前フェーズのサマリーを入力として受け取る.加えて git diff で実際の変更差分を自ら確認する.

フェーズ受け取る情報
Coderタスク内容
TesterCoder の実装サマリー + git diff
RefactorerCoder + Tester のサマリー + git diff

人間の役割 (Human's Role)

タイミング人間がやること
開始時タスクの指示(/implement <何をするか>
Phase 1 後動作確認(ブラウザ・実機など AI にできない確認)
Phase 2 後テスト失敗時のみ方針判断(全成功なら自動で Phase 3 へ)
Phase 4 後ドキュメント更新がある場合のみ確認 → /commit でコミット

人間の本質的な役割は「AI にできない判断と確認」であり,各フェーズの品質のゲートキーパーとなる.

コミットルール (Commit Rules)

パイプライン完了後は /commit でコミットする.コミットメッセージのタグ等は GUIDE_04 に従う.

※ リファクタリングとテストは実装と一体の成果物として,まとめてコミットする.必要に応じて分割コミットも可.

CLAUDE.md 進捗欄の更新ルール

Phase 4 で CLAUDE.md の「開発進捗」セクションを更新する際は,目次・道標(signpost)として運用する.エントリ自体に詳細を書き込まず,「全体の流れを俯瞰したい」「あの作業の commit を辿りたい」と思った時にどこを見ればいいか当たりがつくことを目的とする.

背景: CLAUDE.md は毎ターン読み込まれるためコンテキスト圧迫の原因になる.関数名・引数・テスト件数等の詳細は git log とコミットメッセージに完全な形で残るため,CLAUDE.md に書くと二重管理になり,どちらかが古くなる.

書く(CLAUDE.md に残す価値が高いもの):

以下は CLAUDE.md に置く価値があるが,全て書く必要はない.シンプルなステップなら状況の 1 行だけで十分.書くことが少ない時に無理に伸ばさない.

  • 状況: 何が完了したか(1 行)
  • 動機・原因: なぜそれをやったか(既存の問題点・要件変更・前バージョンの欠点など)
  • 重要な設計判断: 他案との比較が必要な場合のみ.「A 案ではなく B 案を選んだ理由」が将来の判断材料になるとき
  • 失敗パターンの圧縮サマリ: 「① X 案 → Y で破綻 / ② Z 案で解決」のような 1〜2 行.同じ轍を踏まないための知識として残す.試行錯誤を時系列で全部書かず,本質的に異なるアプローチの失敗だけを並列項目として記録する
  • 未実装・後段: 「次に何をすべきか」をユーザーが思い出すための短いメモ

書かない(コミットメッセージと git log に任せる):

以下は git log <commit-hash> または git show <commit-hash> で完全な情報が取れる.CLAUDE.md に書くと重複・陳腐化する.

  • 関数名・引数・型シグネチャ
  • テスト件数の内訳(合計件数のみなら可だが数字は陳腐化するので省略推奨)
  • リファクタリングの手順詳細
  • 撤去・新規追加の関数リスト
  • 具体的な定数値・閾値(設計判断の核心に関わるものを除く)
  • 数値範囲の細部(実装パラメータ等)
  • 後方互換性の細かい仕様
  • 「全テスト N passed」の報告(pass している前提のため不要)

長さと書式:

  • 1 エントリの長さは内容次第で可変.書くことが少なければ 1 行で十分.複数系統の作業を 1 ステップにまとめた等で必要なら長くなってもよい.無理に伸ばさず無理に削らず,「未来の自分(または他人)が辿れるか」だけを基準にする
  • 基本形式: [x] **<簡潔な見出し>**: <1〜2 文の要約>.必要に応じて下に動機・設計判断・失敗パターンを 1〜2 行ずつ追加
  • 太字は見出しに使う(目次の項目として目立たせる).本文中で多用しない
  • 長い箇条書きを避ける.箇条書きは「失敗パターン ① ② ③」のような本質的に異なる選択肢の並列項目に限定する

既存エントリの長文化に気付いたとき:

過去のエントリで「詳細をベタ書きしていて目次として機能しなくなっている」ものを見つけたら,ユーザーに圧縮を提案する.自動で削らない(背景情報の価値判断はユーザーが行う).提案時は「この情報は git log にあるので削れる / これは失敗パターンなので残すべき」のように切り分けて示すこと.