claude-code-workflow 7.2.23 → 7.2.25
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/skills/brainstorm/SKILL.md +408 -408
- package/.claude/skills/review-cycle/SKILL.md +132 -132
- 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 +1 -1
- package/.claude/skills/workflow-plan/SKILL.md +1 -1
- package/.claude/skills/workflow-test-fix/SKILL.md +1 -1
- 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-arch-opt/SKILL.md +242 -175
- package/.codex/skills/team-arch-opt/roles/analyzer/role.md +78 -78
- package/.codex/skills/team-arch-opt/roles/coordinator/commands/analyze.md +57 -57
- package/.codex/skills/team-arch-opt/roles/coordinator/commands/monitor.md +246 -204
- package/.codex/skills/team-arch-opt/roles/coordinator/role.md +196 -184
- package/.codex/skills/team-arch-opt/roles/designer/role.md +115 -115
- package/.codex/skills/team-arch-opt/roles/refactorer/role.md +102 -102
- package/.codex/skills/team-arch-opt/roles/reviewer/role.md +111 -111
- package/.codex/skills/team-arch-opt/roles/validator/role.md +115 -115
- package/.codex/skills/team-arch-opt/specs/pipelines.md +102 -102
- package/.codex/skills/team-brainstorm/SKILL.md +72 -4
- package/.codex/skills/team-brainstorm/roles/challenger/role.md +61 -61
- package/.codex/skills/team-brainstorm/roles/coordinator/commands/analyze.md +58 -58
- package/.codex/skills/team-brainstorm/roles/coordinator/commands/monitor.md +212 -171
- package/.codex/skills/team-brainstorm/roles/coordinator/role.md +172 -160
- package/.codex/skills/team-brainstorm/roles/evaluator/role.md +56 -56
- package/.codex/skills/team-brainstorm/roles/ideator/role.md +69 -69
- package/.codex/skills/team-brainstorm/roles/synthesizer/role.md +57 -57
- package/.codex/skills/team-brainstorm/specs/pipelines.md +72 -72
- package/.codex/skills/team-coordinate/SKILL.md +71 -3
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +45 -5
- package/.codex/skills/team-coordinate/roles/coordinator/role.md +402 -389
- package/.codex/skills/team-coordinate/specs/knowledge-transfer.md +111 -111
- package/.codex/skills/team-coordinate/specs/pipelines.md +97 -97
- package/.codex/skills/team-coordinate/specs/quality-gates.md +112 -112
- package/.codex/skills/team-designer/SKILL.md +153 -153
- package/.codex/skills/team-designer/phases/01-requirements-analysis.md +250 -250
- package/.codex/skills/team-designer/phases/02-scaffold-generation.md +228 -228
- package/.codex/skills/team-designer/phases/03-content-generation.md +330 -330
- package/.codex/skills/team-designer/phases/04-validation.md +320 -320
- package/.codex/skills/team-executor/SKILL.md +29 -2
- package/.codex/skills/team-executor/roles/executor/commands/monitor.md +23 -15
- package/.codex/skills/team-frontend/SKILL.md +77 -3
- package/.codex/skills/team-frontend/roles/analyst/role.md +92 -92
- package/.codex/skills/team-frontend/roles/architect/role.md +86 -86
- package/.codex/skills/team-frontend/roles/coordinator/commands/analyze.md +52 -52
- package/.codex/skills/team-frontend/roles/coordinator/commands/monitor.md +222 -188
- package/.codex/skills/team-frontend/roles/coordinator/role.md +189 -177
- package/.codex/skills/team-frontend/roles/developer/role.md +93 -93
- package/.codex/skills/team-frontend/roles/qa/role.md +79 -79
- package/.codex/skills/team-frontend/specs/pipelines.md +76 -76
- package/.codex/skills/team-frontend-debug/SKILL.md +66 -3
- package/.codex/skills/team-frontend-debug/roles/analyzer/role.md +208 -208
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +174 -174
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/dispatch.md +198 -198
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/monitor.md +177 -143
- package/.codex/skills/team-frontend-debug/roles/coordinator/role.md +164 -152
- package/.codex/skills/team-frontend-debug/roles/fixer/role.md +147 -147
- package/.codex/skills/team-frontend-debug/roles/reproducer/role.md +147 -147
- package/.codex/skills/team-frontend-debug/roles/tester/role.md +231 -231
- package/.codex/skills/team-frontend-debug/roles/verifier/role.md +172 -172
- package/.codex/skills/team-frontend-debug/specs/debug-tools.md +215 -215
- package/.codex/skills/team-frontend-debug/specs/pipelines.md +94 -94
- package/.codex/skills/team-issue/SKILL.md +83 -4
- package/.codex/skills/team-issue/roles/coordinator/commands/analyze.md +64 -64
- package/.codex/skills/team-issue/roles/coordinator/commands/dispatch.md +273 -273
- package/.codex/skills/team-issue/roles/coordinator/commands/monitor.md +235 -194
- package/.codex/skills/team-issue/roles/coordinator/role.md +206 -194
- package/.codex/skills/team-issue/roles/explorer/role.md +94 -94
- package/.codex/skills/team-issue/roles/implementer/role.md +87 -87
- package/.codex/skills/team-issue/roles/integrator/role.md +84 -84
- package/.codex/skills/team-issue/roles/planner/role.md +81 -81
- package/.codex/skills/team-issue/roles/reviewer/role.md +86 -86
- package/.codex/skills/team-issue/specs/pipelines.md +124 -124
- package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +6 -6
- package/.codex/skills/team-lifecycle-v4/SKILL.md +305 -242
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +1 -1
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +66 -24
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +13 -1
- package/.codex/skills/team-lifecycle-v4/roles/supervisor/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/templates/architecture.md +254 -254
- package/.codex/skills/team-lifecycle-v4/templates/epics.md +196 -196
- package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +133 -133
- package/.codex/skills/team-lifecycle-v4/templates/requirements.md +224 -224
- package/.codex/skills/team-perf-opt/SKILL.md +68 -3
- package/.codex/skills/team-perf-opt/roles/benchmarker/role.md +89 -89
- package/.codex/skills/team-perf-opt/roles/coordinator/commands/analyze.md +61 -61
- package/.codex/skills/team-perf-opt/roles/coordinator/commands/monitor.md +35 -1
- package/.codex/skills/team-perf-opt/roles/coordinator/role.md +179 -167
- package/.codex/skills/team-perf-opt/roles/optimizer/role.md +97 -97
- package/.codex/skills/team-perf-opt/roles/profiler/role.md +73 -73
- package/.codex/skills/team-perf-opt/roles/reviewer/role.md +75 -75
- package/.codex/skills/team-perf-opt/roles/strategist/role.md +94 -94
- package/.codex/skills/team-perf-opt/specs/pipelines.md +65 -65
- package/.codex/skills/team-planex/SKILL.md +65 -3
- package/.codex/skills/team-planex/roles/coordinator/commands/analyze.md +52 -52
- package/.codex/skills/team-planex/roles/coordinator/commands/monitor.md +210 -164
- package/.codex/skills/team-planex/roles/coordinator/role.md +171 -159
- package/.codex/skills/team-planex/roles/executor/role.md +91 -91
- package/.codex/skills/team-planex/roles/planner/role.md +112 -112
- package/.codex/skills/team-planex/specs/pipelines.md +93 -93
- package/.codex/skills/team-quality-assurance/SKILL.md +60 -3
- package/.codex/skills/team-quality-assurance/roles/analyst/role.md +80 -80
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -72
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +108 -108
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +243 -209
- package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +176 -164
- package/.codex/skills/team-quality-assurance/roles/executor/role.md +66 -66
- package/.codex/skills/team-quality-assurance/roles/generator/role.md +68 -68
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +67 -67
- package/.codex/skills/team-quality-assurance/roles/strategist/role.md +71 -71
- package/.codex/skills/team-quality-assurance/specs/pipelines.md +115 -115
- package/.codex/skills/team-review/SKILL.md +58 -3
- package/.codex/skills/team-review/roles/coordinator/commands/analyze.md +71 -71
- package/.codex/skills/team-review/roles/coordinator/commands/dispatch.md +90 -90
- package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +225 -185
- package/.codex/skills/team-review/roles/coordinator/role.md +175 -163
- package/.codex/skills/team-review/roles/fixer/role.md +76 -76
- package/.codex/skills/team-review/roles/reviewer/role.md +68 -68
- package/.codex/skills/team-review/roles/scanner/role.md +71 -71
- package/.codex/skills/team-review/specs/pipelines.md +102 -102
- package/.codex/skills/team-roadmap-dev/SKILL.md +55 -3
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/analyze.md +61 -61
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/monitor.md +502 -468
- package/.codex/skills/team-roadmap-dev/roles/coordinator/role.md +335 -322
- package/.codex/skills/team-roadmap-dev/roles/executor/role.md +71 -71
- package/.codex/skills/team-roadmap-dev/roles/planner/role.md +76 -76
- package/.codex/skills/team-roadmap-dev/roles/verifier/role.md +74 -74
- package/.codex/skills/team-roadmap-dev/specs/pipelines.md +93 -93
- package/.codex/skills/team-tech-debt/SKILL.md +56 -3
- package/.codex/skills/team-tech-debt/roles/assessor/role.md +69 -69
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -47
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +272 -231
- package/.codex/skills/team-tech-debt/roles/coordinator/role.md +172 -160
- package/.codex/skills/team-tech-debt/roles/executor/role.md +76 -76
- package/.codex/skills/team-tech-debt/roles/planner/role.md +69 -69
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +82 -82
- package/.codex/skills/team-tech-debt/roles/validator/role.md +75 -75
- package/.codex/skills/team-tech-debt/specs/pipelines.md +47 -47
- package/.codex/skills/team-testing/SKILL.md +72 -3
- package/.codex/skills/team-testing/roles/analyst/role.md +95 -95
- package/.codex/skills/team-testing/roles/coordinator/commands/analyze.md +70 -70
- package/.codex/skills/team-testing/roles/coordinator/commands/dispatch.md +106 -106
- package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +283 -242
- package/.codex/skills/team-testing/roles/coordinator/role.md +184 -172
- package/.codex/skills/team-testing/roles/executor/role.md +96 -96
- package/.codex/skills/team-testing/roles/generator/role.md +95 -95
- package/.codex/skills/team-testing/roles/strategist/role.md +83 -83
- package/.codex/skills/team-testing/specs/pipelines.md +101 -101
- package/.codex/skills/team-uidesign/SKILL.md +65 -3
- package/.codex/skills/team-uidesign/roles/coordinator/commands/analyze.md +59 -59
- package/.codex/skills/team-uidesign/roles/coordinator/commands/dispatch.md +156 -156
- package/.codex/skills/team-uidesign/roles/coordinator/commands/monitor.md +234 -194
- package/.codex/skills/team-uidesign/roles/coordinator/role.md +211 -199
- package/.codex/skills/team-uidesign/roles/designer/role.md +69 -69
- package/.codex/skills/team-uidesign/roles/implementer/role.md +72 -72
- package/.codex/skills/team-uidesign/roles/researcher/role.md +82 -82
- package/.codex/skills/team-uidesign/roles/reviewer/role.md +67 -67
- package/.codex/skills/team-uidesign/specs/pipelines.md +76 -76
- package/.codex/skills/team-ultra-analyze/SKILL.md +73 -3
- package/.codex/skills/team-ultra-analyze/roles/analyst/role.md +90 -90
- package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/analyze.md +73 -73
- package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +50 -9
- package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +255 -243
- package/.codex/skills/team-ultra-analyze/roles/discussant/role.md +104 -104
- package/.codex/skills/team-ultra-analyze/roles/explorer/role.md +74 -74
- package/.codex/skills/team-ultra-analyze/roles/synthesizer/role.md +78 -78
- package/.codex/skills/team-ultra-analyze/specs/pipelines.md +64 -64
- package/.codex/skills/team-ux-improve/SKILL.md +64 -3
- package/.codex/skills/team-ux-improve/roles/coordinator/commands/analyze.md +62 -62
- package/.codex/skills/team-ux-improve/roles/coordinator/commands/dispatch.md +233 -233
- package/.codex/skills/team-ux-improve/roles/coordinator/commands/monitor.md +195 -160
- package/.codex/skills/team-ux-improve/roles/coordinator/role.md +170 -158
- package/.codex/skills/team-ux-improve/roles/designer/role.md +122 -122
- package/.codex/skills/team-ux-improve/roles/diagnoser/role.md +93 -93
- package/.codex/skills/team-ux-improve/roles/explorer/role.md +77 -77
- package/.codex/skills/team-ux-improve/roles/implementer/role.md +102 -102
- package/.codex/skills/team-ux-improve/roles/scanner/role.md +93 -93
- package/.codex/skills/team-ux-improve/roles/tester/role.md +84 -84
- package/.codex/skills/team-ux-improve/specs/pipelines.md +54 -54
- package/.codex/skills/workflow-test-fix-cycle/SKILL.md +402 -402
- package/README.md +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/skills/team-iterdev/SKILL.md +0 -158
- 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 -186
- package/.codex/skills/team-iterdev/roles/coordinator/role.md +0 -181
- 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,242 +1,283 @@
|
|
|
1
|
-
# Monitor Pipeline
|
|
2
|
-
|
|
3
|
-
Synchronous pipeline coordination using spawn_agent + wait_agent.
|
|
4
|
-
|
|
5
|
-
## Constants
|
|
6
|
-
|
|
7
|
-
- WORKER_AGENT: team_worker
|
|
8
|
-
- ONE_STEP_PER_INVOCATION: false (synchronous wait loop)
|
|
9
|
-
- FAST_ADVANCE_AWARE: true
|
|
10
|
-
- MAX_GC_ROUNDS: 3
|
|
11
|
-
|
|
12
|
-
## Handler Router
|
|
13
|
-
|
|
14
|
-
| Source | Handler |
|
|
15
|
-
|--------|---------|
|
|
16
|
-
| "capability_gap" | handleAdapt |
|
|
17
|
-
| "check" or "status" | handleCheck |
|
|
18
|
-
| "resume" or "continue" | handleResume |
|
|
19
|
-
| All tasks completed | handleComplete |
|
|
20
|
-
| Default | handleSpawnNext |
|
|
21
|
-
|
|
22
|
-
## Role-Worker Map
|
|
23
|
-
|
|
24
|
-
| Prefix | Role | Role Spec | inner_loop |
|
|
25
|
-
|--------|------|-----------|------------|
|
|
26
|
-
| STRATEGY-* | strategist | `<project>/.codex/skills/team-testing/roles/strategist/role.md` | false |
|
|
27
|
-
| TESTGEN-* | generator | `<project>/.codex/skills/team-testing/roles/generator/role.md` | true |
|
|
28
|
-
| TESTRUN-* | executor | `<project>/.codex/skills/team-testing/roles/executor/role.md` | true |
|
|
29
|
-
| TESTANA-* | analyst | `<project>/.codex/skills/team-testing/roles/analyst/role.md` | false |
|
|
30
|
-
|
|
31
|
-
## handleCheck
|
|
32
|
-
|
|
33
|
-
Read-only status report from tasks.json, then STOP.
|
|
34
|
-
|
|
35
|
-
1. Read tasks.json
|
|
36
|
-
2. Count tasks by status (pending, in_progress, completed, failed)
|
|
37
|
-
|
|
38
|
-
Output:
|
|
39
|
-
```
|
|
40
|
-
[coordinator] Testing Pipeline Status
|
|
41
|
-
[coordinator] Mode: <pipeline_mode>
|
|
42
|
-
[coordinator] Progress: <done>/<total> (<pct>%)
|
|
43
|
-
[coordinator] GC Rounds: L1: <n>/3, L2: <n>/3
|
|
44
|
-
|
|
45
|
-
[coordinator] Pipeline Graph:
|
|
46
|
-
STRATEGY-001: <done|run|wait> test-strategy.md
|
|
47
|
-
TESTGEN-001: <done|run|wait> generating L1...
|
|
48
|
-
TESTRUN-001: <done|run|wait> blocked by TESTGEN-001
|
|
49
|
-
TESTGEN-002: <done|run|wait> blocked by TESTRUN-001
|
|
50
|
-
TESTRUN-002: <done|run|wait> blocked by TESTGEN-002
|
|
51
|
-
TESTANA-001: <done|run|wait> blocked by TESTRUN-*
|
|
52
|
-
|
|
53
|
-
[coordinator] Active agents: <list with elapsed time>
|
|
54
|
-
[coordinator] Ready: <pending tasks with resolved deps>
|
|
55
|
-
[coordinator] Commands: 'resume' to advance | 'check' to refresh
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Then STOP.
|
|
59
|
-
|
|
60
|
-
## handleResume
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
{
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
1.
|
|
222
|
-
2.
|
|
223
|
-
3.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
1
|
+
# Monitor Pipeline
|
|
2
|
+
|
|
3
|
+
Synchronous pipeline coordination using spawn_agent + wait_agent.
|
|
4
|
+
|
|
5
|
+
## Constants
|
|
6
|
+
|
|
7
|
+
- WORKER_AGENT: team_worker
|
|
8
|
+
- ONE_STEP_PER_INVOCATION: false (synchronous wait loop)
|
|
9
|
+
- FAST_ADVANCE_AWARE: true
|
|
10
|
+
- MAX_GC_ROUNDS: 3
|
|
11
|
+
|
|
12
|
+
## Handler Router
|
|
13
|
+
|
|
14
|
+
| Source | Handler |
|
|
15
|
+
|--------|---------|
|
|
16
|
+
| "capability_gap" | handleAdapt |
|
|
17
|
+
| "check" or "status" | handleCheck |
|
|
18
|
+
| "resume" or "continue" | handleResume |
|
|
19
|
+
| All tasks completed | handleComplete |
|
|
20
|
+
| Default | handleSpawnNext |
|
|
21
|
+
|
|
22
|
+
## Role-Worker Map
|
|
23
|
+
|
|
24
|
+
| Prefix | Role | Role Spec | inner_loop |
|
|
25
|
+
|--------|------|-----------|------------|
|
|
26
|
+
| STRATEGY-* | strategist | `<project>/.codex/skills/team-testing/roles/strategist/role.md` | false |
|
|
27
|
+
| TESTGEN-* | generator | `<project>/.codex/skills/team-testing/roles/generator/role.md` | true |
|
|
28
|
+
| TESTRUN-* | executor | `<project>/.codex/skills/team-testing/roles/executor/role.md` | true |
|
|
29
|
+
| TESTANA-* | analyst | `<project>/.codex/skills/team-testing/roles/analyst/role.md` | false |
|
|
30
|
+
|
|
31
|
+
## handleCheck
|
|
32
|
+
|
|
33
|
+
Read-only status report from tasks.json, then STOP.
|
|
34
|
+
|
|
35
|
+
1. Read tasks.json
|
|
36
|
+
2. Count tasks by status (pending, in_progress, completed, failed)
|
|
37
|
+
|
|
38
|
+
Output:
|
|
39
|
+
```
|
|
40
|
+
[coordinator] Testing Pipeline Status
|
|
41
|
+
[coordinator] Mode: <pipeline_mode>
|
|
42
|
+
[coordinator] Progress: <done>/<total> (<pct>%)
|
|
43
|
+
[coordinator] GC Rounds: L1: <n>/3, L2: <n>/3
|
|
44
|
+
|
|
45
|
+
[coordinator] Pipeline Graph:
|
|
46
|
+
STRATEGY-001: <done|run|wait> test-strategy.md
|
|
47
|
+
TESTGEN-001: <done|run|wait> generating L1...
|
|
48
|
+
TESTRUN-001: <done|run|wait> blocked by TESTGEN-001
|
|
49
|
+
TESTGEN-002: <done|run|wait> blocked by TESTRUN-001
|
|
50
|
+
TESTRUN-002: <done|run|wait> blocked by TESTGEN-002
|
|
51
|
+
TESTANA-001: <done|run|wait> blocked by TESTRUN-*
|
|
52
|
+
|
|
53
|
+
[coordinator] Active agents: <list with elapsed time>
|
|
54
|
+
[coordinator] Ready: <pending tasks with resolved deps>
|
|
55
|
+
[coordinator] Commands: 'resume' to advance | 'check' to refresh
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then STOP.
|
|
59
|
+
|
|
60
|
+
## handleResume
|
|
61
|
+
|
|
62
|
+
**Agent Health Check** (v4):
|
|
63
|
+
```
|
|
64
|
+
// Verify actual running agents match session state
|
|
65
|
+
const runningAgents = list_agents({})
|
|
66
|
+
// For each active_agent in tasks.json:
|
|
67
|
+
// - If agent NOT in runningAgents -> agent crashed
|
|
68
|
+
// - Reset that task to pending, remove from active_agents
|
|
69
|
+
// This prevents stale agent references from blocking the pipeline
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
1. Read tasks.json, check active_agents
|
|
73
|
+
2. No active agents -> handleSpawnNext
|
|
74
|
+
3. Has active agents -> check each status
|
|
75
|
+
- completed -> mark done
|
|
76
|
+
- in_progress -> still running
|
|
77
|
+
4. Some completed -> handleSpawnNext
|
|
78
|
+
5. All running -> report status, STOP
|
|
79
|
+
|
|
80
|
+
## handleSpawnNext
|
|
81
|
+
|
|
82
|
+
Find ready tasks, spawn workers, wait for completion, process results.
|
|
83
|
+
|
|
84
|
+
1. Read tasks.json
|
|
85
|
+
2. Collect:
|
|
86
|
+
- completedTasks: status = completed
|
|
87
|
+
- inProgressTasks: status = in_progress
|
|
88
|
+
- readyTasks: status = pending AND all deps in completedTasks
|
|
89
|
+
|
|
90
|
+
3. No ready + work in progress -> report waiting, STOP
|
|
91
|
+
4. No ready + nothing in progress -> handleComplete
|
|
92
|
+
5. Has ready -> for each ready task:
|
|
93
|
+
a. Determine role from prefix (use Role-Worker Map)
|
|
94
|
+
b. Check if inner loop role (generator/executor) with active worker -> skip (worker picks up next task)
|
|
95
|
+
c. Update task status in tasks.json -> in_progress
|
|
96
|
+
d. team_msg log -> task_unblocked
|
|
97
|
+
|
|
98
|
+
### Spawn Workers
|
|
99
|
+
|
|
100
|
+
For each ready task:
|
|
101
|
+
|
|
102
|
+
```javascript
|
|
103
|
+
// 1) Update status in tasks.json
|
|
104
|
+
state.tasks[taskId].status = 'in_progress'
|
|
105
|
+
|
|
106
|
+
// 2) Spawn worker
|
|
107
|
+
const agentId = spawn_agent({
|
|
108
|
+
agent_type: "team_worker",
|
|
109
|
+
task_name: taskId, // e.g., "STRATEGY-001" — enables named targeting
|
|
110
|
+
items: [
|
|
111
|
+
{ type: "text", text: `## Role Assignment
|
|
112
|
+
role: ${task.role}
|
|
113
|
+
role_spec: ${skillRoot}/roles/${task.role}/role.md
|
|
114
|
+
session: ${sessionFolder}
|
|
115
|
+
session_id: ${sessionId}
|
|
116
|
+
team_name: testing
|
|
117
|
+
requirement: ${task.description}
|
|
118
|
+
inner_loop: ${task.role === 'generator' || task.role === 'executor'}
|
|
119
|
+
|
|
120
|
+
## Current Task
|
|
121
|
+
- Task ID: ${taskId}
|
|
122
|
+
- Task: ${task.title}` },
|
|
123
|
+
|
|
124
|
+
{ type: "text", text: `Read role_spec file (${skillRoot}/roles/${task.role}/role.md) to load Phase 2-4 domain instructions.
|
|
125
|
+
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).` },
|
|
126
|
+
|
|
127
|
+
{ type: "text", text: `## Task Context
|
|
128
|
+
task_id: ${taskId}
|
|
129
|
+
title: ${task.title}
|
|
130
|
+
description: ${task.description}` },
|
|
131
|
+
|
|
132
|
+
{ type: "text", text: `## Upstream Context\n${prevContext}` }
|
|
133
|
+
]
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
// 3) Track agent
|
|
137
|
+
state.active_agents[taskId] = { agentId, role: task.role, started_at: now }
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
6. **Parallel spawn** (comprehensive pipeline):
|
|
141
|
+
- TESTGEN-001 + TESTGEN-002 both unblocked -> spawn both in parallel (name: "generator-1", "generator-2")
|
|
142
|
+
- TESTRUN-001 + TESTRUN-002 both unblocked -> spawn both in parallel (name: "executor-1", "executor-2")
|
|
143
|
+
|
|
144
|
+
### Wait and Process Results
|
|
145
|
+
|
|
146
|
+
After spawning all ready tasks:
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
// 4) Batch wait — use task_name for stable targeting (v4)
|
|
150
|
+
const taskNames = Object.keys(state.active_agents)
|
|
151
|
+
const waitResult = wait_agent({ targets: taskNames, timeout_ms: 900000 })
|
|
152
|
+
if (waitResult.timed_out) {
|
|
153
|
+
for (const taskId of taskNames) {
|
|
154
|
+
state.tasks[taskId].status = 'timed_out'
|
|
155
|
+
close_agent({ target: taskId })
|
|
156
|
+
delete state.active_agents[taskId]
|
|
157
|
+
}
|
|
158
|
+
} else {
|
|
159
|
+
// 5) Collect results
|
|
160
|
+
for (const [taskId, agent] of Object.entries(state.active_agents)) {
|
|
161
|
+
state.tasks[taskId].status = 'completed'
|
|
162
|
+
close_agent({ target: taskId }) // Use task_name, not agentId
|
|
163
|
+
delete state.active_agents[taskId]
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### GC Checkpoint (TESTRUN-* completes)
|
|
169
|
+
|
|
170
|
+
After TESTRUN-* completion, read meta.json for executor.pass_rate and executor.coverage:
|
|
171
|
+
- (pass_rate >= 0.95 AND coverage >= target) OR gc_rounds[layer] >= MAX_GC_ROUNDS -> proceed
|
|
172
|
+
- (pass_rate < 0.95 OR coverage < target) AND gc_rounds[layer] < MAX_GC_ROUNDS -> create GC fix tasks, increment gc_rounds[layer]
|
|
173
|
+
|
|
174
|
+
**GC Fix Task Creation** (when coverage below target):
|
|
175
|
+
|
|
176
|
+
Add to tasks.json:
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"TESTGEN-<layer>-fix-<round>": {
|
|
180
|
+
"title": "Revise <layer> tests (GC #<round>)",
|
|
181
|
+
"description": "PURPOSE: Revise tests to fix failures and improve coverage | Success: pass_rate >= 0.95 AND coverage >= target\nTASK:\n - Read previous test results and failure details\n - Revise tests to address failures\n - Improve coverage for uncovered areas\nCONTEXT:\n - Session: <session-folder>\n - Layer: <layer>\n - Previous results: <session>/results/run-<N>.json\nEXPECTED: Revised test files in <session>/tests/<layer>/\nCONSTRAINTS: Only modify test files\n---\nInnerLoop: true\nRoleSpec: <project>/.codex/skills/team-testing/roles/generator/role.md",
|
|
182
|
+
"role": "generator",
|
|
183
|
+
"prefix": "TESTGEN",
|
|
184
|
+
"deps": [],
|
|
185
|
+
"status": "pending",
|
|
186
|
+
"findings": null,
|
|
187
|
+
"error": null
|
|
188
|
+
},
|
|
189
|
+
"TESTRUN-<layer>-fix-<round>": {
|
|
190
|
+
"title": "Re-execute <layer> (GC #<round>)",
|
|
191
|
+
"description": "PURPOSE: Re-execute tests after revision | Success: pass_rate >= 0.95\nCONTEXT:\n - Session: <session-folder>\n - Layer: <layer>\n - Input: tests/<layer>\nEXPECTED: <session>/results/run-<N>-gc.json\n---\nInnerLoop: true\nRoleSpec: <project>/.codex/skills/team-testing/roles/executor/role.md",
|
|
192
|
+
"role": "executor",
|
|
193
|
+
"prefix": "TESTRUN",
|
|
194
|
+
"deps": ["TESTGEN-<layer>-fix-<round>"],
|
|
195
|
+
"status": "pending",
|
|
196
|
+
"findings": null,
|
|
197
|
+
"error": null
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
Update tasks.json gc_rounds[layer]++
|
|
202
|
+
|
|
203
|
+
**Cross-Agent Supplementary Context** (v4):
|
|
204
|
+
|
|
205
|
+
When spawning workers in a later pipeline phase, send upstream results as supplementary context to already-running workers:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
// Example: Send strategy results to running generators
|
|
209
|
+
send_message({
|
|
210
|
+
target: "<running-agent-task-name>",
|
|
211
|
+
items: [{ type: "text", text: `## Supplementary Context\n${upstreamFindings}` }]
|
|
212
|
+
})
|
|
213
|
+
// Note: send_message queues info without interrupting the agent's current work
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Use `send_message` (not `assign_task`) for supplementary info that enriches but doesn't redirect the agent's current task.
|
|
217
|
+
|
|
218
|
+
### Persist and Loop
|
|
219
|
+
|
|
220
|
+
After processing all results:
|
|
221
|
+
1. Write updated tasks.json
|
|
222
|
+
2. Check if more tasks are now ready (deps newly resolved)
|
|
223
|
+
3. If yes -> loop back to step 1 of handleSpawnNext
|
|
224
|
+
4. If no more ready and all done -> handleComplete
|
|
225
|
+
5. If no more ready but some still blocked -> report status, STOP
|
|
226
|
+
|
|
227
|
+
## handleComplete
|
|
228
|
+
|
|
229
|
+
**Cleanup Verification** (v4):
|
|
230
|
+
```
|
|
231
|
+
// Verify all agents are properly closed
|
|
232
|
+
const remaining = list_agents({})
|
|
233
|
+
// If any team agents still running -> close_agent each
|
|
234
|
+
// Ensures clean session shutdown
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Pipeline done. Generate report and completion action.
|
|
238
|
+
|
|
239
|
+
1. Verify all tasks (including any GC fix tasks) have status "completed" or "failed"
|
|
240
|
+
2. If any tasks incomplete -> return to handleSpawnNext
|
|
241
|
+
3. If all complete:
|
|
242
|
+
- Read final state from meta.json (analyst.quality_score, executor.coverage, gc_rounds)
|
|
243
|
+
- Generate summary (deliverables, task count, GC rounds, coverage metrics)
|
|
244
|
+
4. Execute completion action per tasks.json completion_action:
|
|
245
|
+
- interactive -> request_user_input (Archive/Keep/Deepen Coverage)
|
|
246
|
+
- auto_archive -> Archive & Clean (rm -rf session folder)
|
|
247
|
+
- auto_keep -> Keep Active (status=paused)
|
|
248
|
+
|
|
249
|
+
## handleAdapt
|
|
250
|
+
|
|
251
|
+
Capability gap reported mid-pipeline.
|
|
252
|
+
|
|
253
|
+
1. Parse gap description
|
|
254
|
+
2. Check if existing role covers it -> redirect
|
|
255
|
+
3. Role count < 5 -> generate dynamic role-spec in <session>/role-specs/
|
|
256
|
+
4. Add new task to tasks.json, spawn worker via spawn_agent + wait_agent
|
|
257
|
+
5. Role count >= 5 -> merge or pause
|
|
258
|
+
|
|
259
|
+
## Fast-Advance Reconciliation
|
|
260
|
+
|
|
261
|
+
On every coordinator wake:
|
|
262
|
+
1. Read team_msg entries with type="fast_advance"
|
|
263
|
+
2. Sync active_agents with spawned successors
|
|
264
|
+
3. No duplicate spawns
|
|
265
|
+
|
|
266
|
+
## Phase 4: State Persistence
|
|
267
|
+
|
|
268
|
+
After every handler execution:
|
|
269
|
+
1. Reconcile active_agents with actual tasks.json states
|
|
270
|
+
2. Remove entries for completed/failed tasks
|
|
271
|
+
3. Write updated tasks.json
|
|
272
|
+
4. STOP (wait for next invocation)
|
|
273
|
+
|
|
274
|
+
## Error Handling
|
|
275
|
+
|
|
276
|
+
| Scenario | Resolution |
|
|
277
|
+
|----------|------------|
|
|
278
|
+
| Session file not found | Error, suggest re-initialization |
|
|
279
|
+
| Unknown role in callback | Log info, scan for other completions |
|
|
280
|
+
| GC loop exceeded (3 rounds) | Accept current coverage with warning, proceed |
|
|
281
|
+
| Pipeline stall | Check deps chains, report to user |
|
|
282
|
+
| Coverage tool unavailable | Degrade to pass rate judgment |
|
|
283
|
+
| Worker crash | Reset task to pending in tasks.json, respawn via spawn_agent |
|