claude-code-workflow 7.2.24 → 7.2.26
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/.ccw/workflows/cli-tools-usage.md +123 -521
- package/.claude/CLAUDE.md +20 -0
- package/.claude/agents/action-planning-agent.md +6 -0
- package/.claude/agents/cli-explore-agent.md +63 -77
- package/.claude/agents/cli-lite-planning-agent.md +10 -11
- package/.claude/agents/issue-plan-agent.md +7 -2
- package/.claude/commands/workflow/spec/setup.md +1 -1
- package/.claude/skills/brainstorm/SKILL.md +408 -408
- package/.claude/skills/review-cycle/SKILL.md +132 -132
- package/.claude/skills/review-cycle/phases/review-module.md +4 -4
- package/.claude/skills/review-cycle/phases/review-session.md +4 -4
- package/.claude/skills/spec-generator/SKILL.md +1 -1
- package/.claude/skills/team-designer/phases/02-scaffold-generation.md +1 -1
- package/.claude/skills/team-lifecycle-v4/SKILL.md +1 -1
- package/.claude/skills/team-review/SKILL.md +1 -1
- package/.claude/skills/team-ultra-analyze/SKILL.md +1 -1
- package/.claude/skills/workflow-multi-cli-plan/SKILL.md +3 -3
- package/.claude/skills/workflow-plan/SKILL.md +1 -1
- package/.claude/skills/workflow-plan/phases/03-conflict-resolution.md +2 -2
- package/.claude/skills/workflow-plan/phases/05-plan-verify.md +2 -2
- package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +3 -3
- package/.claude/skills/workflow-tdd-plan/phases/04-conflict-resolution.md +2 -2
- package/.claude/skills/workflow-test-fix/SKILL.md +1 -1
- package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +2 -2
- package/.codex/AGENTS.md +16 -0
- package/.codex/skills/analyze-with-file/SKILL.md +966 -966
- package/.codex/skills/issue-discover/SKILL.md +361 -361
- package/.codex/skills/review-cycle/SKILL.md +1 -1
- package/.codex/skills/roadmap-with-file/SKILL.md +901 -901
- package/.codex/skills/spec-generator/SKILL.md +425 -425
- package/.codex/skills/spec-setup/SKILL.md +669 -669
- package/.codex/skills/team-designer/phases/02-scaffold-generation.md +1 -1
- package/.codex/skills/workflow-test-fix-cycle/SKILL.md +402 -402
- package/ccw/dist/tools/index.d.ts.map +1 -1
- package/ccw/dist/tools/index.js +2 -0
- package/ccw/dist/tools/index.js.map +1 -1
- package/ccw/dist/tools/json-builder.d.ts +17 -0
- package/ccw/dist/tools/json-builder.d.ts.map +1 -0
- package/ccw/dist/tools/json-builder.js +746 -0
- package/ccw/dist/tools/json-builder.js.map +1 -0
- package/ccw/dist/tools/schema-registry.d.ts +71 -0
- package/ccw/dist/tools/schema-registry.d.ts.map +1 -0
- package/ccw/dist/tools/schema-registry.js +136 -0
- package/ccw/dist/tools/schema-registry.js.map +1 -0
- package/package.json +1 -1
- package/.claude/skills/team-iterdev/SKILL.md +0 -127
- package/.claude/skills/team-iterdev/roles/architect/role.md +0 -65
- package/.claude/skills/team-iterdev/roles/coordinator/commands/analyze.md +0 -62
- package/.claude/skills/team-iterdev/roles/coordinator/commands/dispatch.md +0 -234
- package/.claude/skills/team-iterdev/roles/coordinator/commands/monitor.md +0 -182
- package/.claude/skills/team-iterdev/roles/coordinator/role.md +0 -153
- package/.claude/skills/team-iterdev/roles/developer/role.md +0 -74
- package/.claude/skills/team-iterdev/roles/reviewer/role.md +0 -66
- package/.claude/skills/team-iterdev/roles/tester/role.md +0 -88
- package/.claude/skills/team-iterdev/specs/pipelines.md +0 -94
- package/.claude/skills/team-iterdev/specs/team-config.json +0 -172
- package/.codex/prompts/prep-cycle.md +0 -416
- package/.codex/prompts/prep-plan.md +0 -371
- package/.codex/skills/team-iterdev/SKILL.md +0 -219
- package/.codex/skills/team-iterdev/roles/architect/role.md +0 -65
- package/.codex/skills/team-iterdev/roles/coordinator/commands/analyze.md +0 -62
- package/.codex/skills/team-iterdev/roles/coordinator/commands/dispatch.md +0 -187
- package/.codex/skills/team-iterdev/roles/coordinator/commands/monitor.md +0 -227
- package/.codex/skills/team-iterdev/roles/coordinator/role.md +0 -193
- package/.codex/skills/team-iterdev/roles/developer/role.md +0 -74
- package/.codex/skills/team-iterdev/roles/reviewer/role.md +0 -66
- package/.codex/skills/team-iterdev/roles/tester/role.md +0 -88
- package/.codex/skills/team-iterdev/specs/pipelines.md +0 -94
- package/.codex/skills/team-iterdev/specs/team-config.json +0 -172
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# Analyze Task
|
|
2
|
-
|
|
3
|
-
Parse iterative development task -> detect capabilities -> assess pipeline complexity -> design roles.
|
|
4
|
-
|
|
5
|
-
**CONSTRAINT**: Text-level analysis only. NO source code reading, NO codebase exploration.
|
|
6
|
-
|
|
7
|
-
## Signal Detection
|
|
8
|
-
|
|
9
|
-
| Keywords | Capability | Role |
|
|
10
|
-
|----------|------------|------|
|
|
11
|
-
| design, architect, restructure, refactor plan | architect | architect |
|
|
12
|
-
| implement, build, code, fix, develop | developer | developer |
|
|
13
|
-
| test, verify, validate, coverage | tester | tester |
|
|
14
|
-
| review, audit, quality, check | reviewer | reviewer |
|
|
15
|
-
|
|
16
|
-
## Pipeline Selection
|
|
17
|
-
|
|
18
|
-
| Signal | Score |
|
|
19
|
-
|--------|-------|
|
|
20
|
-
| Changed files > 10 | +3 |
|
|
21
|
-
| Changed files 3-10 | +2 |
|
|
22
|
-
| Structural change (refactor, architect, restructure) | +3 |
|
|
23
|
-
| Cross-cutting (multiple, across, cross) | +2 |
|
|
24
|
-
| Simple fix (fix, bug, typo, patch) | -2 |
|
|
25
|
-
|
|
26
|
-
| Score | Pipeline |
|
|
27
|
-
|-------|----------|
|
|
28
|
-
| >= 5 | multi-sprint |
|
|
29
|
-
| 2-4 | sprint |
|
|
30
|
-
| 0-1 | patch |
|
|
31
|
-
|
|
32
|
-
## Dependency Graph
|
|
33
|
-
|
|
34
|
-
Natural ordering tiers:
|
|
35
|
-
- Tier 0: architect (design must come first)
|
|
36
|
-
- Tier 1: developer (implementation requires design)
|
|
37
|
-
- Tier 2: tester, reviewer (validation requires artifacts, can run parallel)
|
|
38
|
-
|
|
39
|
-
## Complexity Assessment
|
|
40
|
-
|
|
41
|
-
| Factor | Points |
|
|
42
|
-
|--------|--------|
|
|
43
|
-
| Cross-module changes | +2 |
|
|
44
|
-
| Serial depth > 3 | +1 |
|
|
45
|
-
| Multiple developers needed | +2 |
|
|
46
|
-
| GC loop likely needed | +1 |
|
|
47
|
-
|
|
48
|
-
## Output
|
|
49
|
-
|
|
50
|
-
Write <session>/task-analysis.json:
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"task_description": "<original>",
|
|
54
|
-
"pipeline_type": "<patch|sprint|multi-sprint>",
|
|
55
|
-
"capabilities": [{ "name": "<cap>", "role": "<role>", "keywords": ["..."] }],
|
|
56
|
-
"roles": [{ "name": "<role>", "prefix": "<PREFIX>", "inner_loop": false }],
|
|
57
|
-
"complexity": { "score": 0, "level": "Low|Medium|High" },
|
|
58
|
-
"needs_architecture": true,
|
|
59
|
-
"needs_testing": true,
|
|
60
|
-
"needs_review": true
|
|
61
|
-
}
|
|
62
|
-
```
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
# Command: Dispatch
|
|
2
|
-
|
|
3
|
-
Create the iterative development task chain with correct dependencies and structured task descriptions.
|
|
4
|
-
|
|
5
|
-
## Phase 2: Context Loading
|
|
6
|
-
|
|
7
|
-
| Input | Source | Required |
|
|
8
|
-
|-------|--------|----------|
|
|
9
|
-
| User requirement | From coordinator Phase 1 | Yes |
|
|
10
|
-
| Session folder | From coordinator Phase 2 | Yes |
|
|
11
|
-
| Pipeline definition | From SKILL.md Pipeline Definitions | Yes |
|
|
12
|
-
| Pipeline mode | From tasks.json `pipeline_mode` | Yes |
|
|
13
|
-
|
|
14
|
-
1. Load user requirement and scope from tasks.json
|
|
15
|
-
2. Load pipeline stage definitions from SKILL.md Task Metadata Registry
|
|
16
|
-
3. Read `pipeline_mode` from tasks.json (patch / sprint / multi-sprint)
|
|
17
|
-
|
|
18
|
-
## Phase 3: Task Chain Creation
|
|
19
|
-
|
|
20
|
-
### Task Entry Template
|
|
21
|
-
|
|
22
|
-
Each task in tasks.json `tasks` object:
|
|
23
|
-
```json
|
|
24
|
-
{
|
|
25
|
-
"<TASK-ID>": {
|
|
26
|
-
"title": "<concise title>",
|
|
27
|
-
"description": "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>\nTASK:\n - <step 1: specific action>\n - <step 2: specific action>\n - <step 3: specific action>\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Upstream artifacts: <artifact-1>, <artifact-2>\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: <deliverable path> + <quality criteria>\nCONSTRAINTS: <scope limits, focus areas>\n---\nInnerLoop: <true|false>",
|
|
28
|
-
"role": "<role-name>",
|
|
29
|
-
"prefix": "<PREFIX>",
|
|
30
|
-
"deps": ["<dependency-list>"],
|
|
31
|
-
"status": "pending",
|
|
32
|
-
"findings": "",
|
|
33
|
-
"error": ""
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Mode Router
|
|
39
|
-
|
|
40
|
-
| Mode | Action |
|
|
41
|
-
|------|--------|
|
|
42
|
-
| `patch` | Create DEV-001 + VERIFY-001 |
|
|
43
|
-
| `sprint` | Create DESIGN-001 + DEV-001 + VERIFY-001 + REVIEW-001 |
|
|
44
|
-
| `multi-sprint` | Create Sprint 1 chain, subsequent sprints created dynamically |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
### Patch Pipeline
|
|
49
|
-
|
|
50
|
-
**DEV-001** (developer):
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"DEV-001": {
|
|
54
|
-
"title": "Implement fix",
|
|
55
|
-
"description": "PURPOSE: Implement fix | Success: Fix applied, syntax clean\nTASK:\n - Load target files and understand context\n - Apply fix changes\n - Validate syntax\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: Modified source files + <session>/code/dev-log.md | Syntax clean\nCONSTRAINTS: Minimal changes | Preserve existing behavior\n---\nInnerLoop: true",
|
|
56
|
-
"role": "developer",
|
|
57
|
-
"prefix": "DEV",
|
|
58
|
-
"deps": [],
|
|
59
|
-
"status": "pending",
|
|
60
|
-
"findings": "",
|
|
61
|
-
"error": ""
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**VERIFY-001** (tester):
|
|
67
|
-
```json
|
|
68
|
-
{
|
|
69
|
-
"VERIFY-001": {
|
|
70
|
-
"title": "Verify fix correctness",
|
|
71
|
-
"description": "PURPOSE: Verify fix correctness | Success: Tests pass, no regressions\nTASK:\n - Detect test framework\n - Run targeted tests for changed files\n - Run regression test suite\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Upstream artifacts: code/dev-log.md\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: <session>/verify/verify-001.json | Pass rate >= 95%\nCONSTRAINTS: Focus on changed files | Report any regressions\n---\nInnerLoop: false",
|
|
72
|
-
"role": "tester",
|
|
73
|
-
"prefix": "VERIFY",
|
|
74
|
-
"deps": ["DEV-001"],
|
|
75
|
-
"status": "pending",
|
|
76
|
-
"findings": "",
|
|
77
|
-
"error": ""
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
### Sprint Pipeline
|
|
85
|
-
|
|
86
|
-
**DESIGN-001** (architect):
|
|
87
|
-
```json
|
|
88
|
-
{
|
|
89
|
-
"DESIGN-001": {
|
|
90
|
-
"title": "Technical design and task breakdown",
|
|
91
|
-
"description": "PURPOSE: Technical design and task breakdown | Success: Design document + task breakdown ready\nTASK:\n - Explore codebase for patterns and dependencies\n - Create component design with integration points\n - Break down into implementable tasks with acceptance criteria\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: <session>/design/design-001.md + <session>/design/task-breakdown.json | Components defined, tasks actionable\nCONSTRAINTS: Focus on <task-scope> | Risk assessment required\n---\nInnerLoop: false",
|
|
92
|
-
"role": "architect",
|
|
93
|
-
"prefix": "DESIGN",
|
|
94
|
-
"deps": [],
|
|
95
|
-
"status": "pending",
|
|
96
|
-
"findings": "",
|
|
97
|
-
"error": ""
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**DEV-001** (developer):
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"DEV-001": {
|
|
106
|
-
"title": "Implement design",
|
|
107
|
-
"description": "PURPOSE: Implement design | Success: All design tasks implemented, syntax clean\nTASK:\n - Load design and task breakdown\n - Implement tasks in execution order\n - Validate syntax after changes\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Upstream artifacts: design/design-001.md, design/task-breakdown.json\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: Modified source files + <session>/code/dev-log.md | Syntax clean, all tasks done\nCONSTRAINTS: Follow design | Preserve existing behavior | Follow code conventions\n---\nInnerLoop: true",
|
|
108
|
-
"role": "developer",
|
|
109
|
-
"prefix": "DEV",
|
|
110
|
-
"deps": ["DESIGN-001"],
|
|
111
|
-
"status": "pending",
|
|
112
|
-
"findings": "",
|
|
113
|
-
"error": ""
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**VERIFY-001** (tester, parallel with REVIEW-001):
|
|
119
|
-
```json
|
|
120
|
-
{
|
|
121
|
-
"VERIFY-001": {
|
|
122
|
-
"title": "Verify implementation",
|
|
123
|
-
"description": "PURPOSE: Verify implementation | Success: Tests pass, no regressions\nTASK:\n - Detect test framework\n - Run tests for changed files\n - Run regression test suite\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Upstream artifacts: code/dev-log.md\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: <session>/verify/verify-001.json | Pass rate >= 95%\nCONSTRAINTS: Focus on changed files | Report regressions\n---\nInnerLoop: false",
|
|
124
|
-
"role": "tester",
|
|
125
|
-
"prefix": "VERIFY",
|
|
126
|
-
"deps": ["DEV-001"],
|
|
127
|
-
"status": "pending",
|
|
128
|
-
"findings": "",
|
|
129
|
-
"error": ""
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**REVIEW-001** (reviewer, parallel with VERIFY-001):
|
|
135
|
-
```json
|
|
136
|
-
{
|
|
137
|
-
"REVIEW-001": {
|
|
138
|
-
"title": "Code review for correctness and quality",
|
|
139
|
-
"description": "PURPOSE: Code review for correctness and quality | Success: All dimensions reviewed, verdict issued\nTASK:\n - Load changed files and design document\n - Review across 4 dimensions: correctness, completeness, maintainability, security\n - Score quality (1-10) and issue verdict\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Upstream artifacts: design/design-001.md, code/dev-log.md\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: <session>/review/review-001.md | Per-dimension findings with severity\nCONSTRAINTS: Focus on implementation changes | Provide file:line references\n---\nInnerLoop: false",
|
|
140
|
-
"role": "reviewer",
|
|
141
|
-
"prefix": "REVIEW",
|
|
142
|
-
"deps": ["DEV-001"],
|
|
143
|
-
"status": "pending",
|
|
144
|
-
"findings": "",
|
|
145
|
-
"error": ""
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
### Multi-Sprint Pipeline
|
|
153
|
-
|
|
154
|
-
Sprint 1: DESIGN-001 -> DEV-001 -> DEV-002(incremental) -> VERIFY-001 -> DEV-fix -> REVIEW-001
|
|
155
|
-
|
|
156
|
-
Create Sprint 1 tasks using sprint templates above, plus:
|
|
157
|
-
|
|
158
|
-
**DEV-002** (developer, incremental):
|
|
159
|
-
```json
|
|
160
|
-
{
|
|
161
|
-
"DEV-002": {
|
|
162
|
-
"title": "Incremental implementation",
|
|
163
|
-
"description": "PURPOSE: Incremental implementation | Success: Remaining tasks implemented\nTASK:\n - Load remaining tasks from breakdown\n - Implement incrementally\n - Validate syntax\nCONTEXT:\n - Session: <session-folder>\n - Scope: <task-scope>\n - Upstream artifacts: design/task-breakdown.json, code/dev-log.md\n - Shared memory: <session>/.msg/meta.json\nEXPECTED: Modified source files + updated dev-log.md\nCONSTRAINTS: Incremental delivery | Follow existing patterns\n---\nInnerLoop: true",
|
|
164
|
-
"role": "developer",
|
|
165
|
-
"prefix": "DEV",
|
|
166
|
-
"deps": ["DEV-001"],
|
|
167
|
-
"status": "pending",
|
|
168
|
-
"findings": "",
|
|
169
|
-
"error": ""
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Subsequent sprints created dynamically after Sprint N completes.
|
|
175
|
-
|
|
176
|
-
## Phase 4: Validation
|
|
177
|
-
|
|
178
|
-
Verify task chain integrity:
|
|
179
|
-
|
|
180
|
-
| Check | Method | Expected |
|
|
181
|
-
|-------|--------|----------|
|
|
182
|
-
| Task count correct | tasks.json count | patch: 2, sprint: 4, multi: 5+ |
|
|
183
|
-
| Dependencies correct | Trace deps graph | Acyclic, correct ordering |
|
|
184
|
-
| No circular dependencies | Trace full graph | Acyclic |
|
|
185
|
-
| Structured descriptions | Each has PURPOSE/TASK/CONTEXT/EXPECTED | All present |
|
|
186
|
-
|
|
187
|
-
If validation fails, fix the specific task and re-validate.
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
# Command: Monitor
|
|
2
|
-
|
|
3
|
-
Synchronous pipeline coordination using spawn_agent + wait_agent.
|
|
4
|
-
|
|
5
|
-
## Constants
|
|
6
|
-
|
|
7
|
-
- WORKER_AGENT: team_worker
|
|
8
|
-
- MAX_GC_ROUNDS: 3
|
|
9
|
-
|
|
10
|
-
## Handler Router
|
|
11
|
-
|
|
12
|
-
| Source | Handler |
|
|
13
|
-
|--------|---------|
|
|
14
|
-
| "capability_gap" | handleAdapt |
|
|
15
|
-
| "check" or "status" | handleCheck |
|
|
16
|
-
| "resume" or "continue" | handleResume |
|
|
17
|
-
| All tasks completed | handleComplete |
|
|
18
|
-
| Default | handleSpawnNext |
|
|
19
|
-
|
|
20
|
-
## Phase 2: Context Loading
|
|
21
|
-
|
|
22
|
-
| Input | Source | Required |
|
|
23
|
-
|-------|--------|----------|
|
|
24
|
-
| Session state | tasks.json | Yes |
|
|
25
|
-
| Trigger event | From Entry Router detection | Yes |
|
|
26
|
-
| Meta state | <session>/.msg/meta.json | Yes |
|
|
27
|
-
|
|
28
|
-
1. Load tasks.json for current state, pipeline_mode, gc_round, max_gc_rounds
|
|
29
|
-
2. Read tasks from tasks.json to get current task statuses
|
|
30
|
-
3. Identify trigger event type from Entry Router
|
|
31
|
-
|
|
32
|
-
## Phase 3: Event Handlers
|
|
33
|
-
|
|
34
|
-
### handleCallback
|
|
35
|
-
|
|
36
|
-
Triggered when a worker completes (wait_agent returns).
|
|
37
|
-
|
|
38
|
-
1. Determine role from completed task prefix:
|
|
39
|
-
|
|
40
|
-
| Task Prefix | Role Detection |
|
|
41
|
-
|-------------|---------------|
|
|
42
|
-
| `DESIGN-*` | architect |
|
|
43
|
-
| `DEV-*` | developer |
|
|
44
|
-
| `VERIFY-*` | tester |
|
|
45
|
-
| `REVIEW-*` | reviewer |
|
|
46
|
-
|
|
47
|
-
2. Mark task as completed in tasks.json:
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
state.tasks[taskId].status = 'completed'
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
3. Record completion in session state and update metrics
|
|
54
|
-
|
|
55
|
-
4. **Generator-Critic check** (when reviewer completes):
|
|
56
|
-
- If completed task is REVIEW-* AND pipeline is sprint or multi-sprint:
|
|
57
|
-
- Read review report for GC signal (critical_count, score)
|
|
58
|
-
- Read tasks.json for gc_round
|
|
59
|
-
|
|
60
|
-
| GC Signal | gc_round < max | Action |
|
|
61
|
-
|-----------|----------------|--------|
|
|
62
|
-
| review.critical_count > 0 OR review.score < 7 | Yes | Increment gc_round, create DEV-fix task in tasks.json with deps on this REVIEW, log `gc_loop_trigger` |
|
|
63
|
-
| review.critical_count > 0 OR review.score < 7 | No (>= max) | Force convergence, accept with warning, log to wisdom/issues.md |
|
|
64
|
-
| review.critical_count == 0 AND review.score >= 7 | - | Review passed, proceed to handleComplete check |
|
|
65
|
-
|
|
66
|
-
- Log team_msg with type "gc_loop_trigger" or "task_unblocked"
|
|
67
|
-
|
|
68
|
-
5. Proceed to handleSpawnNext
|
|
69
|
-
|
|
70
|
-
### handleSpawnNext
|
|
71
|
-
|
|
72
|
-
Find and spawn the next ready tasks.
|
|
73
|
-
|
|
74
|
-
1. Read tasks.json, find tasks where:
|
|
75
|
-
- Status is "pending"
|
|
76
|
-
- All deps tasks have status "completed"
|
|
77
|
-
|
|
78
|
-
2. For each ready task, determine role from task prefix:
|
|
79
|
-
|
|
80
|
-
| Task Prefix | Role | Inner Loop |
|
|
81
|
-
|-------------|------|------------|
|
|
82
|
-
| DESIGN-* | architect | false |
|
|
83
|
-
| DEV-* | developer | true |
|
|
84
|
-
| VERIFY-* | tester | false |
|
|
85
|
-
| REVIEW-* | reviewer | false |
|
|
86
|
-
|
|
87
|
-
3. Spawn team_worker:
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
// 1) Update status in tasks.json
|
|
91
|
-
state.tasks[taskId].status = 'in_progress'
|
|
92
|
-
|
|
93
|
-
// 2) Spawn worker
|
|
94
|
-
const agentId = spawn_agent({
|
|
95
|
-
agent_type: "team_worker",
|
|
96
|
-
task_name: taskId, // e.g., "DEV-001" — enables named targeting
|
|
97
|
-
items: [
|
|
98
|
-
{ type: "text", text: `## Role Assignment
|
|
99
|
-
role: ${role}
|
|
100
|
-
role_spec: ${skillRoot}/roles/${role}/role.md
|
|
101
|
-
session: ${sessionFolder}
|
|
102
|
-
session_id: ${sessionId}
|
|
103
|
-
requirement: ${taskDescription}
|
|
104
|
-
inner_loop: ${innerLoop}` },
|
|
105
|
-
|
|
106
|
-
{ type: "text", text: `Read role_spec file to load Phase 2-4 domain instructions.
|
|
107
|
-
Execute built-in Phase 1 -> role-spec Phase 2-4 -> built-in Phase 5.` }
|
|
108
|
-
]
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
// 3) Track agent
|
|
112
|
-
state.active_agents[taskId] = { agentId, role, started_at: now }
|
|
113
|
-
|
|
114
|
-
// 4) Wait for completion — use task_name for stable targeting (v4)
|
|
115
|
-
const waitResult = wait_agent({ targets: [taskId], timeout_ms: 900000 })
|
|
116
|
-
if (waitResult.timed_out) {
|
|
117
|
-
state.tasks[taskId].status = 'timed_out'
|
|
118
|
-
close_agent({ target: taskId })
|
|
119
|
-
delete state.active_agents[taskId]
|
|
120
|
-
// Report timeout, STOP
|
|
121
|
-
} else {
|
|
122
|
-
// 5) Collect results and update tasks.json
|
|
123
|
-
state.tasks[taskId].status = 'completed'
|
|
124
|
-
close_agent({ target: taskId }) // Use task_name, not agentId
|
|
125
|
-
delete state.active_agents[taskId]
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
4. **Parallel spawn rules**:
|
|
130
|
-
|
|
131
|
-
| Pipeline | Scenario | Spawn Behavior |
|
|
132
|
-
|----------|----------|---------------|
|
|
133
|
-
| Patch | DEV -> VERIFY | One worker at a time |
|
|
134
|
-
| Sprint | VERIFY + REVIEW both unblocked | Spawn BOTH in parallel, wait_agent for both |
|
|
135
|
-
| Sprint | Other stages | One worker at a time |
|
|
136
|
-
| Multi-Sprint | VERIFY + DEV-fix both unblocked | Spawn BOTH in parallel, wait_agent for both |
|
|
137
|
-
| Multi-Sprint | Other stages | One worker at a time |
|
|
138
|
-
|
|
139
|
-
**Cross-Agent Supplementary Context** (v4):
|
|
140
|
-
|
|
141
|
-
When spawning workers in a later pipeline phase, send upstream results as supplementary context to already-running workers:
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
// Example: Send design results to running developer
|
|
145
|
-
send_message({
|
|
146
|
-
target: "<running-agent-task-name>",
|
|
147
|
-
items: [{ type: "text", text: `## Supplementary Context\n${upstreamFindings}` }]
|
|
148
|
-
})
|
|
149
|
-
// Note: send_message queues info without interrupting the agent's current work
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Use `send_message` (not `assign_task`) for supplementary info that enriches but doesn't redirect the agent's current task.
|
|
153
|
-
|
|
154
|
-
5. STOP after processing -- wait for next event
|
|
155
|
-
|
|
156
|
-
### handleCheck
|
|
157
|
-
|
|
158
|
-
Output current pipeline status from tasks.json. Do NOT advance pipeline.
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
Pipeline Status (<pipeline-mode>):
|
|
162
|
-
[DONE] DESIGN-001 (architect) -> design/design-001.md
|
|
163
|
-
[DONE] DEV-001 (developer) -> code/dev-log.md
|
|
164
|
-
[RUN] VERIFY-001 (tester) -> verifying...
|
|
165
|
-
[RUN] REVIEW-001 (reviewer) -> reviewing...
|
|
166
|
-
[WAIT] DEV-fix (developer) -> blocked by REVIEW-001
|
|
167
|
-
|
|
168
|
-
GC Rounds: <gc_round>/<max_gc_rounds>
|
|
169
|
-
Sprint: <sprint_id>
|
|
170
|
-
Session: <session-id>
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### handleResume
|
|
174
|
-
|
|
175
|
-
**Agent Health Check** (v4):
|
|
176
|
-
```
|
|
177
|
-
// Verify actual running agents match session state
|
|
178
|
-
const runningAgents = list_agents({})
|
|
179
|
-
// For each active_agent in tasks.json:
|
|
180
|
-
// - If agent NOT in runningAgents -> agent crashed
|
|
181
|
-
// - Reset that task to pending, remove from active_agents
|
|
182
|
-
// This prevents stale agent references from blocking the pipeline
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Resume pipeline after user pause or interruption.
|
|
186
|
-
|
|
187
|
-
1. Audit tasks.json for inconsistencies:
|
|
188
|
-
- Tasks stuck in "in_progress" -> reset to "pending"
|
|
189
|
-
- Tasks with completed deps but still "pending" -> include in spawn list
|
|
190
|
-
2. Proceed to handleSpawnNext
|
|
191
|
-
|
|
192
|
-
### handleComplete
|
|
193
|
-
|
|
194
|
-
**Cleanup Verification** (v4):
|
|
195
|
-
```
|
|
196
|
-
// Verify all agents are properly closed
|
|
197
|
-
const remaining = list_agents({})
|
|
198
|
-
// If any team agents still running -> close_agent each
|
|
199
|
-
// Ensures clean session shutdown
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
Triggered when all pipeline tasks are completed.
|
|
203
|
-
|
|
204
|
-
**Completion check by mode**:
|
|
205
|
-
|
|
206
|
-
| Mode | Completion Condition |
|
|
207
|
-
|------|---------------------|
|
|
208
|
-
| patch | DEV-001 + VERIFY-001 completed |
|
|
209
|
-
| sprint | DESIGN-001 + DEV-001 + VERIFY-001 + REVIEW-001 (+ any GC tasks) completed |
|
|
210
|
-
| multi-sprint | All sprint tasks (+ any GC tasks) completed |
|
|
211
|
-
|
|
212
|
-
1. Verify all tasks completed in tasks.json
|
|
213
|
-
2. If any tasks not completed, return to handleSpawnNext
|
|
214
|
-
3. **Multi-sprint check**: If multi-sprint AND more sprints planned:
|
|
215
|
-
- Record sprint metrics to .msg/meta.json sprint_history
|
|
216
|
-
- Evaluate downgrade eligibility (velocity >= expected, review avg >= 8)
|
|
217
|
-
- Pause for user confirmation before Sprint N+1
|
|
218
|
-
4. If all completed, transition to coordinator Phase 5 (Report + Completion Action)
|
|
219
|
-
|
|
220
|
-
## Phase 4: State Persistence
|
|
221
|
-
|
|
222
|
-
After every handler execution:
|
|
223
|
-
|
|
224
|
-
1. Update tasks.json with current state (gc_round, last event, active tasks)
|
|
225
|
-
2. Update .msg/meta.json gc_round if changed
|
|
226
|
-
3. Verify task list consistency
|
|
227
|
-
4. STOP and wait for next event
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
# Coordinator Role
|
|
2
|
-
|
|
3
|
-
Orchestrate team-iterdev: analyze -> dispatch -> spawn -> monitor -> report.
|
|
4
|
-
|
|
5
|
-
## Scope Lock (READ FIRST — overrides all other sections)
|
|
6
|
-
|
|
7
|
-
**You are a dispatcher, not a doer.** Your ONLY outputs are:
|
|
8
|
-
- Session state files (`.workflow/.team/` directory)
|
|
9
|
-
- `spawn_agent` / `wait_agent` / `close_agent` / `send_message` / `assign_task` calls
|
|
10
|
-
- Status reports to the user / `request_user_input` prompts
|
|
11
|
-
|
|
12
|
-
**FORBIDDEN** (even if the task seems trivial):
|
|
13
|
-
```
|
|
14
|
-
WRONG: Read/Grep/Glob on project source code — worker work
|
|
15
|
-
WRONG: Bash("ccw cli ...") — worker work
|
|
16
|
-
WRONG: Edit/Write on project source files — worker work
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work → STOP → spawn worker."
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Identity
|
|
24
|
-
- Name: coordinator | Tag: [coordinator]
|
|
25
|
-
- Responsibility: Analyze task -> Create session -> Dispatch tasks -> Monitor progress -> Report results
|
|
26
|
-
|
|
27
|
-
## Boundaries
|
|
28
|
-
|
|
29
|
-
### MUST
|
|
30
|
-
- Use `team_worker` agent type for all worker spawns (NOT `general-purpose`)
|
|
31
|
-
- Follow Command Execution Protocol for dispatch and monitor commands
|
|
32
|
-
- Respect pipeline stage dependencies (deps)
|
|
33
|
-
- Stop after spawning workers -- wait for results via wait_agent
|
|
34
|
-
- Handle developer<->reviewer GC loop (max 3 rounds)
|
|
35
|
-
- Maintain tasks.json for real-time progress
|
|
36
|
-
- Execute completion action in Phase 5
|
|
37
|
-
- **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
|
|
38
|
-
- Use `send_message` for supplementary context (non-interrupting) and `assign_task` for triggering new work
|
|
39
|
-
- Use `list_agents` for session resume health checks and cleanup verification
|
|
40
|
-
|
|
41
|
-
### MUST NOT
|
|
42
|
-
- Implement domain logic (designing, coding, testing, reviewing) -- workers handle this
|
|
43
|
-
- Spawn workers without creating tasks first
|
|
44
|
-
- Write source code directly
|
|
45
|
-
- Force-advance pipeline past failed review/validation
|
|
46
|
-
- Modify task outputs (workers own their deliverables)
|
|
47
|
-
- Call CLI tools (ccw cli) — only workers use CLI
|
|
48
|
-
|
|
49
|
-
## Command Execution Protocol
|
|
50
|
-
|
|
51
|
-
When coordinator needs to execute a command:
|
|
52
|
-
1. Read `commands/<command>.md`
|
|
53
|
-
2. Follow the workflow defined in the command
|
|
54
|
-
3. Commands are inline execution guides, NOT separate agents
|
|
55
|
-
4. Execute synchronously, complete before proceeding
|
|
56
|
-
|
|
57
|
-
## Entry Router
|
|
58
|
-
|
|
59
|
-
| Detection | Condition | Handler |
|
|
60
|
-
|-----------|-----------|---------|
|
|
61
|
-
| Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
|
|
62
|
-
| Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
|
|
63
|
-
| Pipeline complete | All tasks completed | -> handleComplete (monitor.md) |
|
|
64
|
-
| Interrupted session | Active/paused session in .workflow/.team/IDS-* | -> Phase 0 |
|
|
65
|
-
| New session | None of above | -> Phase 1 |
|
|
66
|
-
|
|
67
|
-
For check/resume/complete: load @commands/monitor.md, execute handler, STOP.
|
|
68
|
-
|
|
69
|
-
## Phase 0: Session Resume Check
|
|
70
|
-
|
|
71
|
-
1. Scan `.workflow/.team/IDS-*/tasks.json` for active/paused sessions
|
|
72
|
-
2. No sessions -> Phase 1
|
|
73
|
-
3. Single session -> reconcile (read tasks.json, reset in_progress->pending, kick first ready task)
|
|
74
|
-
4. Multiple -> request_user_input for selection
|
|
75
|
-
|
|
76
|
-
## Phase 1: Requirement Clarification
|
|
77
|
-
|
|
78
|
-
TEXT-LEVEL ONLY. No source code reading.
|
|
79
|
-
|
|
80
|
-
1. Parse user task description from $ARGUMENTS
|
|
81
|
-
2. Delegate to @commands/analyze.md
|
|
82
|
-
3. Assess complexity for pipeline selection:
|
|
83
|
-
|
|
84
|
-
| Signal | Weight |
|
|
85
|
-
|--------|--------|
|
|
86
|
-
| Changed files > 10 | +3 |
|
|
87
|
-
| Changed files 3-10 | +2 |
|
|
88
|
-
| Structural change (refactor, architect, restructure) | +3 |
|
|
89
|
-
| Cross-cutting (multiple, across, cross) | +2 |
|
|
90
|
-
| Simple fix (fix, bug, typo, patch) | -2 |
|
|
91
|
-
|
|
92
|
-
| Score | Pipeline |
|
|
93
|
-
|-------|----------|
|
|
94
|
-
| >= 5 | multi-sprint |
|
|
95
|
-
| 2-4 | sprint |
|
|
96
|
-
| 0-1 | patch |
|
|
97
|
-
|
|
98
|
-
4. Ask for missing parameters via request_user_input (mode selection)
|
|
99
|
-
5. Record requirement with scope, pipeline mode
|
|
100
|
-
6. CRITICAL: Always proceed to Phase 2, never skip team workflow
|
|
101
|
-
|
|
102
|
-
## Phase 2: Session & Team Setup
|
|
103
|
-
|
|
104
|
-
1. Resolve workspace paths (MUST do first):
|
|
105
|
-
- `project_root` = result of `Bash({ command: "pwd" })`
|
|
106
|
-
- `skill_root` = `<project_root>/.codex/skills/team-iterdev`
|
|
107
|
-
2. Generate session ID: `IDS-<slug>-<YYYY-MM-DD>`
|
|
108
|
-
3. Create session folder structure:
|
|
109
|
-
```
|
|
110
|
-
mkdir -p .workflow/.team/<session-id>/{design,code,verify,review,wisdom}
|
|
111
|
-
```
|
|
112
|
-
4. Read specs/pipelines.md -> select pipeline based on complexity
|
|
113
|
-
5. Initialize wisdom directory (learnings.md, decisions.md, conventions.md, issues.md)
|
|
114
|
-
6. Write initial tasks.json:
|
|
115
|
-
```json
|
|
116
|
-
{
|
|
117
|
-
"session_id": "<id>",
|
|
118
|
-
"pipeline_mode": "<patch|sprint|multi-sprint>",
|
|
119
|
-
"requirement": "<original requirement>",
|
|
120
|
-
"created_at": "<ISO timestamp>",
|
|
121
|
-
"gc_round": 0,
|
|
122
|
-
"max_gc_rounds": 3,
|
|
123
|
-
"active_agents": {},
|
|
124
|
-
"tasks": {}
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
7. Initialize meta.json with pipeline metadata:
|
|
128
|
-
```typescript
|
|
129
|
-
mcp__ccw-tools__team_msg({
|
|
130
|
-
operation: "log", session_id: "<id>", from: "coordinator",
|
|
131
|
-
type: "state_update", summary: "Session initialized",
|
|
132
|
-
data: {
|
|
133
|
-
pipeline_mode: "<patch|sprint|multi-sprint>",
|
|
134
|
-
pipeline_stages: ["architect", "developer", "tester", "reviewer"],
|
|
135
|
-
roles: ["coordinator", "architect", "developer", "tester", "reviewer"]
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Phase 3: Task Chain Creation
|
|
141
|
-
|
|
142
|
-
Delegate to @commands/dispatch.md:
|
|
143
|
-
1. Read specs/pipelines.md for selected pipeline task registry
|
|
144
|
-
2. Add task entries to tasks.json `tasks` object with deps
|
|
145
|
-
3. Update tasks.json metadata
|
|
146
|
-
|
|
147
|
-
## Phase 4: Spawn-and-Wait
|
|
148
|
-
|
|
149
|
-
Delegate to @commands/monitor.md#handleSpawnNext:
|
|
150
|
-
1. Find ready tasks (pending + all deps resolved)
|
|
151
|
-
2. Spawn team_worker agents via spawn_agent, wait_agent for results
|
|
152
|
-
3. Output status summary
|
|
153
|
-
4. STOP
|
|
154
|
-
|
|
155
|
-
## Phase 5: Report + Completion Action
|
|
156
|
-
|
|
157
|
-
1. Load session state -> count completed tasks, calculate duration
|
|
158
|
-
2. Record sprint learning to .msg/meta.json sprint_history
|
|
159
|
-
3. List deliverables:
|
|
160
|
-
|
|
161
|
-
| Deliverable | Path |
|
|
162
|
-
|-------------|------|
|
|
163
|
-
| Design Document | <session>/design/design-001.md |
|
|
164
|
-
| Task Breakdown | <session>/design/task-breakdown.json |
|
|
165
|
-
| Dev Log | <session>/code/dev-log.md |
|
|
166
|
-
| Verification Results | <session>/verify/verify-001.json |
|
|
167
|
-
| Review Report | <session>/review/review-001.md |
|
|
168
|
-
|
|
169
|
-
4. Execute completion action per session.completion_action:
|
|
170
|
-
- interactive -> request_user_input (Archive/Keep/Export)
|
|
171
|
-
- auto_archive -> Archive & Clean (status=completed)
|
|
172
|
-
- auto_keep -> Keep Active (status=paused)
|
|
173
|
-
|
|
174
|
-
## v4 Coordination Patterns
|
|
175
|
-
|
|
176
|
-
### Message Semantics
|
|
177
|
-
- **send_message**: Queue supplementary info to a running agent. Does NOT interrupt current processing. Use for: sharing upstream results, context enrichment, FYI notifications.
|
|
178
|
-
- **assign_task**: Assign new work and trigger processing. Use for: waking idle agents, redirecting work, requesting new output.
|
|
179
|
-
|
|
180
|
-
### Agent Lifecycle Management
|
|
181
|
-
- **list_agents({})**: Returns all running agents. Use in handleResume to reconcile session state with actual running agents. Use in handleComplete to verify clean shutdown.
|
|
182
|
-
- **Named targeting**: Workers spawned with `task_name: "<task-id>"` can be addressed by name in send_message, assign_task, and close_agent calls.
|
|
183
|
-
|
|
184
|
-
## Error Handling
|
|
185
|
-
|
|
186
|
-
| Error | Resolution |
|
|
187
|
-
|-------|------------|
|
|
188
|
-
| Task too vague | request_user_input for clarification |
|
|
189
|
-
| Session corruption | Attempt recovery, fallback to manual |
|
|
190
|
-
| Worker crash | Reset task to pending, respawn |
|
|
191
|
-
| GC loop exceeds 3 rounds | Accept with warning, record in shared memory |
|
|
192
|
-
| Sprint velocity drops below 50% | Alert user, suggest scope reduction |
|
|
193
|
-
| Task ledger corrupted | Rebuild from tasks.json state |
|