--- name: breezing description: "Team execution mode — backward-compatible alias for harness-work with team orchestration. Composer/composer 2.5 maps to the cursor backend." description-ja: "チーム実行モード — harness-work のチーム協調エイリアス。breezing, チーム実行, 全部やって, composer, コンポーザー, composer 2.5 でトリガー。" description-en: "Team execution mode — backward-compatible alias for harness-work with team orchestration. Composer/composer 2.5 maps to the cursor backend." kind: workflow purpose: "Wrap harness-work with team execution orchestration" trigger: "breezing, team execution, do everything, composer, composer 2.5, composer mode, コンポーザー" shape: wrap role: orchestrator base: harness-work pair: harness-review owner: harness-core since: "2026-05-05" allowed-tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob", "Task", "WebSearch", "Monitor"] argument-hint: "[all|N-M|--codex|--cursor|--reviewer-only|--parallel N|--no-commit|--no-discuss|--no-review-gate|--auto-mode]" user-invocable: true --- # Breezing — Team Execution Mode > **後方互換エイリアス**: `harness-work` をチーム実行モードで動かします。 ## Default Pipeline(plan → work → review → report を 1 コマンドで完走) `/breezing` は「計画 → 実装 → OK が出るまでレビュー → 報告」を 1 回の起動で完走する。 operator が `/harness-plan` や `/harness-review` を個別に指示する必要はない(operator 裁定 2026-07-24)。 1. **Plan gate**: 依頼スコープに対応する task が Plans.md に無い、または不足している場合、先に `harness-plan` を実行して task を生成してから続行する。既に plan がある場合はそのまま Phase 0 へ。plan 生成時のスコープは harness-plan の「スコープ既定: 今進められる全作業」に従う。 2. **Work**: 既存の Phase 0 → A → B(per-task review 含む)。 3. **Integrated Review Gate(Phase D、既定 ON)**: Phase B 完了後、**Phase C の最終化(完了報告・run 完了宣言)より前に**、run 全体の diff に `harness-review` を実行する。 - review target: 通常 run は `{base_ref}..HEAD`。`--no-commit` run は commit range が空になりうるため、**working tree(未 commit 変更 + untracked ファイル)を対象にする** - fresh-context の独立 reviewer subagent(実装 Worker と会話状態を共有しない)と、`bash "${HARNESS_PLUGIN_ROOT}/scripts/codex-companion.sh" review --base "${base_ref}"` の second opinion を併走させる - いずれかが REQUEST_CHANGES 相当 → 修正 → 再レビュー。**APPROVE が出るまで反復する**(最大 3 回)。未収束の場合は影響 task の marker を `cc:WIP` に戻し、human escalation で停止して findings と修正状況を報告する - primary verdict(`APPROVE | REQUEST_CHANGES`)は brain(claude host)が出す。role-scoped 制約は維持 4. **Finalize + Report(Phase C)**: gate の APPROVE を得てから Plans.md 更新・commit・完了報告を確定する。gate 未通過のまま run を「完了」として報告してはならない。最終報告は easy 作法で出す(host session に `easy` skill があれば invoke してその作法に従う。無ければ `harness-work` の Completion Report テンプレート)。 `--reviewer-only` / `--no-commit` 等の既存フラグは、この pipeline の該当段だけを動かす per-run override として働く。 低リスクの高速 run で Phase D を省きたい時は `--no-review-gate` を渡す(Phase B の per-task review は省かれない。省くのは run 全体 diff への統合レビューだけ)。 ### Work Mode Lifecycle (`bin/harness work-mode`) R04/R05 の確認 skip が読む `ctx.WorkMode` は、`HARNESS_WORK_MODE` / `ULTRAWORK_MODE` env (skill から設定できない)か SQLite `work_states` 行のどちらかで立つ。`bin/harness work-mode ` が後者を書く唯一の入口(`harness-work` の「Work Mode Lifecycle」節が正本)。 - Lead は Plan gate に入る前(run 開始時)に `bin/harness work-mode on` を実行する。 `--codex` run では `bin/harness work-mode on --codex` を使う(R07 = Lead の直接 Write/Edit 禁止が同時に立つ) - Lead は run 終了時、**成功・失敗・中断の全経路**で `bin/harness work-mode off` を実行する (backend が `claude` / `codex` / `cursor` のどれでも同じ規律。cursor fast path の `session declare` / `--clear` と同じ「run 境界で必ず対で呼ぶ」形) - run 単位で 1 回のみ。task ごとに on/off しない - session ID が解決できない場合は非ゼロ終了 + 理由が stderr に出る(無言で成功しない) ### Breezing run state (`breezing-active.json`) — guardrail の file producer Lead は run 開始時に `.claude/state/breezing-active.json` を書く。guardrail は このファイルを R07(codex mode)と R08(reviewer subagent 判定のスコープ)の file producer として読む(`go/internal/guardrail/breezing_state.go`): ```json {"impl_mode": "codex", "started_at": ""} ``` - `impl_mode` は `--codex` なら `"codex"`、それ以外は `"claude"` / `"cursor"` - run 終了時(全経路)にこのファイルを削除する。残すと次の通常セッションでも R07/R08 のスコープ判定が生き続ける - reviewer teammate(worktree spawn)には env `HARNESS_BREEZING_ROLE=reviewer` を spawn コマンドの環境に付ける。セッション内 reviewer subagent は CC が付与する `agent_type` で自動判定されるため追加作業は不要 ## Narration Rules (UX Contract) 敵は **冗長さ** であって進捗報告ではない。**起動時に実行計画を簡潔に明示してから実行を開始する**。見やすい進捗報告は歓迎する。冗長な繰り返し・中身のない前置きだけを禁ずる。 ### 起動時に必ず出すもの (banner + plan、合計 5 行以内) 最初の応答で、何を・どの順で進めるかを示してから tool 実行に入る: ``` 🚀 cursor / composer-2.5-fast / feat/hah-11-golden-rule-lint / Reviewer これから: 1. backend/model を resolve 2. composer に advisory findings を委譲 (read-only) 3. brain 一次レビューで verdict を確定 → 3-5 行要約 → Plans.md 更新 ``` banner 1 行 (`🚀 / / / `) + 計画 2-4 行。1 秒以内に出し、即 Step 1 へ。 ### Backend 既定と per-run のフラット判断(2026-07-24 operator 裁定) 既定 backend は **`claude`(Native subagent)**。resolver の未設定 fallback も `claude` であり、これは罠ではなく意図された既定。 ⚠️ 警告は resolver が **不正値 fallback** の stderr 警告を出した時だけ banner 直後に 1 行で出す(正常に `claude` へ解決された場合は出さない。同一 run 内で繰り返さない)。 Lead は run 単位で、作業内容・量からフラットに backend を選んでよい。選ぶ時は resolver への明示 override(`--backend ` / `--codex` / `--cursor`)を使う。env 直読みは引き続き禁止: | 作業の性質 | 推奨 backend | 理由 | |---|---|---| | 通常の実装・修正・テスト(既定) | `claude` (native) | Worker 契約(`worker-report.v1` / self_review 5 件)が全部効く | | 大規模で独立性の高い一括実装、Claude 側 rate limit 回避 | `codex` | `breezing --codex` の companion が専用の worker route を解決して委譲する。Native Codex は managed custom agent を選択し、deep / review / advisor は各 role の route を維持する | | UI 大量生成、lean な高速委譲 | `cursor` | lean path(worktree 隔離 + Lead diff review) | モデル ID は skill に書かない。`bash "${HARNESS_PLUGIN_ROOT}/scripts/model-routing.sh" --host --role worker` が正本。 CCH の role 値は未指定時の既定。利用者の明示指定と手動変更を尊重し、AI の推定で再調整せず、親の変更を全 Worker に配らない。native profile と Reviewer の隔離契約を維持する。 `breezing --codex` の companion 経路だけが `bash "${HARNESS_PLUGIN_ROOT}/scripts/model-routing.sh" --host codex --role worker` で 専用の `worker` route を解決する。`max` が返る場合は `codex-companion.sh` が公式 companion 1.0.6 の `--effort max` 非対応を吸収し、 raw `codex exec` の config override へ正規化する。Worker の write/sandbox intent は保持し、deep / review / advisor の role route を worker に流用しない。 Codex-native Breezing は管理済み `.codex/agents/worker.toml` を `agent_type: worker` で選択する。model / reasoning は custom agent 側で管理し、 skill から直接渡さない。bounded `fork_turns: "3"` は残してよいが、 `[agents].default_subagent_*` は全 subagent を retune するため設定しない。 この worker role は setup が user の `$CODEX_HOME/agents/worker.toml` または project の `.codex/agents/worker.toml` にコピーして初めて有効になる。Codex 0.148 の plugin manifest は native agent role を登録できず、plugin の install / cache / dist への収録だけでは有効化されない。 公式の Subagents 設定: https://learn.chatgpt.com/docs/agent-configuration/subagents?surface=app ### 進捗報告は出してよい (見やすい範囲で) - 各ステップの開始・完了を 1 行ステータスで (`✓ backend=cursor / model=composer-2.5-fast`) - 判断に必要な中間結果 (pre-check の要点、resolved model、検出した branch 等) - なぜこの分岐を取るかの理由を 1 行で (例: 「Reviewer のみ委譲: Worker は別系統で完了済み」) ### 禁止 (= 冗長さ) - **同じ事実の 2 回言い換え**: 一度言ったことを後段で再説明しない - **中身のない前置き**: 「使い方を確認します」だけの行など、tool call で自明な宣言 - **3 行以上の経緯振り返り**: 結論を引き伸ばす長い前置き。経緯が必要なら 1 行に圧縮 - **起動シーケンス中の ★ Insight ブロック**: Insight は最終 report で 1 回のみ ## Quick Reference ```bash /breezing # スコープを聞く(claude backend) /breezing all # 全タスク完走(claude backend) /breezing 3-6 # タスク3〜6を完走 /breezing --codex all # Codex CLI で全タスク委託 /breezing --cursor # cursor backend lean path (--no-discuss all 既定) /breezing --cursor --reviewer-only # Reviewer のみ cursor に委譲(Worker は別系統で既完了) /breezing composer 2.5 all # 自然言語 trigger: cursor backend として扱う /breezing --parallel 2 all # 2並列で全タスク完走 /breezing --no-discuss all # 計画議論スキップで全タスク完走 /breezing --auto-mode all # 互換な親セッションで Auto Mode rollout を試す ``` ## Brief Composer v0 argument-hint のどれにも一致しない自由文入力は `bash scripts/breezing-brief.sh classify ""` で `structured` / `free-text` を判定する。 `free-text` は 3〜7 個の subtasks に分解した `brief-card.v1` カードをユーザーに提示し、`breezing-brief.sh confirm ` で確定する。 分解ロジック・schema・`DISPATCH` 契約の詳細は [references/lean-path-detail.md](${CLAUDE_SKILL_DIR}/references/lean-path-detail.md) を参照。 ## Options | Option | Description | Default | |--------|-------------|---------| | `all` | 全未完了タスクを対象 | - | | `N` or `N-M` | タスク番号/範囲指定 | - | | `--codex` | Codex CLI で実装委託 | false | | `--cursor` | cursor backend lean path(per-run 明示 override。resolver 出力が `cursor` のときと同等)。Worker 介在 / self_review / sprint-contract 3 段チェーン / Phase 0 を skip し、起動 → 委譲を 3 秒以内に開始する | false | | `--reviewer-only` | Reviewer のみ独立系統に委譲(Worker 実装は既完了前提)。`--cursor` と併用で Composer に逃がす | false | | `--parallel N` | Implementer 並列数 | auto | | `--no-commit` | 自動コミット抑制 | false | | `--no-discuss` | 計画議論スキップ | `--cursor` で true 既定 | | `--no-review-gate` | Phase D(Integrated Review Gate)をスキップ。Phase B の per-task review は維持 | false | | `--auto-mode` | Harness 側の Auto Mode rollout を明示。CC 2.1.111 で不要になった `--enable-auto-mode` とは別物 | false | ### `--parallel N` と CC 側の実キャップ(133.9、一次ソース確証済み) `--parallel N` は Harness 側の希望値であって、実際に同時に走る数は CC が決める。 **CC は同時実行中の subagent を既定 20 に制限する**(`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`、2.1.217)。 20 を超える N を渡しても超過分は待ち行列に入るだけで、エラーにはならない。 つまり `--parallel 40` は「40 並列」ではなく「20 並列 + 待ち」になる。 **ネストした spawn は既定で深さ 3 まで**(`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`、2.1.219 で 1 → 3 に緩和)。 Lead(深さ 0)→ Worker / Reviewer(1)→ Worker が呼ぶ advisor 等(2)は収まる。 Mode 1 の Producer → Sub-Lead → Composer も 3 段以内。 これを超える階層を設計するときは、env で上げない限り**静かに spawn が拒否される**ことを前提にする。 どちらも Harness 側は env を明示設定しない(CC の既定に従う)。変えたい場合は run の env で渡す。 ## Natural Language Backend Triggers `composer` / `コンポーザー` / `Composer で` / `composer 2.5` / `composer モード` は、正式に `cursor backend` の trigger として扱う。 これは `--cursor` 相当の intent であり、Lead は `resolve-impl-backend.sh` を経由して backend を確定する。 解決時は明示 override として `--backend cursor` を渡し、env / project / user file / default より優先させる。 | 入力例 | 解釈 | 実行経路 | |---|---|---| | `composer 2.5 で` | `cursor backend` | Lead → `cursor-companion.sh task --write --workspace ` | | `コンポーザーで全部` | `cursor backend` | Lead → `cursor-companion.sh task --write --workspace ` | | `composer モード` | `cursor backend` | Lead → `cursor-companion.sh task --write --workspace ` | `composer` は Claude Worker の内側に spawn する追加 agent ではない。 非 `claude` backend のトポロジーに従い、Lead が Worker agent を挟まずに `cursor-companion.sh` を直接呼ぶ。 > **CC 2.1.111 note**: > Opus 4.7 では literal に `/effort xhigh` が使える。 > built-in `/ultrareview` は明示要求時だけ追加で使い、既定レビューは置き換えない。 > **長時間セッション推奨 (CC 2.1.108+)**: > セッション長が 30 分を超える見込みの場合、plugin bundle root 解決後に > `bash "${HARNESS_PLUGIN_ROOT}/scripts/enable-1h-cache.sh"` を実行して 1 時間 prompt cache を opt-in すること。 > このスクリプトは `env.local` に `export ENABLE_PROMPT_CACHING_1H=1` を追記する (冪等)。 > 5 分 TTL の既定キャッシュでは breezing の 1 時間超セッションで cache miss が累積し > input token コストが最大 12 倍になりうるため、長時間 team 実行では明示的に opt-in する。 > Codex CLI 子プロセス (`scripts/codex-companion.sh task --write` 等) は通常 env 継承で > `ENABLE_PROMPT_CACHING_1H` を読むが、`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` が有効な場合は > 明示的に export を維持する shell wrapper が必要。詳細は > [`docs/long-running-harness.md`](../../docs/long-running-harness.md) を参照。 ## Execution **このスキルは `harness-work` に委譲します。** 以下の設定で `harness-work` を実行してください: 1. **引数をそのまま `harness-work` に渡す** 2. **チーム実行モードを強制** — Lead → Worker spawn → Reviewer spawn の三者分離 3. **Lead は delegate 専念** — コードを直接書かず、Worker 実行中は仕様照合、独立した調査、証拠確認、統合準備を進める 4. **Auto Mode は opt-in 扱い** — `--auto-mode` は互換な親セッションでの rollout 用フラグとして受け付ける 5. **Advisor は必要時のみ** — Worker が `advisor-request.v1` を返した時だけ Lead が advisor を呼ぶ 委譲本文には原依頼の目的と理由、担当ファイルと除外範囲、DoD、選択した plan / spec、実測や失敗履歴、承認の参照を含める。companion の `` も省略しない。 担当はその境界内で方法を選び、承認済み可逆作業を完了する。軽微な不足は読み取り調査と明示した仮定で補い、仕様や権限の未決事項だけ依存する操作を止める。 独立して検証できる成果ごとに ownership を分け、ready task と利用可能な同時実行上限の範囲で委譲する。関連 follow-up は同じ担当へ返し、他担当の編集を戻さない。 実装担当の再利用と、fresh-context の独立 Reviewer を混同しない。必要なレビューとチェックが通ったら、追加の機能や根拠のない再検証を増やさず結果を返す。 ### Plan-time 事前確認の扱い Breezing run 開始時は、Lead が `harness-work` と同じ preapproval preflight を実行する。 - 各 task の開始時、task worktree の `.claude/state/active-task.json` に `{"phase":"","task":""}` を原子的に書く。task 終了時は成功、失敗、停止の全経路で削除する。 - `.claude/state/plan-preapprovals.json` があれば `scripts/plan-preapproval.sh validate` で v2 を validate する。v1 は既存記録の読み取り互換として受け付ける。 - 実行対象 task の `decision: approved` 事項だけを宣言済みとして扱い、Worker briefing に渡す。 - `secret-read` は `bash "${HARNESS_PLUGIN_ROOT}/scripts/plan-preapproval.sh" apply-secret-allow "$PROJECT_ROOT"` で project config `.claude-code-harness.config.json` の `runtimefloor.secretAllow` に per-run 反映し、108.2 の project config floor と接続する。 - R12 の `ask` は、同じ phase/task、期限内、使用回数内で、`external-send` と実行コマンドが一致する v2 承認だけが抑制する。明示 `deny` と runtime floor は抑制しない。 - 宣言済み事項では途中停止せず、work 中の宣言済み事項起因 `AskUserQuestion` はゼロにする。確認は plan 承認時の 1 回のみ。 - 記録に無い未計画の secret-read / 外部送信 / 破壊的操作は従来どおり runtime floor / ask で停止する。安全網を狭めない。 ### `harness-work` との違い | 特徴 | `harness-work` | `breezing` (このスキル) | |------|-----------------|------------------------| | 並列手段 | 必要数に応じた自動分割 | **Lead/Worker/Reviewer の役割分離** | | Lead の役割 | 調整+実装 | **delegate (調整専念)** | | レビュー | Lead 自己レビュー | **独立 Reviewer** | | デフォルトスコープ | 次のタスク | **全部** | ### Team Composition | Role | Agent Type | Mode | 責務 | |------|-----------|------|------| | Lead | (self) | - | 調整・指揮・タスク分配 | | Worker ×N | `claude-code-harness:worker` | `bypassPermissions`(現行) / Auto Mode(follow-up)* | 実装 | | Advisor | `claude-code-harness:advisor` | 読み取り専用 | 方針助言 (`PLAN` / `CORRECTION` / `STOP`) | | Reviewer | `claude-code-harness:reviewer` | `bypassPermissions`(現行) / Auto Mode(follow-up)* | 独立レビュー | > *親セッションまたは frontmatter が `bypassPermissions` の場合はそちらが優先される。配布テンプレートは現在も `bypassPermissions` を使うため、Auto Mode は follow-up の rollout 対象であり、既定挙動ではない。 ### Mode 1 — Sub-Lead 階層と review→iterate(opt-in) Go orchestrator 経路(`harness work --team`)の **Producer → Sub-Lead → Composer** は、`HARNESS_TEAM_HIERARCHY=sublead` の CLI mini-plan 入口が未実装のため未対応。この更新では有効化せず、通常は既定の flat で実行する。 これは Go の opt-in 入口の制約であり、Lead が手動で担当を分解する Producer トポロジーを無効にするものではない。 Go の `HARNESS_REVIEW_ITERATE=on` も、production brain runner が要求する `claude-companion.sh` が未提供のため end-to-end 未対応。この更新で有効化せず既定 OFF を維持する。 通常の Skill / Native reviewer loop は別経路であり、既定の review gate と反復上限を維持する。Go opt-in の設計境界は `harness-work` の `references/backend-selection.md` を参照する。 - If you grep the same symbol twice in the same session, switch to harness_ast_search. - For a bugfix where homologous implementations appear across multiple modules, run harness_ast_search to find all implementations before editing. - Only when changed files include .ts or .tsx, the DoD requires zero new harness_lsp_diagnostics errors; if the harness MCP is not connected or the changed file types are not eligible, treat diagnostics as not-configured and non-blocking. ### Codex Mode (`--codex`) 公式プラグイン `codex-plugin-cc` 経由で Codex CLI にすべての実装を委託するモード: この `--codex` は companion 経路であり、専用 `worker` route を解決して実装を委託する。 公式 companion 1.0.6 が `--effort max` を拒否するため、router が `max` を返す場合は Harness の `codex-companion.sh` が raw `codex exec` の config override へ変換する。 レビュー・助言・deep 判断は、それぞれの role-scoped route を使う。Native Codex Breezing の managed custom-agent 選択とは別経路である。 ```bash # タスク委託(書き込み可能) CODEX_MODEL_TIER=worker bash "${HARNESS_PLUGIN_ROOT}/scripts/codex-companion.sh" task --write "タスク内容" # stdin 経由(大きなプロンプト向け) CODEX_PROMPT=$(mktemp /tmp/codex-prompt-XXXXXX.md) # タスク内容を書き出し cat "$CODEX_PROMPT" | CODEX_MODEL_TIER=worker bash "${HARNESS_PLUGIN_ROOT}/scripts/codex-companion.sh" task --write rm -f "$CODEX_PROMPT" ``` ### Execution Backend (persistent) backend 判定は **必ず resolver 経由**。`HARNESS_IMPL_BACKEND` env を直接読んで backend を決めてはならない。 env / `--cursor` per-run flag / project `env.local` / user file を `bash "${HARNESS_PLUGIN_ROOT}/scripts/resolve-impl-backend.sh"` で precedence 解決し、その出力を backend として使う (env unset でも project / user file から拾える)。永続 default を変えたい場合は `bash "${HARNESS_PLUGIN_ROOT}/scripts/set-impl-backend.sh" [--user]` で project / user file に書き込み、 run 開始時に resolver が解決する(現行の operator 既定はユーザースコープで `claude`)。review / advisor ロールは brain に固定したまま。 バックエンド選択の正本(precedence、role-scope、self_review スキップ、cursor banner)は `harness-work` の「Execution Backend Selection(実装バックエンド選択)」を参照する。 下の Cursor Backend Fast Path は per-run フラグ (`--cursor`) を resolver への明示 override として lean path を有効化する別軸であり、本節と併読する。 ### Cursor Backend Fast Path (`--cursor` / lean mode) `bash "${HARNESS_PLUGIN_ROOT}/scripts/resolve-impl-backend.sh"` の出力が `cursor` のときに有効 (`--cursor` は resolver への明示 override として precedence 最上位)。Worker 層を介在させず Lead が直接 `cursor-companion.sh` を呼ぶ(Phase 85 SSOT、`.claude/rules/cursor-cli-only.md` Topology 節)。 cursor backend は Worker agent spawn / self_review 5 件ゲート / sprint-contract 3 段チェーン / Phase 0 interactive / effort スコアリングを省略し、baseline `15-35s` → target `3-7s` で 1 タスク目の委譲を開始する。節約内訳の全表は [references/lean-path-detail.md](${CLAUDE_SKILL_DIR}/references/lean-path-detail.md) を参照。 #### 既定 flow(cursor backend) 1. **banner + 実行計画** (`🚀 cursor / / / ` + これから進める 2-4 step、合計 5 行以内、1 秒以内) - run 全体で 1 回だけ、まだ実行していなければ `bin/harness work-mode on`(R04/R05 の確認 skip を有効化。詳細は「Work Mode Lifecycle」節) 2. **1 bash で並列 pre-check**: `git branch --show-current` + `cat VERSION` + `Plans.md tail` + `cursor-agent --version` 3. **1 bash で resolve**: `bash "${HARNESS_PLUGIN_ROOT}/scripts/resolve-impl-backend.sh"` + `bash "${HARNESS_PLUGIN_ROOT}/scripts/model-routing.sh" --host cursor --role worker --field model` 4. **即 委譲**: `bash "${HARNESS_PLUGIN_ROOT}/scripts/cursor-companion.sh" task --write --workspace ""` - 委譲開始時に `bin/harness session declare --task ` で共有 presence に作業宣言(他セッションから task 番号で逆引き可能になる) 5. cursor 出力を Lead が diff レビュー → cherry-pick → Plans.md `cc:done [hash]` 更新 - 更新後 `bin/harness session declare --clear` で presence の task 宣言を解除 - run 全体が終わる時(成功・失敗・中断いずれでも)は `bin/harness work-mode off` を忘れない #### Reviewer-only mode (`--cursor --reviewer-only`) — read = lean Worker 実装は既完了(別系統 = claude / Codex で済んだ)、advisory pre-review を Composer に出してもらう lean path。read-only 委譲なので **worktree 不要・cherry-pick 不要・cursor 出力の取り込みレビュー不要**(cursor は新たな diff を生まないため)。ただし対象 diff への **brain 一次レビュー(primary verdict)は省略しない**: 1. banner + 計画: `🚀 cursor / composer-2.5-fast / review` + 「これから: composer に advisory findings を委譲 → brain 一次レビューで verdict 確定」 2. `bash "${HARNESS_PLUGIN_ROOT}/scripts/cursor-companion.sh" task "diff レビュー: ..HEAD"` — **`--write` も `--workspace` も付けない** - companion は `--write` 未指定で default `--mode ask` (hard read-only stop) になる (cursor-companion.sh の workspace guard は `--write` 時のみ発火) - cursor 側はファイル書込・コマンド実行が disabled、worktree 隔離不要 3. cursor 出力 (REQUEST_CHANGES / APPROVE 相当) を Lead が解釈し、`dual_review.cursor_verdict` に advisory として格納 4. **primary verdict は brain reviewer から取る**。cursor 単独では APPROVE を確定しない (spec.md Execution Backend Contract の self-review scope 契約 = 「diff を生成した同一コンテキストは自分の出力をレビューしない」と整合)。この lean path 自体が fresh-context advisory pre-review であり、委譲先 cursor session は実装 worker と会話状態を共有しないこと 5. **brain 一次レビュー**: Lead が cursor advisory findings を入力として対象 diff を自ら検分し、verdict(`APPROVE | REQUEST_CHANGES`)を出す。brain reviewer が利用不能(rate limit 等)の間は verdict を確定せず、タスクを `cc:wip` のままユーザー判断へ渡す(cursor advisory のみで `cc:done` にしない) 6. brain の APPROVE 後に Plans.md `cc:done [hash]` を Lead が更新 read mode で省略できるもの: 専用 `.git` worktree / cursor 出力の取り込みレビュー / cherry-pick / `worker-report.v1` / self_review 5 件。**省略不可**: 対象 diff への brain 一次レビュー(verdict 確定)。 read mode でも保持必要: `.cursorignore` / egress allowlist (`*.cursor.sh`) / permissions.json (best-effort)。詳細は `.claude/rules/cursor-cli-only.md` 「Read mode delegation (lean path)」節を参照。 **用途**(rate limit 時の前倒し集約 / Reviewer だけ別系統に分散 / Codex review auth 失敗時の fallback、詳細は [references/lean-path-detail.md](${CLAUDE_SKILL_DIR}/references/lean-path-detail.md))。 #### Cursor adapter support claim Cursor は `supported` tier(H8 pin: live H4 2026-07-17 + H7 release-preflight fail-closed)。FS jail なし — containment は harness-side(`docs/CURSOR_INTEGRATION.md`)。`--cursor` lean path 自体は tier を昇格させない。 Bootstrap route: `.cursor/AGENTS.md` + `.cursor-plugin/plugin.json`。 Verification: ```bash bash tests/test-cursor-adapter-candidate.sh bash tests/test-support-claim-wording.sh ``` ## Flow Summary ``` breezing [scope] [--codex] [--parallel N] [--no-discuss] [--auto-mode] │ ↓ Load harness-work with team mode │ Phase 0: Planning Discussion (--no-discuss でスキップ) Phase A: Pre-delegate(チーム初期化) Phase B: Delegate(Worker 実装 + 必要時 Advisor + Reviewer レビュー) Phase C: Post-delegate(統合検証 + Plans.md 更新 + commit) ``` ## Advisor Protocol Worker は generic な subagent を増やさない。 迷った時は構造化 JSON で相談要求だけ返し、Lead が advisor を呼ぶ。 1. Worker → `advisor-request.v1` 2. Lead → Advisor 3. Advisor → `advisor-response.v1` 4. Lead → 同じ Worker に advice を返して続行 5. Reviewer は最後の成果物だけを見る 相談条件は loop / solo とそろえる。 - 高リスク task(`needs-spike` / `security-sensitive` / `state-migration`)の初回実行前 - 同じ原因の失敗が 2 回続いた後 - plateau により `PIVOT_REQUIRED` を返す直前 - 同じ `trigger_hash` は 1 回だけ。task ごとの相談回数は最大 3 回 ### Progress Feed(Phase B 中の進捗通知) Lead は Worker のタスク完了ごとに、以下のフォーマットで進捗を出力する: ``` 📊 Progress: Task {completed}/{total} 完了 — "{task_subject}" ``` **出力例**: ``` 📊 Progress: Task 1/5 完了 — "harness-work に失敗再チケット化を追加" 📊 Progress: Task 2/5 完了 — "harness-sync に --snapshot を追加" 📊 Progress: Task 3/5 完了 — "breezing にプログレスフィードを追加" ``` > **設計意図**: breezing は長時間実行になることが多い。 > ユーザーがターミナルをチラ見した時に「今どこまで進んでいるか」が一目で分かるようにする。 > task-completed.sh フックが systemMessage で同等の情報を出力するため、Lead の出力と補完し合う。 ### Silence Policy(長時間実行の通知整理) Codex `0.123.0` の realtime handoff では、background agent が transcript delta を受け取り、必要ない時は明示的に沈黙できる。 Breezing の progress feed はこの前提に合わせ、通知を「作業の節目」に絞る。 報告するもの: - task 完了、blocked、validation failure、review `REQUEST_CHANGES` - Advisor の `PLAN` / `CORRECTION` / `STOP` - Reviewer の `APPROVE` / `REQUEST_CHANGES` - advisor / reviewer drift、plateau、contract readiness failure - user が明示的に status を求めた時の要約 沈黙してよいもの: - transcript delta を受け取っただけで、判定や status が変わっていない時 - tool stdout の細かな増分で、log に残っていれば十分な時 - 並列 Worker の待機中 heartbeat 頻度は「task 完了ごとに 1 回」を基本にする。 heartbeat を増やして安心感を作るのではなく、status / log / drift 検知に責務を分ける。 ただし Advisor request 未応答、Reviewer result 未到着、plateau 直前の警告は silence 対象にしない。 ### Monitor ツール活用ガイド (CC 2.1.98+) `run_in_background: true` で投げた長時間 shell process(`gh run watch`、build --watch 等)は、ポーリングではなく **Monitor ツール**で stdout を逐次通知として拾う。Agent (Worker/Reviewer) の完了監視や短時間の一発コマンドには不要。 使い分け表・典型パターンは [references/monitor-and-learning.md](${CLAUDE_SKILL_DIR}/references/monitor-and-learning.md) を参照。 ### 自主停止の禁止 (140.3、2026-08-22 の release run で 2 回発生した停止パターンの再発防止) 以下は禁止行動。literal に列挙する (AUTOSTART pattern と同じ方式): - background 待ちで turn を終えて停止しない (turn を終えると background 子プロセスは残らない) - 「検証を待ちます」「確認します」「完了を待機します」で turn を終えない - 待つなら同期実行 (foreground / Monitor) で待ち切る。待てないものは保留として報告し、次のタスクへ進む ### Review Policy(全モード統一) Breezing モードでもレビューは **Codex exec 優先 → 内部 Reviewer フォールバック** の統一ポリシーに従う。 詳細は `harness-work` の「レビューループ」セクションを参照。 - Worker が worktree 内で実装・commit → `worker-report.v1` (self_review 5 件) を Lead に返却 - **self_review ゲート (Reviewer spawn 前)**: Lead が `self_review[].verified` と `evidence` を機械検証。1 件でも `verified:false` or `evidence:""` なら Reviewer を spawn せず Worker に自動差し戻し(同一セッション内 最大 2 回、3 回目で escalate) - `verified:true` や非空の文章だけを実証と扱わず、参照先の差分、失敗出力、必須チェック結果を照合する。判断理由と証拠を求め、内部の思考過程は求めない - Lead が Codex exec でレビュー(120s タイムアウト、フォールバック: Reviewer agent) - REQUEST_CHANGES → Lead が SendMessage で Worker に修正指示、Worker が amend(最大 `MAX_REVIEWS` 回。`MAX_REVIEWS = read_contract(contract_path, ".review.max_iterations") or 3`) - APPROVE → **Lead** が main に cherry-pick → Plans.md を `cc:完了 [{hash}]` に更新 ### 完了報告(Phase C — Lead が生成) 全タスク完了後、**Lead** が以下の手順でリッチ完了報告を生成する: 1. `git log --oneline {base_ref}..HEAD` で全 cherry-pick コミットを収集 2. `git diff --stat {base_ref}..HEAD` で全体の変更規模を取得 3. Plans.md の `cc:TODO` / `cc:WIP` 残タスクを抽出 4. `harness-work` の `Completion Report Output Contract` と `references/completion-report.md` の Breezing テンプレートに従い出力 > **生成者は Lead**。Worker や hook ではない。Lead が Phase C で git + Plans.md を読んで生成する。 ### Phase 0: Planning Discussion(構造化 3 問チェック) 全タスク実行前に、スコープ(Q1)・依存関係(Q2、Depends カラムがある時のみ)・リスクフラグ(Q3、`[needs-spike]` がある時のみ)の 3 観点を、原依頼と Plans.md から確認する(合計 30 秒設計)。回答済み事項は聞き直さず、読み取り調査でも解けない判断分岐だけ質問する。時間経過を承認として扱わない。 `--no-discuss` 指定時は全スキップ。3 問の具体文言と判定ロジックは [references/lean-path-detail.md](${CLAUDE_SKILL_DIR}/references/lean-path-detail.md) を参照。 ### Universal Violations Injection(セッション内 Worker 間の学習伝播) 同一 `/breezing` 起動内で蓄積された Reviewer の universal gotchas を次 Worker の briefing 冒頭に自動注入する。**同一セッション内のみ有効**(セッション終了で破棄、`session-memory` には書かない)。実装(in-memory 配列 + briefing 注入コード)は [references/monitor-and-learning.md](${CLAUDE_SKILL_DIR}/references/monitor-and-learning.md) を参照。 ### 依存グラフに基づくタスク割り当て Plans.md に Depends カラムがある場合(v2 フォーマット)、`Depends` が `-` の独立タスクを先に並列 spawn し、各 Worker 完了後に Lead がレビュー→cherry-pick する(harness-work Phase B 参照)。依存元が main に入ったら、それに依存していたタスクを次に実行し、全タスク完了まで繰り返す。逐次処理なのは「Worker 完了→レビュー→cherry-pick」で、並列化できるのは独立タスクの Worker spawn 部分のみ。詳細は [references/lean-path-detail.md](${CLAUDE_SKILL_DIR}/references/lean-path-detail.md) を参照。 ## Codex Native Orchestration Codex では native subagent を使う。 代表的な制御面は `spawn_agent`, `wait`, `send_input`, `resume_agent`, `close_agent`。 > **Claude Code vs Codex の通信 API**(SSOT: `team-composition.md` の API マッピング表): > - Claude Code: `SendMessage(to: agentId, message: "...")` で Worker に修正指示 > - Codex: `resume_agent(agent_id)` で Worker を再開 → `send_input(agent_id, "...")` で指示送信 > > harness-work の擬似コードは Claude Code 構文で記述。Codex 環境では上記に読み替えること。 ## Related Skills - `harness-work` — 単一タスクからチーム実行まで(本体) - `harness-sync` — 進捗同期 - `harness-review` — コードレビュー(breezing 内で自動起動)