claude-code-conductor 0.3.0__tar.gz → 0.3.1__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.
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/planner.md +36 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/docs/parallel-orchestra-manifest.md +40 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/wave-execution.md +58 -2
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/CHANGELOG.md +35 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/PKG-INFO +1 -1
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/__init__.py +1 -1
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/CLAUDE.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/architect.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/code-reviewer.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/developer.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/doc-writer.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/interviewer.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/project-setup.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/security-reviewer.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/tdd-develop.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/tester.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/develop.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/doc.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/extract-lib.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/init-session.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/mcp.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/promote-pattern.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/review.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/setup.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/start.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/clear_file_history.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/enable_sandbox.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/pre_compact.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/pre_tool.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/statusline.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/stop.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/validate_skill_change.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/worktree_guard.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/memory/.gitkeep +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/rules/code-review-checklist.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/rules/promoted/index.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/rules/security-review-checklist.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/settings.json +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/settings.local.json +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/dev-workflow.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/promoted/index.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/worktree-tdd-workflow.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.gitignore +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/LICENSE +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/README.md +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/hatch_build.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/pyproject.toml +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/__main__.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/_excludes.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/cli.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/cli_doctor.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/cli_init.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/cli_list.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/cli_po.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/cli_update.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/paths.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/po/__init__.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/po/detect.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/po/manifest.py +0 -0
- {claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/src/c3/po/run.py +0 -0
|
@@ -79,6 +79,42 @@ plan-report の YAML フロントマターは `parallel-orchestra` (PO) で並
|
|
|
79
79
|
- [ ] 同じファイルを書く複数タスクで衝突対策が取られているか
|
|
80
80
|
- [ ] レビュータスク(read_only:true)が全 dev タスクに depends_on を持っているか
|
|
81
81
|
- [ ] `tasks[].id` が一意で、`depends_on` の参照先が全て存在するか
|
|
82
|
+
- [ ] `depends_on` を空配列(`[]`)で書いていないか(無依存ならフィールド自体を省略)
|
|
83
|
+
|
|
84
|
+
### タスクあたりの所要時間制約
|
|
85
|
+
|
|
86
|
+
PO は内部で **タスクごとのタイムアウトを 900 秒(15 分)でハードコード** している(`_INTERNAL_TIMEOUT_SEC = 900`、フロントマター側からは上書き不可)。1 タスクが 15 分を超えると PO 側で kill されて failure 扱いになる。
|
|
87
|
+
|
|
88
|
+
11. **1 タスクは 15 分以内に終わる粒度で分解する** — `tdd-develop` の tester→developer→tester ループでも 15 分を上限の目安にする。長くなりそうな機能は (a) ファイル境界でタスク分割、(b) MVP と機能拡張で別タスク化、のいずれかで時間を切る
|
|
89
|
+
- 自己チェックリストに追加: `[ ] 想定実行時間が 15 分を超えるタスクがないか`
|
|
90
|
+
|
|
91
|
+
### YAML フロントマターの落とし穴
|
|
92
|
+
|
|
93
|
+
実装時に踏みやすい入力ミス。dry-run で検出できるが、出力前に planner 側で潰しておく:
|
|
94
|
+
|
|
95
|
+
9. **`depends_on: []` を空配列で書かない** — `c3 po dry-run` が「`depends_on` must be a list of strings」で fail する(非空のときだけ list として扱われ、空配列は仕様違反扱い)。依存が無いタスクは `depends_on` フィールド**自体を省略**する
|
|
96
|
+
10. **`writes` の重複は dry-run の `Write-path conflict` で検出される** — 同じファイルを書くタスクが複数あれば必ず (a) タスクをまとめる、(b) `depends_on` で順序付け、(c) `concurrency_group` で同時実行を 1 に制限、のいずれかで解消する(既存ルール 8 の補足。dry-run が落ちるので出力前に必ず確認する)
|
|
97
|
+
|
|
98
|
+
### 直列・並列交互パターンの取り扱い
|
|
99
|
+
|
|
100
|
+
ユーザーが **stage 単位で順序を強制したい / 中間状態を確認したい** と要求した場合は、ルール 1(「真の依存だけに絞る」)から逸脱して順序付けの `depends_on` を許容してよい。典型構造:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Stage 1: dev_a, dev_b, dev_c (並列)
|
|
104
|
+
└─ Stage 2: review_or_sync (依存: dev_a/b/c) ← 中間レビュー / 集約
|
|
105
|
+
└─ Stage 3: dev_d, dev_e (並列、依存: review_or_sync)
|
|
106
|
+
└─ Stage 4: review_or_sync_2 (依存: dev_d/e)
|
|
107
|
+
└─ ...
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
採用条件:
|
|
111
|
+
|
|
112
|
+
- ユーザーが明示的に要求している(自己判断で勝手にこの形にしない)
|
|
113
|
+
- 各 stage 内の並列度は **2 以上**を維持する(直列に潰してはいけない)
|
|
114
|
+
- ルール 2(直列化セルフチェック: チェーン長 ≦ タスク数 / 2)は依然として守る
|
|
115
|
+
- 「stage 区切り」自体は plan-report 本文で明文化し、`depends_on` だけに頼らない
|
|
116
|
+
|
|
117
|
+
詳細な構造例は `.claude/docs/parallel-orchestra-manifest.md` の「並列・直列交互パターン」を参照。
|
|
82
118
|
|
|
83
119
|
## Tools & Constraints
|
|
84
120
|
制限:
|
|
@@ -115,6 +115,46 @@ on_failure:
|
|
|
115
115
|
|
|
116
116
|
---
|
|
117
117
|
|
|
118
|
+
## 並列・直列交互パターン
|
|
119
|
+
|
|
120
|
+
中間レビューや段階的な動作確認を挟みたい場合の plan-report 構造。stage 内では並列、stage 間は順序を強制する形を取る。C3 の wave-execution でも各 stage 完了後にユーザー承認が入るので、ヒューマン・イン・ザ・ループ前提の中規模実装で有効。
|
|
121
|
+
|
|
122
|
+
### 用途
|
|
123
|
+
|
|
124
|
+
- 段階的にユーザー確認・中間レビューを挟みたい
|
|
125
|
+
- 実装ステージごとに動作確認が必要(例: 認証 → 認可 → 監査ログ、と段階的に積み上げる)
|
|
126
|
+
- 後続の dev タスクが前段のレビュー指摘を受けて方針調整する可能性がある
|
|
127
|
+
|
|
128
|
+
### 構造
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
Stage 1: dev_a, dev_b, dev_c (並列)
|
|
132
|
+
└─ Stage 2: review_or_sync (依存: dev_a / dev_b / dev_c) ← 中間レビュー / 集約
|
|
133
|
+
└─ Stage 3: dev_d, dev_e (並列、依存: review_or_sync)
|
|
134
|
+
└─ Stage 4: review_or_sync_2 (依存: dev_d / dev_e)
|
|
135
|
+
└─ ...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
特徴:
|
|
139
|
+
|
|
140
|
+
- 各 stage 内は **2 件以上の独立タスク**で並列度を維持する
|
|
141
|
+
- stage を区切る `review_or_sync` タスクは `code-reviewer`(read_only: true)か、軽い同期目的のサマライズタスク
|
|
142
|
+
- 中間レビュータスクが次 stage の dev タスクに `depends_on` で繋がる → **stage 間は完全に直列**
|
|
143
|
+
|
|
144
|
+
### 動作実績
|
|
145
|
+
|
|
146
|
+
17 tasks / 7 stages 構成(3〜4 並列の dev stage と 1 件の review stage が交互)で動作確認済み。各 stage が wave 1 つに対応し、wave-execution.md の per-wave 承認フローに綺麗に乗る。
|
|
147
|
+
|
|
148
|
+
### 採用条件(planner 側のルール)
|
|
149
|
+
|
|
150
|
+
- ユーザーが明示的に要求している(自動でこの形にしない)
|
|
151
|
+
- 各 stage 内の並列度は **2 以上**を維持する(直列に潰さない)
|
|
152
|
+
- 全体のチェーン長 ≦ タスク数 / 2 を依然として守る
|
|
153
|
+
|
|
154
|
+
詳細は `.claude/agents/planner.md` の「直列・並列交互パターンの取り扱い」を参照。
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
118
158
|
## アンチパターン(避けるべき書き方)
|
|
119
159
|
|
|
120
160
|
### A. 全部直列にしてしまう
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/wave-execution.md
RENAMED
|
@@ -17,6 +17,41 @@ C3 の親 Claude が plan-report の DAG を **wave 単位**で歩く。
|
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
+
## Step 0-pre: ワーキングツリーの事前確認
|
|
21
|
+
|
|
22
|
+
PO は worktree からの auto-merge で main に成果物を取り込む仕様で、**main 側に未コミット変更や untracked ファイルがあると、worktree が同名ファイルを再生成して必ず衝突する**。実行前に `git status` でクリーンであることを確認する。
|
|
23
|
+
|
|
24
|
+
1. Bash で `git status --short` を実行する
|
|
25
|
+
2. stdout が空(クリーン)→ Step 0 へ
|
|
26
|
+
3. クリーンでない場合:
|
|
27
|
+
- 検出された変更ファイルをユーザーに提示する
|
|
28
|
+
- AskUserQuestion で次を確認する:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"questions": [{
|
|
33
|
+
"question": "PO 実行前に main がクリーンである必要があります。どうしますか?",
|
|
34
|
+
"options": [
|
|
35
|
+
{ "label": "コミットしてから続行", "description": "親 Claude が変更内容を確認してコミットしてから wave 実行に進む" },
|
|
36
|
+
{ "label": "stash してから続行", "description": "git stash で退避してから wave 実行に進む。完了後に stash pop するかは別途判断" },
|
|
37
|
+
{ "label": "キャンセル", "description": "wave 実行を中止し、ユーザーが自分で整理してから /develop を再実行する" }
|
|
38
|
+
]
|
|
39
|
+
}]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
- 「コミットしてから続行」→ 親 Claude が `git status` / `git diff` を見て妥当な単位でコミットしてから Step 0 へ
|
|
44
|
+
- 「stash してから続行」→ Bash で `git stash push -u -m "wave-execution pre-clean"` を実行してから Step 0 へ
|
|
45
|
+
- 「キャンセル」→ スキル終了
|
|
46
|
+
|
|
47
|
+
**特に注意すべきファイル:**
|
|
48
|
+
|
|
49
|
+
- `.claude/settings.local.json` — Claude Code が permission 自動追加で勝手に更新する。気付かないうちに dirty になっているケースが多い
|
|
50
|
+
- `package.json` / `vitest.config.js` 等の事前準備(W0)ファイル — 未コミットで PO に入ると worktree でも同ファイルが書き換わって必ず衝突する
|
|
51
|
+
- `.claude/reports/` 配下の中間生成物
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
20
55
|
## Step 0: 妥当性チェック
|
|
21
56
|
|
|
22
57
|
1. Glob で `.claude/reports/plan-report-*.md` の最新ファイルパスを取得する
|
|
@@ -131,8 +166,11 @@ AskUserQuestion ツール:
|
|
|
131
166
|
1. Agent ツールで `subagent_type` は指定せず(カスタム agent は subagent_type 不可)、プロンプトに以下を含める:
|
|
132
167
|
- 「`.claude/agents/{agent_name}.md` を Read してペルソナを採用すること」
|
|
133
168
|
- タスクの `prompt` 本文
|
|
169
|
+
- **「git add / git commit / git push を実行しないこと。コミットは親 Claude がユーザー承認後に行う」を明示**
|
|
134
170
|
2. Agent の返答を 2-D の集約に渡す
|
|
135
171
|
|
|
172
|
+
**git 禁止ルールの根拠:** 動作確認で developer が独断コミットして Red テストや test-report が untracked のまま実装ファイルだけが main に入る事故が起きた。コミット粒度・承認タイミング・成果物の取りこぼしは親 Claude が一元管理する責務。
|
|
173
|
+
|
|
136
174
|
##### 将来 agent を追加する場合
|
|
137
175
|
|
|
138
176
|
「内部で更に subagent を呼ぶ agent」を新たに作る場合は、A-1 のペルソナ採用パターン側に追加する。判断基準: その agent の定義ファイルが「内部で Agent ツールを使う」前提になっているか。tdd-develop が現状の唯一の例。
|
|
@@ -156,12 +194,28 @@ c3 po run-wave <plan-report-path> --wave-index {N} --report .claude/reports/po-r
|
|
|
156
194
|
| exit code | 意味 | 次のアクション |
|
|
157
195
|
|---|---|---|
|
|
158
196
|
| `0` | wave 内全タスク成功 | 2-D へ |
|
|
159
|
-
| `1` | 1件以上のタスクが失敗 | 2-D
|
|
197
|
+
| `1` | 1件以上のタスクが失敗 | 2-D へ(失敗一覧を含めて提示)。**注:** PO は 1 タスクあたり 15 分(`_INTERNAL_TIMEOUT_SEC = 900`、ハードコード上書き不可)でタイムアウトする。15 分超で failure 扱いになっていれば planner の粒度を見直す |
|
|
160
198
|
| `2` | マニフェストエラー(Step 0 をすり抜けた)| エラー内容を提示しスキル終了 |
|
|
161
|
-
| `3` |
|
|
199
|
+
| `3` | auto-merge 衝突(worktree → main の取り込みに失敗)| 下記「auto-merge が衝突した場合」のリカバリ手順へ |
|
|
162
200
|
|
|
163
201
|
実行完了後、生成された `po-run-report-wave-{N}-{ts}.json` を Read してタスクごとのステータスを取得する。
|
|
164
202
|
|
|
203
|
+
##### auto-merge が衝突した場合(exit code 3)
|
|
204
|
+
|
|
205
|
+
PO は worktree でタスクを実行したあと main に auto-merge する。Step 0-pre をすり抜けて main にダーティな状態が残っていたり、複数 worktree が同じ周辺ファイル(CLAUDE.md / settings.local.json 等)を触っていると衝突する。selective checkout でコア成果物だけ救う:
|
|
206
|
+
|
|
207
|
+
1. 残っている PO ブランチを列挙する: `git branch --list "parallel-orchestra/*"`
|
|
208
|
+
2. 各ブランチを個別に確認する: `git log --stat parallel-orchestra/<task>-<hash>`
|
|
209
|
+
3. **コア成果物のみ**を抽出する: `git checkout parallel-orchestra/<task>-<hash> -- <files>`
|
|
210
|
+
- 取り込むのはタスクの `writes` フィールドに列挙されたファイルのみ
|
|
211
|
+
- **取り込まない**: worktree が touch したが本タスクの責務でない周辺ファイル
|
|
212
|
+
- `CLAUDE.md` / `package.json` / `vitest.config.js` 等の事前準備系ファイル
|
|
213
|
+
- `.claude/settings.local.json`(permission 自動追加で worktree 側でも更新されている)
|
|
214
|
+
- `.claude/reports/` 配下の中間生成物
|
|
215
|
+
4. PO ブランチを削除する: `git branch -D parallel-orchestra/<task>-<hash>` を全ブランチに対して実行
|
|
216
|
+
5. 抽出した成果物 + 既存の main 変更分を親 Claude が確認のうえコミットする
|
|
217
|
+
6. `git status --short` で main がクリーンになったことを確認してから次の wave に進む
|
|
218
|
+
|
|
165
219
|
### 2-D: 結果を集約してユーザーに提示する
|
|
166
220
|
|
|
167
221
|
ランナー種別ごとに以下の形式で結果を提示する。
|
|
@@ -203,6 +257,8 @@ case A で TDD ループが不合格のまま終わった、または case B で
|
|
|
203
257
|
|
|
204
258
|
全タスク成功した wave のみ、セッションファイルの `- [ ] Wave {N} (M tasks)` を `- [x] Wave {N} (M tasks)` に Edit する。
|
|
205
259
|
|
|
260
|
+
**次の wave に進む前に main をコミットしてクリーンに保つ。** wave 成果物を未コミットのまま次の wave で PO に入ると、worktree が同名ファイルを再生成して必ず auto-merge 衝突が起きる(Step 0-pre と同じ理由)。親 Claude が wave の成果物を確認のうえ「Wave {N}: {要約}」のメッセージでコミットしてから 2-A の次のループに戻る。
|
|
261
|
+
|
|
206
262
|
---
|
|
207
263
|
|
|
208
264
|
## Step 3: フェーズ E への遷移
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.1] - 2026-05-01
|
|
4
|
+
|
|
5
|
+
### Docs
|
|
6
|
+
- Operational rules captured from a 17-tasks / 7-stages C3+PO verification
|
|
7
|
+
run in `c3_pip_test`:
|
|
8
|
+
- `.claude/skills/wave-execution.md`: new **Step 0-pre** that requires a
|
|
9
|
+
clean working tree before invoking PO (PO's auto-merge re-creates
|
|
10
|
+
same-named files in worktrees and conflicts on dirty main — most
|
|
11
|
+
commonly via `.claude/settings.local.json`, which Claude Code auto-edits
|
|
12
|
+
when granting permissions). Adds an explicit **"do not git
|
|
13
|
+
add/commit/push"** rule to case A-2 Agent-tool prompts (a developer
|
|
14
|
+
sub-agent was committing implementation files while leaving Red tests
|
|
15
|
+
and test-reports untracked). Adds an **auto-merge conflict (exit code
|
|
16
|
+
3) recovery** sub-section under case B with a selective-checkout
|
|
17
|
+
procedure that rescues only declared `writes` and discards worktree-
|
|
18
|
+
side edits to surrounding files. Adds a per-wave commit reminder under
|
|
19
|
+
Step 2-F. Notes PO's hardcoded 15-minute per-task timeout
|
|
20
|
+
(`_INTERNAL_TIMEOUT_SEC = 900`, no manifest-level override) so the
|
|
21
|
+
parent Claude can route exit-code-1 timeouts back to planner sizing
|
|
22
|
+
rather than agent debugging.
|
|
23
|
+
- `.claude/agents/planner.md`: documents the `depends_on: []` pitfall
|
|
24
|
+
(`c3 po dry-run` rejects empty arrays — omit the field instead) and
|
|
25
|
+
the `writes` collision detection. Adds a per-task time budget rule
|
|
26
|
+
(≤15 min, matching PO's internal timeout) with a self-check item.
|
|
27
|
+
Adds an **"alternating parallel/serial pattern"** section that
|
|
28
|
+
authorises ordering `depends_on` between stages when the user
|
|
29
|
+
explicitly wants intermediate review/sync points, while preserving
|
|
30
|
+
in-stage parallelism ≥ 2.
|
|
31
|
+
- `.claude/docs/parallel-orchestra-manifest.md`: adds an "alternating
|
|
32
|
+
parallel/serial pattern" section describing the structure with a
|
|
33
|
+
pointer to the planner rule.
|
|
34
|
+
|
|
35
|
+
No code changes — `c3 update` after `pip install -U claude-code-conductor`
|
|
36
|
+
brings these into existing projects.
|
|
37
|
+
|
|
3
38
|
## [0.3.0] - 2026-04-30
|
|
4
39
|
|
|
5
40
|
### Changed (breaking)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-conductor
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/agents/security-reviewer.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/init-session.md
RENAMED
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/commands/promote-pattern.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/clear_file_history.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/hooks/validate_skill_change.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/rules/code-review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/promoted/index.md
RENAMED
|
File without changes
|
{claude_code_conductor-0.3.0 → claude_code_conductor-0.3.1}/.claude/skills/worktree-tdd-workflow.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|