cc-workspace 4.0.5 → 4.1.1
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 +56 -32
- package/bin/cli.js +23 -2
- package/global-skills/agents/team-lead.md +13 -3
- package/global-skills/dispatch-feature/SKILL.md +24 -5
- package/global-skills/dispatch-feature/references/anti-patterns.md +3 -0
- package/global-skills/dispatch-feature/references/spawn-templates.md +37 -7
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -1,65 +1,64 @@
|
|
|
1
|
-
#
|
|
1
|
+
# cc-workspace
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
The orchestrator (Opus) never codes in repos. It clarifies, plans,
|
|
5
|
-
delegates to teammates who work in parallel in each repo.
|
|
3
|
+
**Claude Code Multi-Workspace Orchestrator** — turn Claude Code into a team of AI developers that work in parallel across your repos.
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Instead of Claude Code trying to do everything in one session and losing context, `cc-workspace` sets up an orchestrator (Opus) that clarifies requirements, writes a plan, then delegates to teammates (Sonnet) who implement in parallel — each in their own repo, their own worktree, their own context.
|
|
6
|
+
|
|
7
|
+
> Requires [Claude Code](https://docs.anthropic.com/en/docs/claude-code) v2.1.47+ with Agent Teams.
|
|
8
|
+
> Works with Opus 4.6, Sonnet 4.6, Haiku 4.5 (February 2026).
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Quick start
|
|
13
13
|
|
|
14
14
|
### Prerequisites
|
|
15
15
|
|
|
16
|
-
- **Claude Code** v2.1.47+
|
|
16
|
+
- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** v2.1.47+
|
|
17
17
|
- **Node.js** 18+
|
|
18
18
|
- **jq** (`brew install jq` on macOS, `apt install jq` on Linux)
|
|
19
19
|
|
|
20
|
-
###
|
|
20
|
+
### Setup a workspace
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
+
# Navigate to the parent directory containing your repos
|
|
23
24
|
cd ~/projects/my-workspace
|
|
25
|
+
|
|
26
|
+
# Initialize the orchestrator (no install needed)
|
|
24
27
|
npx cc-workspace init . "My Project"
|
|
25
28
|
```
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
- Installs skills/rules/agents in `~/.claude/` (if newer version)
|
|
29
|
-
- Creates `orchestrator/` with plans/, templates/, hooks
|
|
30
|
-
- Scans sibling repos (directories with `.git/`)
|
|
31
|
-
- Generates `service-profiles.md`
|
|
32
|
-
- workspace.md and constitution.md in `[UNCONFIGURED]` mode
|
|
30
|
+
This creates an `orchestrator/` directory and installs 9 skills, 3 agents, 11 hooks, and 3 rules into `~/.claude/`.
|
|
33
31
|
|
|
34
|
-
###
|
|
32
|
+
### Configure (one time)
|
|
35
33
|
|
|
36
34
|
```bash
|
|
37
35
|
cd orchestrator/
|
|
38
36
|
claude --agent workspace-init
|
|
39
|
-
# type "go" to start the diagnostic
|
|
37
|
+
# type "go" to start the interactive diagnostic
|
|
40
38
|
```
|
|
41
39
|
|
|
42
|
-
The
|
|
43
|
-
1.
|
|
44
|
-
2.
|
|
45
|
-
3.
|
|
46
|
-
4.
|
|
47
|
-
5. Interactive configuration of constitution.md (project rules)
|
|
48
|
-
6. Final report with each check's status
|
|
40
|
+
The init agent will:
|
|
41
|
+
1. Scan sibling repos and detect their tech stacks
|
|
42
|
+
2. Offer to generate missing `CLAUDE.md` files for each repo
|
|
43
|
+
3. Walk you through `workspace.md` configuration (section by section)
|
|
44
|
+
4. Walk you through `constitution.md` (your engineering principles)
|
|
49
45
|
|
|
50
|
-
###
|
|
46
|
+
### Start working
|
|
51
47
|
|
|
52
48
|
```bash
|
|
53
49
|
cd orchestrator/
|
|
54
50
|
claude --agent team-lead
|
|
55
|
-
|
|
56
|
-
# The team-lead offers 4 modes:
|
|
57
|
-
# A -- Full (clarify -> plan -> validate -> dispatch -> QA)
|
|
58
|
-
# B -- Quick plan (specs -> plan -> dispatch)
|
|
59
|
-
# C -- Go direct (immediate dispatch)
|
|
60
|
-
# D -- Single-service (1 repo, no waves)
|
|
61
51
|
```
|
|
62
52
|
|
|
53
|
+
The team-lead offers 4 modes:
|
|
54
|
+
|
|
55
|
+
| Mode | When to use |
|
|
56
|
+
|------|-------------|
|
|
57
|
+
| **A -- Full** | Complex feature, multi-service, needs clarification |
|
|
58
|
+
| **B -- Quick plan** | Clear specs, no questions needed |
|
|
59
|
+
| **C -- Go direct** | Hotfix, quick fix, obvious specs |
|
|
60
|
+
| **D -- Single-service** | Bug or isolated feature in a single repo |
|
|
61
|
+
|
|
63
62
|
### Update
|
|
64
63
|
|
|
65
64
|
```bash
|
|
@@ -68,7 +67,7 @@ npx cc-workspace update
|
|
|
68
67
|
|
|
69
68
|
Updates all components if the package version is newer:
|
|
70
69
|
- **Global**: skills, rules, agents in `~/.claude/`
|
|
71
|
-
- **Local** (if orchestrator
|
|
70
|
+
- **Local** (if `orchestrator/` found): hooks, settings.json, CLAUDE.md, templates, _TEMPLATE.md
|
|
72
71
|
- **Never overwritten**: workspace.md, constitution.md, plans/
|
|
73
72
|
|
|
74
73
|
### Diagnostic
|
|
@@ -341,6 +340,31 @@ Both `init` and `update` are safe to re-run:
|
|
|
341
340
|
|
|
342
341
|
---
|
|
343
342
|
|
|
343
|
+
## Changelog v4.0.5 -> v4.1.0
|
|
344
|
+
|
|
345
|
+
| # | Feature | Detail |
|
|
346
|
+
|---|---------|--------|
|
|
347
|
+
| 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. |
|
|
348
|
+
| 2 | **Progress tracker** | Plan includes a progress tracker table: commits planned vs done per service, visible at a glance. |
|
|
349
|
+
| 3 | **Commit strategy in spawn templates** | All teammate templates (backend, frontend, infra) include a mandatory commit strategy section with layer-by-layer split guidelines. |
|
|
350
|
+
| 4 | **Commit granularity enforcement** | Team-lead checks commit count vs plan, flags giant commits (>400 lines), requires split before accepting a wave. |
|
|
351
|
+
| 5 | **Teammate commit reporting** | Teammates report commits made (hash + message) alongside files and tests. |
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Changelog v4.0 -> v4.0.5
|
|
356
|
+
|
|
357
|
+
| # | Fix | Detail |
|
|
358
|
+
|---|-----|--------|
|
|
359
|
+
| 1 | **Agent frontmatter fix** | `allowed-tools` → `tools` on all 3 agents. `allowed-tools` is the skill field — agents use `tools`. Without this fix, tool restrictions were silently ignored. |
|
|
360
|
+
| 2 | **Removed `effort` field** | `effort: high/medium/low` doesn't exist in Claude Code spec. Removed from all agents. |
|
|
361
|
+
| 3 | **Skill `agent` field** | Added `agent: Explore` or `agent: general-purpose` to 6 skills for proper subagent routing. |
|
|
362
|
+
| 4 | **`Task(type)` restrictions** | team-lead restricted to `Task(implementer, Explore)`, workspace-init to `Task(Explore)`. |
|
|
363
|
+
| 5 | **`update` fixes local files** | `npx cc-workspace update` now also updates local orchestrator/ files (hooks, settings.json, CLAUDE.md, templates, _TEMPLATE.md). Previously only updated globals. |
|
|
364
|
+
| 6 | **Failure handling** | Added failure handling section to spawn-templates: max 2 re-dispatches, escalation criteria. |
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
344
368
|
## Changelog v3.5.0 -> v4.0
|
|
345
369
|
|
|
346
370
|
| # | 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.
|
|
132
|
-
3.
|
|
133
|
-
4.
|
|
134
|
-
5. If
|
|
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 failed → analyze, 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.
|
|
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,
|
|
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.
|
|
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,
|
|
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.
|
|
82
|
-
6.
|
|
83
|
-
7.
|
|
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.
|
|
3
|
+
"version": "4.1.1",
|
|
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"
|
|
@@ -20,7 +20,15 @@
|
|
|
20
20
|
"workspace",
|
|
21
21
|
"monorepo"
|
|
22
22
|
],
|
|
23
|
-
"
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/VincentVanN/cc-workspace.git"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://github.com/VincentVanN/cc-workspace#readme",
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/VincentVanN/cc-workspace/issues"
|
|
30
|
+
},
|
|
31
|
+
"author": "VincentVanN",
|
|
24
32
|
"license": "MIT",
|
|
25
33
|
"engines": {
|
|
26
34
|
"node": ">=18"
|