claude-code-workflow 7.2.30 → 7.3.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.
Files changed (183) hide show
  1. package/.claude/commands/workflow-skill.md +130 -0
  2. package/.claude/skills/ccw-chain/SKILL.md +44 -71
  3. package/.claude/skills/ccw-chain/chains/ccw-cycle.json +13 -3
  4. package/.claude/skills/ccw-chain/chains/ccw-exploration.json +33 -22
  5. package/.claude/skills/ccw-chain/chains/ccw-issue.json +23 -12
  6. package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +23 -9
  7. package/.claude/skills/ccw-chain/chains/ccw-main.json +15 -2
  8. package/.claude/skills/ccw-chain/chains/ccw-standard.json +28 -16
  9. package/.claude/skills/ccw-chain/chains/ccw-team.json +7 -2
  10. package/.claude/skills/ccw-chain/chains/ccw-with-file.json +25 -9
  11. package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -53
  12. package/.claude/skills/chain-loader/specs/chain-schema.md +30 -3
  13. package/.claude/skills/chain-loader/templates/chain-json.md +63 -63
  14. package/.claude/skills/workflow-plan/SKILL.md +1 -0
  15. package/.claude/skills/workflow-plan/phases/01-session-discovery.md +19 -2
  16. package/.claude/skills/workflow-plan/phases/02-context-gathering.md +2 -2
  17. package/.claude/skills/workflow-plan/phases/04-task-generation.md +9 -1
  18. package/.codex/skills/analyze-with-file/SKILL.md +383 -134
  19. package/.codex/skills/brainstorm/SKILL.md +3 -3
  20. package/.codex/skills/brainstorm-with-file/SKILL.md +208 -88
  21. package/.codex/skills/clean/SKILL.md +1 -1
  22. package/.codex/skills/csv-wave-pipeline/SKILL.md +2 -2
  23. package/.codex/skills/investigate/orchestrator.md +24 -0
  24. package/.codex/skills/issue-discover/SKILL.md +374 -361
  25. package/.codex/skills/issue-discover/phases/01-issue-new.md +1 -1
  26. package/.codex/skills/issue-discover/phases/02-discover.md +2 -2
  27. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +1 -1
  28. package/.codex/skills/issue-discover/phases/04-quick-execute.md +2 -2
  29. package/.codex/skills/parallel-dev-cycle/SKILL.md +44 -37
  30. package/.codex/skills/project-documentation-workflow/SKILL.md +1 -1
  31. package/.codex/skills/review-cycle/SKILL.md +31 -12
  32. package/.codex/skills/roadmap-with-file/SKILL.md +141 -133
  33. package/.codex/skills/security-audit/orchestrator.md +29 -0
  34. package/.codex/skills/session-sync/SKILL.md +1 -1
  35. package/.codex/skills/ship/orchestrator.md +24 -0
  36. package/.codex/skills/spec-add/SKILL.md +5 -5
  37. package/.codex/skills/spec-generator/SKILL.md +33 -2
  38. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +3 -3
  39. package/.codex/skills/spec-generator/phases/01-discovery.md +1 -1
  40. package/.codex/skills/spec-generator/phases/02-product-brief.md +1 -1
  41. package/.codex/skills/spec-generator/phases/03-requirements.md +1 -1
  42. package/.codex/skills/spec-generator/phases/04-architecture.md +1 -1
  43. package/.codex/skills/spec-generator/phases/05-epics-stories.md +1 -1
  44. package/.codex/skills/spec-generator/phases/06-readiness-check.md +1 -1
  45. package/.codex/skills/spec-generator/phases/07-issue-export.md +1 -1
  46. package/.codex/skills/spec-setup/SKILL.md +669 -669
  47. package/.codex/skills/team-arch-opt/specs/team-config.json +1 -1
  48. package/.codex/skills/team-brainstorm/SKILL.md +259 -259
  49. package/.codex/skills/team-coordinate/SKILL.md +359 -359
  50. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +1 -1
  51. package/.codex/skills/team-designer/SKILL.md +27 -1
  52. package/.codex/skills/team-designer/phases/01-requirements-analysis.md +2 -2
  53. package/.codex/skills/team-designer/phases/02-scaffold-generation.md +1 -1
  54. package/.codex/skills/team-designer/phases/04-validation.md +1 -1
  55. package/.codex/skills/team-executor/SKILL.md +218 -218
  56. package/.codex/skills/team-frontend/SKILL.md +227 -227
  57. package/.codex/skills/team-frontend-debug/SKILL.md +278 -278
  58. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +2 -2
  59. package/.codex/skills/team-interactive-craft/SKILL.md +220 -220
  60. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -209
  61. package/.codex/skills/team-issue/SKILL.md +269 -269
  62. package/.codex/skills/team-issue/roles/coordinator/role.md +1 -1
  63. package/.codex/skills/team-lifecycle-v4/SKILL.md +305 -305
  64. package/.codex/skills/team-motion-design/SKILL.md +222 -222
  65. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -210
  66. package/.codex/skills/team-perf-opt/SKILL.md +258 -258
  67. package/.codex/skills/team-perf-opt/specs/team-config.json +1 -1
  68. package/.codex/skills/team-planex/SKILL.md +216 -216
  69. package/.codex/skills/team-quality-assurance/SKILL.md +229 -229
  70. package/.codex/skills/team-review/SKILL.md +227 -227
  71. package/.codex/skills/team-roadmap-dev/SKILL.md +238 -238
  72. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +5 -5
  73. package/.codex/skills/team-tech-debt/SKILL.md +206 -206
  74. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
  75. package/.codex/skills/team-testing/SKILL.md +237 -237
  76. package/.codex/skills/team-ui-polish/SKILL.md +218 -218
  77. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -213
  78. package/.codex/skills/team-uidesign/SKILL.md +219 -219
  79. package/.codex/skills/team-uidesign/roles/coordinator/role.md +2 -2
  80. package/.codex/skills/team-ultra-analyze/SKILL.md +260 -260
  81. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +1 -1
  82. package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +1 -1
  83. package/.codex/skills/team-ux-improve/SKILL.md +227 -227
  84. package/.codex/skills/team-ux-improve/roles/coordinator/role.md +1 -1
  85. package/.codex/skills/team-ux-improve/specs/team-config.json +1 -1
  86. package/.codex/skills/team-visual-a11y/SKILL.md +319 -319
  87. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -213
  88. package/.codex/skills/workflow-execute/SKILL.md +5 -5
  89. package/.codex/skills/workflow-lite-planex/SKILL.md +3 -3
  90. package/.codex/skills/workflow-plan/SKILL.md +3 -3
  91. package/.codex/skills/workflow-tdd-plan/SKILL.md +4 -4
  92. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +403 -402
  93. package/ccw/dist/cli.d.ts.map +1 -1
  94. package/ccw/dist/cli.js +16 -0
  95. package/ccw/dist/cli.js.map +1 -1
  96. package/ccw/dist/commands/chain-loader.d.ts +2 -0
  97. package/ccw/dist/commands/chain-loader.d.ts.map +1 -0
  98. package/ccw/dist/commands/chain-loader.js +11 -0
  99. package/ccw/dist/commands/chain-loader.js.map +1 -0
  100. package/ccw/dist/commands/install.d.ts.map +1 -1
  101. package/ccw/dist/commands/install.js +52 -1
  102. package/ccw/dist/commands/install.js.map +1 -1
  103. package/ccw/dist/commands/launcher.d.ts +2 -0
  104. package/ccw/dist/commands/launcher.d.ts.map +1 -0
  105. package/ccw/dist/commands/launcher.js +434 -0
  106. package/ccw/dist/commands/launcher.js.map +1 -0
  107. package/ccw/dist/tools/chain-loader.d.ts.map +1 -1
  108. package/ccw/dist/tools/chain-loader.js +457 -45
  109. package/ccw/dist/tools/chain-loader.js.map +1 -1
  110. package/ccw/dist/tools/skill-context-loader.d.ts.map +1 -1
  111. package/ccw/dist/tools/skill-context-loader.js +12 -26
  112. package/ccw/dist/tools/skill-context-loader.js.map +1 -1
  113. package/ccw/dist/types/chain-types.d.ts +41 -1
  114. package/ccw/dist/types/chain-types.d.ts.map +1 -1
  115. package/ccw/dist/utils/chain-visualizer.d.ts +13 -0
  116. package/ccw/dist/utils/chain-visualizer.d.ts.map +1 -0
  117. package/ccw/dist/utils/chain-visualizer.js +164 -0
  118. package/ccw/dist/utils/chain-visualizer.js.map +1 -0
  119. package/package.json +1 -1
  120. package/.claude/commands/cli/cli-init.md +0 -441
  121. package/.claude/commands/cli/codex-review.md +0 -361
  122. package/.claude/commands/flow-create.md +0 -663
  123. package/.claude/skills/ccw-chain/phases/analyze-with-file.md +0 -788
  124. package/.claude/skills/ccw-chain/phases/brainstorm/SKILL.md +0 -408
  125. package/.claude/skills/ccw-chain/phases/brainstorm/phases/01-mode-routing.md +0 -207
  126. package/.claude/skills/ccw-chain/phases/brainstorm/phases/02-artifacts.md +0 -567
  127. package/.claude/skills/ccw-chain/phases/brainstorm/phases/03-role-analysis.md +0 -748
  128. package/.claude/skills/ccw-chain/phases/brainstorm/phases/04-synthesis.md +0 -827
  129. package/.claude/skills/ccw-chain/phases/brainstorm-with-file.md +0 -482
  130. package/.claude/skills/ccw-chain/phases/collaborative-plan-with-file.md +0 -639
  131. package/.claude/skills/ccw-chain/phases/debug-with-file.md +0 -656
  132. package/.claude/skills/ccw-chain/phases/integration-test-cycle.md +0 -936
  133. package/.claude/skills/ccw-chain/phases/issue-convert-to-plan.md +0 -720
  134. package/.claude/skills/ccw-chain/phases/issue-discover.md +0 -483
  135. package/.claude/skills/ccw-chain/phases/issue-execute.md +0 -629
  136. package/.claude/skills/ccw-chain/phases/issue-from-brainstorm.md +0 -382
  137. package/.claude/skills/ccw-chain/phases/issue-plan.md +0 -343
  138. package/.claude/skills/ccw-chain/phases/issue-queue.md +0 -464
  139. package/.claude/skills/ccw-chain/phases/refactor-cycle.md +0 -852
  140. package/.claude/skills/ccw-chain/phases/review-cycle/SKILL.md +0 -132
  141. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-fix.md +0 -760
  142. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-module.md +0 -764
  143. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-session.md +0 -775
  144. package/.claude/skills/ccw-chain/phases/roadmap-with-file.md +0 -544
  145. package/.claude/skills/ccw-chain/phases/spec-generator/SKILL.md +0 -338
  146. package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-5-requirement-clarification.md +0 -404
  147. package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-discovery.md +0 -257
  148. package/.claude/skills/ccw-chain/phases/spec-generator/phases/02-product-brief.md +0 -274
  149. package/.claude/skills/ccw-chain/phases/spec-generator/phases/03-requirements.md +0 -184
  150. package/.claude/skills/ccw-chain/phases/spec-generator/phases/04-architecture.md +0 -248
  151. package/.claude/skills/ccw-chain/phases/spec-generator/phases/05-epics-stories.md +0 -178
  152. package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-5-auto-fix.md +0 -144
  153. package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-readiness-check.md +0 -480
  154. package/.claude/skills/ccw-chain/phases/team-planex.md +0 -123
  155. package/.claude/skills/ccw-chain/phases/ui-design-explore-auto.md +0 -678
  156. package/.claude/skills/ccw-chain/phases/unified-execute-with-file.md +0 -870
  157. package/.claude/skills/ccw-chain/phases/workflow-execute/SKILL.md +0 -625
  158. package/.claude/skills/ccw-chain/phases/workflow-execute/phases/06-review.md +0 -215
  159. package/.claude/skills/ccw-chain/phases/workflow-lite-plan.md +0 -616
  160. package/.claude/skills/ccw-chain/phases/workflow-multi-cli-plan.md +0 -424
  161. package/.claude/skills/ccw-chain/phases/workflow-plan/SKILL.md +0 -466
  162. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/01-session-discovery.md +0 -99
  163. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/02-context-gathering.md +0 -338
  164. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/03-conflict-resolution.md +0 -422
  165. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/04-task-generation.md +0 -440
  166. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/05-plan-verify.md +0 -395
  167. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/06-replan.md +0 -594
  168. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/SKILL.md +0 -527
  169. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/01-session-discovery.md +0 -57
  170. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/02-context-gathering.md +0 -407
  171. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/03-test-coverage-analysis.md +0 -172
  172. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/04-conflict-resolution.md +0 -426
  173. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/05-tdd-task-generation.md +0 -473
  174. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/06-tdd-structure-validation.md +0 -189
  175. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/07-tdd-verify.md +0 -635
  176. package/.claude/skills/ccw-chain/phases/workflow-test-fix/SKILL.md +0 -482
  177. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/01-session-start.md +0 -60
  178. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/02-test-context-gather.md +0 -493
  179. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/03-test-concept-enhanced.md +0 -150
  180. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/04-test-task-generate.md +0 -346
  181. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/05-test-cycle-execute.md +0 -538
  182. package/.claude/skills/ccw-chain/specs/intent-patterns.md +0 -60
  183. package/.claude/skills/team-edict.zip +0 -0
@@ -1,213 +1,213 @@
1
- # Coordinator Role
2
-
3
- Visual Accessibility Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Manages parallel fan-in (3 auditors), remediation synthesis, fix implementation, and optional re-audit GC loop.
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 scope -> Create session -> Dispatch tasks -> Monitor progress -> Report results
26
-
27
- ## Boundaries
28
-
29
- ### MUST
30
- - All output (team_msg, logs) must carry `[coordinator]` identifier
31
- - Use `team_worker` agent type for all worker spawns (NOT `general-purpose`)
32
- - Dispatch tasks with proper dependency chains and deps in tasks.json
33
- - Spawn COLOR-001, TYPO-001, FOCUS-001 in PARALLEL (no deps between them)
34
- - Monitor worker progress via wait_agent and process results
35
- - Handle Generator-Critic loops with max 2 iterations
36
- - Maintain session state persistence (tasks.json)
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 (auditing, planning, fixing) -- workers handle this
43
- - Spawn workers without creating tasks first
44
- - Skip sync points when configured
45
- - Force-advance pipeline past failed audit
46
- - Modify source code or design artifacts directly -- delegate to workers
47
- - Omit `[coordinator]` identifier in any output
48
- - Call CLI tools (ccw cli) -- only workers use CLI
49
-
50
- ## Command Execution Protocol
51
-
52
- When coordinator needs to execute a command (analyze, dispatch, monitor):
53
-
54
- 1. Read `commands/<command>.md`
55
- 2. Follow the workflow defined in the command
56
- 3. Commands are inline execution guides, NOT separate agents
57
- 4. Execute synchronously, complete before proceeding
58
-
59
- ## Entry Router
60
-
61
- | Detection | Condition | Handler |
62
- |-----------|-----------|---------|
63
- | Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
64
- | Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
65
- | Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
66
- | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
67
- | Interrupted session | Active/paused session exists in .workflow/.team/VA-* | -> Phase 0 |
68
- | New session | None of above | -> Phase 1 |
69
-
70
- For check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
71
-
72
- ## Phase 0: Session Resume Check
73
-
74
- 1. Scan `.workflow/.team/VA-*/tasks.json` for active/paused sessions
75
- 2. No sessions -> Phase 1
76
- 3. Single session -> reconcile (read tasks.json, reset in_progress->pending, kick first ready task)
77
- 4. Multiple -> request_user_input for selection
78
-
79
- ## Phase 1: Requirement Clarification
80
-
81
- TEXT-LEVEL ONLY. No source code reading.
82
-
83
- 1. Parse task description from arguments
84
- 2. Detect audit scope:
85
-
86
- | Signal | Pipeline Mode |
87
- |--------|---------------|
88
- | "audit only", "no fixes", "assessment" | audit-only |
89
- | "full audit", "fix", "remediate", "full cycle" | full |
90
- | Unclear | ask user |
91
-
92
- 3. Ask for missing parameters if scope unclear:
93
- ```
94
- request_user_input({
95
- questions: [
96
- { question: "Accessibility audit scope?", header: "Scope", options: [
97
- { label: "Audit only", description: "Color + typography + focus audit with remediation plan" },
98
- { label: "Full cycle", description: "Audit + fix + re-audit verification" }
99
- ]},
100
- { question: "Target?", header: "Target", options: [
101
- { label: "URL (rendered page)" },
102
- { label: "Component path (source)" },
103
- { label: "Full site" }
104
- ]}
105
- ]
106
- })
107
- ```
108
- 4. Delegate to `@commands/analyze.md` -> output scope context
109
- 5. Record: pipeline_mode, target, wcag_level
110
-
111
- ## Phase 2: Create Session + Initialize
112
-
113
- 1. Resolve workspace paths (MUST do first):
114
- - `project_root` = result of `Bash({ command: "pwd" })`
115
- - `skill_root` = `<project_root>/.codex/skills/team-visual-a11y`
116
- 2. Generate session ID: `VA-<slug>-<YYYY-MM-DD>`
117
- 3. Create session folder structure:
118
- ```
119
- .workflow/.team/VA-<slug>-<date>/audits/color/
120
- .workflow/.team/VA-<slug>-<date>/audits/typography/
121
- .workflow/.team/VA-<slug>-<date>/audits/focus/
122
- .workflow/.team/VA-<slug>-<date>/remediation/
123
- .workflow/.team/VA-<slug>-<date>/fixes/
124
- .workflow/.team/VA-<slug>-<date>/re-audit/
125
- .workflow/.team/VA-<slug>-<date>/evidence/
126
- .workflow/.team/VA-<slug>-<date>/.msg/
127
- ```
128
- 4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
129
- 5. Write initial tasks.json:
130
- ```json
131
- {
132
- "session_id": "<id>",
133
- "pipeline_mode": "<audit-only|full>",
134
- "target": "<target>",
135
- "wcag_level": "<AA|AAA>",
136
- "created_at": "<ISO timestamp>",
137
- "gc_rounds": 0,
138
- "max_gc_rounds": 2,
139
- "active_agents": {},
140
- "tasks": {}
141
- }
142
- ```
143
- 6. Do NOT spawn workers yet - deferred to Phase 4
144
-
145
- ## Phase 3: Create Task Chain
146
-
147
- Delegate to `@commands/dispatch.md`. Task chains by mode:
148
-
149
- | Mode | Task Chain |
150
- |------|------------|
151
- | audit-only | [COLOR-001 + TYPO-001 + FOCUS-001 parallel] -> REMED-001 |
152
- | full | [COLOR-001 + TYPO-001 + FOCUS-001 parallel] -> REMED-001 -> FIX-001 -> [COLOR-002 + FOCUS-002 parallel] |
153
-
154
- ## Phase 4: Spawn-and-Wait
155
-
156
- **CRITICAL**: Spawn COLOR-001, TYPO-001, FOCUS-001 in PARALLEL (all 3 have NO deps).
157
-
158
- Delegate to `@commands/monitor.md#handleSpawnNext`:
159
- 1. Find ready tasks (pending + deps resolved)
160
- 2. Spawn team_worker agents via spawn_agent, wait_agent for results
161
- 3. Output status summary
162
- 4. STOP
163
-
164
- ## Phase 5: Report + Completion Action
165
-
166
- 1. Read session state -> collect all results
167
- 2. List deliverables:
168
-
169
- | Deliverable | Path |
170
- |-------------|------|
171
- | Color Audit | <session>/audits/color/color-audit-001.md |
172
- | Typography Audit | <session>/audits/typography/typo-audit-001.md |
173
- | Focus Audit | <session>/audits/focus/focus-audit-001.md |
174
- | Remediation Plan | <session>/remediation/remediation-plan.md |
175
- | Fix Summary | <session>/fixes/fix-summary-001.md (full mode) |
176
- | Re-audit Color | <session>/re-audit/color-audit-002.md (full mode) |
177
- | Re-audit Focus | <session>/re-audit/focus-audit-002.md (full mode) |
178
- | Evidence | <session>/evidence/*.png (if Chrome DevTools used) |
179
-
180
- 3. Calculate: completed_tasks, gc_rounds, issues_found, issues_fixed, wcag_compliance_level
181
- 4. Output pipeline summary with [coordinator] prefix
182
- 5. Execute completion action:
183
- ```
184
- request_user_input({
185
- questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
186
- { label: "Archive & Clean", description: "Archive session and clean up resources" },
187
- { label: "Keep Active", description: "Keep session for follow-up work" },
188
- { label: "Export Results", description: "Export deliverables to specified location" }
189
- ]}]
190
- })
191
- ```
192
-
193
- ## v4 Coordination Patterns
194
-
195
- ### Message Semantics
196
- - **send_message**: Queue supplementary info to a running agent. Does NOT interrupt current processing. Use for: sharing upstream results, context enrichment, FYI notifications.
197
- - **assign_task**: Assign new work and trigger processing. Use for: waking idle agents, redirecting work, requesting new output.
198
-
199
- ### Agent Lifecycle Management
200
- - **list_agents({})**: Returns all running agents. Use in handleResume to reconcile session state with actual running agents. Use in handleComplete to verify clean shutdown.
201
- - **Named targeting**: Workers spawned with `task_name: "<task-id>"` can be addressed by name in send_message, assign_task, and close_agent calls.
202
-
203
- ## Error Handling
204
-
205
- | Error | Resolution |
206
- |-------|------------|
207
- | Task timeout | Log, mark failed, ask user to retry or skip |
208
- | Worker crash | Reset task to pending, respawn worker |
209
- | Dependency cycle | Detect, report to user, halt |
210
- | Invalid scope | Reject with error, ask to clarify |
211
- | Session corruption | Attempt recovery, fallback to manual reconciliation |
212
- | GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |
213
- | Chrome DevTools unavailable | Mark in meta.json, auditors degrade to static analysis |
1
+ # Coordinator Role
2
+
3
+ Visual Accessibility Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Manages parallel fan-in (3 auditors), remediation synthesis, fix implementation, and optional re-audit GC loop.
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 scope -> Create session -> Dispatch tasks -> Monitor progress -> Report results
26
+
27
+ ## Boundaries
28
+
29
+ ### MUST
30
+ - All output (team_msg, logs) must carry `[coordinator]` identifier
31
+ - Use `team_worker` agent type for all worker spawns (NOT `general-purpose`)
32
+ - Dispatch tasks with proper dependency chains and deps in tasks.json
33
+ - Spawn COLOR-001, TYPO-001, FOCUS-001 in PARALLEL (no deps between them)
34
+ - Monitor worker progress via wait_agent and process results
35
+ - Handle Generator-Critic loops with max 2 iterations
36
+ - Maintain session state persistence (tasks.json)
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 (auditing, planning, fixing) -- workers handle this
43
+ - Spawn workers without creating tasks first
44
+ - Skip sync points when configured
45
+ - Force-advance pipeline past failed audit
46
+ - Modify source code or design artifacts directly -- delegate to workers
47
+ - Omit `[coordinator]` identifier in any output
48
+ - Call CLI tools (ccw cli) -- only workers use CLI
49
+
50
+ ## Command Execution Protocol
51
+
52
+ When coordinator needs to execute a command (analyze, dispatch, monitor):
53
+
54
+ 1. Read `commands/<command>.md`
55
+ 2. Follow the workflow defined in the command
56
+ 3. Commands are inline execution guides, NOT separate agents
57
+ 4. Execute synchronously, complete before proceeding
58
+
59
+ ## Entry Router
60
+
61
+ | Detection | Condition | Handler |
62
+ |-----------|-----------|---------|
63
+ | Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
64
+ | Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
65
+ | Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
66
+ | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
67
+ | Interrupted session | Active/paused session exists in .workflow/.team/VA-* | -> Phase 0 |
68
+ | New session | None of above | -> Phase 1 |
69
+
70
+ For check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
71
+
72
+ ## Phase 0: Session Resume Check
73
+
74
+ 1. Scan `.workflow/.team/VA-*/tasks.json` for active/paused sessions
75
+ 2. No sessions -> Phase 1
76
+ 3. Single session -> reconcile (read tasks.json, reset in_progress->pending, kick first ready task)
77
+ 4. Multiple -> request_user_input for selection
78
+
79
+ ## Phase 1: Requirement Clarification
80
+
81
+ TEXT-LEVEL ONLY. No source code reading.
82
+
83
+ 1. Parse task description from arguments
84
+ 2. Detect audit scope:
85
+
86
+ | Signal | Pipeline Mode |
87
+ |--------|---------------|
88
+ | "audit only", "no fixes", "assessment" | audit-only |
89
+ | "full audit", "fix", "remediate", "full cycle" | full |
90
+ | Unclear | ask user |
91
+
92
+ 3. Ask for missing parameters if scope unclear:
93
+ ```
94
+ functions.request_user_input({
95
+ questions: [
96
+ { question: "Accessibility audit scope?", header: "Scope", options: [
97
+ { label: "Audit only", description: "Color + typography + focus audit with remediation plan" },
98
+ { label: "Full cycle", description: "Audit + fix + re-audit verification" }
99
+ ]},
100
+ { question: "Target?", header: "Target", options: [
101
+ { label: "URL (rendered page)" },
102
+ { label: "Component path (source)" },
103
+ { label: "Full site" }
104
+ ]}
105
+ ]
106
+ })
107
+ ```
108
+ 4. Delegate to `@commands/analyze.md` -> output scope context
109
+ 5. Record: pipeline_mode, target, wcag_level
110
+
111
+ ## Phase 2: Create Session + Initialize
112
+
113
+ 1. Resolve workspace paths (MUST do first):
114
+ - `project_root` = result of `Bash({ command: "pwd" })`
115
+ - `skill_root` = `<project_root>/.codex/skills/team-visual-a11y`
116
+ 2. Generate session ID: `VA-<slug>-<YYYY-MM-DD>`
117
+ 3. Create session folder structure:
118
+ ```
119
+ .workflow/.team/VA-<slug>-<date>/audits/color/
120
+ .workflow/.team/VA-<slug>-<date>/audits/typography/
121
+ .workflow/.team/VA-<slug>-<date>/audits/focus/
122
+ .workflow/.team/VA-<slug>-<date>/remediation/
123
+ .workflow/.team/VA-<slug>-<date>/fixes/
124
+ .workflow/.team/VA-<slug>-<date>/re-audit/
125
+ .workflow/.team/VA-<slug>-<date>/evidence/
126
+ .workflow/.team/VA-<slug>-<date>/.msg/
127
+ ```
128
+ 4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
129
+ 5. Write initial tasks.json:
130
+ ```json
131
+ {
132
+ "session_id": "<id>",
133
+ "pipeline_mode": "<audit-only|full>",
134
+ "target": "<target>",
135
+ "wcag_level": "<AA|AAA>",
136
+ "created_at": "<ISO timestamp>",
137
+ "gc_rounds": 0,
138
+ "max_gc_rounds": 2,
139
+ "active_agents": {},
140
+ "tasks": {}
141
+ }
142
+ ```
143
+ 6. Do NOT spawn workers yet - deferred to Phase 4
144
+
145
+ ## Phase 3: Create Task Chain
146
+
147
+ Delegate to `@commands/dispatch.md`. Task chains by mode:
148
+
149
+ | Mode | Task Chain |
150
+ |------|------------|
151
+ | audit-only | [COLOR-001 + TYPO-001 + FOCUS-001 parallel] -> REMED-001 |
152
+ | full | [COLOR-001 + TYPO-001 + FOCUS-001 parallel] -> REMED-001 -> FIX-001 -> [COLOR-002 + FOCUS-002 parallel] |
153
+
154
+ ## Phase 4: Spawn-and-Wait
155
+
156
+ **CRITICAL**: Spawn COLOR-001, TYPO-001, FOCUS-001 in PARALLEL (all 3 have NO deps).
157
+
158
+ Delegate to `@commands/monitor.md#handleSpawnNext`:
159
+ 1. Find ready tasks (pending + deps resolved)
160
+ 2. Spawn team_worker agents via spawn_agent, wait_agent for results
161
+ 3. Output status summary
162
+ 4. STOP
163
+
164
+ ## Phase 5: Report + Completion Action
165
+
166
+ 1. Read session state -> collect all results
167
+ 2. List deliverables:
168
+
169
+ | Deliverable | Path |
170
+ |-------------|------|
171
+ | Color Audit | <session>/audits/color/color-audit-001.md |
172
+ | Typography Audit | <session>/audits/typography/typo-audit-001.md |
173
+ | Focus Audit | <session>/audits/focus/focus-audit-001.md |
174
+ | Remediation Plan | <session>/remediation/remediation-plan.md |
175
+ | Fix Summary | <session>/fixes/fix-summary-001.md (full mode) |
176
+ | Re-audit Color | <session>/re-audit/color-audit-002.md (full mode) |
177
+ | Re-audit Focus | <session>/re-audit/focus-audit-002.md (full mode) |
178
+ | Evidence | <session>/evidence/*.png (if Chrome DevTools used) |
179
+
180
+ 3. Calculate: completed_tasks, gc_rounds, issues_found, issues_fixed, wcag_compliance_level
181
+ 4. Output pipeline summary with [coordinator] prefix
182
+ 5. Execute completion action:
183
+ ```
184
+ functions.request_user_input({
185
+ questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
186
+ { label: "Archive & Clean", description: "Archive session and clean up resources" },
187
+ { label: "Keep Active", description: "Keep session for follow-up work" },
188
+ { label: "Export Results", description: "Export deliverables to specified location" }
189
+ ]}]
190
+ })
191
+ ```
192
+
193
+ ## v4 Coordination Patterns
194
+
195
+ ### Message Semantics
196
+ - **send_message**: Queue supplementary info to a running agent. Does NOT interrupt current processing. Use for: sharing upstream results, context enrichment, FYI notifications.
197
+ - **assign_task**: Assign new work and trigger processing. Use for: waking idle agents, redirecting work, requesting new output.
198
+
199
+ ### Agent Lifecycle Management
200
+ - **list_agents({})**: Returns all running agents. Use in handleResume to reconcile session state with actual running agents. Use in handleComplete to verify clean shutdown.
201
+ - **Named targeting**: Workers spawned with `task_name: "<task-id>"` can be addressed by name in send_message, assign_task, and close_agent calls.
202
+
203
+ ## Error Handling
204
+
205
+ | Error | Resolution |
206
+ |-------|------------|
207
+ | Task timeout | Log, mark failed, ask user to retry or skip |
208
+ | Worker crash | Reset task to pending, respawn worker |
209
+ | Dependency cycle | Detect, report to user, halt |
210
+ | Invalid scope | Reject with error, ask to clarify |
211
+ | Session corruption | Attempt recovery, fallback to manual reconciliation |
212
+ | GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |
213
+ | Chrome DevTools unavailable | Mark in meta.json, auditors degrade to static analysis |
@@ -213,7 +213,7 @@ if (isResumeMode) {
213
213
  return { id, path: s, progress: `${done}/${total} tasks` }
214
214
  })
215
215
 
216
- const answer = request_user_input({
216
+ const answer = functions.request_user_input({
217
217
  questions: [{
218
218
  header: "Session",
219
219
  id: "session",
@@ -546,7 +546,7 @@ if (!AUTO_YES) {
546
546
  console.log(` Wave ${w}: ${waveTasks.map(t => `${t.id}(${t.agent})`).join(', ')}`)
547
547
  }
548
548
 
549
- const answer = request_user_input({
549
+ const answer = functions.request_user_input({
550
550
  questions: [{
551
551
  header: "Confirm",
552
552
  id: "confirm_execute",
@@ -891,7 +891,7 @@ Bash(`cd "${sessionFolder}" && jq '.status = "${sessionStatus}" | .completed_at
891
891
  if (AUTO_YES) {
892
892
  console.log(` [--yes] Session ${sessionId} ${sessionStatus}.`)
893
893
  } else {
894
- const nextStep = request_user_input({
894
+ const nextStep = functions.request_user_input({
895
895
  questions: [{
896
896
  header: "Next Step",
897
897
  id: "next_step",
@@ -922,7 +922,7 @@ if (AUTO_YES) {
922
922
  console.log(`\n## Phase 6: Post-Implementation Review\n`)
923
923
 
924
924
  const reviewType = AUTO_YES ? 'quality' : (() => {
925
- const answer = request_user_input({
925
+ const answer = functions.request_user_input({
926
926
  questions: [{
927
927
  header: "Review Type",
928
928
  id: "review_type",
@@ -966,7 +966,7 @@ console.log(` Review complete: ${sessionFolder}/REVIEW-${reviewType}.md`)
966
966
 
967
967
  // Post-review options
968
968
  if (!AUTO_YES) {
969
- const postReview = request_user_input({
969
+ const postReview = functions.request_user_input({
970
970
  questions: [{
971
971
  header: "Post Review",
972
972
  id: "post_review",
@@ -292,7 +292,7 @@ REQUIREMENT: ${requirement}" --tool gemini --mode analysis --rule planning-break
292
292
  console.log(`\n## Exploration Plan (${angles.length} angles)\n`)
293
293
  angles.forEach(a => console.log(` - [${a.id}] ${a.angle}: ${a.focus}`))
294
294
 
295
- const answer = request_user_input({
295
+ const answer = functions.request_user_input({
296
296
  questions: [{
297
297
  question: "Approve exploration angles?",
298
298
  header: "Validation",
@@ -588,7 +588,7 @@ ${wt.map(t => ` - [${t.id}] ${t.title} (scope: ${t.scope}, from: ${t.context_fr
588
588
  }).join('\n')}
589
589
  `)
590
590
 
591
- const answer = request_user_input({
591
+ const answer = functions.request_user_input({
592
592
  questions: [{
593
593
  question: `Proceed with ${decomposedTasks.length} tasks across ${maxWave} waves?`,
594
594
  header: "Confirm",
@@ -989,7 +989,7 @@ ${[...new Set(finalTasks.flatMap(t => (t.files_modified || '').split(';')).filte
989
989
 
990
990
  ```javascript
991
991
  if (!AUTO_YES && failed.length > 0) {
992
- const answer = request_user_input({
992
+ const answer = functions.request_user_input({
993
993
  questions: [{
994
994
  question: `${failed.length} tasks failed. Next action?`,
995
995
  header: "Next Step",
@@ -209,7 +209,7 @@ if (existingSessionId) {
209
209
  sessionFolder = sessions[0]
210
210
  sessionId = sessions[0].split('/').pop()
211
211
  } else {
212
- const answer = request_user_input({
212
+ const answer = functions.request_user_input({
213
213
  questions: [{
214
214
  question: "Multiple sessions found. Select one:",
215
215
  header: "Session",
@@ -328,7 +328,7 @@ TASK DESCRIPTION: ${taskDescription}" --tool gemini --mode analysis --rule analy
328
328
  console.log(` Strategy: ${c.strategy} | Impact: ${c.impact}`)
329
329
  })
330
330
 
331
- const answer = request_user_input({
331
+ const answer = functions.request_user_input({
332
332
  questions: [{
333
333
  question: "Accept conflict resolution strategies?",
334
334
  header: "Conflicts",
@@ -481,7 +481,7 @@ Integrate ${uniqueModules.length} module plans into unified IMPL_PLAN.md.
481
481
  console.log(` [--yes] Auto-verifying plan...`)
482
482
  // → Fall through to Phase 5
483
483
  } else {
484
- const nextStep = request_user_input({
484
+ const nextStep = functions.request_user_input({
485
485
  questions: [{
486
486
  question: "Plan generated. What's next?",
487
487
  header: "Next Step",
@@ -228,7 +228,7 @@ if (existingSessionId) {
228
228
  sessionFolder = sessions[0]
229
229
  sessionId = sessions[0].split('/').pop()
230
230
  } else {
231
- const answer = request_user_input({
231
+ const answer = functions.request_user_input({
232
232
  questions: [{
233
233
  question: "Multiple sessions found. Select one:",
234
234
  header: "Session",
@@ -421,7 +421,7 @@ TASK DESCRIPTION: ${taskDescription}" --tool gemini --mode analysis --rule analy
421
421
  console.log(` Strategy: ${c.strategy} | Impact: ${c.impact}`)
422
422
  })
423
423
 
424
- const answer = request_user_input({
424
+ const answer = functions.request_user_input({
425
425
  questions: [{
426
426
  question: "Accept conflict resolution strategies?",
427
427
  header: "Conflicts",
@@ -554,7 +554,7 @@ if (validationErrors.length > 0) {
554
554
  validationErrors.forEach(e => console.log(` - ${e}`))
555
555
 
556
556
  if (!AUTO_YES) {
557
- const answer = request_user_input({
557
+ const answer = functions.request_user_input({
558
558
  questions: [{
559
559
  question: "TDD structure validation failed. Continue anyway?",
560
560
  header: "Validation",
@@ -587,7 +587,7 @@ if (AUTO_YES) {
587
587
  console.log(` [--yes] Auto-verifying TDD compliance...`)
588
588
  // → Fall through to Phase 7
589
589
  } else {
590
- const nextStep = request_user_input({
590
+ const nextStep = functions.request_user_input({
591
591
  questions: [{
592
592
  question: "TDD plan generated. What's next?",
593
593
  header: "Next Step",