AIエージェントの実装→レビュー→PRをシェルスクリプトで自動化する
Claude CLIのようなAIコーディングエージェントに、issue単位の開発ライフサイクル全体をシェルスクリプトで自動化させる仕組みを作った。6フェーズ構成:
- worktree作成 —
git worktree addでmainから隔離ブランチを切る。エージェントの作業がメインの作業ディレクトリに影響しない - 実装 —
claude -p(CLIの非対話モード)にプロンプトテンプレートとストーリーファイルを渡して実装させる - 3観点レビュー — 実装完了後、同じくCLI経由でレビュープロンプトを実行。受け入れ条件チェック・アーキテクチャレビュー・PO視点レビューの3つを1回で回し、結果に
<signal>REVIEW_PASSED</signal>orREVIEW_FAILEDを出力させてシェルスクリプトで判定する - PR作成 —
gh pr createでPRを自動作成 - マージ待ち — 30秒間隔で
gh pr view --json stateをポーリングし、人間のマージを待つ - クリーンアップ —
git worktree removeでworktreeを削除し、ストーリーファイルをdoneディレクトリに移動
レビューのゲート設計がポイント。レビュー結果をstructured outputではなく、本文末尾の <signal> タグで表現すると、シェルスクリプトの grep だけで合否判定できる:
REVIEW_OUTPUT=$(claude -p "$REVIEW_PROMPT" --cwd "$WORKTREE_DIR")
if echo "$REVIEW_OUTPUT" | grep -q "REVIEW_FAILED"; then
echo "Review failed. Aborting PR creation."
exit 1
fi
進捗ログはストーリーファイル自体の ## Activities セクションに追記する方式にした。別ファイルに書くと散逸するが、ストーリーファイルに書けば作業経緯がissue定義と一体化して残る。