Claude CLIのようなAIコーディングエージェントに、issue単位の開発ライフサイクル全体をシェルスクリプトで自動化させる仕組みを作った。6フェーズ構成:
git worktree add でmainから隔離ブランチを切る。エージェントの作業がメインの作業ディレクトリに影響しないclaude -p (CLIの非対話モード)にプロンプトテンプレートとストーリーファイルを渡して実装させる<signal>REVIEW_PASSED</signal> or REVIEW_FAILED を出力させてシェルスクリプトで判定するgh pr create でPRを自動作成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定義と一体化して残る。