claude-code-workflow 7.2.27 → 7.2.28

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 (382) hide show
  1. package/.ccw/specs/architecture-constraints.md +5 -0
  2. package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
  3. package/.claude/skills/investigate/SKILL.md +110 -0
  4. package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
  5. package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
  6. package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
  7. package/.claude/skills/investigate/phases/04-implementation.md +139 -0
  8. package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
  9. package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
  10. package/.claude/skills/investigate/specs/iron-law.md +101 -0
  11. package/.claude/skills/security-audit/SKILL.md +125 -0
  12. package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
  13. package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
  14. package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
  15. package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
  16. package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
  17. package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
  18. package/.claude/skills/ship/SKILL.md +105 -0
  19. package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
  20. package/.claude/skills/ship/phases/02-code-review.md +137 -0
  21. package/.claude/skills/ship/phases/03-version-bump.md +171 -0
  22. package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
  23. package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
  24. package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
  25. package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
  26. package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
  27. package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  28. package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
  29. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  30. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
  31. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
  32. package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
  33. package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  34. package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  35. package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  36. package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
  37. package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
  38. package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  39. package/.claude/skills/team-motion-design/SKILL.md +129 -0
  40. package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
  41. package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
  42. package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  43. package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
  44. package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
  45. package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
  46. package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  47. package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  48. package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  49. package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
  50. package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
  51. package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
  52. package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
  53. package/.claude/skills/team-ui-polish/SKILL.md +127 -0
  54. package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  55. package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
  56. package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
  57. package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
  58. package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
  59. package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
  60. package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
  61. package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
  62. package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  63. package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
  64. package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  65. package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
  66. package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  67. package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
  68. package/.claude/skills/team-uidesign/SKILL.md +6 -1
  69. package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
  70. package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
  71. package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
  72. package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
  73. package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
  74. package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
  75. package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
  76. package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
  77. package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
  78. package/.claude/skills/team-ux-improve/SKILL.md +3 -0
  79. package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
  80. package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
  81. package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
  82. package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
  83. package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
  84. package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
  85. package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
  86. package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
  87. package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
  88. package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
  89. package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
  90. package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  91. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  92. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
  93. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
  94. package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
  95. package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  96. package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  97. package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  98. package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  99. package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  100. package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  101. package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
  102. package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
  103. package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  104. package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  105. package/.codex/skills/investigate/agents/investigator.md +392 -0
  106. package/.codex/skills/investigate/orchestrator.md +362 -0
  107. package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
  108. package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
  109. package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
  110. package/.codex/skills/investigate/phases/04-implementation.md +195 -0
  111. package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
  112. package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
  113. package/.codex/skills/security-audit/orchestrator.md +384 -0
  114. package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
  115. package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
  116. package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
  117. package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
  118. package/.codex/skills/ship/agents/ship-operator.md +318 -0
  119. package/.codex/skills/ship/orchestrator.md +426 -0
  120. package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
  121. package/.codex/skills/ship/phases/02-code-review.md +228 -0
  122. package/.codex/skills/ship/phases/03-version-bump.md +259 -0
  123. package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
  124. package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
  125. package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
  126. package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  127. package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
  128. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  129. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
  130. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
  131. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
  132. package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  133. package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  134. package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  135. package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
  136. package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
  137. package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  138. package/.codex/skills/team-motion-design/SKILL.md +222 -0
  139. package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
  140. package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
  141. package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  142. package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
  143. package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
  144. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
  145. package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  146. package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  147. package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  148. package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
  149. package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
  150. package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
  151. package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
  152. package/.codex/skills/team-ui-polish/SKILL.md +218 -0
  153. package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  154. package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
  155. package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
  156. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
  157. package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
  158. package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
  159. package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
  160. package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
  161. package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  162. package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
  163. package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  164. package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
  165. package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  166. package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
  167. package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
  168. package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  169. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  170. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
  171. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
  172. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
  173. package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  174. package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  175. package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  176. package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  177. package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  178. package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  179. package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
  180. package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
  181. package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  182. package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  183. package/README.md +8 -0
  184. package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
  185. package/ccw/dist/core/hooks/hook-templates.js +114 -1
  186. package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
  187. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  188. package/ccw/dist/core/routes/cli-routes.js +34 -0
  189. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  190. package/ccw/dist/core/routes/system-routes.js +2 -2
  191. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  192. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
  193. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
  195. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
  197. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
  199. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
  200. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
  201. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
  202. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
  203. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
  204. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
  205. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
  206. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
  207. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
  208. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
  209. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
  210. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
  211. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
  212. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
  213. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
  214. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
  215. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
  216. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
  217. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
  218. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
  219. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
  220. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
  221. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
  222. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
  223. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
  224. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
  225. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
  226. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
  227. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
  228. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
  229. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
  230. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
  231. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
  232. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
  233. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
  234. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
  235. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
  236. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
  237. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
  238. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
  239. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
  240. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
  241. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
  242. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
  243. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
  244. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
  245. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
  246. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
  247. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
  248. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
  249. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
  250. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
  251. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
  252. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
  253. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
  254. package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
  255. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
  256. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
  257. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
  258. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
  259. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
  260. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
  261. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
  262. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
  263. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
  264. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
  265. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
  266. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
  267. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
  268. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
  269. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
  270. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
  271. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
  272. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
  273. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
  274. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
  275. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
  276. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
  277. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
  278. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
  279. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
  280. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
  281. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
  282. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
  283. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
  284. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
  285. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
  286. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
  287. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
  288. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
  289. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
  290. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
  291. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
  292. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
  293. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
  294. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
  295. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
  296. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
  297. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
  298. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
  299. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
  300. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
  301. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
  302. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
  303. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
  304. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
  305. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
  306. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
  307. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
  308. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
  309. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
  310. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
  311. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
  312. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
  313. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
  314. package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
  315. package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
  316. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
  317. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
  318. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
  319. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
  320. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
  321. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
  322. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
  323. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
  324. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
  325. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
  326. package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
  327. package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
  328. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
  329. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
  330. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
  331. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
  332. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
  333. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
  334. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
  335. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
  336. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
  337. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
  338. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
  339. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
  340. package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
  341. package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
  342. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
  343. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
  344. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
  345. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
  346. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
  347. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
  348. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
  349. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
  350. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
  351. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
  352. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
  353. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
  354. package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
  355. package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
  356. package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
  357. package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
  358. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
  359. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
  360. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
  361. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
  362. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
  363. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
  364. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
  365. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
  366. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
  367. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
  368. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
  369. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
  370. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
  371. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
  372. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
  373. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
  374. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
  375. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
  376. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
  377. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
  378. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
  379. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
  380. package/ccw/frontend/dist/index.html +1 -1
  381. package/package.json +105 -105
  382. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
@@ -0,0 +1,250 @@
1
+ # Command: Dispatch
2
+
3
+ Create the visual accessibility task chain with correct dependencies and structured task descriptions. Supports audit-only and full pipeline modes.
4
+
5
+ ## Phase 2: Context Loading
6
+
7
+ | Input | Source | Required |
8
+ |-------|--------|----------|
9
+ | User requirement | From coordinator Phase 1 | Yes |
10
+ | Session folder | From coordinator Phase 2 | Yes |
11
+ | Pipeline mode | From session meta.json `pipeline` | Yes |
12
+ | Target info | From session meta.json `target` | Yes |
13
+
14
+ 1. Load user requirement and scope from meta.json
15
+ 2. Load pipeline stage definitions from specs/pipelines.md
16
+ 3. Read `pipeline` and `target` from meta.json
17
+
18
+ ## Phase 3: Task Chain Creation (Mode-Branched)
19
+
20
+ ### Task Description Template
21
+
22
+ Every task description uses structured format:
23
+
24
+ ```
25
+ TaskCreate({
26
+ subject: "<TASK-ID>",
27
+ description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
28
+ TASK:
29
+ - <step 1: specific action>
30
+ - <step 2: specific action>
31
+ - <step 3: specific action>
32
+ CONTEXT:
33
+ - Session: <session-folder>
34
+ - Target: <URL or file path>
35
+ - WCAG Level: <AA|AAA>
36
+ - Upstream artifacts: <artifact-1>, <artifact-2>
37
+ - Shared memory: <session>/.msg/meta.json
38
+ EXPECTED: <deliverable path> + <quality criteria>
39
+ CONSTRAINTS: <scope limits, focus areas>"
40
+ })
41
+ TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
42
+ ```
43
+
44
+ ### Mode Router
45
+
46
+ | Mode | Action |
47
+ |------|--------|
48
+ | `audit-only` | Create 4 tasks: [COLOR-001 + TYPO-001 + FOCUS-001] parallel -> REMED-001 |
49
+ | `full` | Create 7 tasks: [COLOR-001 + TYPO-001 + FOCUS-001] -> REMED-001 -> FIX-001 -> [COLOR-002 + FOCUS-002] |
50
+
51
+ ---
52
+
53
+ ### Audit-Only Pipeline Task Chain
54
+
55
+ **COLOR-001** (color-auditor):
56
+ ```
57
+ TaskCreate({
58
+ subject: "COLOR-001",
59
+ description: "PURPOSE: OKLCH color contrast audit for all color combinations | Success: Complete color audit with WCAG 2.1 + APCA contrast ratios and color blindness assessment
60
+ TASK:
61
+ - Extract all color values (OKLCH, HSL, RGB, hex) from stylesheets
62
+ - Calculate WCAG 2.1 contrast ratios for all text/background combinations
63
+ - Calculate APCA Lc values for body and large text
64
+ - Assess OKLCH lightness ranges for text and backgrounds
65
+ - Simulate color blindness (protanopia, deuteranopia, tritanopia)
66
+ - Check dark mode color parity if applicable
67
+ CONTEXT:
68
+ - Session: <session-folder>
69
+ - Target: <target>
70
+ - WCAG Level: <level>
71
+ - Shared memory: <session>/.msg/meta.json
72
+ EXPECTED: <session>/audits/color/color-audit-001.md | Pass/fail per color combination
73
+ CONSTRAINTS: Read-only analysis | Use Chrome DevTools for computed styles when available"
74
+ })
75
+ TaskUpdate({ taskId: "COLOR-001", owner: "color-auditor" })
76
+ ```
77
+
78
+ **TYPO-001** (typo-auditor):
79
+ ```
80
+ TaskCreate({
81
+ subject: "TYPO-001",
82
+ description: "PURPOSE: Typography readability audit across all viewports | Success: Complete typography audit with size, line-height, reading width at each breakpoint
83
+ TASK:
84
+ - Audit font sizes at each breakpoint (320px, 768px, 1024px, 1400px)
85
+ - Validate minimum body text >= 16px on mobile
86
+ - Check line-height ratios (body 1.5-1.75, headings 1.1-1.3)
87
+ - Validate clamp() functions for responsive scaling
88
+ - Measure reading width (45-75 characters per line)
89
+ - Assess font loading strategy (font-display values)
90
+ CONTEXT:
91
+ - Session: <session-folder>
92
+ - Target: <target>
93
+ - WCAG Level: <level>
94
+ - Shared memory: <session>/.msg/meta.json
95
+ EXPECTED: <session>/audits/typography/typo-audit-001.md | Breakpoint-by-breakpoint report
96
+ CONSTRAINTS: Read-only analysis | Screenshot at multiple viewports if Chrome DevTools available"
97
+ })
98
+ TaskUpdate({ taskId: "TYPO-001", owner: "typo-auditor" })
99
+ ```
100
+
101
+ **FOCUS-001** (focus-auditor):
102
+ ```
103
+ TaskCreate({
104
+ subject: "FOCUS-001",
105
+ description: "PURPOSE: Focus management and keyboard accessibility audit | Success: Complete focus audit with tab order, indicator visibility, ARIA coverage
106
+ TASK:
107
+ - Audit tab order for logical sequence and no tab traps
108
+ - Check focus indicator visibility (outline >= 2px, contrast >= 3:1)
109
+ - Verify :focus-visible usage for keyboard vs mouse distinction
110
+ - Check skip link presence and functionality
111
+ - Audit focus traps in modals/dialogs (Tab cycles, Escape dismisses)
112
+ - Verify ARIA live regions for dynamic content
113
+ - Check ARIA roles and states on interactive elements
114
+ - Validate keyboard operability (Enter/Space, Arrow keys)
115
+ CONTEXT:
116
+ - Session: <session-folder>
117
+ - Target: <target>
118
+ - WCAG Level: <level>
119
+ - Shared memory: <session>/.msg/meta.json
120
+ EXPECTED: <session>/audits/focus/focus-audit-001.md | Element-by-element focus report
121
+ CONSTRAINTS: Read-only analysis | Tab through elements if Chrome DevTools available"
122
+ })
123
+ TaskUpdate({ taskId: "FOCUS-001", owner: "focus-auditor" })
124
+ ```
125
+
126
+ **CRITICAL**: COLOR-001, TYPO-001, FOCUS-001 have NO blockedBy -- they run in PARALLEL.
127
+
128
+ **REMED-001** (remediation-planner):
129
+ ```
130
+ TaskCreate({
131
+ subject: "REMED-001",
132
+ description: "PURPOSE: Synthesize all 3 audit findings into prioritized remediation plan | Success: Complete remediation plan with severity ranking, code-level fix guidance, WCAG criterion mapping
133
+ TASK:
134
+ - Read color, typography, and focus audit reports
135
+ - Merge and deduplicate findings
136
+ - Prioritize by severity (Critical > High > Medium > Low)
137
+ - Group by file/component for efficient fixing
138
+ - Provide code-level fix guidance (specific CSS/HTML changes)
139
+ - Map each fix to WCAG success criterion
140
+ - Estimate effort per fix
141
+ CONTEXT:
142
+ - Session: <session-folder>
143
+ - Target: <target>
144
+ - WCAG Level: <level>
145
+ - Upstream artifacts: audits/color/color-audit-001.md, audits/typography/typo-audit-001.md, audits/focus/focus-audit-001.md
146
+ - Shared memory: <session>/.msg/meta.json
147
+ EXPECTED: <session>/remediation/remediation-plan.md | All critical/high issues addressed
148
+ CONSTRAINTS: Read-only synthesis | No code modifications"
149
+ })
150
+ TaskUpdate({ taskId: "REMED-001", addBlockedBy: ["COLOR-001", "TYPO-001", "FOCUS-001"], owner: "remediation-planner" })
151
+ ```
152
+
153
+ ---
154
+
155
+ ### Full Pipeline Task Chain
156
+
157
+ Same as audit-only (COLOR-001, TYPO-001, FOCUS-001, REMED-001), plus:
158
+
159
+ **FIX-001** (fix-implementer):
160
+ ```
161
+ TaskCreate({
162
+ subject: "FIX-001",
163
+ description: "PURPOSE: Implement accessibility fixes from remediation plan | Success: All critical and high severity issues fixed with passing contrast ratios and ARIA validation
164
+ TASK:
165
+ - Read remediation plan for prioritized fix list
166
+ - Apply OKLCH color corrections for contrast compliance
167
+ - Add/fix focus styles (outline, outline-offset, :focus-visible)
168
+ - Add missing ARIA attributes (role, aria-label, aria-live, aria-expanded)
169
+ - Add reduced-motion media queries where needed
170
+ - Fix typography (clamp(), line-height, max-width for reading)
171
+ - Add skip link if missing
172
+ - Apply fixes in priority order (critical first)
173
+ CONTEXT:
174
+ - Session: <session-folder>
175
+ - Target: <target>
176
+ - WCAG Level: <level>
177
+ - Upstream artifacts: remediation/remediation-plan.md
178
+ - Shared memory: <session>/.msg/meta.json
179
+ EXPECTED: Modified source files + <session>/fixes/fix-summary-001.md | All critical/high fixes applied
180
+ CONSTRAINTS: Modify only files identified in remediation plan | Preserve existing functionality"
181
+ })
182
+ TaskUpdate({ taskId: "FIX-001", addBlockedBy: ["REMED-001"], owner: "fix-implementer" })
183
+ ```
184
+
185
+ **COLOR-002** (color-auditor):
186
+ ```
187
+ TaskCreate({
188
+ subject: "COLOR-002",
189
+ description: "PURPOSE: Re-audit color contrast after fixes applied | Success: All color combinations pass WCAG target level
190
+ TASK:
191
+ - Re-extract all color values from modified stylesheets
192
+ - Re-calculate WCAG 2.1 contrast ratios
193
+ - Re-calculate APCA Lc values
194
+ - Compare before/after for each fixed combination
195
+ - Verify no regressions in unfixed combinations
196
+ CONTEXT:
197
+ - Session: <session-folder>
198
+ - Target: <target>
199
+ - WCAG Level: <level>
200
+ - Upstream artifacts: fixes/fix-summary-001.md, audits/color/color-audit-001.md
201
+ - Shared memory: <session>/.msg/meta.json
202
+ EXPECTED: <session>/re-audit/color-audit-002.md | Before/after comparison with pass/fail
203
+ CONSTRAINTS: Read-only verification | Focus on fixed items + regression check"
204
+ })
205
+ TaskUpdate({ taskId: "COLOR-002", addBlockedBy: ["FIX-001"], owner: "color-auditor" })
206
+ ```
207
+
208
+ **FOCUS-002** (focus-auditor):
209
+ ```
210
+ TaskCreate({
211
+ subject: "FOCUS-002",
212
+ description: "PURPOSE: Re-audit focus management after fixes applied | Success: All focus indicators visible with correct ARIA attributes
213
+ TASK:
214
+ - Re-audit tab order after DOM changes
215
+ - Verify focus indicator fixes (outline, contrast)
216
+ - Check new ARIA attributes are valid
217
+ - Verify skip link implementation
218
+ - Test keyboard operability of fixed elements
219
+ - Compare before/after for each fixed element
220
+ CONTEXT:
221
+ - Session: <session-folder>
222
+ - Target: <target>
223
+ - WCAG Level: <level>
224
+ - Upstream artifacts: fixes/fix-summary-001.md, audits/focus/focus-audit-001.md
225
+ - Shared memory: <session>/.msg/meta.json
226
+ EXPECTED: <session>/re-audit/focus-audit-002.md | Before/after comparison with pass/fail
227
+ CONSTRAINTS: Read-only verification | Focus on fixed items + regression check"
228
+ })
229
+ TaskUpdate({ taskId: "FOCUS-002", addBlockedBy: ["FIX-001"], owner: "focus-auditor" })
230
+ ```
231
+
232
+ **CRITICAL**: COLOR-002 and FOCUS-002 both blocked only by FIX-001 -- they run in PARALLEL after fixes.
233
+
234
+ ---
235
+
236
+ ## Phase 4: Validation
237
+
238
+ Verify task chain integrity:
239
+
240
+ | Check | Method | Expected |
241
+ |-------|--------|----------|
242
+ | Task count correct | TaskList count | audit-only: 4, full: 7 |
243
+ | Dependencies correct | Trace dependency graph | Acyclic, correct blockedBy |
244
+ | No circular dependencies | Trace dependency graph | Acyclic |
245
+ | 3 audit tasks have NO blockedBy | Pattern check | COLOR-001, TYPO-001, FOCUS-001 are parallel |
246
+ | REMED-001 blocked by all 3 | Check blockedBy | [COLOR-001, TYPO-001, FOCUS-001] |
247
+ | Task IDs use correct prefixes | Pattern check | COLOR/TYPO/FOCUS/REMED/FIX |
248
+ | Structured descriptions complete | Each has PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS | All present |
249
+
250
+ If validation fails, fix the specific task and re-validate.
@@ -0,0 +1,204 @@
1
+ # Monitor Pipeline
2
+
3
+ Event-driven pipeline coordination. Beat model: coordinator wake -> process -> spawn -> STOP.
4
+
5
+ ## Constants
6
+
7
+ - SPAWN_MODE: background
8
+ - ONE_STEP_PER_INVOCATION: true
9
+ - FAST_ADVANCE_AWARE: true
10
+ - WORKER_AGENT: team-worker
11
+ - MAX_GC_ROUNDS: 2
12
+
13
+ ## Handler Router
14
+
15
+ | Source | Handler |
16
+ |--------|---------|
17
+ | Message contains [color-auditor], [typo-auditor], [focus-auditor], [remediation-planner], [fix-implementer] | handleCallback |
18
+ | "capability_gap" | handleAdapt |
19
+ | "check" or "status" | handleCheck |
20
+ | "resume" or "continue" | handleResume |
21
+ | All tasks completed | handleComplete |
22
+ | Default | handleSpawnNext |
23
+
24
+ ## handleCallback
25
+
26
+ Worker completed. Process and advance.
27
+
28
+ 1. Parse message to identify role and task ID:
29
+
30
+ | Message Pattern | Role |
31
+ |----------------|------|
32
+ | `[color-auditor]` or `COLOR-*` | color-auditor |
33
+ | `[typo-auditor]` or `TYPO-*` | typo-auditor |
34
+ | `[focus-auditor]` or `FOCUS-*` | focus-auditor |
35
+ | `[remediation-planner]` or `REMED-*` | remediation-planner |
36
+ | `[fix-implementer]` or `FIX-*` | fix-implementer |
37
+
38
+ 2. Mark task completed: `TaskUpdate({ taskId: "<task-id>", status: "completed" })`
39
+ 3. Record completion in session state
40
+
41
+ 4. Check checkpoint for completed task:
42
+
43
+ | Completed Task | Checkpoint | Action |
44
+ |---------------|------------|--------|
45
+ | COLOR-001 | Parallel fan-in | Check if all 3 audits complete -> unblock REMED-001 |
46
+ | TYPO-001 | Parallel fan-in | Check if all 3 audits complete -> unblock REMED-001 |
47
+ | FOCUS-001 | Parallel fan-in | Check if all 3 audits complete -> unblock REMED-001 |
48
+ | REMED-001 | -- | Unblock FIX-001 (full mode only) |
49
+ | FIX-001 | GC check | Spawn COLOR-002 + FOCUS-002 in parallel (full mode) |
50
+ | COLOR-002 | Re-audit fan-in | Check if both re-audits complete -> handleComplete |
51
+ | FOCUS-002 | Re-audit fan-in | Check if both re-audits complete -> handleComplete |
52
+
53
+ 5. **Parallel fan-in handling** (audit task completed):
54
+
55
+ **CRITICAL**: REMED-001 must wait for ALL 3 auditors (COLOR-001 + TYPO-001 + FOCUS-001) to complete.
56
+
57
+ Check completion state:
58
+ ```
59
+ completed_audits = count of completed tasks in [COLOR-001, TYPO-001, FOCUS-001]
60
+ if completed_audits < 3:
61
+ -> Log "[coordinator] Audit fan-in: {completed_audits}/3 complete, waiting for remaining"
62
+ -> STOP (do NOT advance)
63
+ if completed_audits === 3:
64
+ -> Log "[coordinator] All 3 audits complete, advancing to REMED-001"
65
+ -> handleSpawnNext (will pick up REMED-001)
66
+ ```
67
+
68
+ 6. **GC loop handling** (full mode, after FIX-001 completes):
69
+
70
+ Read re-audit results when COLOR-002 and FOCUS-002 both complete:
71
+
72
+ | Signal | Condition | Action |
73
+ |--------|-----------|--------|
74
+ | All pass | No critical/high issues remaining | GC converged -> handleComplete |
75
+ | Issues remain | Critical/high issues found | gc_rounds < max -> create FIX-002 + re-audit tasks |
76
+ | Any | gc_rounds >= max | Escalate to user |
77
+
78
+ **GC Fix Task Creation** (when re-audit finds issues):
79
+ ```
80
+ TaskCreate({ subject: "FIX-002",
81
+ description: "PURPOSE: Address remaining issues from re-audit | Success: All critical/high issues resolved
82
+ TASK:
83
+ - Parse re-audit reports for remaining issues
84
+ - Apply targeted fixes for color and focus issues
85
+ CONTEXT:
86
+ - Session: <session-folder>
87
+ - Upstream artifacts: re-audit/color-audit-002.md, re-audit/focus-audit-002.md" })
88
+ TaskUpdate({ taskId: "FIX-002", addBlockedBy: ["COLOR-002", "FOCUS-002"], owner: "fix-implementer" })
89
+ ```
90
+ Then create new re-audit tasks blocked by FIX-002. Increment gc_state.round.
91
+
92
+ **GC Escalation Options** (when max rounds exceeded):
93
+ 1. Accept current state - acknowledge remaining issues
94
+ 2. Try one more round
95
+ 3. Terminate
96
+
97
+ 7. -> handleSpawnNext
98
+
99
+ ## handleCheck
100
+
101
+ Read-only status report, then STOP.
102
+
103
+ ```
104
+ Pipeline Status (<pipeline-mode>):
105
+ [DONE] COLOR-001 (color-auditor) -> audits/color/color-audit-001.md
106
+ [DONE] TYPO-001 (typo-auditor) -> audits/typography/typo-audit-001.md
107
+ [RUN] FOCUS-001 (focus-auditor) -> auditing focus...
108
+ [WAIT] REMED-001 (remediation-planner) -> blocked by COLOR-001, TYPO-001, FOCUS-001
109
+ [WAIT] FIX-001 (fix-implementer) -> blocked by REMED-001
110
+ [WAIT] COLOR-002 (color-auditor) -> blocked by FIX-001
111
+ [WAIT] FOCUS-002 (focus-auditor) -> blocked by FIX-001
112
+
113
+ Fan-in: 2/3 audits complete
114
+ GC Rounds: 0/2
115
+ Session: <session-id>
116
+ Commands: 'resume' to advance | 'check' to refresh
117
+ ```
118
+
119
+ Output status -- do NOT advance pipeline.
120
+
121
+ ## handleResume
122
+
123
+ 1. Audit task list for inconsistencies:
124
+ - Tasks stuck in "in_progress" -> reset to "pending"
125
+ - Tasks with completed blockers but still "pending" -> include in spawn list
126
+ 2. -> handleSpawnNext
127
+
128
+ ## handleSpawnNext
129
+
130
+ Find ready tasks, spawn workers, STOP.
131
+
132
+ 1. Collect: completedSubjects, inProgressSubjects, readySubjects (pending + all blockedBy completed)
133
+ 2. No ready + work in progress -> report waiting, STOP
134
+ 3. No ready + nothing in progress -> handleComplete
135
+ 4. Has ready -> for each:
136
+ a. Check inner loop role with active worker -> skip (worker picks up)
137
+ b. TaskUpdate -> in_progress
138
+ c. team_msg log -> task_unblocked
139
+ d. Spawn team-worker:
140
+
141
+ ```
142
+ Agent({
143
+ subagent_type: "team-worker",
144
+ description: "Spawn <role> worker for <task-id>",
145
+ team_name: "visual-a11y",
146
+ name: "<role>",
147
+ run_in_background: true,
148
+ prompt: `## Role Assignment
149
+ role: <role>
150
+ role_spec: <skill_root>/roles/<role>/role.md
151
+ session: <session-folder>
152
+ session_id: <session-id>
153
+ team_name: visual-a11y
154
+ requirement: <task-description>
155
+ inner_loop: <true|false>
156
+
157
+ Read role_spec file to load Phase 2-4 domain instructions.
158
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
159
+ })
160
+ ```
161
+
162
+ **Parallel spawn rules by mode**:
163
+
164
+ | Mode | Scenario | Spawn Behavior |
165
+ |------|----------|---------------|
166
+ | audit-only | Initial | Spawn COLOR-001 + TYPO-001 + FOCUS-001 in parallel |
167
+ | audit-only | After 3 audits complete | Spawn REMED-001 |
168
+ | full | Initial | Spawn COLOR-001 + TYPO-001 + FOCUS-001 in parallel |
169
+ | full | After 3 audits complete | Spawn REMED-001 |
170
+ | full | After REMED-001 | Spawn FIX-001 |
171
+ | full | After FIX-001 | Spawn COLOR-002 + FOCUS-002 in parallel |
172
+
173
+ 5. Add to active_workers, update session, output summary, STOP
174
+
175
+ ## handleComplete
176
+
177
+ Pipeline done. Generate report and completion action.
178
+
179
+ **Completion check by mode**:
180
+
181
+ | Mode | Completion Condition |
182
+ |------|---------------------|
183
+ | audit-only | All 4 tasks (+ any fix tasks) completed |
184
+ | full | All 7 tasks (+ any GC fix tasks) completed |
185
+
186
+ 1. If any tasks not completed -> handleSpawnNext
187
+ 2. If all completed -> transition to coordinator Phase 5
188
+
189
+ ## handleAdapt
190
+
191
+ Capability gap reported mid-pipeline.
192
+
193
+ 1. Parse gap description
194
+ 2. Check if existing role covers it -> redirect
195
+ 3. Role count < 6 -> generate dynamic role spec
196
+ 4. Create new task, spawn worker
197
+ 5. Role count >= 6 -> merge or pause
198
+
199
+ ## Fast-Advance Reconciliation
200
+
201
+ On every coordinator wake:
202
+ 1. Read team_msg entries with type="fast_advance"
203
+ 2. Sync active_workers with spawned successors
204
+ 3. No duplicate spawns
@@ -0,0 +1,169 @@
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
+ ## Identity
6
+ - **Name**: coordinator | **Tag**: [coordinator]
7
+ - **Responsibility**: Analyze scope -> Create team -> Dispatch tasks -> Monitor progress -> Report results
8
+
9
+ ## Boundaries
10
+
11
+ ### MUST
12
+ - All output (SendMessage, team_msg, logs) must carry `[coordinator]` identifier
13
+ - Use `team-worker` agent type for all worker spawns (NOT `general-purpose`)
14
+ - Dispatch tasks with proper dependency chains and blockedBy
15
+ - Spawn COLOR-001, TYPO-001, FOCUS-001 in PARALLEL (no blockedBy between them)
16
+ - Monitor worker progress via message bus and route messages
17
+ - Handle Generator-Critic loops with max 2 iterations
18
+ - Maintain session state persistence
19
+
20
+ ### MUST NOT
21
+ - Implement domain logic (auditing, planning, fixing) -- workers handle this
22
+ - Spawn workers without creating tasks first
23
+ - Skip sync points when configured
24
+ - Force-advance pipeline past failed audit
25
+ - Modify source code or design artifacts directly -- delegate to workers
26
+ - Omit `[coordinator]` identifier in any output
27
+
28
+ ## Command Execution Protocol
29
+
30
+ When coordinator needs to execute a command (analyze, dispatch, monitor):
31
+
32
+ 1. Read `commands/<command>.md`
33
+ 2. Follow the workflow defined in the command
34
+ 3. Commands are inline execution guides, NOT separate agents
35
+ 4. Execute synchronously, complete before proceeding
36
+
37
+ ## Entry Router
38
+
39
+ | Detection | Condition | Handler |
40
+ |-----------|-----------|---------|
41
+ | Worker callback | Message contains [color-auditor], [typo-auditor], [focus-auditor], [remediation-planner], [fix-implementer] | -> handleCallback (monitor.md) |
42
+ | Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
43
+ | Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
44
+ | Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
45
+ | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
46
+ | Interrupted session | Active/paused session exists in .workflow/.team/VA-* | -> Phase 0 |
47
+ | New session | None of above | -> Phase 1 |
48
+
49
+ For callback/check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
50
+
51
+ ## Phase 0: Session Resume Check
52
+
53
+ 1. Scan `.workflow/.team/VA-*/.msg/meta.json` for active/paused sessions
54
+ 2. No sessions -> Phase 1
55
+ 3. Single session -> reconcile (audit TaskList, reset in_progress->pending, rebuild team, kick first ready task)
56
+ 4. Multiple -> AskUserQuestion for selection
57
+
58
+ ## Phase 1: Requirement Clarification
59
+
60
+ TEXT-LEVEL ONLY. No source code reading.
61
+
62
+ 1. Parse task description from arguments
63
+ 2. Detect audit scope:
64
+
65
+ | Signal | Pipeline Mode |
66
+ |--------|---------------|
67
+ | "audit only", "no fixes", "assessment" | audit-only |
68
+ | "full audit", "fix", "remediate", "full cycle" | full |
69
+ | Unclear | ask user |
70
+
71
+ 3. Ask for missing parameters if scope unclear:
72
+ ```
73
+ AskUserQuestion({
74
+ questions: [
75
+ { question: "Accessibility audit scope?", header: "Scope", options: [
76
+ { label: "Audit only", description: "Color + typography + focus audit with remediation plan" },
77
+ { label: "Full cycle", description: "Audit + fix + re-audit verification" }
78
+ ]},
79
+ { question: "Target?", header: "Target", options: [
80
+ { label: "URL (rendered page)" },
81
+ { label: "Component path (source)" },
82
+ { label: "Full site" }
83
+ ]}
84
+ ]
85
+ })
86
+ ```
87
+ 4. Delegate to `@commands/analyze.md` -> output scope context
88
+ 5. Record: pipeline_mode, target, wcag_level
89
+
90
+ ## Phase 2: Create Team + Initialize Session
91
+
92
+ 1. Resolve workspace paths (MUST do first):
93
+ - `project_root` = result of `Bash({ command: "pwd" })`
94
+ - `skill_root` = `<project_root>/.claude/skills/team-visual-a11y`
95
+ 2. Generate session ID: `VA-<slug>-<YYYY-MM-DD>`
96
+ 3. Create session folder structure:
97
+ ```
98
+ .workflow/.team/VA-<slug>-<date>/audits/color/
99
+ .workflow/.team/VA-<slug>-<date>/audits/typography/
100
+ .workflow/.team/VA-<slug>-<date>/audits/focus/
101
+ .workflow/.team/VA-<slug>-<date>/remediation/
102
+ .workflow/.team/VA-<slug>-<date>/fixes/
103
+ .workflow/.team/VA-<slug>-<date>/re-audit/
104
+ .workflow/.team/VA-<slug>-<date>/evidence/
105
+ .workflow/.team/VA-<slug>-<date>/.msg/
106
+ ```
107
+ 4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
108
+ 5. TeamCreate(team_name="visual-a11y")
109
+ 6. Do NOT spawn workers yet - deferred to Phase 4
110
+
111
+ ## Phase 3: Create Task Chain
112
+
113
+ Delegate to `@commands/dispatch.md`. Task chains by mode:
114
+
115
+ | Mode | Task Chain |
116
+ |------|------------|
117
+ | audit-only | [COLOR-001 + TYPO-001 + FOCUS-001 parallel] -> REMED-001 |
118
+ | full | [COLOR-001 + TYPO-001 + FOCUS-001 parallel] -> REMED-001 -> FIX-001 -> [COLOR-002 + FOCUS-002 parallel] |
119
+
120
+ ## Phase 4: Spawn-and-Stop
121
+
122
+ **CRITICAL**: Spawn COLOR-001, TYPO-001, FOCUS-001 in PARALLEL (all 3 have NO blockedBy).
123
+
124
+ Delegate to `@commands/monitor.md#handleSpawnNext`:
125
+ 1. Find ready tasks (pending + blockedBy resolved)
126
+ 2. Spawn team-worker agents (see SKILL.md Spawn Template)
127
+ 3. Output status summary
128
+ 4. STOP
129
+
130
+ ## Phase 5: Report + Completion Action
131
+
132
+ 1. Read session state -> collect all results
133
+ 2. List deliverables:
134
+
135
+ | Deliverable | Path |
136
+ |-------------|------|
137
+ | Color Audit | <session>/audits/color/color-audit-001.md |
138
+ | Typography Audit | <session>/audits/typography/typo-audit-001.md |
139
+ | Focus Audit | <session>/audits/focus/focus-audit-001.md |
140
+ | Remediation Plan | <session>/remediation/remediation-plan.md |
141
+ | Fix Summary | <session>/fixes/fix-summary-001.md (full mode) |
142
+ | Re-audit Color | <session>/re-audit/color-audit-002.md (full mode) |
143
+ | Re-audit Focus | <session>/re-audit/focus-audit-002.md (full mode) |
144
+ | Evidence | <session>/evidence/*.png (if Chrome DevTools used) |
145
+
146
+ 3. Calculate: completed_tasks, gc_rounds, issues_found, issues_fixed, wcag_compliance_level
147
+ 4. Output pipeline summary with [coordinator] prefix
148
+ 5. Execute completion action:
149
+ ```
150
+ AskUserQuestion({
151
+ questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
152
+ { label: "Archive & Clean", description: "Archive session and clean up team resources" },
153
+ { label: "Keep Active", description: "Keep session for follow-up work" },
154
+ { label: "Export Results", description: "Export deliverables to specified location" }
155
+ ]}]
156
+ })
157
+ ```
158
+
159
+ ## Error Handling
160
+
161
+ | Error | Resolution |
162
+ |-------|------------|
163
+ | Task timeout | Log, mark failed, ask user to retry or skip |
164
+ | Worker crash | Reset task to pending, respawn worker |
165
+ | Dependency cycle | Detect, report to user, halt |
166
+ | Invalid scope | Reject with error, ask to clarify |
167
+ | Session corruption | Attempt recovery, fallback to manual reconciliation |
168
+ | GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |
169
+ | Chrome DevTools unavailable | Mark in meta.json, auditors degrade to static analysis |