エージェントのタスク実行をPlan→Approve→Execute→Verifyに分離する
AIエージェントにissueの実装を任せるとき、計画と実行を一気にやらせると意図と違う方向に進みがち。Plan→Approve→Execute→Verifyの4フェーズに分離した。
仕組み:
- Plan — issueを読み、実装計画(# Plan)と完了定義(# DoD)をissueに書き出す。コードは書かない
- Approve — 人間が計画をレビューして承認する。修正指示があればPlanに戻る
- Execute — 承認済みの計画に従ってコードを書く。実行開始時にPlanとDoDの存在をゲートでチェック
- 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