@hummer98/cmux-team 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.claude-plugin/marketplace.json +21 -0
  2. package/.claude-plugin/plugin.json +15 -0
  3. package/CHANGELOG.md +279 -0
  4. package/LICENSE +21 -0
  5. package/README.ja.md +238 -0
  6. package/README.md +158 -0
  7. package/bin/cmux-team.js +29 -0
  8. package/bin/postinstall.js +26 -0
  9. package/commands/master.md +8 -0
  10. package/commands/start.md +42 -0
  11. package/commands/team-archive.md +63 -0
  12. package/commands/team-design.md +199 -0
  13. package/commands/team-disband.md +79 -0
  14. package/commands/team-impl.md +201 -0
  15. package/commands/team-research.md +182 -0
  16. package/commands/team-review.md +222 -0
  17. package/commands/team-spec.md +133 -0
  18. package/commands/team-status.md +24 -0
  19. package/commands/team-sync-docs.md +127 -0
  20. package/commands/team-task.md +158 -0
  21. package/commands/team-test.md +230 -0
  22. package/package.json +51 -0
  23. package/skills/cmux-agent-role/SKILL.md +166 -0
  24. package/skills/cmux-team/SKILL.md +568 -0
  25. package/skills/cmux-team/manager/bun.lock +118 -0
  26. package/skills/cmux-team/manager/cmux.ts +134 -0
  27. package/skills/cmux-team/manager/conductor.ts +347 -0
  28. package/skills/cmux-team/manager/daemon.ts +373 -0
  29. package/skills/cmux-team/manager/e2e.ts +550 -0
  30. package/skills/cmux-team/manager/logger.ts +13 -0
  31. package/skills/cmux-team/manager/main.ts +756 -0
  32. package/skills/cmux-team/manager/master.ts +51 -0
  33. package/skills/cmux-team/manager/package.json +18 -0
  34. package/skills/cmux-team/manager/proxy.ts +219 -0
  35. package/skills/cmux-team/manager/queue.ts +73 -0
  36. package/skills/cmux-team/manager/schema.ts +84 -0
  37. package/skills/cmux-team/manager/task.ts +160 -0
  38. package/skills/cmux-team/manager/template.ts +92 -0
  39. package/skills/cmux-team/templates/architect.md +25 -0
  40. package/skills/cmux-team/templates/common-header.md +12 -0
  41. package/skills/cmux-team/templates/conductor-role.md +244 -0
  42. package/skills/cmux-team/templates/conductor-task.md +37 -0
  43. package/skills/cmux-team/templates/conductor.md +275 -0
  44. package/skills/cmux-team/templates/dockeeper.md +23 -0
  45. package/skills/cmux-team/templates/implementer.md +24 -0
  46. package/skills/cmux-team/templates/manager.md +199 -0
  47. package/skills/cmux-team/templates/master.md +94 -0
  48. package/skills/cmux-team/templates/researcher.md +24 -0
  49. package/skills/cmux-team/templates/reviewer.md +28 -0
  50. package/skills/cmux-team/templates/task-manager.md +22 -0
  51. package/skills/cmux-team/templates/tester.md +27 -0
@@ -0,0 +1,201 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
3
+ description: "実装エージェントを起動しコーディングタスクを並列実行する"
4
+ ---
5
+
6
+ # /team-impl
7
+
8
+ 実装エージェントを起動し、コーディングタスクを並列に実行してください。
9
+
10
+ ## 手順
11
+
12
+ ### 1. 前提チェック
13
+
14
+ - `.team/team.json` が存在すること
15
+ - `CMUX_SOCKET_PATH` が設定されていること
16
+ - `cmux` コマンドが利用可能であること
17
+ - `.team/specs/design.md` が存在すること
18
+ - 存在しない場合: 「設計がありません。`/team-design` を先に実行してください」
19
+
20
+ ### 2. タスク一覧の準備
21
+
22
+ #### tasks.md が存在する場合:
23
+ - `.team/specs/tasks.md` を読み込む
24
+ - タスクを解析(各 `## Task N:` セクションを抽出)
25
+ - ステータスを確認(完了済み、進行中、未着手)
26
+
27
+ #### tasks.md が存在しない場合:
28
+ - `.team/specs/design.md` を読み込む
29
+ - 設計からタスクを自動生成:
30
+ - コンポーネントごとにタスクを分割
31
+ - 依存関係を分析
32
+ - 並列実行可能なタスクに `(P)` フラグを付与
33
+ - `.team/specs/tasks.md` に書き出す
34
+ - ユーザーに確認: 「タスク一覧を生成しました。確認してください。」
35
+
36
+ ### 3. タスク選択
37
+
38
+ `$ARGUMENTS` に基づいてタスクを選択:
39
+
40
+ - `"all"` → 全未着手タスクを対象
41
+ - `"1,2,3"` → 指定された番号のタスクのみ
42
+ - 空 → 並列実行可能 `(P)` な未着手タスクをすべて対象
43
+
44
+ 依存関係チェック:
45
+ - 依存先が未完了のタスクは除外する
46
+ - 除外されたタスクがあればユーザーに報告
47
+
48
+ ### 4. エージェント数の決定
49
+
50
+ - 選択されたタスク数に基づいてエージェント数を決定
51
+ - 最大数: Tier に応じて制限
52
+ - Small (1+3): 最大 3 エージェント
53
+ - Medium (1+5): 最大 5 エージェント
54
+ - Large (1+7): 最大 7 エージェント
55
+ - デフォルト: Small (1+3)
56
+ - タスク数がエージェント数を超える場合は、最初のバッチを実行し、完了後に次のバッチを開始
57
+
58
+ ### 5. プロンプト生成
59
+
60
+ 各実装エージェントに対して:
61
+
62
+ 1. `~/.claude/skills/cmux-team/templates/common-header.md` を読み込み
63
+ 2. `~/.claude/skills/cmux-team/templates/implementer.md` を読み込み
64
+ 3. テンプレート変数を置換:
65
+ - `{{ROLE_ID}}` → `implementer-N`
66
+ - `{{TASK_DESCRIPTION}}` → 割り当てタスクの説明
67
+ - `{{OUTPUT_FILE}}` → `.team/output/implementer-N.md`
68
+ - `{{PROJECT_ROOT}}` → カレントディレクトリ
69
+ - `{{TASKS_CONTENT}}` → 割り当てタスクの詳細
70
+ - `{{DESIGN_CONTENT}}` → design.md の内容
71
+ - `{{COMMON_HEADER}}` → 展開済み共通ヘッダー
72
+ 4. `.team/prompts/implementer-N.md` に書き出す
73
+
74
+ ### 6. エージェント起動
75
+
76
+ サブエージェントの配置は cmux-team SKILL.md §5 参照。
77
+
78
+ ```bash
79
+ # Conductor と同じワークスペース内で分割(デフォルト)
80
+ cmux new-split right # → surface:S1
81
+ cmux new-split right # → surface:S2
82
+ # ...必要に応じて追加
83
+ ```
84
+
85
+ 各エージェントに対して(**1体ずつ確実に起動、cmux-team SKILL.md §2.1 の手順に従う**):
86
+
87
+ ```bash
88
+ # a. ステータス設定
89
+ cmux set-status implementer-N "spawning" --icon sparkle --color "#ffcc00"
90
+
91
+ # c. Claude 起動(シェルコマンドは \n で送信可能)
92
+ cmux send --surface surface:SN --workspace workspace:W "claude --dangerously-skip-permissions\n"
93
+
94
+ # d. 起動完了を待つ(Trust確認 or ❯ プロンプトをポーリング、SKILL.md §2.1 Step 5 参照)
95
+ for i in $(seq 1 10); do
96
+ SCREEN=$(cmux read-screen --surface surface:SN --workspace workspace:W 2>&1)
97
+ if echo "$SCREEN" | grep -q "Yes, I trust"; then
98
+ cmux send-key --surface surface:SN --workspace workspace:W "return"
99
+ sleep 5; break
100
+ elif echo "$SCREEN" | grep -q '❯'; then
101
+ break
102
+ fi
103
+ sleep 3
104
+ done
105
+
106
+ # e. プロンプト送信(単一行指示 → \n で送信可能)
107
+ cmux send --surface surface:SN --workspace workspace:W ".team/prompts/implementer-N.md を読んで指示に従ってください。\n"
108
+
109
+ # f. 送信確認 + ステータス更新
110
+ sleep 3
111
+ SCREEN=$(cmux read-screen --surface surface:SN --workspace workspace:W 2>&1)
112
+ if ! echo "$SCREEN" | grep -qE '(Stewing|Thinking|Reading|Searching|Ideating)'; then
113
+ cmux send-key --surface surface:SN --workspace workspace:W "return"
114
+ sleep 3
115
+ fi
116
+ cmux set-status implementer-N "running" --icon hammer --color "#0099ff"
117
+ ```
118
+
119
+ ### 7. 進捗モニタリング
120
+
121
+ ```bash
122
+ cmux set-progress 0.0 --label "Implementation: 0/N tasks done"
123
+ ```
124
+
125
+ 30 秒間隔で各エージェントをモニタリング:
126
+
127
+ ```bash
128
+ # 画面確認
129
+ cmux read-screen --surface surface:X --lines 20
130
+
131
+ # 出力ファイルの存在チェック
132
+ ls -la .team/output/implementer-N.md 2>/dev/null
133
+ ```
134
+
135
+ モニタリング中に表示する情報:
136
+ - 各エージェントの最新ステータス(cmux のサイドバーから取得)
137
+ - 完了したエージェントの数
138
+ - エラーが発生したエージェント
139
+
140
+ ### 8. 完了待機と次バッチ
141
+
142
+ ```bash
143
+ # 各エージェントの完了を待つ
144
+ cmux wait-for "implementer-N-done" --timeout 600
145
+ ```
146
+
147
+ エージェントが完了したら:
148
+ 1. 出力を収集(`.team/output/implementer-N.md`)
149
+ 2. tasks.md の対応タスクを完了マークに更新
150
+ 3. プログレスバーを更新
151
+
152
+ **次バッチの処理**(タスクがエージェント数を超えている場合):
153
+ 1. 完了したエージェントのペインを再利用
154
+ 2. 次の未着手タスクのプロンプトを生成
155
+ 3. 同じ surface に新しいプロンプトを送信
156
+ 4. 全タスク完了まで繰り返す
157
+
158
+ ### 9. 結果統合
159
+
160
+ 全エージェントの完了後:
161
+
162
+ 1. 全出力ファイルを読み込み
163
+ 2. 統合サマリーを作成:
164
+ - **完了タスク**: 各タスクの完了状況
165
+ - **変更ファイル一覧**: 全エージェントが変更したファイルの統合リスト
166
+ - **テスト結果**: 各エージェントが実行したテスト結果
167
+ - **タスク**: エージェントが作成したタスク
168
+ 3. ユーザーに提示
169
+
170
+ ### 10. クリーンアップと状態更新
171
+
172
+ - エージェントペインの処理をユーザーに確認
173
+ - (team.json は daemon が自動更新する)
174
+ - プログレスバーをクリア
175
+
176
+ ### 11. 次のステップ案内
177
+
178
+ ```
179
+ 実装フェーズが完了しました。
180
+
181
+ 完了タスク: N/M
182
+ 変更ファイル: X 個
183
+ タスク: Y 件
184
+
185
+ 次のステップ:
186
+ /team-review → 実装のレビュー
187
+ /team-test → テストの作成・実行
188
+ /team-impl → 残りのタスクを実装(未完了がある場合)
189
+ ```
190
+
191
+ ## 引数
192
+
193
+ `$ARGUMENTS` = 実装するタスク番号(例: "1,2,3" または "all")。オプション。
194
+
195
+ ## エラーハンドリング
196
+
197
+ - エージェントがクラッシュした場合: 検出後リスポーンを提案
198
+ - コンフリクトが発生した場合(複数エージェントが同じファイルを変更):
199
+ - 検出: `git status` で確認
200
+ - ユーザーに報告し、手動解決を案内
201
+ - タスクが長時間完了しない場合: 画面を確認し、ユーザーに判断を委ねる
@@ -0,0 +1,182 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
3
+ description: "リサーチエージェントを起動しトピックを並列調査する"
4
+ ---
5
+
6
+ # /team-research
7
+
8
+ リサーチャーエージェントを起動し、指定トピックを並列に調査してください。
9
+
10
+ ## 手順
11
+
12
+ ### 1. 前提チェック
13
+
14
+ - `.team/team.json` が存在すること(なければ `/team-init` を案内)
15
+ - `CMUX_SOCKET_PATH` が設定されていること(なければエラー)
16
+ - `cmux` コマンドが利用可能であること
17
+
18
+ ### 2. トピック解析
19
+
20
+ `$ARGUMENTS` を解析する:
21
+
22
+ - **カンマ区切りの場合** (例: "認証方式, セッション管理, トークン設計"):
23
+ 各項目をそのままサブ質問として使用
24
+ - **単一トピックの場合** (例: "認証パターンの調査"):
25
+ トピックを 3 つのサブ質問に分解する。分解の観点:
26
+ - 現状分析(What): 既存コードベースでの実装状況
27
+ - 比較調査(How): 一般的なパターンやベストプラクティス
28
+ - 適用性評価(Why): このプロジェクトにおける推奨アプローチ
29
+ - **空の場合**: ユーザーにトピックを尋ねる
30
+
31
+ ### 3. プロンプト生成
32
+
33
+ 各リサーチャー(最大 3 名)のプロンプトを生成する:
34
+
35
+ 1. `~/.claude/skills/cmux-team/templates/common-header.md` を読み込み
36
+ 2. `~/.claude/skills/cmux-team/templates/researcher.md` を読み込み
37
+ 3. テンプレート変数を置換:
38
+ - `{{ROLE_ID}}` → `researcher-1`, `researcher-2`, `researcher-3`
39
+ - `{{TASK_DESCRIPTION}}` → 各サブ質問
40
+ - `{{OUTPUT_FILE}}` → `.team/output/researcher-{N}.md`
41
+ - `{{PROJECT_ROOT}}` → カレントディレクトリの絶対パス
42
+ - `{{TOPIC}}` → 元のトピック
43
+ - `{{SUB_QUESTIONS}}` → 割り当てられたサブ質問
44
+ - `{{COMMON_HEADER}}` → 展開済み共通ヘッダー
45
+ 4. `.team/prompts/researcher-{1,2,3}.md` に書き出す
46
+
47
+ ### 4. エージェント起動
48
+
49
+ サブエージェントの配置は cmux-team SKILL.md §5 参照。
50
+
51
+ #### 4a. エージェント用ペインを作成
52
+
53
+ ```bash
54
+ # Conductor と同じワークスペース内で分割(デフォルト)
55
+ cmux new-split right # → surface:S1
56
+ cmux new-split right # → surface:S2
57
+ cmux new-split right # → surface:S3
58
+ ```
59
+
60
+ #### 4b. 各リサーチャーを1体ずつ起動
61
+
62
+ **1体ずつ確実に起動すること。全員同時にやらない。**
63
+
64
+ 各リサーチャー(N=1,2,3)に対して:
65
+
66
+ ```bash
67
+ # サイドバーステータス設定
68
+ cmux set-status researcher-N "spawning" --icon sparkle --color "#ffcc00"
69
+
70
+ # Claude を起動(シェルコマンドは \n で送信可能)
71
+ cmux send --surface surface:SN --workspace workspace:W "claude --dangerously-skip-permissions\n"
72
+
73
+ # Claude の起動完了を待つ(最大30秒ポーリング)
74
+ # "Yes, I trust" → send-key return で承認
75
+ # "❯" → プロンプト送信可能
76
+ for i in $(seq 1 10); do
77
+ SCREEN=$(cmux read-screen --surface surface:SN --workspace workspace:W 2>&1)
78
+ if echo "$SCREEN" | grep -q "Yes, I trust"; then
79
+ cmux send-key --surface surface:SN --workspace workspace:W "return"
80
+ sleep 5; break
81
+ elif echo "$SCREEN" | grep -q '❯'; then
82
+ break
83
+ fi
84
+ sleep 3
85
+ done
86
+
87
+ # プロンプトを送信(単一行指示 → \n で送信可能)
88
+ cmux send --surface surface:SN --workspace workspace:W ".team/prompts/researcher-N.md を読んで、その指示に従って作業してください。\n"
89
+
90
+ # 送信確認(3秒後に処理開始を検出)
91
+ sleep 3
92
+ SCREEN=$(cmux read-screen --surface surface:SN --workspace workspace:W 2>&1)
93
+ if echo "$SCREEN" | grep -qE '(Stewing|Thinking|Reading|Searching|Ideating)'; then
94
+ cmux set-status researcher-N "running" --icon hammer --color "#0099ff"
95
+ else
96
+ # 入力欄に残っている場合は再度 Enter
97
+ cmux send-key --surface surface:SN --workspace workspace:W "return"
98
+ sleep 3
99
+ cmux set-status researcher-N "running" --icon hammer --color "#0099ff"
100
+ fi
101
+ ```
102
+
103
+ **ポイント**:
104
+ - プロンプト送信は「ファイルパスを読んで実行して」の単一行指示を推奨
105
+ - 複数行テキストを直接送る場合は `cmux send` + `cmux send-key return` の2段階が必要
106
+
107
+ ### 5. 進捗トラッキング
108
+
109
+ ```bash
110
+ cmux set-progress 0.0 --label "Research: 0/3 agents done"
111
+ ```
112
+
113
+ ### 6. 完了待機
114
+
115
+ 各リサーチャーの完了を待つ:
116
+
117
+ ```bash
118
+ # 並列で待機(各エージェントに対して)
119
+ cmux wait-for "researcher-1-done" --timeout 300
120
+ cmux wait-for "researcher-2-done" --timeout 300
121
+ cmux wait-for "researcher-3-done" --timeout 300
122
+ ```
123
+
124
+ 待機中、定期的に(30 秒ごとに):
125
+ - 各エージェントの画面を `cmux read-screen` で確認
126
+ - エラーがあれば報告
127
+ - 進捗バーを更新
128
+
129
+ タイムアウトした場合:
130
+ - `cmux read-screen` で状態を確認
131
+ - ユーザーに報告し、待機を続けるか判断を委ねる
132
+
133
+ ### 7. 結果収集
134
+
135
+ 完了したエージェントの出力を収集:
136
+
137
+ ```bash
138
+ # 各出力ファイルを読み込み
139
+ cat .team/output/researcher-1.md
140
+ cat .team/output/researcher-2.md
141
+ cat .team/output/researcher-3.md
142
+ ```
143
+
144
+ - 出力ファイルが存在しない場合はスクリーンスクレイピングにフォールバック:
145
+ ```bash
146
+ cmux read-screen --surface surface:X --scrollback --lines 200
147
+ ```
148
+
149
+ ### 8. 結果統合
150
+
151
+ 3 つのリサーチ結果を統合して:
152
+
153
+ 1. **統合サマリー**: 主要な発見事項を 5-7 bullet points で
154
+ 2. **サブ質問ごとの回答**: 各リサーチャーの結果を構造化
155
+ 3. **共通する発見**: 複数のリサーチャーが指摘した事項
156
+ 4. **相違点**: リサーチャー間で見解が異なる部分
157
+ 5. **推奨事項**: 統合した推奨アクション
158
+ 6. **オープン質問**: 未解決の事項
159
+
160
+ ### 9. 結果保存
161
+
162
+ ユーザーに確認後:
163
+ - 統合結果を `.team/specs/research.md` に保存
164
+ - (team.json は daemon が自動更新する)
165
+
166
+ ### 10. クリーンアップ
167
+
168
+ ユーザーに確認:
169
+ - リサーチャーペインを閉じるか?
170
+ - YES: 各ペインを `/exit` → `cmux close-surface` → ステータスクリア
171
+ - NO: ペインは残しておく(後で `/team-disband` で閉じられる)
172
+ - プログレスバーをクリア: `cmux clear-progress`
173
+
174
+ ## 引数
175
+
176
+ `$ARGUMENTS` = リサーチトピック、またはカンマ区切りのサブトピック
177
+
178
+ ## エラーハンドリング
179
+
180
+ - cmux コマンドが失敗した場合: エラーメッセージを表示し、手動での対応方法を案内
181
+ - エージェントが起動しない場合: surface を閉じて再試行を提案
182
+ - 部分的な結果の場合: 完了したエージェントの結果のみで統合を実施
@@ -0,0 +1,222 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
3
+ description: "レビューエージェントを起動し実装をレビューする"
4
+ ---
5
+
6
+ # /team-review
7
+
8
+ レビューエージェントを起動し、実装をレビューしてください。
9
+
10
+ ## 手順
11
+
12
+ ### 1. 前提チェック
13
+
14
+ - `.team/team.json` が存在すること
15
+ - `CMUX_SOCKET_PATH` が設定されていること
16
+ - `cmux` コマンドが利用可能であること
17
+
18
+ ### 2. レビュー対象の収集
19
+
20
+ #### git diff の収集
21
+
22
+ ```bash
23
+ # team-init 以降の変更(.team/ 内を除く)
24
+ git diff HEAD~10 --stat -- . ':!.team'
25
+ # または、最新の実装以降の diff
26
+ git diff --stat -- . ':!.team'
27
+ ```
28
+
29
+ 変更がない場合: 「レビュー対象の変更がありません」と表示して終了
30
+
31
+ #### diff の詳細取得
32
+
33
+ ```bash
34
+ git diff HEAD~10 -- . ':!.team'
35
+ ```
36
+
37
+ 差分が大きい場合(500 行超):
38
+ - ファイルごとに分割してレビューエージェントに割り当てる
39
+ - 最大 3 名のレビュアーに分担
40
+
41
+ #### コンテキスト収集
42
+
43
+ - `.team/specs/requirements.md` — 要件定義
44
+ - `.team/specs/design.md` — 設計ドキュメント
45
+ - `.team/output/implementer-*.md` — 実装エージェントの出力(あれば)
46
+ - `.team/tasks/` — オープンタスク(`task-state.json` で状態確認)
47
+
48
+ ### 3. レビュアー数の決定
49
+
50
+ - 差分が小さい(200 行以下): 1 名
51
+ - 差分が中程度(200-500 行): 2 名(ファイルを分担)
52
+ - 差分が大きい(500 行超): 3 名(モジュール・機能ごとに分担)
53
+
54
+ ### 4. プロンプト生成
55
+
56
+ 各レビュアーに対して:
57
+
58
+ 1. `~/.claude/skills/cmux-team/templates/common-header.md` を読み込み
59
+ 2. `~/.claude/skills/cmux-team/templates/reviewer.md` を読み込み
60
+ 3. テンプレート変数を置換:
61
+ - `{{ROLE_ID}}` → `reviewer-impl` (1 名の場合) または `reviewer-impl-N`
62
+ - `{{TASK_DESCRIPTION}}` → "実装レビュー: <担当範囲>"
63
+ - `{{OUTPUT_FILE}}` → `.team/output/reviewer-impl.md` (または `-N`)
64
+ - `{{ARTIFACT_CONTENT}}` → 担当する git diff の内容
65
+ - `{{REQUIREMENTS_CONTENT}}` → requirements.md の内容
66
+ - `{{DESIGN_CONTENT}}` → design.md の内容
67
+ - `{{COMMON_HEADER}}` → 展開済み共通ヘッダー
68
+ 4. `.team/prompts/reviewer-impl.md` (または `-N`) に書き出す
69
+
70
+ ### 5. レビューエージェント起動
71
+
72
+ サブエージェントの配置は cmux-team SKILL.md §5 参照。
73
+
74
+ ```bash
75
+ # Conductor と同じワークスペース内で分割(デフォルト)
76
+ cmux new-split right # → surface:S
77
+ # 複数レビュアーの場合は追加分割
78
+ # cmux new-split right # → surface:S2
79
+ ```
80
+
81
+ 各レビュアーに対して(**1体ずつ、cmux-team SKILL.md §2.1 の手順に従う**):
82
+
83
+ ```bash
84
+ # a. ステータス設定
85
+ cmux set-status reviewer-impl "spawning" --icon sparkle --color "#ffcc00"
86
+
87
+ # c. Claude 起動(シェルコマンドは \n で送信可能)
88
+ cmux send --surface surface:S --workspace workspace:W "claude --dangerously-skip-permissions\n"
89
+
90
+ # d. 起動完了を待つ(Trust確認 or ❯ プロンプトをポーリング、SKILL.md §2.1 Step 5 参照)
91
+ for i in $(seq 1 10); do
92
+ SCREEN=$(cmux read-screen --surface surface:S --workspace workspace:W 2>&1)
93
+ if echo "$SCREEN" | grep -q "Yes, I trust"; then
94
+ cmux send-key --surface surface:S --workspace workspace:W "return"
95
+ sleep 5; break
96
+ elif echo "$SCREEN" | grep -q '❯'; then
97
+ break
98
+ fi
99
+ sleep 3
100
+ done
101
+
102
+ # e. プロンプト送信(単一行指示 → \n で送信可能)
103
+ cmux send --surface surface:S --workspace workspace:W ".team/prompts/reviewer-impl.md を読んで指示に従ってください。\n"
104
+
105
+ # f. 送信確認 + ステータス更新
106
+ sleep 3
107
+ SCREEN=$(cmux read-screen --surface surface:S --workspace workspace:W 2>&1)
108
+ if ! echo "$SCREEN" | grep -qE '(Stewing|Thinking|Reading|Searching|Ideating)'; then
109
+ cmux send-key --surface surface:S --workspace workspace:W "return"
110
+ sleep 3
111
+ fi
112
+ cmux set-status reviewer-impl "running" --icon hammer --color "#0099ff"
113
+ ```
114
+
115
+ ### 6. 完了待機
116
+
117
+ ```bash
118
+ cmux set-progress 0.0 --label "Review: in progress..."
119
+ cmux wait-for "reviewer-impl-done" --timeout 300
120
+ # 複数の場合:
121
+ # cmux wait-for "reviewer-impl-1-done" --timeout 300
122
+ # cmux wait-for "reviewer-impl-2-done" --timeout 300
123
+ ```
124
+
125
+ ### 7. レビュー結果の収集と統合
126
+
127
+ 1. `.team/output/reviewer-impl*.md` を読み込む
128
+ 2. 結果を統合:
129
+
130
+ ```markdown
131
+ ## レビュー結果サマリー
132
+
133
+ ### Verdict: <Approved / Changes Requested>
134
+
135
+ ### 指摘事項
136
+
137
+ #### Critical
138
+ - [C-1] <指摘内容> (ファイル: path/to/file.ext)
139
+
140
+ #### Major
141
+ - [M-1] <指摘内容> (ファイル: path/to/file.ext)
142
+
143
+ #### Minor
144
+ - [m-1] <指摘内容> (ファイル: path/to/file.ext)
145
+
146
+ #### Suggestion
147
+ - [S-1] <提案内容>
148
+
149
+ ### 要件カバレッジ
150
+ - REQ-001: ✅ / ❌
151
+ - REQ-002: ✅ / ❌
152
+ ```
153
+
154
+ ### 8. タスク作成
155
+
156
+ Critical/Major の指摘に対して自動的にタスクを作成:
157
+
158
+ 各指摘に対して `.team/tasks/NNN-<slug>.md` を作成:
159
+ ```markdown
160
+ ---
161
+ id: NNN
162
+ title: "[Review] <指摘タイトル>"
163
+ type: finding
164
+ raised_by: reviewer-impl
165
+ created_at: <ISO 8601>
166
+ severity: critical|major
167
+ ---
168
+
169
+ ## Context
170
+ レビューで検出された指摘事項。
171
+
172
+ ## Details
173
+ <指摘の詳細>
174
+
175
+ ## Affected Files
176
+ - <ファイルパス>
177
+
178
+ ## Recommendation
179
+ <修正方法の提案>
180
+ ```
181
+
182
+ ### 9. 結果提示とアクション
183
+
184
+ ユーザーに統合結果を提示し:
185
+
186
+ - **Approved**: 「レビュー合格です。次のステップに進めます。」
187
+ - **Changes Requested**:
188
+ - Critical/Major 指摘の一覧を強調表示
189
+ - 「指摘事項を修正しますか?」
190
+ - **手動で修正**: ユーザーが自分で対応
191
+ - **実装エージェントで修正**: `/team-impl` で修正タスクとして実行
192
+ - **再レビュー**: 修正後に `/team-review` を再実行
193
+
194
+ ### 10. クリーンアップと状態更新
195
+
196
+ - レビュアーペインを閉じる
197
+ - (team.json は daemon が自動更新する)
198
+ - プログレスバーをクリア
199
+
200
+ ### 11. 次のステップ案内
201
+
202
+ ```
203
+ レビューが完了しました。
204
+
205
+ 指摘: Critical X件 / Major Y件 / Minor Z件 / Suggestion W件
206
+ タスク作成: N件
207
+
208
+ 次のステップ:
209
+ /team-impl → 指摘事項を修正(Changes Requested の場合)
210
+ /team-test → テストフェーズに進む(Approved の場合)
211
+ /team-task → タスクの確認・管理
212
+ ```
213
+
214
+ ## 引数
215
+
216
+ なし
217
+
218
+ ## エラーハンドリング
219
+
220
+ - git diff が取得できない場合: git リポジトリでない、またはコミットがない場合のエラーメッセージ
221
+ - レビュアーがタイムアウトした場合: 画面を確認し対処を提案
222
+ - 差分が非常に大きい場合(2000 行超): 警告を表示し、範囲を絞るか確認