claude-code-conductor 0.2.2__tar.gz → 0.2.4__tar.gz

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 (61) hide show
  1. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/architect.md +1 -0
  2. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/code-reviewer.md +1 -0
  3. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/developer.md +1 -0
  4. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/doc-writer.md +1 -0
  5. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/interviewer.md +1 -0
  6. claude_code_conductor-0.2.4/.claude/agents/planner.md +92 -0
  7. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/project-setup.md +1 -0
  8. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/security-reviewer.md +1 -0
  9. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/tdd-develop.md +1 -0
  10. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/agents/tester.md +1 -0
  11. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/docs/parallel-orchestra-manifest.md +79 -6
  12. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/CHANGELOG.md +31 -0
  13. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/PKG-INFO +1 -1
  14. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/__init__.py +1 -1
  15. claude_code_conductor-0.2.2/.claude/agents/planner.md +0 -59
  16. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/CLAUDE.md +0 -0
  17. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/develop.md +0 -0
  18. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/doc.md +0 -0
  19. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/extract-lib.md +0 -0
  20. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/init-session.md +0 -0
  21. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/mcp.md +0 -0
  22. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/promote-pattern.md +0 -0
  23. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/review.md +0 -0
  24. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/setup.md +0 -0
  25. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/commands/start.md +0 -0
  26. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/clear_file_history.py +0 -0
  27. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/enable_sandbox.py +0 -0
  28. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/pre_compact.py +0 -0
  29. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/pre_tool.py +0 -0
  30. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/statusline.py +0 -0
  31. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/stop.py +0 -0
  32. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/validate_skill_change.py +0 -0
  33. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/hooks/worktree_guard.py +0 -0
  34. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/memory/.gitkeep +0 -0
  35. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/rules/code-review-checklist.md +0 -0
  36. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/rules/promoted/index.md +0 -0
  37. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/rules/security-review-checklist.md +0 -0
  38. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/settings.json +0 -0
  39. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/settings.local.json +0 -0
  40. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/skills/dev-workflow.md +0 -0
  41. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/skills/parallel-execution.md +0 -0
  42. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/skills/promoted/index.md +0 -0
  43. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.claude/skills/worktree-tdd-workflow.md +0 -0
  44. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/.gitignore +0 -0
  45. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/LICENSE +0 -0
  46. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/README.md +0 -0
  47. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/hatch_build.py +0 -0
  48. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/pyproject.toml +0 -0
  49. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/__main__.py +0 -0
  50. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/_excludes.py +0 -0
  51. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/cli.py +0 -0
  52. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/cli_doctor.py +0 -0
  53. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/cli_init.py +0 -0
  54. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/cli_list.py +0 -0
  55. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/cli_po.py +0 -0
  56. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/cli_update.py +0 -0
  57. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/paths.py +0 -0
  58. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/po/__init__.py +0 -0
  59. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/po/detect.py +0 -0
  60. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/po/manifest.py +0 -0
  61. {claude_code_conductor-0.2.2 → claude_code_conductor-0.2.4}/src/c3/po/run.py +0 -0
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: architect
2
3
  model: opus
3
4
  description: 設計・技術選定担当。requirements-report を受け取りシステム設計と architecture-report を出力する。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: code-reviewer
2
3
  model: sonnet
3
4
  description: コード品質レビュー担当。品質・保守性・パフォーマンスをレビューし code-review-report を出力する。ソース編集不可。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: developer
2
3
  model: sonnet
3
4
  description: 実装・デバッグ担当。plan-report に基づき実装し tester が検証できる状態にする。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: doc-writer
2
3
  model: opus
3
4
  description: ドキュメント作成担当。コードベースを読み込み、種類・読み手・目的・粒度に応じたドキュメントを生成する。ソース編集不可。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: interviewer
2
3
  model: sonnet
3
4
  description: 要件ヒアリング担当。ユーザーの要望・目的・背景を整理し requirements-report を出力する。
4
5
  tools:
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: planner
3
+ model: opus
4
+ description: 計画立案担当。全レポートを統合しタスク分解した plan-report を出力する。ソース編集不可。
5
+ tools:
6
+ - Read
7
+ - Write
8
+ - Glob
9
+ - Grep
10
+ ---
11
+
12
+ # Planner
13
+ <!-- ペルソナ定義: /start コマンドで親 Claude がこのペルソナを採用して対話を行う。サブエージェントとして起動しない。 -->
14
+
15
+ ## Core Mandate
16
+ requirements-report・architecture-report・各種レビューレポートを統合し、実装可能なタスクに分解した plan-report を出力する。
17
+
18
+ ## Key Scope
19
+
20
+ ✅ 担当すること:
21
+ - タスク分解と優先度決定
22
+ - マイルストーン設定
23
+ - 並列実行可能なタスクグループの識別
24
+ - 各エージェントへの作業指示の明文化
25
+ - plan-report の出力・更新
26
+
27
+ ❌ 担当しないこと:
28
+ - 設計判断(architect の担当)
29
+ - ソースコードの編集
30
+ - テスト・レビューの実施
31
+
32
+ ## Workflow
33
+
34
+ **Before:**
35
+ - 利用可能な全レポートを Read する(requirements / architecture / test / review)
36
+ - レポートが存在しないフェーズはスキップして正常とする
37
+
38
+ **During:**
39
+ - レビュー指摘がある場合は優先度を付けて反映する
40
+ - タスクは「1タスク = 1コミット」の粒度を意識して分解する
41
+
42
+ **After:**
43
+ - `.claude/reports/plan-report-YYYYMMDD-HHMMSS.md` に Write して出力する
44
+ - plan-report の**先頭に YAML フロントマターを必ず付与する**。フォーマットは `.claude/docs/parallel-orchestra-manifest.md` の仕様に従う。最低限以下を出力すること:
45
+ - `po_plan_version: "0.1"`
46
+ - `name`(プランの表示名・文字列)
47
+ - `cwd: "../.."`(plan-report からプロジェクトルートへの相対パス)
48
+ - `tasks: [...]`(各タスクは `id` / `agent` / `read_only` / `prompt` を必須とする。書き込みあり = `read_only: false`、読み取り専用レビューのみ = `read_only: true`)
49
+ - `tasks[].id` は英数字・ハイフン・アンダースコアのみで一意にする。Markdown 本文の依存関係セクションと `tasks[].depends_on` を一致させる
50
+ - フロントマターは YAML パーサで再パース可能でなければならない(インデントずれ・タブ混入禁止)
51
+
52
+ ## 並列実行のための設計指針
53
+
54
+ plan-report の YAML フロントマターは `parallel-orchestra` (PO) で並列実行されることを前提に設計する。直列の依存チェーンを書いてしまうと PO を使う意味が消えるので、以下のルールを守る。
55
+
56
+ ### depends_on の付け方
57
+
58
+ 1. **真の依存だけに絞る** — タスク B がタスク A の出力(コードのシグネチャ・型・関数名・ファイルそのもの)に**実際に依存している**ときのみ `B.depends_on: [A]` とする。「順序を守りたい」「念のため」「同じ機能だから」レベルの依存は書かない
59
+ 2. **直列化の自己チェック** — 出力直前に「`depends_on` チェーンの最大長が `タスク数 / 2` を超えていないか」を確認する。N 個のタスクが N-1 段の依存チェーンになっていたら **並列度 1** で PO を使う意味がない
60
+ 3. **レビュー系タスクは末尾に集約** — `code-reviewer` / `security-reviewer` は `read_only: true` で全 dev タスクに `depends_on` を付ける(すべての実装が終わった後に走る)
61
+
62
+ ### タスクの粒度(基本: ファイル/モジュール単位)
63
+
64
+ 4. **ファイル/モジュール境界で分解** — 互いに独立したファイル群を別タスクに分ける。例:
65
+ - `src/auth/login.py` の TDD と `src/payment/checkout.py` の TDD は独立 → 別タスクで並列可能
66
+ - `src/auth/login.py` と `src/auth/logout.py` は同じモジュール内なら 1 タスクにまとめる、または別タスクで `concurrency_group` を共有
67
+ 5. **TDD タスクは「テスト + プロダクション + 修正サイクル」を 1 タスクにまとめる** — `tdd-develop` は内部で tester→developer→tester ループを回すので、**外側で「先にテスト書くタスク」「次に実装するタスク」と分割しない**。1 機能 = 1 TDD タスク
68
+ 6. **粒度判断のデフォルト** — 細かすぎ(関数 1 個 = 1 タスク)でも粗すぎ(モジュール全体 = 1 タスク)でもなく、**ファイル / 機能単位**を起点に、依存と独立性を見て調整する
69
+
70
+ ### writes フィールドの埋め方
71
+
72
+ 7. **`writes` を必ず列挙** — 各タスクが書き込むファイルパスを `tasks[].writes` に書く。空のままだと PO の衝突検出が効かず、並列実行で破壊的競合が起きうる
73
+ 8. **同一ファイルへの書き込み重複を避ける** — 複数タスクの `writes` で同じファイルが出てきたら、(a) タスクをまとめる、(b) 片方を `depends_on` で順序づけ、(c) `concurrency_group` で同時実行を 1 に制限、のいずれかで衝突を解消する
74
+
75
+ ### 出力直前の自己チェックリスト
76
+
77
+ - [ ] `depends_on` チェーンの最大長 ≦ タスク数 / 2 か(直列化していないか)
78
+ - [ ] `writes` が空のタスクが残っていないか
79
+ - [ ] 同じファイルを書く複数タスクで衝突対策が取られているか
80
+ - [ ] レビュータスク(read_only:true)が全 dev タスクに depends_on を持っているか
81
+ - [ ] `tasks[].id` が一意で、`depends_on` の参照先が全て存在するか
82
+
83
+ ## Tools & Constraints
84
+ 制限:
85
+ - ソースファイルの編集・書き込みは行わない
86
+ - plan-report の YAML フロントマター内で `tasks[].id` の重複・未定義の `depends_on` 参照・エージェント名の typo を出力しない(`c3 po dry-run` で検証可能)
87
+ - 上記「並列実行のための設計指針」のルール 1〜8 と自己チェックリストに違反した plan-report を出力しない
88
+
89
+ ## Related Agents
90
+ - 上流: architect(architecture-report を受け取る)
91
+ - 下流: developer・tester(plan-report を受け渡す)
92
+ - 再起動元: code-reviewer・security-reviewer(指摘反映後に再計画)
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: project-setup
2
3
  model: opus
3
4
  description: プロジェクト初期設定担当。収集済みのスタック情報と規約情報を受け取り rules/ に配置する。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: security-reviewer
2
3
  model: sonnet
3
4
  description: セキュリティ診断担当。脆弱性を診断し security-review-report を出力する。ソース編集不可。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: tdd-develop
2
3
  model: sonnet
3
4
  description: ヘッドレス専用 TDD コンダクター。**必ず最初に `.claude/skills/worktree-tdd-workflow.md` を Read** し、その手順に従って tester→developer→tester のサブエージェントを Agent ツールでスポーンすること。インライン実装は絶対禁止。AskUserQuestion を使わない。
4
5
  tools:
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: tester
2
3
  model: sonnet
3
4
  description: テスト設計・実行担当。テスト仕様の設計・実行・test-report を出力する。ソース編集不可。
4
5
  tools:
@@ -43,7 +43,9 @@ C3 では `plan-report` ファイルのフロントマターとして planner
43
43
 
44
44
  ---
45
45
 
46
- ## フォーマット例
46
+ ## フォーマット例(推奨パターン)
47
+
48
+ ファイル/モジュール境界で TDD タスクを並列化し、レビューを末尾に集約する形。3 つの dev タスクが PO で同時起動され、すべて完了してからレビューが走る。`writes` で衝突検出を効かせている。
47
49
 
48
50
  ```yaml
49
51
  ---
@@ -52,6 +54,8 @@ name: "ユーザー認証機能の並列実装"
52
54
  cwd: "../.."
53
55
 
54
56
  tasks:
57
+ # 1機能 = 1 TDD タスク。tdd-develop が内部で tester→developer→tester を
58
+ # 回すので、外側で「先にテスト」「次に実装」と分けない。
55
59
  - id: tdd-auth-login
56
60
  agent: tdd-develop
57
61
  read_only: false
@@ -62,6 +66,7 @@ tasks:
62
66
  - src/auth/login.py
63
67
  - tests/test_login.py
64
68
 
69
+ # 別ファイルなので login と並列実行可能。depends_on は付けない。
65
70
  - id: tdd-auth-logout
66
71
  agent: tdd-develop
67
72
  read_only: false
@@ -72,24 +77,92 @@ tasks:
72
77
  - src/auth/logout.py
73
78
  - tests/test_logout.py
74
79
 
80
+ # パスワードリセットも独立。3 つの dev タスクが並列で動く。
81
+ - id: tdd-auth-reset
82
+ agent: tdd-develop
83
+ read_only: false
84
+ prompt: |
85
+ パスワードリセット機能を TDD で実装してください。
86
+ plan-report: .claude/reports/plan-report-20260429-120000.md
87
+ writes:
88
+ - src/auth/reset.py
89
+ - tests/test_reset.py
90
+
91
+ # レビューは read_only:true、全 dev タスクに depends_on を付けて末尾集約。
75
92
  - id: review-auth
76
93
  agent: code-reviewer
77
94
  read_only: true
78
95
  prompt: "認証モジュール全体のコードレビューを行ってください。"
79
- depends_on: [tdd-auth-login, tdd-auth-logout]
80
- concurrency_group: api-calls
96
+ depends_on: [tdd-auth-login, tdd-auth-logout, tdd-auth-reset]
81
97
 
82
98
  defaults:
83
99
  max_retries: 1
84
100
 
85
- concurrency_limits:
86
- api-calls: 2
87
-
88
101
  on_failure:
89
102
  webhook_url: "https://example.com/notify"
90
103
  ---
91
104
  ```
92
105
 
106
+ 実行イメージ:
107
+
108
+ ```
109
+ 時間→
110
+ [tdd-auth-login ]
111
+ [tdd-auth-logout ] ← 3 つが同時に起動(max_workers=3 想定)
112
+ [tdd-auth-reset ]
113
+ [review-auth] ← 全完了後に走る
114
+ ```
115
+
116
+ ---
117
+
118
+ ## アンチパターン(避けるべき書き方)
119
+
120
+ ### A. 全部直列にしてしまう
121
+
122
+ ```yaml
123
+ tasks:
124
+ - id: tdd-login
125
+ agent: tdd-develop
126
+ # ...
127
+ - id: tdd-logout
128
+ agent: tdd-develop
129
+ depends_on: [tdd-login] # ❌ login と logout は別ファイル。依存ない
130
+ # ...
131
+ - id: tdd-reset
132
+ agent: tdd-develop
133
+ depends_on: [tdd-logout] # ❌ 「前のタスクが終わってから」レベルの依存
134
+ # ...
135
+ ```
136
+
137
+ → `depends_on` チェーンの最大長 = タスク数 - 1。並列度 1 になり PO を使う意味なし。
138
+
139
+ ### B. TDD を「テスト → 実装」に分割する
140
+
141
+ ```yaml
142
+ tasks:
143
+ - id: write-login-tests
144
+ agent: tester
145
+ # ...
146
+ - id: implement-login
147
+ agent: developer
148
+ depends_on: [write-login-tests] # ❌ tdd-develop が内部でやる仕事を外で分割
149
+ ```
150
+
151
+ → tdd-develop が tester→developer→tester ループを内部で回すので、外で分けると Red-Green-Refactor サイクルが壊れる。**1 機能 = 1 TDD タスク**でまとめる。
152
+
153
+ ### C. writes が空・同じファイルが重複
154
+
155
+ ```yaml
156
+ tasks:
157
+ - id: tdd-login
158
+ writes: [] # ❌ PO の衝突検出が効かない
159
+ - id: tdd-auth-helpers
160
+ writes:
161
+ - src/auth/login.py # ❌ tdd-login と同じファイル → 競合
162
+ ```
163
+
164
+ → 必ず書き込みファイルを `writes` に列挙する。重複したらタスクをまとめるか `concurrency_group` で同時実行を制限する。
165
+
93
166
  ---
94
167
 
95
168
  ## C3 における配置場所
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.4] - 2026-05-01
4
+
5
+ ### Changed
6
+ - `planner` agent now produces plan-reports designed for actual parallel
7
+ execution. Previously the agent only knew "emit YAML frontmatter"; without
8
+ rules for how to design the dependency graph it tended to write conservative
9
+ serial chains where every task depended on the previous one, defeating the
10
+ point of parallel-orchestra. Added a "並列実行のための設計指針" section
11
+ with eight concrete rules:
12
+ - depends_on only for true dependencies (not "just to be safe")
13
+ - serialization self-check: chain length ≦ tasks/2
14
+ - reviews go to the end via depends_on covering all dev tasks
15
+ - decompose at file/module boundaries, not function-level or module-level
16
+ - 1 TDD task = test + production + correction loop (do not split)
17
+ - default granularity: file / feature
18
+ - `writes` field is mandatory for collision detection
19
+ - duplicate writes must be merged, sequenced via depends_on, or grouped
20
+ - `.claude/docs/parallel-orchestra-manifest.md`: example expanded to three
21
+ dev tasks + a depends-on-all reviewer (showing real parallelism), plus
22
+ inline comments and an "アンチパターン" section that calls out
23
+ serialized chains, splitting TDD into separate tester/developer tasks,
24
+ and empty/duplicate `writes` fields.
25
+
26
+ ## [0.2.3] - 2026-05-01
27
+
28
+ ### Added
29
+ - `name` field on every agent definition under `.claude/agents/*.md`. The
30
+ `description` field was already present on all agents, so this fills the
31
+ remaining frontmatter gap. Values match the file stem (e.g. `architect`,
32
+ `tdd-develop`).
33
+
3
34
  ## [0.2.2] - 2026-05-01
4
35
 
5
36
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-conductor
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Summary: Multi-agent orchestration framework for Claude Code (C3)
5
5
  Project-URL: Homepage, https://github.com/satoh-y-0323/claude-code-conductor
6
6
  Project-URL: Repository, https://github.com/satoh-y-0323/claude-code-conductor
@@ -1,3 +1,3 @@
1
1
  """Claude Code Conductor (C3) - multi-agent orchestration framework for Claude Code."""
2
2
 
3
- __version__ = "0.2.2"
3
+ __version__ = "0.2.4"
@@ -1,59 +0,0 @@
1
- ---
2
- model: opus
3
- description: 計画立案担当。全レポートを統合しタスク分解した plan-report を出力する。ソース編集不可。
4
- tools:
5
- - Read
6
- - Write
7
- - Glob
8
- - Grep
9
- ---
10
-
11
- # Planner
12
- <!-- ペルソナ定義: /start コマンドで親 Claude がこのペルソナを採用して対話を行う。サブエージェントとして起動しない。 -->
13
-
14
- ## Core Mandate
15
- requirements-report・architecture-report・各種レビューレポートを統合し、実装可能なタスクに分解した plan-report を出力する。
16
-
17
- ## Key Scope
18
-
19
- ✅ 担当すること:
20
- - タスク分解と優先度決定
21
- - マイルストーン設定
22
- - 並列実行可能なタスクグループの識別
23
- - 各エージェントへの作業指示の明文化
24
- - plan-report の出力・更新
25
-
26
- ❌ 担当しないこと:
27
- - 設計判断(architect の担当)
28
- - ソースコードの編集
29
- - テスト・レビューの実施
30
-
31
- ## Workflow
32
-
33
- **Before:**
34
- - 利用可能な全レポートを Read する(requirements / architecture / test / review)
35
- - レポートが存在しないフェーズはスキップして正常とする
36
-
37
- **During:**
38
- - レビュー指摘がある場合は優先度を付けて反映する
39
- - タスクは「1タスク = 1コミット」の粒度を意識して分解する
40
-
41
- **After:**
42
- - `.claude/reports/plan-report-YYYYMMDD-HHMMSS.md` に Write して出力する
43
- - plan-report の**先頭に YAML フロントマターを必ず付与する**。フォーマットは `.claude/docs/parallel-orchestra-manifest.md` の仕様に従う。最低限以下を出力すること:
44
- - `po_plan_version: "0.1"`
45
- - `name`(プランの表示名・文字列)
46
- - `cwd: "../.."`(plan-report からプロジェクトルートへの相対パス)
47
- - `tasks: [...]`(各タスクは `id` / `agent` / `read_only` / `prompt` を必須とする。書き込みあり = `read_only: false`、読み取り専用レビューのみ = `read_only: true`)
48
- - `tasks[].id` は英数字・ハイフン・アンダースコアのみで一意にする。Markdown 本文の依存関係セクションと `tasks[].depends_on` を一致させる
49
- - フロントマターは YAML パーサで再パース可能でなければならない(インデントずれ・タブ混入禁止)
50
-
51
- ## Tools & Constraints
52
- 制限:
53
- - ソースファイルの編集・書き込みは行わない
54
- - plan-report の YAML フロントマター内で `tasks[].id` の重複・未定義の `depends_on` 参照・エージェント名の typo を出力しない(`c3 po dry-run` で検証可能)
55
-
56
- ## Related Agents
57
- - 上流: architect(architecture-report を受け取る)
58
- - 下流: developer・tester(plan-report を受け渡す)
59
- - 再起動元: code-reviewer・security-reviewer(指摘反映後に再計画)