cc-workspace 4.0.5 → 4.1.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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Claude Code Multi-Workspace Orchestrator v4.0.5
1
+ # Claude Code Multi-Workspace Orchestrator v4.1.0
2
2
 
3
3
  A system to pilot multi-service projects from Claude Code.
4
4
  The orchestrator (Opus) never codes in repos. It clarifies, plans,
@@ -341,6 +341,18 @@ Both `init` and `update` are safe to re-run:
341
341
 
342
342
  ---
343
343
 
344
+ ## Changelog v4.0.5 -> v4.1.0
345
+
346
+ | # | Feature | Detail |
347
+ |---|---------|--------|
348
+ | 1 | **Atomic commits** | Plan template splits tasks into commit-sized units (~300 lines max). Teammates commit as they go, not a single giant commit at the end. |
349
+ | 2 | **Progress tracker** | Plan includes a progress tracker table: commits planned vs done per service, visible at a glance. |
350
+ | 3 | **Commit strategy in spawn templates** | All teammate templates (backend, frontend, infra) include a mandatory commit strategy section with layer-by-layer split guidelines. |
351
+ | 4 | **Commit granularity enforcement** | Team-lead checks commit count vs plan, flags giant commits (>400 lines), requires split before accepting a wave. |
352
+ | 5 | **Teammate commit reporting** | Teammates report commits made (hash + message) alongside files and tests. |
353
+
354
+ ---
355
+
344
356
  ## Changelog v3.5.0 -> v4.0
345
357
 
346
358
  | # | Feature | Detail |
package/bin/cli.js CHANGED
@@ -399,7 +399,7 @@ function planTemplateContent() {
399
399
  ## Impacted services
400
400
  | Service | Impacted | Branch | Teammate | Status |
401
401
  |---------|----------|--------|----------|--------|
402
- | | yes/no | | | ⏳ |
402
+ | | yes/no | feature/[name] | | ⏳ |
403
403
 
404
404
  ## Waves
405
405
  - Wave 1: [producers]
@@ -407,12 +407,33 @@ function planTemplateContent() {
407
407
  - Wave 3: [infra]
408
408
 
409
409
  ## API contract
410
- [Exact shapes]
410
+ [Exact request/response shapes for each endpoint]
411
411
 
412
412
  ## Tasks
413
413
 
414
414
  ### [service]
415
+
416
+ #### Commit 1: [data layer — models, migrations, DTOs]
417
+ - ⏳ [task]
415
418
  - ⏳ [task]
419
+ > ~N files, ~N lines
420
+
421
+ #### Commit 2: [business logic — use cases, services]
422
+ - ⏳ [task]
423
+ > ~N files, ~N lines
424
+
425
+ #### Commit 3: [API/UI layer — controllers, routes, components]
426
+ - ⏳ [task]
427
+ > ~N files, ~N lines
428
+
429
+ #### Commit 4: [tests]
430
+ - ⏳ [task]
431
+ > ~N files, ~N lines
432
+
433
+ ## Progress tracker
434
+ | Service | Commits planned | Commits done | Tests | Status |
435
+ |---------|:-:|:-:|:-:|:-:|
436
+ | | N | 0 | ⏳ | ⏳ |
416
437
 
417
438
  ## QA
418
439
  - ⏳ Cross-service check
@@ -78,11 +78,11 @@ The workflow depends on the chosen mode:
78
78
  - **Mode D**: phases 1-2 then ONE teammate only, no waves
79
79
 
80
80
  1. CLARIFY — ask the missing questions (max 5, formulated as choices)
81
- 2. PLAN — write the plan in markdown, wait for approval
81
+ 2. PLAN — write the plan in markdown with commit-sized task units, wait for approval
82
82
  3. DISPATCH — send teammates in waves (API/data first, frontend next)
83
- 4. COLLECT — update the plan with results
83
+ 4. COLLECT — update the plan with results, verify commit granularity
84
84
  5. VERIFY — cross-service check then QA ruthless
85
- 6. REPORT — present the summary, propose fixes
85
+ 6. REPORT — present the summary with commit inventory, propose fixes
86
86
 
87
87
  ## Dispatch mechanism — Agent Teams
88
88
 
@@ -99,12 +99,22 @@ For lightweight read-only tasks (scans, checks), you can use Task
99
99
  with Explore subagents (Haiku) — faster and cheaper.
100
100
  Explore subagents are read-only, they do NOT need a worktree.
101
101
 
102
+ ## Commit granularity enforcement
103
+
104
+ When collecting teammate reports:
105
+ - **Check commit count vs plan** — the plan defines N commit units, the teammate must have N+ commits
106
+ - **Flag giant commits** — any commit >400 lines gets flagged in the session log
107
+ - **If a teammate made a single commit for all tasks**: ask them to split via SendMessage
108
+ before accepting the wave as complete
109
+ - **Progress tracker** in the plan must be updated after each teammate report
110
+
102
111
  ## What you NEVER do
103
112
  - Write code in sibling repos (that's the teammates' job)
104
113
  - Modify a file in a repo (delegate via Agent Teams)
105
114
  - Guess when you can ask
106
115
  - Forget to include the full constitution in spawn prompts
107
116
  - Forget UX standards for frontend teammates
117
+ - Accept a single giant commit covering multiple tasks — enforce atomic commits
108
118
  - Let the context grow (compact after each cycle)
109
119
  - Launch wave 2 before wave 1 has reported
110
120
 
@@ -63,6 +63,23 @@ Create `./plans/{feature-name}.md` using `./plans/_TEMPLATE.md`.
63
63
  Include: context, clarification answers, services impacted, dependency waves,
64
64
  detailed tasks per service, API contract (exact shapes), and autonomous choices if applicable.
65
65
 
66
+ ### Commit planning (mandatory)
67
+
68
+ For EACH service, break tasks into **commit-sized units** (~300 lines max each):
69
+ - **Commit 1**: Data layer — models, migrations, DTOs, repositories
70
+ - **Commit 2**: Business logic — use cases, services, validation
71
+ - **Commit 3**: API/UI layer — controllers, routes, components, pages
72
+ - **Commit 4**: Tests for the above
73
+
74
+ Each commit unit in the plan must:
75
+ - Have a descriptive title (becomes the commit message)
76
+ - List the specific tasks it covers
77
+ - Estimate ~N files, ~N lines
78
+ - Be independently compilable and testable
79
+
80
+ The plan also includes a **progress tracker** table summarizing commits planned
81
+ vs done per service, visible at a glance.
82
+
66
83
  ### Dependency waves
67
84
 
68
85
  - **Wave 1**: Producers — API backend, data/analytics, auth (define contracts)
@@ -127,11 +144,13 @@ Never mix: one teammate per repo per wave. No two teammates editing the same rep
127
144
  ## Phase 4: Collect and update
128
145
 
129
146
  On each teammate report:
130
- 1. Update `./plans/{feature-name}.md` — statuses ✅ or ❌
131
- 2. Note dead code found
132
- 3. If a teammate failed → analyze, correct plan, re-dispatch
133
- 4. **Session log** entry: `[HH:MM] teammate-[service]: [status], [N] files, tests [pass/fail]`
134
- 5. If current wave donelaunch next wave
147
+ 1. Update `./plans/{feature-name}.md` — statuses ✅ or ❌ per commit unit
148
+ 2. Update the **progress tracker** table (commits done / planned)
149
+ 3. Note dead code found
150
+ 4. Verify commit count and sizes — flag if a teammate made a single giant commit
151
+ 5. If a teammate failedanalyze, correct plan, re-dispatch
152
+ 6. **Session log** entry: `[HH:MM] teammate-[service]: [status], [N] commits, [N] files, tests [pass/fail]`
153
+ 7. If current wave done → launch next wave
135
154
 
136
155
  ## Phase 5: Post-implementation
137
156
 
@@ -28,3 +28,6 @@ Reference file for dispatch-feature. Loaded on-demand when Claude needs reminder
28
28
  | Plan has vague tasks like "implement feature" | Each task should have a clear input→output | Rewrite plan with specific tasks |
29
29
  | API contract has `{}` placeholder | Frontend can't build types | Complete the contract shapes before wave 2 |
30
30
  | Two teammates on same repo in same wave | Git conflicts guaranteed | Split into separate waves |
31
+ | Giant commit (500+ lines) | PR unreadable, impossible to review | Split into atomic commits (~300 lines max) per logical unit |
32
+ | Single commit at the end | All-or-nothing, no partial rollback | Commit after each logical unit — data, logic, API, tests |
33
+ | Task without commit boundary | Teammate guesses the split | Plan must define commit units per task |
@@ -27,10 +27,23 @@ You are teammate-[service]. Read the CLAUDE.md in your repo first.
27
27
  3. Use the LSP tool for code navigation (go-to-definition, find-references)
28
28
  4. Run the existing test suite — report pass/fail
29
29
  5. List any dead code created or exposed by your changes
30
- 6. Commit on branch feature/[name] with conventional commits
30
+ 6. **Atomic commits** follow the commit plan below
31
31
  7. If you hit an architectural decision NOT covered by the plan: STOP and
32
32
  report the dilemma instead of guessing
33
- 8. Report back: files created/modified, tests pass/fail, dead code found, blockers
33
+ 8. Report back: files created/modified, tests pass/fail, dead code found,
34
+ commits made (hash + message), blockers
35
+
36
+ ## Commit strategy (mandatory)
37
+ - **One commit per logical unit** — each task in "Your tasks" = one commit minimum
38
+ - **Max ~300 lines per commit** — if a task produces more, split it:
39
+ 1. Data layer first (models, migrations, DTOs, repositories)
40
+ 2. Business logic (use cases, services, validation)
41
+ 3. API layer (controllers, routes, requests)
42
+ 4. Tests for the above
43
+ - **Commit message format**: `feat(domain): description` or `fix(domain): description`
44
+ - **Each commit must compile and pass tests** — no broken intermediate states
45
+ - **Commit as you go** — do NOT accumulate all changes for a single final commit
46
+ - Branch: `feature/[name]` — create it on your first commit
34
47
  ```
35
48
 
36
49
  ## Frontend teammate spawn template
@@ -57,9 +70,23 @@ You are teammate-[service]. Read the CLAUDE.md in your repo first.
57
70
  4. Every new component MUST handle 4 states: skeleton loader, empty+CTA, error+retry, success
58
71
  5. Run the existing test suite — report pass/fail
59
72
  6. List any dead code (unused components, composables, store actions, CSS)
60
- 7. Commit on branch feature/[name] with conventional commits
73
+ 7. **Atomic commits** follow the commit plan below
61
74
  8. If you hit an architectural decision NOT covered by the plan: STOP and escalate
62
- 9. Report back: files created/modified, tests pass/fail, dead code found, UX compliance, blockers
75
+ 9. Report back: files created/modified, tests pass/fail, dead code found,
76
+ UX compliance, commits made (hash + message), blockers
77
+
78
+ ## Commit strategy (mandatory)
79
+ - **One commit per logical unit** — each task = one commit minimum
80
+ - **Max ~300 lines per commit** — if a task produces more, split it:
81
+ 1. Types/interfaces and API service layer
82
+ 2. Store/composables (state management)
83
+ 3. Components (one commit per complex component)
84
+ 4. Page integration + routing
85
+ 5. Tests for the above
86
+ - **Commit message format**: `feat(domain): description` or `fix(domain): description`
87
+ - **Each commit must compile and pass tests** — no broken intermediate states
88
+ - **Commit as you go** — do NOT accumulate all changes for a single final commit
89
+ - Branch: `feature/[name]` — create it on your first commit
63
90
  ```
64
91
 
65
92
  ## Infra/Config teammate spawn template
@@ -78,9 +105,12 @@ You are teammate-[service]. Read the CLAUDE.md in your repo first.
78
105
  2. Implement the configuration changes following the full constitution
79
106
  3. Verify consistency with other services (env vars, routes, schemas)
80
107
  4. No code changes — only configuration
81
- 5. Commit on branch feature/[name]
82
- 6. If you hit an architectural decision NOT covered by the plan: STOP and escalate
83
- 7. Report back: files modified, consistency check results, blockers
108
+ 5. **Atomic commits** one commit per logical config change
109
+ 6. Commit message format: `chore(service): description`
110
+ 7. If you hit an architectural decision NOT covered by the plan: STOP and escalate
111
+ 8. Report back: files modified, consistency check results,
112
+ commits made (hash + message), blockers
113
+ - Branch: `feature/[name]`
84
114
  ```
85
115
 
86
116
  ## Explore/Haiku subagent template (read-only)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-workspace",
3
- "version": "4.0.5",
3
+ "version": "4.1.0",
4
4
  "description": "Claude Code multi-workspace orchestrator — skills, hooks, agents, and templates for multi-service projects",
5
5
  "bin": {
6
6
  "cc-workspace": "./bin/cli.js"