implement-issue-tree

Installation
SKILL.md

implement-issue-tree

親イシュー番号を指定し、配下のサブイシュー(孫含む)を依存順を保ちつつ worktree で並列に自動実装・ローカル diff レビュー・push + PR 作成・CI 監視・マージ可能状態化まで自動化する Workflow を起動する。squash merge は autoMerge: true + externalChecks 明示(全 App の信頼済み check context 宣言込み)の opt-in ランでのみクライアント側で実行する(references/automerge-design.md の「クライアント側自動マージの設計」節参照)。既定(autoMerge 未指定 / false)ではマージせず停止し、マージは GitHub 上で人間が行う。

CI リソース節約のため「push 前 review」設計を採用している。Implement フェーズではローカルブランチにコミットのみ積み、Review が全通過した後にはじめて push・PR 作成を行う。Review が収束失敗した場合は push も PR も作らないため、CI が一切起動しない。push(PR 作成時・Merge ループの fix 後の再 push)の直前には必ず base ブランチを取り込む(git fetchgit merge)。並列ラン(parallel >= 2)で兄弟イシューの PR が先にマージされていると、作成時点の base が既に古くコンフリクトしている場合があり、その状態のまま push すると GitHub は test merge commit を作れず pull_request トリガーの CI check-run が 1 件も発行されない(Issue #435)ため、push 前ゲートで解消を試みてから push する(解消不能なら push 自体を止める)。

末端の実装イシューは post-order DFS の順序を優先度として空きスロットへ貪欲投入し、最大 parallel(既定 3)件まで並列実行する。各 implement / fix は独立した git worktree で隔離実行されるため、並列でもブランチ・working copy が衝突しない。機能的依存(dependsOn)と親子関係(親は全子の完了を待つ verify-close)だけが待機条件となる。

前提条件

  • gh CLI がインストールされ、認証済みであること(gh auth status で確認)
  • jq CLI がインストールされていること(command -v jq で確認)。「全チェックが pass に見えるのにマージが進まない場合(cancel された run の残存 check)」節の人間の診断専用コマンド (B) は gh api --paginate --slurp の生 JSON を外部の jq へパイプして平坦化・集約するため、gh --jq だけでは代替できない。未導入の場合はそのコマンドを実行せず(rerun もせず)blocked として扱う
  • awk CLI がインストールされていること(command -v awk で確認)。同節のエージェント実行可能コマンド (A) は --jq がページ単位にしか適用できないため、ページ跨ぎの重複を集約する際にシェル側 awk へ依存する。未導入の場合はそのコマンドを実行せず UNDETERMINED(判定不能)として扱う
  • git working tree が clean であること(git status で確認)
  • マージ先ブランチが CI green の状態であること(autoMerge 運用ではランの完了後にも確認する。後述の strict = false 前提により、古い base に対して成功したチェックのままマージされ得るため)。この確認はマージ先ブランチへの push で CI が起動することに依存する。push トリガの workflow が無い、または paths フィルタで該当 head では起動しないリポジトリでは前提確認・完了後確認のいずれも検証不能であり、autoMerge: true は非推奨とする。成立可否の確認手順(対象(マージ先)ブランチを検査するプローブ。branch 未指定時のみ既定ブランチへフォールバック)と不成立時の扱いは references/automerge-design.md の「補償策の成立確認(base CI プローブ)」節を参照
  • autoMerge: true で使う場合)ベースブランチの ruleset で required status checks の strict(マージ前の base 最新化必須 = strict_required_status_checks_policy)を false にしていることtrue だと 1 件マージするたびに他の open PR の base が陳腐化し、並列ラン(parallel >= 2)が収束しない。G0 は strict を要件にしないため false でも自動マージは成立する(references/automerge-design.md の「strict を G0 の要件にしない理由」節)
  • 対象リポジトリへの書き込み権限があること
  • 親イシューと子イシューが GitHub の sub-issues API で紐付いていること(紐付けは create-issue / create-issue-tree を参照)
Installs
554
GitHub Stars
1
First Seen
Jun 11, 2026
implement-issue-tree — fandhe-ai/agent-cli-skills