shwldshwlda month ago

エージェントのタスク実行をPlan→Approve→Execute→Verifyに分離する

AIエージェントにissueの実装を任せるとき、計画と実行を一気にやらせると意図と違う方向に進みがち。Plan→Approve→Execute→Verifyの4フェーズに分離した。

仕組み:

  1. Plan — issueを読み、実装計画(# Plan)と完了定義(# DoD)をissueに書き出す。コードは書かない
  2. Approve — 人間が計画をレビューして承認する。修正指示があればPlanに戻る
  3. Execute — 承認済みの計画に従ってコードを書く。実行開始時にPlanとDoDの存在をゲートでチェック
  4. Verify — DoDに基づいてセルフチェックし、PRを作成する
# 実行ゲートの擬似コード
plan=$(gh issue view $ISSUE --json body | jq -r '.body' | grep '# Plan')
dod=$(gh issue view $ISSUE --json body | jq -r '.body' | grep '# DoD')
if [ -z "$plan" ] || [ -z "$dod" ]; then
  echo "Error: Plan and DoD must exist before execution"
  exit 1
fi

やってみてどうだったか:

  • 計画段階で「この方針でいいか」を確認できるので、大きな手戻りが減った
  • issueに計画が残るので、後から「なぜこの実装にしたか」を追えるようになった
  • ゲートはシンプルなテキスト存在チェックで十分。厳密なフォーマット検証は運用が重くなる

refs: https://nyosegawa.github.io/posts/harness-engineering-best-practices-2026