用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/s977043/PlanGate --skill ai-dev-exec命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
アイデアや曖昧な要件を PlanGate の PBI INPUT PACKAGE に対話的に整理する。Use when: docs/working/TASK-XXXX/pbi-input.md を新規作成したい時、要件をブレストして PBI に落としたい時。
PlanGate の exec フェーズを TDD で実行する。Use when: C-3 APPROVED 後にコード実装を開始したい時、workflow-conductor 配下で実装タスクを進めたい時。
PBI INPUT PACKAGE から PlanGate の plan.md / todo.md / test-cases.md を B-1→B-2→B-3 フローで作成する。Use when: docs/working/TASK-XXXX/pbi-input.md を元に実行計画を作りたい時。
正在显示 SKILL.md
| name | ai-dev-exec |
| description | PlanGate の exec フェーズを TDD で実行する。Use when: C-3 APPROVED 後にコード実装を開始したい時、workflow-conductor 配下で実装タスクを進めたい時。 |
PlanGate ワークフローの exec フェーズ(WF-04 Build & Refine) を Codex / Claude Code 両方で実行する skill。
本スキルは bundled resources(
references/)で自己完結する。パス表記の規約(重要): 本 SKILL.md 中の
references/…は、すべて 本スキル ディレクトリからの相対パス(=<skill_dir>/…)であって、導入先リポジトリのルートからの 相対パスではない。実行時はまず<skill_dir>(このファイルが置かれているディレクトリ)を 解決してから使う:
環境 <skill_dir>plugin 導入先(Claude marketplace) <plugin_root>/skills/ai-dev-exec/install.sh --claude導入先.claude/skills/ai-dev-exec/Codex 導入先 .codex/skills/ai-dev-exec/上流リポジトリ(正本側) .agents/skills/ai-dev-exec/導入先が独自の正本(上流リポジトリの
docs/配下に相当するもの)を別途保持している 場合は、そちらを優先すること。
docs/working/TASK-XXXX/approvals/c3.json が存在し、その approval_kind に応じた承認条件を
満たすこと。判別は python3 の strict JSON で行う(非アンカーな grep/sed は c3-prime で
誤動作する。契約 §5):
| record 種別 | 判別 | 承認済みと見なす条件 |
|---|---|---|
| legacy | approval_kind キー なし | c3_status: APPROVED |
| c3-prime | approval_kind: "c3-prime" | decision: "AUTO_APPROVED"(c3_status は契約 §5 で明示禁止。含まれていたら FAIL)かつ Plan Package 束縛の全数検証 PASS(plan_hash / artifact_hashes 6 要素 / plan_package_hash / source_sha / reviewer verdict 整合)。正本: 同梱 references/c3-prime-contract.md §2〜§5 |
| それ以外の値 | — | 受理拒否(exec 不可) |
validate 相当が PASS(plan_hash 整合 / artifact 整合 / EH-3 整合)
exec 入口も上記 1 と同じ分岐で承認済み record のみ受理する(CLI がある環境では CLI 側が機械チェック済み。CLI が無い環境では自分で確認する)
これらが満たされなければ exec を開始しない。実際のコマンド表記(bin/plangate /
plangate / CLI 不在)・TASK-XXXX の解決先・CLI が無い環境での代替手順は
「CLI 呼び出し」節を参照する(CLI が無いことを理由にゲートを省略しない)。
settings タスクロック (
plangate doctor --check-settings) は V-1 / handoff 完了の前提条件(.claude/rules/working-context.md→ fallback<plugin_root>/rules/working-context.mdが正本)。exec 入口では block しない。詳細はai-dev-verifyskill。
本 Skill は 上流リポジトリ基準の docs/** パスを直接参照しない(#1232)。docs/** は
install.sh --claude / plugin(Claude marketplace)/ Codex の 3 経路とも配布対象外であり、
書いた時点で導入先では必ず空振りするためである。参照の解決は次の順で行う:
<skill_dir> 配下の同梱物(references/)を第一に読む — 契約 doc は本スキルに
同梱されている(「同梱リファレンス」節の一覧)docs/ 配下に相当するもの)を保持していれば、
そちらを優先するrules/*.md)だけは配布経路によって着地が異なるため、次の順で探す:
.claude/rules/working-context.md)<plugin_root>/rules/working-context.md)
<plugin_root> は Bash で ls "${CLAUDE_PLUGIN_ROOT}/rules/" を実行して得た絶対パス。
Read ツールは絶対パスを要求し環境変数を展開しないため、${CLAUDE_PLUGIN_ROOT}/...
という文字列をそのまま Read しても必ず失敗する~/.claude/plugins/cache/** 等)で推測せず次へ進むreferences/ と本 Skill の
記述を代替正本として扱い、推測で内容を補わないplugin root 直下に docs/ を探しに行かないこと: plugin が配布するのは
agents / commands / skills / rules 等の定義ディレクトリのみで docs/ を配布対象として
認識せず、plugin root 配下に相当する配布物が存在しないため必ず空振りする。
| 参照 | install.sh --claude 経由 | plugin(Claude marketplace)経由 | Codex 経由 |
|---|---|---|---|
rules/*.md(下記 3〜5) | .claude/rules/ に着地(解決可) | <plugin_root>/rules/ で解決 | 未配置(解決不可 → 手順 4 へ) |
| 契約 doc(c3-prime 契約・settings wiring 契約 等) | <skill_dir>/references/ に同梱(解決可) | <skill_dir>/references/ に同梱(解決可) | <skill_dir>/references/ に同梱(解決可) |
bin/**(CLI) | コピー対象外(解決不可) | バンドル対象外(解決不可) | 未配置(解決不可) |
scripts/** | コピー対象外(解決不可) | <plugin_root>/scripts/ は存在するが install-plangate-skills.sh のみ(ai-dev-workflow / codex-guarded.sh 等は解決不可) | 未配置(解決不可) |
例外(上流リポジトリ内のドッグフーディング経路 / #1249 MINOR-3): 上表「Codex 経由」の 「同梱(解決可)」が成立するのは 配布物経由(
plugin/plangate/scripts/install-plangate-skills.sh。 source はplugin/plangate/skills/)に限る。上流リポジトリ自身が.codex/skills/を作るscripts/install-plangate-skills-to-codex.shは source が.agents/skills/であり、そこには 本 skill のreferences/が 存在しない(references/はscripts/sync-plugin-plangate.shがplugin/plangate/skills/**にだけ生成する)。したがって上流 repo の.codex/skills/<skill>/references/は 構造上つねに不在であり、この経路では契約 doc・ テンプレートは手順 4(解決できなかったと明示)に落ちる。上流ではdocs/**の正本を直接 読めるため実害は無いが、上表の「解決可」を上流の.codex/にまで拡大解釈しないこと。 経路自体の是正(source の一本化)は #1086 の裁定待ち。
docs/working/TASK-XXXX/*(下記 6〜7)は配布物ではなく導入先で作成する作業成果物なので、
導入先リポジトリ内でそのまま解決する(存在しなければ plan フェーズが未完了)。
<skill_dir>/references/)| ファイル | 役割 |
|---|---|
references/c3-prime-contract.md | approval_kind: "c3-prime" の受理契約(§2〜§5)の正本 |
references/settings-wiring-contract.md | settings wiring 契約(必要 hook の定義・Codex CLI parity) |
references/core-contract.md | 実行契約(Iron Law / Stop rules / Output discipline)の正本 |
references/plangate.md | PlanGate 概要ガイド |
CLAUDE.mdAGENTS.md.claude/rules/working-context.md → fallback <plugin_root>/rules/working-context.md(exec phase の出力規約).claude/rules/hybrid-architecture.md → fallback <plugin_root>/rules/hybrid-architecture.md(Rule 1〜5).claude/rules/responsibility-classes.md → fallback <plugin_root>/rules/responsibility-classes.md(AI-owned / Human-owned 境界)docs/working/TASK-XXXX/plan.md / todo.md / test-cases.mddocs/working/TASK-XXXX/current-state.md.claude/settings*.json / Hardening Override 対象は触らない(Human-owned)。docs/working/TASK-XXXX/current-state.md 更新docs/working/TASK-XXXX/status.md 追記docs/working/TASK-XXXX/decision-log.jsonl 追記前提(Human 決定 #1144): plugin /
install.sh --claude/ Codex が導入先へ配るのは 読み物層(skills/rules/agents/commands)だけであり、CLI(PlanGate CLI 本体)も enforcement 層(scripts/hooks/)も配布物に含まれない。したがって下表の「上流リポジトリの cwd」 列にしか成立しない手順は、導入先では 上流リポジトリ(s977043/plangate)の clone が無いかぎり 実行できない。そこへ到達したら「CLI が無いため実行できない/上流リポジトリの clone が必要」と 明示して停止するか、同表の代替手順へ置き換える。CLI が無いことを理由に手順を黙って省略し、 実施済みと読める記録を残してはならない。
呼び出し表記は実行環境で変わる。相対パス形式(bin/plangate / ./scripts/...)が成立するのは
上流リポジトリ(s977043/plangate)を clone した cwd に居るときだけで、導入先には bin/ も
scripts/(の CLI 本体)も配置されない。導入先で PATH を通した場合のコマンド名は
plangate(bin/plangate ではない)。どちらの環境かを確定してから使う。
| 用途 | 上流リポジトリの cwd | 導入先 + PATH に plangate あり | 導入先 + PATH に無い(既定) |
|---|---|---|---|
| exec dispatch | bin/plangate exec TASK-XXXX [--mode <mode>] | plangate exec TASK-XXXX は実在するが対象が CLI 側(下記注意)→ 導入先の TASK には使えず手動で TDD 実行 | 手動で TDD 実行 |
| plan_hash / artifact 機械検証 | bin/plangate validate TASK-XXXX | plangate validate --dir docs/working/TASK-XXXX | 次節のフォールバック(sha256 突合) |
注意:
TASK-XXXX位置引数は cwd ではなく CLI 本体の位置を基準に解決される。bin/plangateは自身のパスからplangate_root(=bin/の親)を求め、<CLI の repo root>/docs/working/TASK-XXXXを読み書きする。bin/は導入先に配置されない ため、PATH 上のplangateは必ず別の場所にある上流 clone の実体を指す。つまり導入先でplangate exec TASK-XXXXを実行しても、対象は導入先のdocs/working/ではなく その clone 側のdocs/working/になる。cwd 非依存でパスを明示できる--dirを持つのはvalidate/validate-schemasだけで、exec/resume/status/review/eval/metrics/context/render/approveに相当オプションは無い。
./scripts/ai-dev-workflow TASK-XXXX exec も利用可(上流リポジトリの cwd のみ。scripts/ai-dev-workflow は配布対象外)scripts/codex-guarded.sh --task TASK-XXXX exec --full-auto を推奨(上流リポジトリの cwd のみ。pre-flight で validate + doctor --check-settings 実行、post-flight で plan.md drift 検知)❌
Codex CLI 物理 hook 等価達成 (PR #347)未達成(2026-08-13 実測):.codex/hooks.jsonは設定ファイル全体が parse 拒否されており、hook は 1 件も登録されていない。EH-1/2/3/6/9 は Codex session で一度も発火していない。scripts/codex-guarded.shの session 前後検知は正規入口を経由した場合のみ機能する(入口を強制する機械ゲートは無い)。Codex session 中の write は物理 block されないものとして扱い、ゲートは人手で維持すること。 詳細は同梱references/settings-wiring-contract.md§Codex CLI parity を参照。これらは配布対象外でもあるため、導入先では下記フォールバックでゲートを人手維持する。
上表の「導入先 + PATH に無い(既定)」に該当する場合は次に従う:
exec 本体は手動で TDD 実行する — Red → Green → Refactor の順序と「Output」の出力契約は CLI の有無に関わらず不変
exec 入口ゲート(前提条件)は自分で確認する — まず approvals/c3.json に
approval_kind キーがあるかを strict JSON で読んで経路を分ける
(python3 -c 'import json,sys; d=json.load(open(sys.argv[1])); print("approval_kind" in d)' <path>)。
(a) legacy c3.json(approval_kind キー無し)の場合 — c3_status が
APPROVED であることを読んで確認し、続けて plan_hash を突合する。plangate validate の
plan_hash 検査は plan.md の素の sha256(正規化・前処理なし)と c3.json の plan_hash
から sha256: prefix を除いた値の単純比較なので、CLI 無しで再現できる:
# 算出(sha256sum → shasum -a 256 → openssl → python3 の順に、あるものを使う)
sha256sum docs/working/TASK-XXXX/plan.md | awk '{print $1}'
shasum -a 256 docs/working/TASK-XXXX/plan.md | awk '{print $1}'
openssl dgst -sha256 docs/working/TASK-XXXX/plan.md | awk '{print $NF}'
python3 -c 'import hashlib,sys; print(hashlib.sha256(open(sys.argv[1],"rb").read()).hexdigest())' docs/working/TASK-XXXX/plan.md
# 突合先: docs/working/TASK-XXXX/approvals/c3.json の "plan_hash": "sha256:<この値>"
不一致なら C-3 承認後に plan が改変されている → exec に進まず、再承認(c3.json の
plan_hash 更新)または plan の revert を行う。上記 4 手段がすべて無い場合に限り
スキップし、その事実を decision-log.jsonl に記録して 「機械検証済み」と書かない
(python3 は PlanGate ツールチェーンの事実上の必須依存なので、実際にはほぼ到達しない)
(b) approval_kind: "c3-prime" の record の場合 — 上記 (a) の手順は使えない。
c3-prime は c3_status を持たず(契約 §5 で明示禁止)、plan_hash は legacy と同じ
sha256:<64hex> 形式だが top-level と reviewer snapshot に複数回出現するため、
非アンカーな grep/sed 抽出は多行マッチして誤動作する(契約 §5。読むなら python3 の
strict JSON のみ)。さらに受理には Plan Package 6 要素(pbi-input.md / plan.md /
todo.md / test-cases.md / / )の
全数照合 + + (検証時点の対象 SHA と一致)+ reviewer
snapshot の三つ組一致 + までの束縛検証が必要
(正本: 同梱 §3〜§5)。
— 単体の hash 一致だけで
入口ゲート確認済みとして exec に進むと、残り 5 artifact と の stale を見逃す。
この場合は item 4 の上流 clone 経由 で機械検証するか、
機械検証できない旨を に記録して
exec 完了後は ai-dev-verify skill で V-1〜V-4 + handoff.md 発行。L-0〜V-4 は workflow-conductor が自動進行。
review-self.mdreview-external.mdartifact_hashesplan_package_hashsource_shadecision=AUTO_APPROVEDreferences/c3-prime-contract.mdplan.mdsource_shaplangate validate --dirdecision-log.jsonlhook も配布されない前提で運用する — plan_hash を照合する hook(EH-3)は導入先には配線され ないため、item 2 の突合は exec 開始前に自分で実行する。CLI が無いことを理由に C-3 を省略しない
CLI による機械検証が必要なら、上流リポジトリを clone して
bin/plangate validate --dir <導入先の TASK ディレクトリの絶対パス> を実行する。
位置引数形式(validate TASK-XXXX)は使わない — 上表の注意のとおり clone 側の
docs/working/TASK-XXXX を見に行ってしまい、導入先の TASK は検査されない