claude-code-workflow 7.2.29 → 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 (169) hide show
  1. package/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json +2 -2
  2. package/.ccw/workflows/cli-templates/schemas/task-schema.json +14 -7
  3. package/.claude/agents/action-planning-agent.md +7 -4
  4. package/.claude/agents/cli-explore-agent.md +77 -63
  5. package/.claude/agents/cli-lite-planning-agent.md +11 -10
  6. package/.claude/agents/issue-plan-agent.md +421 -426
  7. package/.claude/commands/workflow/spec/setup.md +1 -1
  8. package/.claude/commands/workflow-skill.md +130 -0
  9. package/.claude/skills/ccw-chain/SKILL.md +92 -0
  10. package/.claude/skills/ccw-chain/chains/ccw-cycle.json +31 -0
  11. package/.claude/skills/ccw-chain/chains/ccw-exploration.json +58 -0
  12. package/.claude/skills/ccw-chain/chains/ccw-issue.json +44 -0
  13. package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +71 -0
  14. package/.claude/skills/ccw-chain/chains/ccw-main.json +65 -0
  15. package/.claude/skills/ccw-chain/chains/ccw-standard.json +51 -0
  16. package/.claude/skills/ccw-chain/chains/ccw-team.json +15 -0
  17. package/.claude/skills/ccw-chain/chains/ccw-with-file.json +47 -0
  18. package/.claude/skills/ccw-chain/specs/auto-mode.md +47 -0
  19. package/.claude/skills/chain-loader/SKILL.md +78 -0
  20. package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -0
  21. package/.claude/skills/chain-loader/phases/02-design-graph.md +73 -0
  22. package/.claude/skills/chain-loader/phases/03-generate-validate.md +75 -0
  23. package/.claude/skills/chain-loader/specs/chain-schema.md +126 -0
  24. package/.claude/skills/chain-loader/specs/design-patterns.md +99 -0
  25. package/.claude/skills/chain-loader/templates/chain-json.md +63 -0
  26. package/.claude/skills/review-cycle/phases/review-module.md +764 -764
  27. package/.claude/skills/review-cycle/phases/review-session.md +775 -775
  28. package/.claude/skills/workflow-multi-cli-plan/SKILL.md +2 -2
  29. package/.claude/skills/workflow-plan/SKILL.md +1 -0
  30. package/.claude/skills/workflow-plan/phases/01-session-discovery.md +19 -2
  31. package/.claude/skills/workflow-plan/phases/02-context-gathering.md +2 -2
  32. package/.claude/skills/workflow-plan/phases/03-conflict-resolution.md +422 -422
  33. package/.claude/skills/workflow-plan/phases/04-task-generation.md +9 -1
  34. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +395 -395
  35. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +407 -407
  36. package/.claude/skills/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -426
  37. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +493 -493
  38. package/.codex/skills/analyze-with-file/SKILL.md +383 -134
  39. package/.codex/skills/brainstorm/SKILL.md +3 -3
  40. package/.codex/skills/brainstorm-with-file/SKILL.md +208 -88
  41. package/.codex/skills/clean/SKILL.md +1 -1
  42. package/.codex/skills/csv-wave-pipeline/SKILL.md +2 -2
  43. package/.codex/skills/investigate/orchestrator.md +24 -0
  44. package/.codex/skills/issue-discover/SKILL.md +374 -361
  45. package/.codex/skills/issue-discover/phases/01-issue-new.md +1 -1
  46. package/.codex/skills/issue-discover/phases/02-discover.md +2 -2
  47. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +1 -1
  48. package/.codex/skills/issue-discover/phases/04-quick-execute.md +2 -2
  49. package/.codex/skills/parallel-dev-cycle/SKILL.md +44 -37
  50. package/.codex/skills/project-documentation-workflow/SKILL.md +1 -1
  51. package/.codex/skills/review-cycle/SKILL.md +31 -12
  52. package/.codex/skills/roadmap-with-file/SKILL.md +141 -133
  53. package/.codex/skills/security-audit/orchestrator.md +29 -0
  54. package/.codex/skills/session-sync/SKILL.md +1 -1
  55. package/.codex/skills/ship/orchestrator.md +24 -0
  56. package/.codex/skills/spec-add/SKILL.md +5 -5
  57. package/.codex/skills/spec-generator/SKILL.md +33 -2
  58. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +3 -3
  59. package/.codex/skills/spec-generator/phases/01-discovery.md +1 -1
  60. package/.codex/skills/spec-generator/phases/02-product-brief.md +1 -1
  61. package/.codex/skills/spec-generator/phases/03-requirements.md +1 -1
  62. package/.codex/skills/spec-generator/phases/04-architecture.md +1 -1
  63. package/.codex/skills/spec-generator/phases/05-epics-stories.md +1 -1
  64. package/.codex/skills/spec-generator/phases/06-readiness-check.md +1 -1
  65. package/.codex/skills/spec-generator/phases/07-issue-export.md +1 -1
  66. package/.codex/skills/spec-setup/SKILL.md +669 -669
  67. package/.codex/skills/team-arch-opt/specs/team-config.json +1 -1
  68. package/.codex/skills/team-brainstorm/SKILL.md +259 -259
  69. package/.codex/skills/team-coordinate/SKILL.md +359 -359
  70. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +1 -1
  71. package/.codex/skills/team-designer/SKILL.md +27 -1
  72. package/.codex/skills/team-designer/phases/01-requirements-analysis.md +2 -2
  73. package/.codex/skills/team-designer/phases/02-scaffold-generation.md +1 -1
  74. package/.codex/skills/team-designer/phases/04-validation.md +1 -1
  75. package/.codex/skills/team-executor/SKILL.md +218 -218
  76. package/.codex/skills/team-frontend/SKILL.md +227 -227
  77. package/.codex/skills/team-frontend-debug/SKILL.md +278 -278
  78. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +2 -2
  79. package/.codex/skills/team-interactive-craft/SKILL.md +220 -220
  80. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -209
  81. package/.codex/skills/team-issue/SKILL.md +269 -269
  82. package/.codex/skills/team-issue/roles/coordinator/role.md +1 -1
  83. package/.codex/skills/team-lifecycle-v4/SKILL.md +305 -305
  84. package/.codex/skills/team-motion-design/SKILL.md +222 -222
  85. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -210
  86. package/.codex/skills/team-perf-opt/SKILL.md +258 -258
  87. package/.codex/skills/team-perf-opt/specs/team-config.json +1 -1
  88. package/.codex/skills/team-planex/SKILL.md +216 -216
  89. package/.codex/skills/team-quality-assurance/SKILL.md +229 -229
  90. package/.codex/skills/team-review/SKILL.md +227 -227
  91. package/.codex/skills/team-roadmap-dev/SKILL.md +238 -238
  92. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +5 -5
  93. package/.codex/skills/team-tech-debt/SKILL.md +206 -206
  94. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
  95. package/.codex/skills/team-testing/SKILL.md +237 -237
  96. package/.codex/skills/team-ui-polish/SKILL.md +218 -218
  97. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -213
  98. package/.codex/skills/team-uidesign/SKILL.md +219 -219
  99. package/.codex/skills/team-uidesign/roles/coordinator/role.md +2 -2
  100. package/.codex/skills/team-ultra-analyze/SKILL.md +260 -260
  101. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +1 -1
  102. package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +1 -1
  103. package/.codex/skills/team-ux-improve/SKILL.md +227 -227
  104. package/.codex/skills/team-ux-improve/roles/coordinator/role.md +1 -1
  105. package/.codex/skills/team-ux-improve/specs/team-config.json +1 -1
  106. package/.codex/skills/team-visual-a11y/SKILL.md +319 -319
  107. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -213
  108. package/.codex/skills/workflow-execute/SKILL.md +5 -5
  109. package/.codex/skills/workflow-lite-planex/SKILL.md +3 -3
  110. package/.codex/skills/workflow-plan/SKILL.md +3 -3
  111. package/.codex/skills/workflow-tdd-plan/SKILL.md +4 -4
  112. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +403 -402
  113. package/README.md +14 -0
  114. package/ccw/dist/cli.d.ts.map +1 -1
  115. package/ccw/dist/cli.js +16 -0
  116. package/ccw/dist/cli.js.map +1 -1
  117. package/ccw/dist/commands/chain-loader.d.ts +2 -0
  118. package/ccw/dist/commands/chain-loader.d.ts.map +1 -0
  119. package/ccw/dist/commands/chain-loader.js +11 -0
  120. package/ccw/dist/commands/chain-loader.js.map +1 -0
  121. package/ccw/dist/commands/install.d.ts.map +1 -1
  122. package/ccw/dist/commands/install.js +52 -1
  123. package/ccw/dist/commands/install.js.map +1 -1
  124. package/ccw/dist/commands/launcher.d.ts +2 -0
  125. package/ccw/dist/commands/launcher.d.ts.map +1 -0
  126. package/ccw/dist/commands/launcher.js +434 -0
  127. package/ccw/dist/commands/launcher.js.map +1 -0
  128. package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
  129. package/ccw/dist/core/routes/litellm-api-routes.js +0 -23
  130. package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
  131. package/ccw/dist/tools/chain-loader.d.ts +10 -0
  132. package/ccw/dist/tools/chain-loader.d.ts.map +1 -0
  133. package/ccw/dist/tools/chain-loader.js +1054 -0
  134. package/ccw/dist/tools/chain-loader.js.map +1 -0
  135. package/ccw/dist/tools/index.d.ts.map +1 -1
  136. package/ccw/dist/tools/index.js +2 -0
  137. package/ccw/dist/tools/index.js.map +1 -1
  138. package/ccw/dist/tools/json-builder.js +20 -0
  139. package/ccw/dist/tools/json-builder.js.map +1 -1
  140. package/ccw/dist/tools/skill-context-loader.d.ts.map +1 -1
  141. package/ccw/dist/tools/skill-context-loader.js +12 -26
  142. package/ccw/dist/tools/skill-context-loader.js.map +1 -1
  143. package/ccw/dist/types/chain-types.d.ts +112 -0
  144. package/ccw/dist/types/chain-types.d.ts.map +1 -0
  145. package/ccw/dist/types/chain-types.js +5 -0
  146. package/ccw/dist/types/chain-types.js.map +1 -0
  147. package/ccw/dist/utils/chain-visualizer.d.ts +13 -0
  148. package/ccw/dist/utils/chain-visualizer.d.ts.map +1 -0
  149. package/ccw/dist/utils/chain-visualizer.js +164 -0
  150. package/ccw/dist/utils/chain-visualizer.js.map +1 -0
  151. package/ccw/scripts/prepublish-clean.mjs +0 -1
  152. package/package.json +1 -3
  153. package/.claude/commands/cli/cli-init.md +0 -441
  154. package/.claude/commands/cli/codex-review.md +0 -361
  155. package/.claude/commands/flow-create.md +0 -663
  156. package/.claude/skills/team-edict.zip +0 -0
  157. package/ccw-litellm/README.md +0 -180
  158. package/ccw-litellm/pyproject.toml +0 -35
  159. package/ccw-litellm/src/ccw_litellm/__init__.py +0 -47
  160. package/ccw-litellm/src/ccw_litellm/cli.py +0 -108
  161. package/ccw-litellm/src/ccw_litellm/clients/__init__.py +0 -12
  162. package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +0 -270
  163. package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +0 -198
  164. package/ccw-litellm/src/ccw_litellm/config/__init__.py +0 -22
  165. package/ccw-litellm/src/ccw_litellm/config/loader.py +0 -343
  166. package/ccw-litellm/src/ccw_litellm/config/models.py +0 -162
  167. package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +0 -14
  168. package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +0 -52
  169. package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +0 -45
@@ -1,319 +1,319 @@
1
- ---
2
- name: team-visual-a11y
3
- description: Unified team skill for visual accessibility QA. OKLCH color contrast, typography readability, focus management, WCAG AA/AAA audit at rendered level. Uses team-worker agent architecture. Triggers on "team visual a11y", "accessibility audit", "visual a11y".
4
- allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), assign_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ccw-tools__read_file(*), mcp__ccw-tools__write_file(*), mcp__ccw-tools__edit_file(*), mcp__ccw-tools__team_msg(*), mcp__chrome-devtools__evaluate_script(*), mcp__chrome-devtools__take_screenshot(*), mcp__chrome-devtools__emulate(*), mcp__chrome-devtools__lighthouse_audit(*), mcp__chrome-devtools__navigate_page(*), mcp__chrome-devtools__resize_page(*)
5
- ---
6
-
7
- # Team Visual Accessibility
8
-
9
- Deep visual accessibility QA: OKLCH-based perceptual color contrast, typography readability at all viewports, focus-visible completeness, WCAG AA/AAA audit at rendered level. Built on **team-worker agent architecture** -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from `roles/<role>/role.md`.
10
-
11
- ## Architecture
12
-
13
- ```
14
- Skill(skill="team-visual-a11y", args="task description")
15
- |
16
- SKILL.md (this file) = Router
17
- |
18
- +--------------+--------------+
19
- | |
20
- no --role flag --role <name>
21
- | |
22
- Coordinator Worker
23
- roles/coordinator/role.md roles/<name>/role.md
24
- |
25
- +-- analyze -> dispatch -> spawn workers -> STOP
26
- |
27
- +-------+-------+-------+
28
- v v v |
29
- [3 auditors spawn in PARALLEL] |
30
- color-auditor typo-auditor focus-auditor
31
- | | |
32
- +---+---+---+---+
33
- v
34
- remediation-planner
35
- |
36
- v
37
- fix-implementer (inner_loop)
38
- |
39
- v
40
- [re-audit: color + focus in PARALLEL]
41
- ```
42
-
43
- ## Role Registry
44
-
45
- | Role | Path | Prefix | Inner Loop |
46
- |------|------|--------|------------|
47
- | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
48
- | color-auditor | [roles/color-auditor/role.md](roles/color-auditor/role.md) | COLOR-* | false |
49
- | typo-auditor | [roles/typo-auditor/role.md](roles/typo-auditor/role.md) | TYPO-* | false |
50
- | focus-auditor | [roles/focus-auditor/role.md](roles/focus-auditor/role.md) | FOCUS-* | false |
51
- | remediation-planner | [roles/remediation-planner/role.md](roles/remediation-planner/role.md) | REMED-* | false |
52
- | fix-implementer | [roles/fix-implementer/role.md](roles/fix-implementer/role.md) | FIX-* | true |
53
-
54
- ## Role Router
55
-
56
- Parse `$ARGUMENTS`:
57
- - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
58
- - No `--role` -> `roles/coordinator/role.md`, execute entry router
59
-
60
- ## Delegation Lock
61
-
62
- **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
63
-
64
- Before calling ANY tool, apply this check:
65
-
66
- | Tool Call | Verdict | Reason |
67
- |-----------|---------|--------|
68
- | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
69
- | `list_agents` | ALLOWED | Agent health check |
70
- | `request_user_input` | ALLOWED | User interaction |
71
- | `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
72
- | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
73
- | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
74
- | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
75
- | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
76
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
77
- | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
78
-
79
- **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
80
-
81
- **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
82
-
83
- ---
84
-
85
- ## Shared Constants
86
-
87
- - **Session prefix**: `VA`
88
- - **Session path**: `.workflow/.team/VA-<slug>-<date>/`
89
- - **team_name**: `visual-a11y`
90
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
91
- - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
92
- - **Max GC rounds**: 2
93
-
94
- ## Worker Spawn Template
95
-
96
- Coordinator spawns workers using this template:
97
-
98
- ```
99
- spawn_agent({
100
- agent_type: "team_worker",
101
- task_name: "<task-id>",
102
- fork_context: false,
103
- items: [
104
- { type: "text", text: `## Role Assignment
105
- role: <role>
106
- role_spec: <skill_root>/roles/<role>/role.md
107
- session: <session-folder>
108
- session_id: <session-id>
109
- requirement: <task-description>
110
- inner_loop: <true|false>
111
-
112
- Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
113
-
114
- { type: "text", text: `## Task Context
115
- task_id: <task-id>
116
- title: <task-title>
117
- description: <task-description>
118
- pipeline_phase: <pipeline-phase>` },
119
-
120
- { type: "text", text: `## Upstream Context
121
- <prev_context>` }
122
- ]
123
- })
124
- ```
125
-
126
- ### Parallel Fan-in Spawn (3 Auditors)
127
-
128
- The 3 auditors run in parallel. Spawn all 3, then wait for all 3:
129
-
130
- ```javascript
131
- // Spawn 3 auditors in parallel
132
- spawn_agent({
133
- agent_type: "team_worker",
134
- task_name: "COLOR-001",
135
- fork_context: false,
136
- items: [
137
- { type: "text", text: `## Role Assignment
138
- role: color-auditor
139
- role_spec: ${skillRoot}/roles/color-auditor/role.md
140
- session: ${sessionFolder}
141
- session_id: ${sessionId}
142
- requirement: ${colorTaskDescription}
143
- inner_loop: false
144
-
145
- Read role_spec file to load Phase 2-4 domain instructions.` },
146
- { type: "text", text: `## Task Context
147
- task_id: COLOR-001
148
- title: OKLCH Color Contrast Audit
149
- description: ${colorTaskDescription}
150
- pipeline_phase: audit` }
151
- ]
152
- })
153
-
154
- spawn_agent({
155
- agent_type: "team_worker",
156
- task_name: "TYPO-001",
157
- fork_context: false,
158
- items: [
159
- { type: "text", text: `## Role Assignment
160
- role: typo-auditor
161
- role_spec: ${skillRoot}/roles/typo-auditor/role.md
162
- session: ${sessionFolder}
163
- session_id: ${sessionId}
164
- requirement: ${typoTaskDescription}
165
- inner_loop: false
166
-
167
- Read role_spec file to load Phase 2-4 domain instructions.` },
168
- { type: "text", text: `## Task Context
169
- task_id: TYPO-001
170
- title: Typography Readability Audit
171
- description: ${typoTaskDescription}
172
- pipeline_phase: audit` }
173
- ]
174
- })
175
-
176
- spawn_agent({
177
- agent_type: "team_worker",
178
- task_name: "FOCUS-001",
179
- fork_context: false,
180
- items: [
181
- { type: "text", text: `## Role Assignment
182
- role: focus-auditor
183
- role_spec: ${skillRoot}/roles/focus-auditor/role.md
184
- session: ${sessionFolder}
185
- session_id: ${sessionId}
186
- requirement: ${focusTaskDescription}
187
- inner_loop: false
188
-
189
- Read role_spec file to load Phase 2-4 domain instructions.` },
190
- { type: "text", text: `## Task Context
191
- task_id: FOCUS-001
192
- title: Focus & Keyboard Accessibility Audit
193
- description: ${focusTaskDescription}
194
- pipeline_phase: audit` }
195
- ]
196
- })
197
-
198
- // Wait for ALL 3 auditors to complete
199
- wait_agent({ targets: ["COLOR-001", "TYPO-001", "FOCUS-001"], timeout_ms: 900000 })
200
-
201
- // Close all 3
202
- close_agent({ target: "COLOR-001" })
203
- close_agent({ target: "TYPO-001" })
204
- close_agent({ target: "FOCUS-001" })
205
-
206
- // Then spawn remediation-planner with all 3 audit results as upstream context
207
- ```
208
-
209
- After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target })` each worker.
210
-
211
- ### Model Selection Guide
212
-
213
- Visual accessibility is a precision pipeline where auditors need thorough analysis and fix-implementer needs careful code changes.
214
-
215
- | Role | reasoning_effort | Rationale |
216
- |------|-------------------|-----------|
217
- | color-auditor | high | OKLCH calculations, contrast ratio precision |
218
- | typo-auditor | high | Multi-breakpoint analysis, clamp() validation |
219
- | focus-auditor | high | ARIA patterns, keyboard navigation completeness |
220
- | remediation-planner | high | Synthesize 3 audit reports into actionable plan |
221
- | fix-implementer | medium | Implementation follows defined remediation plan |
222
-
223
- ### Audit-to-Remediation Context Flow
224
-
225
- All 3 audit findings must reach remediation-planner via coordinator's upstream context:
226
- ```
227
- // After COLOR-001 + TYPO-001 + FOCUS-001 all complete, coordinator sends findings to planner
228
- spawn_agent({
229
- agent_type: "team_worker",
230
- task_name: "REMED-001",
231
- fork_context: false,
232
- items: [
233
- ...,
234
- { type: "text", text: `## Upstream Context
235
- Color audit: <session>/audits/color/color-audit-001.md
236
- Typography audit: <session>/audits/typography/typo-audit-001.md
237
- Focus audit: <session>/audits/focus/focus-audit-001.md` }
238
- ]
239
- })
240
- ```
241
-
242
- ## User Commands
243
-
244
- | Command | Action |
245
- |---------|--------|
246
- | `check` / `status` | View execution status graph |
247
- | `resume` / `continue` | Advance to next step |
248
-
249
- ## Specs Reference
250
-
251
- - [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
252
- - [specs/oklch-standards.md](specs/oklch-standards.md) -- OKLCH color accessibility rules
253
- - [specs/wcag-matrix.md](specs/wcag-matrix.md) -- WCAG 2.1 criteria matrix
254
- - [specs/typography-scale.md](specs/typography-scale.md) -- Typography accessibility rules
255
- - [specs/focus-patterns.md](specs/focus-patterns.md) -- Focus management patterns
256
-
257
- ## Session Directory
258
-
259
- ```
260
- .workflow/.team/VA-<slug>-<date>/
261
- +-- .msg/
262
- | +-- messages.jsonl # Team message bus
263
- | +-- meta.json # Pipeline config + GC state
264
- +-- audits/
265
- | +-- color/ # Color auditor output
266
- | | +-- color-audit-001.md
267
- | +-- typography/ # Typography auditor output
268
- | | +-- typo-audit-001.md
269
- | +-- focus/ # Focus auditor output
270
- | +-- focus-audit-001.md
271
- +-- remediation/ # Remediation planner output
272
- | +-- remediation-plan.md
273
- +-- fixes/ # Fix implementer output
274
- | +-- fix-summary-001.md
275
- +-- re-audit/ # Re-audit output (GC loop)
276
- | +-- color-audit-002.md
277
- | +-- focus-audit-002.md
278
- +-- evidence/ # Screenshots, traces
279
- ```
280
-
281
- ## v4 Agent Coordination
282
-
283
- ### Message Semantics
284
-
285
- | Intent | API | Example |
286
- |--------|-----|---------|
287
- | Queue supplementary info (don't interrupt) | `send_message` | Send audit findings to running remediation-planner |
288
- | Assign new work from reviewed plan | `assign_task` | Assign FIX task after remediation plan ready |
289
- | Check running agents | `list_agents` | Verify agent health during resume |
290
-
291
- ### Agent Health Check
292
-
293
- Use `list_agents({})` in handleResume and handleComplete:
294
-
295
- ```
296
- // Reconcile session state with actual running agents
297
- const running = list_agents({})
298
- // Compare with tasks.json active tasks
299
- // Reset orphaned tasks (in_progress but agent gone) to pending
300
- ```
301
-
302
- ### Named Agent Targeting
303
-
304
- Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
305
- - `send_message({ target: "REMED-001", items: [...] })` -- send additional audit findings to remediation-planner
306
- - `assign_task({ target: "FIX-001", items: [...] })` -- assign implementation from remediation plan
307
- - `close_agent({ target: "COLOR-001" })` -- cleanup after color audit
308
-
309
- ## Error Handling
310
-
311
- | Scenario | Resolution |
312
- |----------|------------|
313
- | Unknown command | Error with available command list |
314
- | Role not found | Error with role registry |
315
- | Session corruption | Attempt recovery, fallback to manual |
316
- | Fast-advance conflict | Coordinator reconciles on next callback |
317
- | Completion action fails | Default to Keep Active |
318
- | GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |
319
- | Chrome DevTools unavailable | Degrade to static analysis only |
1
+ ---
2
+ name: team-visual-a11y
3
+ description: Unified team skill for visual accessibility QA. OKLCH color contrast, typography readability, focus management, WCAG AA/AAA audit at rendered level. Uses team-worker agent architecture. Triggers on "team visual a11y", "accessibility audit", "visual a11y".
4
+ allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), assign_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ccw-tools__read_file(*), mcp__ccw-tools__write_file(*), mcp__ccw-tools__edit_file(*), mcp__ccw-tools__team_msg(*), mcp__chrome-devtools__evaluate_script(*), mcp__chrome-devtools__take_screenshot(*), mcp__chrome-devtools__emulate(*), mcp__chrome-devtools__lighthouse_audit(*), mcp__chrome-devtools__navigate_page(*), mcp__chrome-devtools__resize_page(*)
5
+ ---
6
+
7
+ # Team Visual Accessibility
8
+
9
+ Deep visual accessibility QA: OKLCH-based perceptual color contrast, typography readability at all viewports, focus-visible completeness, WCAG AA/AAA audit at rendered level. Built on **team-worker agent architecture** -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from `roles/<role>/role.md`.
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ Skill(skill="team-visual-a11y", args="task description")
15
+ |
16
+ SKILL.md (this file) = Router
17
+ |
18
+ +--------------+--------------+
19
+ | |
20
+ no --role flag --role <name>
21
+ | |
22
+ Coordinator Worker
23
+ roles/coordinator/role.md roles/<name>/role.md
24
+ |
25
+ +-- analyze -> dispatch -> spawn workers -> STOP
26
+ |
27
+ +-------+-------+-------+
28
+ v v v |
29
+ [3 auditors spawn in PARALLEL] |
30
+ color-auditor typo-auditor focus-auditor
31
+ | | |
32
+ +---+---+---+---+
33
+ v
34
+ remediation-planner
35
+ |
36
+ v
37
+ fix-implementer (inner_loop)
38
+ |
39
+ v
40
+ [re-audit: color + focus in PARALLEL]
41
+ ```
42
+
43
+ ## Role Registry
44
+
45
+ | Role | Path | Prefix | Inner Loop |
46
+ |------|------|--------|------------|
47
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
48
+ | color-auditor | [roles/color-auditor/role.md](roles/color-auditor/role.md) | COLOR-* | false |
49
+ | typo-auditor | [roles/typo-auditor/role.md](roles/typo-auditor/role.md) | TYPO-* | false |
50
+ | focus-auditor | [roles/focus-auditor/role.md](roles/focus-auditor/role.md) | FOCUS-* | false |
51
+ | remediation-planner | [roles/remediation-planner/role.md](roles/remediation-planner/role.md) | REMED-* | false |
52
+ | fix-implementer | [roles/fix-implementer/role.md](roles/fix-implementer/role.md) | FIX-* | true |
53
+
54
+ ## Role Router
55
+
56
+ Parse `$ARGUMENTS`:
57
+ - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
58
+ - No `--role` -> `roles/coordinator/role.md`, execute entry router
59
+
60
+ ## Delegation Lock
61
+
62
+ **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
63
+
64
+ Before calling ANY tool, apply this check:
65
+
66
+ | Tool Call | Verdict | Reason |
67
+ |-----------|---------|--------|
68
+ | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
69
+ | `list_agents` | ALLOWED | Agent health check |
70
+ | `request_user_input` | ALLOWED | User interaction |
71
+ | `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
72
+ | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
73
+ | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
74
+ | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
75
+ | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
76
+ | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
77
+ | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
78
+
79
+ **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
80
+
81
+ **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
82
+
83
+ ---
84
+
85
+ ## Shared Constants
86
+
87
+ - **Session prefix**: `VA`
88
+ - **Session path**: `.workflow/.team/VA-<slug>-<date>/`
89
+ - **team_name**: `visual-a11y`
90
+ - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
91
+ - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
92
+ - **Max GC rounds**: 2
93
+
94
+ ## Worker Spawn Template
95
+
96
+ Coordinator spawns workers using this template:
97
+
98
+ ```
99
+ spawn_agent({
100
+ agent_type: "team_worker",
101
+ task_name: "<task-id>",
102
+ fork_context: false,
103
+ items: [
104
+ { type: "text", text: `## Role Assignment
105
+ role: <role>
106
+ role_spec: <skill_root>/roles/<role>/role.md
107
+ session: <session-folder>
108
+ session_id: <session-id>
109
+ requirement: <task-description>
110
+ inner_loop: <true|false>
111
+
112
+ Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
113
+
114
+ { type: "text", text: `## Task Context
115
+ task_id: <task-id>
116
+ title: <task-title>
117
+ description: <task-description>
118
+ pipeline_phase: <pipeline-phase>` },
119
+
120
+ { type: "text", text: `## Upstream Context
121
+ <prev_context>` }
122
+ ]
123
+ })
124
+ ```
125
+
126
+ ### Parallel Fan-in Spawn (3 Auditors)
127
+
128
+ The 3 auditors run in parallel. Spawn all 3, then wait for all 3:
129
+
130
+ ```javascript
131
+ // Spawn 3 auditors in parallel
132
+ spawn_agent({
133
+ agent_type: "team_worker",
134
+ task_name: "COLOR-001",
135
+ fork_context: false,
136
+ items: [
137
+ { type: "text", text: `## Role Assignment
138
+ role: color-auditor
139
+ role_spec: ${skillRoot}/roles/color-auditor/role.md
140
+ session: ${sessionFolder}
141
+ session_id: ${sessionId}
142
+ requirement: ${colorTaskDescription}
143
+ inner_loop: false
144
+
145
+ Read role_spec file to load Phase 2-4 domain instructions.` },
146
+ { type: "text", text: `## Task Context
147
+ task_id: COLOR-001
148
+ title: OKLCH Color Contrast Audit
149
+ description: ${colorTaskDescription}
150
+ pipeline_phase: audit` }
151
+ ]
152
+ })
153
+
154
+ spawn_agent({
155
+ agent_type: "team_worker",
156
+ task_name: "TYPO-001",
157
+ fork_context: false,
158
+ items: [
159
+ { type: "text", text: `## Role Assignment
160
+ role: typo-auditor
161
+ role_spec: ${skillRoot}/roles/typo-auditor/role.md
162
+ session: ${sessionFolder}
163
+ session_id: ${sessionId}
164
+ requirement: ${typoTaskDescription}
165
+ inner_loop: false
166
+
167
+ Read role_spec file to load Phase 2-4 domain instructions.` },
168
+ { type: "text", text: `## Task Context
169
+ task_id: TYPO-001
170
+ title: Typography Readability Audit
171
+ description: ${typoTaskDescription}
172
+ pipeline_phase: audit` }
173
+ ]
174
+ })
175
+
176
+ spawn_agent({
177
+ agent_type: "team_worker",
178
+ task_name: "FOCUS-001",
179
+ fork_context: false,
180
+ items: [
181
+ { type: "text", text: `## Role Assignment
182
+ role: focus-auditor
183
+ role_spec: ${skillRoot}/roles/focus-auditor/role.md
184
+ session: ${sessionFolder}
185
+ session_id: ${sessionId}
186
+ requirement: ${focusTaskDescription}
187
+ inner_loop: false
188
+
189
+ Read role_spec file to load Phase 2-4 domain instructions.` },
190
+ { type: "text", text: `## Task Context
191
+ task_id: FOCUS-001
192
+ title: Focus & Keyboard Accessibility Audit
193
+ description: ${focusTaskDescription}
194
+ pipeline_phase: audit` }
195
+ ]
196
+ })
197
+
198
+ // Wait for ALL 3 auditors to complete
199
+ wait_agent({ targets: ["COLOR-001", "TYPO-001", "FOCUS-001"], timeout_ms: 900000 })
200
+
201
+ // Close all 3
202
+ close_agent({ target: "COLOR-001" })
203
+ close_agent({ target: "TYPO-001" })
204
+ close_agent({ target: "FOCUS-001" })
205
+
206
+ // Then spawn remediation-planner with all 3 audit results as upstream context
207
+ ```
208
+
209
+ After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target })` each worker.
210
+
211
+ ### Model Selection Guide
212
+
213
+ Visual accessibility is a precision pipeline where auditors need thorough analysis and fix-implementer needs careful code changes.
214
+
215
+ | Role | reasoning_effort | Rationale |
216
+ |------|-------------------|-----------|
217
+ | color-auditor | high | OKLCH calculations, contrast ratio precision |
218
+ | typo-auditor | high | Multi-breakpoint analysis, clamp() validation |
219
+ | focus-auditor | high | ARIA patterns, keyboard navigation completeness |
220
+ | remediation-planner | high | Synthesize 3 audit reports into actionable plan |
221
+ | fix-implementer | medium | Implementation follows defined remediation plan |
222
+
223
+ ### Audit-to-Remediation Context Flow
224
+
225
+ All 3 audit findings must reach remediation-planner via coordinator's upstream context:
226
+ ```
227
+ // After COLOR-001 + TYPO-001 + FOCUS-001 all complete, coordinator sends findings to planner
228
+ spawn_agent({
229
+ agent_type: "team_worker",
230
+ task_name: "REMED-001",
231
+ fork_context: false,
232
+ items: [
233
+ ...,
234
+ { type: "text", text: `## Upstream Context
235
+ Color audit: <session>/audits/color/color-audit-001.md
236
+ Typography audit: <session>/audits/typography/typo-audit-001.md
237
+ Focus audit: <session>/audits/focus/focus-audit-001.md` }
238
+ ]
239
+ })
240
+ ```
241
+
242
+ ## User Commands
243
+
244
+ | Command | Action |
245
+ |---------|--------|
246
+ | `check` / `status` | View execution status graph |
247
+ | `resume` / `continue` | Advance to next step |
248
+
249
+ ## Specs Reference
250
+
251
+ - [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
252
+ - [specs/oklch-standards.md](specs/oklch-standards.md) -- OKLCH color accessibility rules
253
+ - [specs/wcag-matrix.md](specs/wcag-matrix.md) -- WCAG 2.1 criteria matrix
254
+ - [specs/typography-scale.md](specs/typography-scale.md) -- Typography accessibility rules
255
+ - [specs/focus-patterns.md](specs/focus-patterns.md) -- Focus management patterns
256
+
257
+ ## Session Directory
258
+
259
+ ```
260
+ .workflow/.team/VA-<slug>-<date>/
261
+ +-- .msg/
262
+ | +-- messages.jsonl # Team message bus
263
+ | +-- meta.json # Pipeline config + GC state
264
+ +-- audits/
265
+ | +-- color/ # Color auditor output
266
+ | | +-- color-audit-001.md
267
+ | +-- typography/ # Typography auditor output
268
+ | | +-- typo-audit-001.md
269
+ | +-- focus/ # Focus auditor output
270
+ | +-- focus-audit-001.md
271
+ +-- remediation/ # Remediation planner output
272
+ | +-- remediation-plan.md
273
+ +-- fixes/ # Fix implementer output
274
+ | +-- fix-summary-001.md
275
+ +-- re-audit/ # Re-audit output (GC loop)
276
+ | +-- color-audit-002.md
277
+ | +-- focus-audit-002.md
278
+ +-- evidence/ # Screenshots, traces
279
+ ```
280
+
281
+ ## v4 Agent Coordination
282
+
283
+ ### Message Semantics
284
+
285
+ | Intent | API | Example |
286
+ |--------|-----|---------|
287
+ | Queue supplementary info (don't interrupt) | `send_message` | Send audit findings to running remediation-planner |
288
+ | Assign new work from reviewed plan | `assign_task` | Assign FIX task after remediation plan ready |
289
+ | Check running agents | `list_agents` | Verify agent health during resume |
290
+
291
+ ### Agent Health Check
292
+
293
+ Use `list_agents({})` in handleResume and handleComplete:
294
+
295
+ ```
296
+ // Reconcile session state with actual running agents
297
+ const running = list_agents({})
298
+ // Compare with tasks.json active tasks
299
+ // Reset orphaned tasks (in_progress but agent gone) to pending
300
+ ```
301
+
302
+ ### Named Agent Targeting
303
+
304
+ Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
305
+ - `send_message({ target: "REMED-001", items: [...] })` -- send additional audit findings to remediation-planner
306
+ - `assign_task({ target: "FIX-001", items: [...] })` -- assign implementation from remediation plan
307
+ - `close_agent({ target: "COLOR-001" })` -- cleanup after color audit
308
+
309
+ ## Error Handling
310
+
311
+ | Scenario | Resolution |
312
+ |----------|------------|
313
+ | Unknown command | Error with available command list |
314
+ | Role not found | Error with role registry |
315
+ | Session corruption | Attempt recovery, fallback to manual |
316
+ | Fast-advance conflict | Coordinator reconciles on next callback |
317
+ | Completion action fails | Default to Keep Active |
318
+ | GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |
319
+ | Chrome DevTools unavailable | Degrade to static analysis only |