with one click
with one click
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | issues |
| description | ISSUE を 12 ルール Opus オーケストレーターワークフローで完遂する (ISSUE 読み取り→設計→実装→レビュー→マージ) |
| argument-hint | <ISSUE番号> |
| disable-model-invocation | true |
ISSUE #$ARGUMENTS を 12 ルール Opus オーケストレーターワークフローで解決します。
gh issue view $ARGUMENTS で本文・コメント・ラベル・担当者・マイルストーンを全取得する。
ISSUE 本文に ## 🔗 統合 PR 情報 セクションがあるか確認:
セクション記載の統合ブランチ名を読む。
git worktree add C:/tmp/wt-$ARGUMENTS -b <統合ブランチ名> origin/maingit worktree add C:/tmp/wt-$ARGUMENTS <統合ブランチ名> で checkoutCloses #A\nCloses #B\n... を記載着手前に以下で関連 open ISSUE を洗い出す:
gh issue list --state open --search "<本 ISSUE のキーワード>"
本 ISSUE が触りそうなファイル・モジュール・UI 画面名をキーワードに使う。
## 🔗 統合 PR 情報 を prepend実装手順・変更ファイル・影響範囲を組み立て、実装開始前に gh issue comment $ARGUMENTS --body "..." で ISSUE に追記する。
この comment が:
git worktree add C:/tmp/wt-$ARGUMENTS -b feat/issue-$ARGUMENTS-<slug> origin/main
slug は ISSUE タイトルから英小文字ケバブケースで生成。
Agent(subagent_type="codex:codex-rescue", prompt="--fresh\n\n<briefing>")
briefing には以下を含める:
C:/tmp/wt-$ARGUMENTSschemas/*.json (グローバル定義スキーマ) 変更は AI の権限外。Codex/Sonnet/Opus は変更してはならない (#511、最重要):
「
schemas/process-flow.schema.json等のグローバル定義スキーマは変更禁止。表現できない場合は ISSUE 起票して作業停止、設計者承認待ち。テスト pass を理由に勝手に拡張するのは絶対禁止 (memoryfeedback_schema_governance_strict.md参照)。」
/create-flow の 15 ルール self-check を遵守する旨を明示:
「フロー作成にあたり
.claude/skills/create-flow/SKILL.mdの Step 3 既知パターン回避 self-check 15 ルールを遵守すること: 基本 8 ルール: 1) TX 内 step が TX 外設定変数を前方参照しない、2) 外部呼び出しは TX 外、3) UPSERT 後の step すべてに同条件 runIf + no-op return、 4) branch return 後の共通 step に fallthrough しない、5) compensatesFor 対象 step が実在、6) eventsCatalog ⇄ eventPublish 双方向整合、 7) 外部呼び出しは TransactionScope inner にいない、8) rollbackOn は TX inner で発生するエラーコードのみ列挙 (死コード禁止)、 追加 6 ルール (#486 検証で発覚): 9) SQL SELECT カラム整合 (後続参照の全フィールドが SELECT 句に含まれること)、 10)@conv.*参照は conventions-catalog.json 登録済キーのみ、11) TX 内 branch return 後の fallthrough も避ける、 12)affectedRowsCheck.operatorは=のみ (==不可)、13)affectedRowsCheck.expectedは integer リテラル必須、 14)OtherStep.outputSchemaは{field: \"string\"}形式のみ、 追加 1 ルール (#511 で導入、最重要): 15) グローバル schema (schemas/*.json) を変更禁止、必要なら ISSUE 起票して停止」
Agent(subagent_type="general-purpose", model="sonnet", prompt="...")
同じ briefing を渡す。
⚠️ 確認なしで最初から Sonnet を使うのは禁止 (Rule 6 違反)
subagent_type="general-purpose" + model="sonnet" または subagent_type="review-pr-sonnet" で Agent を呼ぶ場合、briefing prompt の末尾に .tmp/sonnet-briefing-template.md の中身をそのまま貼り付ける (memory feedback_sonnet_briefing_progress_log_template.md)。
手順:
Read(.tmp/sonnet-briefing-template.md) で実体を取得 (memory に頼らず実ファイルを読む)964-beta, 945-C-1, 2026-05-08-1430)<progressLogPath> / <bailoutPath> / <summaryPath> / <signalPath> を確定する
/home/hidekatsu/projects/harmony/.tmp/agent-progress/<sessionId>.log (worktree path は 禁止 — worktree 削除時にログ消失 + 監視 path ズレ事故、2026-05-09 #959 で実例)<sessionId> / <progressLogPath> / <bailoutPath> / <summaryPath> / <signalPath> を 全件実値に置換した上で briefing 末尾に貼るmkdir -p <main-repo>/.tmp/agent-progress <main-repo>/.tmp/agent-control && touch <progressLogPath> (絶対パス) で監視先を pre-create する省略禁止: テンプレが無いと進捗が見えず、無限走行 / 詰まり検知不可 / 緊急中断手段なしになる。Codex 委譲時 (codex:codex-rescue) も同フッター推奨 (/codex:status だけでは fine-grained 進捗が見えない)。
self-check (委譲直前):
<sessionId> placeholder が実値に置換されている (テンプレ生のままは NG)<progressLogPath> 等 path placeholder が main repo の絶対パス に置換されている (相対パス / worktree path は NG)<progressLogPath> (絶対パス) が pre-create されているPR diff に画面関連ファイル (screens/ / Designer.tsx / PuckBackend 等) が含まれる場合:
screen.design.editorKind → project.techStack.designer.editorKind → "grapesjs" のフォールバック (#826 で project.design から移行)screen.design.cssFramework → project.techStack.designer.cssFramework → "bootstrap" のフォールバック (#826 で project.design から移行)editorKind === "puck" 画面を Thymeleaf 出力対象から除外し、スキップした画面名をレポートに記録しているか確認primitive フィールドが BUILTIN_PRIMITIVE_NAMES に含まれる既知の名前かどうか詳細仕様: docs/spec/multi-editor-puck.md § 2.3 / § 4.1
最重要: gh pr diff <PR番号> -- schemas/ で schema 変更の有無を確認:
gh pr diff <PR番号> --name-only | grep -E "^schemas/"
schemas/*.json (process-flow / extensions / conventions) に変更がある場合:
feedback_schema_governance_strict.md 参照):
improve(schema): <フィールド名> 追加検討 — 経緯)検出された場合は ISSUE コメントで報告:
gh issue comment $ARGUMENTS --body "⚠️ schema 変更検出: <ファイル名> — 設計者承認が必要"
→ schema 変更なしを確認後、Step 5 へ。
gh pr diff <PR番号> --name-only と PR diff を読み、Step 2 の設計との乖離を確認:
gh issue comment $ARGUMENTS --body "逸脱内容..." に記録し、Codex/Sonnet に修正指示 → Step 5 に戻る (Rule 8)PR diff の examples/<project-id>/actions/*.json または data/process-flows/*.json に変更があれば、/review-flow を呼んで実行可能性を専門レビュー:
Skill(skill="review-flow", args="<flowId or path>")
または対象が複数なら:
Skill(skill="review-flow", args="--all")
目的: JSON Schema valid だが実行時にバグる問題 (変数前方参照・TX スコープ違反・runIf 抜け・branch dead-end 等) を PR レビュー前 に潰す。これにより Step 6 の往復が激減する。
--fresh) → Step 5 に戻るProcessFlow JSON 変更がない PR ではこの Step を完全スキップ。
Agent(subagent_type="review-pr-sonnet", prompt="PR #<PR番号> をレビューしてください")
gh issue view $ARGUMENTS --comments でレビュー結果を読む。
→ Step 8 (マージ) へ
→ 別 ISSUE を起票し、元 PR 本文に スコープ外指摘は #<新ISSUE> に分離 を明示 → Step 8 へ
--fresh)gh pr merge <PR番号> --squash --auto
PR タイトルに ISSUE 番号が含まれていることを確認してからマージ。
マージ完了後 (またはシリーズの 1 phase 完遂時) にユーザーへ短く報告 + 「セッションクリアすべきか」「次プロンプトのおすすめ」を必ず明示。
α/β/γ/δ 等)/clear 推奨かどうか判定 + 次プロンプト提示| 状況 | /clear 推奨 | 次プロンプト |
|---|---|---|
| ISSUE 完全完了 (PR merged + ISSUE closed)、続けて別 ISSUE | 推奨 | /issues <次ISSUE番号> |
| シリーズの 1 phase 完了、同 ISSUE で次 phase 続く | 強く推奨 (1 セッション = 1 phase 原則) | /issues <ISSUE番号> (<次phase> phase のみ、<制約>) |
| 統合 PR の子 ISSUE 1 件完了、他子が残っている | 推奨 | /issues <次の子ISSUE番号> |
| Must-fix 修正待ちでブロック | 非推奨 (context 維持) | そのまま継続 |
| ユーザー判断待ち (設計判断 / スコープ確認) | 非推奨 (context 維持) | そのまま継続 |
| ISSUE 一連処理を継続 (連続実行モード) | 任意 (累積トークン次第) | /issues <次ISSUE番号> |
feedback_token_budget_discipline.md: タスク切替で /clear (累積トークン削減)feedback_issue_split_hidden_costs.md: /clear 運用での累積コスト## 🔗 統合 PR 情報 セクションから復元できる前提## #<ISSUE> <phase> phase 完遂
**branch**: feat/<topic-slug> (N commits)
**完了 commit**: <要点>
**検証**: <grep / tsc / test 結果>
完了報告を ISSUE #<N> にコメント投稿済 (<URL>)。
---
## 次セッション推奨
**/clear すべき**。理由:
- ISSUE 本文「セッション分割実行ルール」で 1 セッション = 1 phase
- memory `feedback_token_budget_discipline.md`: タスク切替で /clear
- 次 phase は本 phase の context 不要 (commit log + ISSUE コメントから復元)
### 次プロンプト
/issues <ISSUE番号> (<次phase> phase のみ、<制約>)
## #<ISSUE> 完遂
**マージ済 PR**: #<PR番号> (<URL>)
**closed ISSUE**: #<N>
---
## 次セッション推奨
**/clear すべき** (タスク切替)。
### 次プロンプト候補
- 別 ISSUE 着手: `/issues <次の優先 ISSUE番号>`
- シリーズ親 ISSUE 監査: `/review-issue <親ISSUE番号>`
- 次に何をするか確認: `gh issue list --state open --label "priority: high"`
これらは /clear すると context 復元コストが大きい。「そのまま続けてください」と明示すること。
--fresh 固定 — resume 選択プロンプトでブロックしない