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,162 @@
1
+ # Command: Dispatch
2
+
3
+ Create the interactive craft task chain with correct dependencies and structured task descriptions. Supports single, gallery, and page 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 tasks.json `pipeline_mode` | Yes |
12
+ | Interaction type | From tasks.json `interaction_type` | Yes |
13
+
14
+ 1. Load user requirement and scope from tasks.json
15
+ 2. Load pipeline stage definitions from specs/pipelines.md
16
+ 3. Read `pipeline_mode` and `interaction_type` from tasks.json
17
+
18
+ ## Phase 3: Task Chain Creation (Mode-Branched)
19
+
20
+ ### Task Entry Template
21
+
22
+ Each task in tasks.json `tasks` object:
23
+ ```json
24
+ {
25
+ "<TASK-ID>": {
26
+ "title": "<concise title>",
27
+ "description": "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>\nTASK:\n - <step 1: specific action>\n - <step 2: specific action>\n - <step 3: specific action>\nCONTEXT:\n - Session: <session-folder>\n - Scope: <interaction-scope>\n - Components: <component-list>\n - Upstream artifacts: <artifact-1>, <artifact-2>\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <deliverable path> + <quality criteria>\nCONSTRAINTS: <scope limits, focus areas>",
28
+ "role": "<role-name>",
29
+ "prefix": "<PREFIX>",
30
+ "deps": ["<dependency-list>"],
31
+ "status": "pending",
32
+ "findings": "",
33
+ "error": ""
34
+ }
35
+ }
36
+ ```
37
+
38
+ ### Mode Router
39
+
40
+ | Mode | Action |
41
+ |------|--------|
42
+ | `single` | Create 4 tasks: RESEARCH -> INTERACT -> BUILD -> A11Y |
43
+ | `gallery` | Create 6 tasks: RESEARCH -> INTERACT-001 -> BUILD-001 -> INTERACT-002 -> BUILD-002 -> A11Y |
44
+ | `page` | Create 4+ tasks: RESEARCH -> INTERACT -> [BUILD-001..N parallel] -> A11Y |
45
+
46
+ ---
47
+
48
+ ### Single Pipeline Task Chain
49
+
50
+ **RESEARCH-001** (researcher):
51
+ ```json
52
+ {
53
+ "RESEARCH-001": {
54
+ "title": "Interaction pattern analysis and browser API audit",
55
+ "description": "PURPOSE: Analyze interaction patterns, browser API availability, and reference implementations | Success: 3 research artifacts with valid data\nTASK:\n - Catalog existing interactive components in project\n - Audit browser API usage (IntersectionObserver, ResizeObserver, Pointer Events, Touch Events)\n - Collect reference patterns for target component type\nCONTEXT:\n - Session: <session-folder>\n - Scope: <interaction-scope>\n - Components: <component-list>\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/research/*.json | All 3 research files with valid JSON\nCONSTRAINTS: Read-only analysis | Focus on <interaction-scope>",
56
+ "role": "researcher",
57
+ "prefix": "RESEARCH",
58
+ "deps": [],
59
+ "status": "pending",
60
+ "findings": "",
61
+ "error": ""
62
+ }
63
+ }
64
+ ```
65
+
66
+ **INTERACT-001** (interaction-designer):
67
+ ```json
68
+ {
69
+ "INTERACT-001": {
70
+ "title": "Interaction blueprint with state machine and event flows",
71
+ "description": "PURPOSE: Design complete interaction blueprint with state machine and event flows | Success: Blueprint with all states, events, and keyboard mappings defined\nTASK:\n - Define state machine (idle -> hover -> active -> animating -> complete)\n - Map event flows (pointer/touch/keyboard -> handlers -> state transitions)\n - Specify gesture parameters (lerp speed, thresholds, easing)\n - Design animation choreography (entry/exit/idle transitions)\n - Create touch/keyboard/mouse mapping table\nCONTEXT:\n - Session: <session-folder>\n - Scope: <interaction-scope>\n - Upstream artifacts: research/*.json\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/interaction/blueprints/<component-name>.md | Complete state machine + event map + keyboard coverage\nCONSTRAINTS: Vanilla JS only | GPU-only animations | Progressive enhancement",
72
+ "role": "interaction-designer",
73
+ "prefix": "INTERACT",
74
+ "deps": ["RESEARCH-001"],
75
+ "status": "pending",
76
+ "findings": "",
77
+ "error": ""
78
+ }
79
+ }
80
+ ```
81
+
82
+ **BUILD-001** (builder):
83
+ ```json
84
+ {
85
+ "BUILD-001": {
86
+ "title": "Vanilla JS + CSS interactive component implementation",
87
+ "description": "PURPOSE: Implement interactive component as vanilla JS + CSS | Success: Working ES module + CSS with all states, touch-aware, keyboard accessible\nTASK:\n - Implement ES module component class from interaction blueprint\n - Write CSS with custom properties (no preprocessor)\n - Add progressive enhancement (content works without JS)\n - Use GPU-only animations (transform + opacity)\n - Implement pointer events with touch fallback\n - Add ResizeObserver for responsive behavior\n - Add IntersectionObserver for scroll triggers (if applicable)\nCONTEXT:\n - Session: <session-folder>\n - Scope: <interaction-scope>\n - Upstream artifacts: interaction/blueprints/*.md, research/*.json\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/build/components/<name>.js + <name>.css | Zero dependencies, all states implemented\nCONSTRAINTS: No npm packages | ES modules only | No inline styles | < 5ms per frame",
88
+ "role": "builder",
89
+ "prefix": "BUILD",
90
+ "deps": ["INTERACT-001"],
91
+ "status": "pending",
92
+ "findings": "",
93
+ "error": ""
94
+ }
95
+ }
96
+ ```
97
+
98
+ **A11Y-001** (a11y-tester):
99
+ ```json
100
+ {
101
+ "A11Y-001": {
102
+ "title": "Accessibility audit of built component",
103
+ "description": "PURPOSE: Audit accessibility of built component | Success: Audit report with pass/fail per check, 0 critical issues\nTASK:\n - Test keyboard navigation (tab order, arrow keys, escape, enter/space)\n - Check screen reader compatibility (ARIA roles, states, live regions)\n - Verify reduced motion fallback (prefers-reduced-motion)\n - Test focus management (visible indicator, focus trap for overlays)\n - Check color contrast (foreground/background ratio)\nCONTEXT:\n - Session: <session-folder>\n - Scope: <interaction-scope>\n - Upstream artifacts: build/components/*.js, build/components/*.css, interaction/blueprints/*.md\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/a11y/a11y-audit-001.md | Per-check pass/fail with remediation suggestions\nCONSTRAINTS: Read-only analysis | GC convergence: 0 critical issues",
104
+ "role": "a11y-tester",
105
+ "prefix": "A11Y",
106
+ "deps": ["BUILD-001"],
107
+ "status": "pending",
108
+ "findings": "",
109
+ "error": ""
110
+ }
111
+ }
112
+ ```
113
+
114
+ ---
115
+
116
+ ### Gallery Pipeline Task Chain
117
+
118
+ Create tasks in dependency order:
119
+
120
+ | Task | Role | deps | Description |
121
+ |------|------|------|-------------|
122
+ | RESEARCH-001 | researcher | [] | Interaction patterns + browser API audit |
123
+ | INTERACT-001 | interaction-designer | [RESEARCH-001] | Base component interaction blueprint |
124
+ | BUILD-001 | builder | [INTERACT-001] | Base component implementation |
125
+ | INTERACT-002 | interaction-designer | [BUILD-001] | Gallery/scroll-snap interaction blueprint |
126
+ | BUILD-002 | builder | [INTERACT-002] | Gallery container + navigation implementation |
127
+ | A11Y-001 | a11y-tester | [BUILD-002] | Full gallery accessibility audit |
128
+
129
+ Task descriptions follow same template as single pipeline, with subject-specific content:
130
+ - INTERACT-002 focuses on scroll-snap container, navigation dots, active item detection
131
+ - BUILD-002 focuses on gallery container with CSS scroll-snap, IntersectionObserver for active item, navigation controls
132
+
133
+ ---
134
+
135
+ ### Page Pipeline Task Chain
136
+
137
+ | Task | Role | deps | Description |
138
+ |------|------|------|-------------|
139
+ | RESEARCH-001 | researcher | [] | Interaction patterns for all page sections |
140
+ | INTERACT-001 | interaction-designer | [RESEARCH-001] | Blueprints for all interactive sections |
141
+ | BUILD-001..N | builder | [INTERACT-001] | One task per section (parallel fan-out) |
142
+ | A11Y-001 | a11y-tester | [BUILD-001..N] | Full page accessibility audit |
143
+
144
+ **Parallel fan-out**: Create one BUILD task per distinct interactive section detected in the interaction blueprint. Each BUILD task deps only on INTERACT-001. A11Y-001 deps on ALL BUILD tasks.
145
+
146
+ Task descriptions for each BUILD-00N specify which section to implement, referencing the corresponding section in the interaction blueprint.
147
+
148
+ ---
149
+
150
+ ## Phase 4: Validation
151
+
152
+ Verify task chain integrity:
153
+
154
+ | Check | Method | Expected |
155
+ |-------|--------|----------|
156
+ | Task count correct | tasks.json count | single: 4, gallery: 6, page: 3+N |
157
+ | Dependencies correct | Trace dependency graph | Acyclic, correct deps |
158
+ | No circular dependencies | Trace dependency graph | Acyclic |
159
+ | Task IDs use correct prefixes | Pattern check | RESEARCH/INTERACT/BUILD/A11Y |
160
+ | Structured descriptions complete | Each has PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS | All present |
161
+
162
+ If validation fails, fix the specific task and re-validate.
@@ -0,0 +1,233 @@
1
+ # Monitor Pipeline
2
+
3
+ Synchronous pipeline coordination using spawn_agent + wait_agent.
4
+
5
+ ## Constants
6
+
7
+ - WORKER_AGENT: team_worker
8
+ - MAX_GC_ROUNDS: 2
9
+
10
+ ## Handler Router
11
+
12
+ | Source | Handler |
13
+ |--------|---------|
14
+ | "capability_gap" | handleAdapt |
15
+ | "check" or "status" | handleCheck |
16
+ | "resume" or "continue" | handleResume |
17
+ | All tasks completed | handleComplete |
18
+ | Default | handleSpawnNext |
19
+
20
+ ## handleCallback
21
+
22
+ Worker completed (wait_agent returns). Process and advance.
23
+
24
+ 1. Determine role from completed task prefix:
25
+
26
+ | Task Prefix | Role |
27
+ |-------------|------|
28
+ | `RESEARCH-*` | researcher |
29
+ | `INTERACT-*` | interaction-designer |
30
+ | `BUILD-*` | builder |
31
+ | `A11Y-*` | a11y-tester |
32
+
33
+ 2. Mark task completed in tasks.json: `state.tasks[taskId].status = 'completed'`
34
+ 3. Record completion in session state
35
+
36
+ 4. Check checkpoint for completed task:
37
+
38
+ | Completed Task | Checkpoint | Action |
39
+ |---------------|------------|--------|
40
+ | RESEARCH-001 | - | Notify user: research complete |
41
+ | INTERACT-001 | - | Proceed to BUILD-001 (single/gallery) or BUILD-001..N (page parallel) |
42
+ | INTERACT-002 | - | Proceed to BUILD-002 (gallery) |
43
+ | BUILD-001 | - | Check mode: single -> A11Y-001; gallery -> INTERACT-002; page -> check if all BUILD done |
44
+ | BUILD-001..N | - | Page mode: check if all BUILD tasks done -> A11Y-001 |
45
+ | BUILD-002 | - | Gallery: proceed to A11Y-001 |
46
+ | A11Y-001 | QUALITY: A11y Gate | Check a11y signal -> GC loop or complete |
47
+
48
+ 5. **A11y Gate handling** (A11Y task completed):
49
+ Read a11y signal from result: `a11y_passed`, `a11y_result`, or `fix_required`
50
+
51
+ | Signal | Condition | Action |
52
+ |--------|-----------|--------|
53
+ | `a11y_passed` | 0 critical issues | GC converged -> record gate -> handleComplete |
54
+ | `a11y_result` | Minor issues only | gc_rounds < max -> create BUILD-fix task in tasks.json |
55
+ | `fix_required` | Critical issues found | gc_rounds < max -> create BUILD-fix task (CRITICAL) in tasks.json |
56
+ | Any | gc_rounds >= max | Escalate to user |
57
+
58
+ **GC Fix Task Creation** (add to tasks.json):
59
+ ```json
60
+ {
61
+ "BUILD-fix-<round>": {
62
+ "title": "Address a11y audit feedback",
63
+ "description": "PURPOSE: Address a11y audit feedback | Success: All critical/high issues resolved\nTASK:\n - Parse a11y audit feedback for specific issues\n - Apply targeted fixes to component JS/CSS\nCONTEXT:\n - Session: <session-folder>\n - Upstream artifacts: a11y/a11y-audit-<NNN>.md",
64
+ "role": "builder",
65
+ "prefix": "BUILD",
66
+ "deps": [],
67
+ "status": "pending",
68
+ "findings": "",
69
+ "error": ""
70
+ }
71
+ }
72
+ ```
73
+ Then create new A11Y task in tasks.json with deps on fix. Increment gc_state.round.
74
+
75
+ **GC Escalation Options** (when max rounds exceeded):
76
+ 1. Accept current implementation - skip remaining a11y fixes
77
+ 2. Try one more round
78
+ 3. Terminate
79
+
80
+ 6. -> handleSpawnNext
81
+
82
+ ## handleCheck
83
+
84
+ Read-only status report from tasks.json, then STOP.
85
+
86
+ ```
87
+ Pipeline Status (<pipeline-mode>):
88
+ [DONE] RESEARCH-001 (researcher) -> research/*.json
89
+ [DONE] INTERACT-001 (interaction-designer) -> blueprints/*.md
90
+ [RUN] BUILD-001 (builder) -> building component...
91
+ [WAIT] A11Y-001 (a11y-tester) -> blocked by BUILD-001
92
+
93
+ GC Rounds: 0/2
94
+ Session: <session-id>
95
+ Commands: 'resume' to advance | 'check' to refresh
96
+ ```
97
+
98
+ Output status -- do NOT advance pipeline.
99
+
100
+ ## handleResume
101
+
102
+ **Agent Health Check** (v4):
103
+ ```
104
+ // Verify actual running agents match session state
105
+ const runningAgents = list_agents({})
106
+ // For each active_agent in tasks.json:
107
+ // - If agent NOT in runningAgents -> agent crashed
108
+ // - Reset that task to pending, remove from active_agents
109
+ // This prevents stale agent references from blocking the pipeline
110
+ ```
111
+
112
+ 1. Audit tasks.json for inconsistencies:
113
+ - Tasks stuck in "in_progress" -> reset to "pending"
114
+ - Tasks with completed deps but still "pending" -> include in spawn list
115
+ 2. -> handleSpawnNext
116
+
117
+ ## handleSpawnNext
118
+
119
+ Find ready tasks, spawn workers, wait for results.
120
+
121
+ 1. Read tasks.json: completedTasks, inProgressTasks, readyTasks (pending + all deps completed)
122
+ 2. No ready + work in progress -> report waiting, STOP
123
+ 3. No ready + nothing in progress -> handleComplete
124
+ 4. Has ready -> for each:
125
+ a. Check inner loop role with active worker -> skip (worker picks up)
126
+ b. Update task status to in_progress in tasks.json
127
+ c. team_msg log -> task_unblocked
128
+ d. Spawn team_worker:
129
+
130
+ ```javascript
131
+ // 1) Update status in tasks.json
132
+ state.tasks[taskId].status = 'in_progress'
133
+
134
+ // 2) Spawn worker
135
+ const agentId = spawn_agent({
136
+ agent_type: "team_worker",
137
+ task_name: taskId, // e.g., "BUILD-001" -- enables named targeting
138
+ items: [
139
+ { type: "text", text: `## Role Assignment
140
+ role: ${role}
141
+ role_spec: ${skillRoot}/roles/${role}/role.md
142
+ session: ${sessionFolder}
143
+ session_id: ${sessionId}
144
+ requirement: ${taskDescription}
145
+ inner_loop: ${innerLoop}` },
146
+
147
+ { type: "text", text: `Read role_spec file to load Phase 2-4 domain instructions.
148
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).` }
149
+ ]
150
+ })
151
+
152
+ // 3) Track agent
153
+ state.active_agents[taskId] = { agentId, role, started_at: now }
154
+
155
+ // 4) Wait for completion -- use task_name for stable targeting (v4)
156
+ const waitResult = wait_agent({ targets: [taskId], timeout_ms: 900000 })
157
+ if (waitResult.timed_out) {
158
+ state.tasks[taskId].status = 'timed_out'
159
+ close_agent({ target: taskId })
160
+ delete state.active_agents[taskId]
161
+ } else {
162
+ // 5) Collect results and update tasks.json
163
+ state.tasks[taskId].status = 'completed'
164
+ close_agent({ target: taskId }) // Use task_name, not agentId
165
+ delete state.active_agents[taskId]
166
+ }
167
+ ```
168
+
169
+ **Parallel spawn rules by mode**:
170
+
171
+ | Mode | Scenario | Spawn Behavior |
172
+ |------|----------|---------------|
173
+ | single | Sequential | One task at a time |
174
+ | gallery | Sequential | One task at a time |
175
+ | page | After INTERACT-001 | Spawn BUILD-001..N in parallel, wait_agent for all |
176
+ | page | After all BUILD done | Spawn A11Y-001 |
177
+
178
+ **Cross-Agent Supplementary Context** (v4):
179
+
180
+ When spawning workers in a later pipeline phase, send upstream results as supplementary context to already-running workers:
181
+
182
+ ```
183
+ // Example: Send research results to running interaction-designer
184
+ send_message({
185
+ target: "<running-agent-task-name>",
186
+ items: [{ type: "text", text: `## Supplementary Context\n${upstreamFindings}` }]
187
+ })
188
+ // Note: send_message queues info without interrupting the agent's current work
189
+ ```
190
+
191
+ Use `send_message` (not `assign_task`) for supplementary info that enriches but doesn't redirect the agent's current task.
192
+
193
+ 5. Update tasks.json, output summary, STOP
194
+
195
+ ## handleComplete
196
+
197
+ **Cleanup Verification** (v4):
198
+ ```
199
+ // Verify all agents are properly closed
200
+ const remaining = list_agents({})
201
+ // If any team agents still running -> close_agent each
202
+ // Ensures clean session shutdown
203
+ ```
204
+
205
+ Pipeline done. Generate report and completion action.
206
+
207
+ **Completion check by mode**:
208
+
209
+ | Mode | Completion Condition |
210
+ |------|---------------------|
211
+ | single | All 4 tasks (+ fix tasks) completed |
212
+ | gallery | All 6 tasks (+ fix tasks) completed |
213
+ | page | All 3+N tasks (+ fix tasks) completed |
214
+
215
+ 1. If any tasks not completed -> handleSpawnNext
216
+ 2. If all completed -> transition to coordinator Phase 5
217
+
218
+ ## handleAdapt
219
+
220
+ Capability gap reported mid-pipeline.
221
+
222
+ 1. Parse gap description
223
+ 2. Check if existing role covers it -> redirect
224
+ 3. Role count < 5 -> generate dynamic role spec
225
+ 4. Create new task in tasks.json, spawn worker
226
+ 5. Role count >= 5 -> merge or pause
227
+
228
+ ## Fast-Advance Reconciliation
229
+
230
+ On every coordinator wake:
231
+ 1. Read tasks.json for completed tasks
232
+ 2. Sync active_agents with actual state
233
+ 3. No duplicate spawns
@@ -0,0 +1,209 @@
1
+ # Coordinator Role
2
+
3
+ Interactive Craft Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Manages task chains for interactive component creation, GC loops between builder and a11y-tester, parallel fan-out for page mode.
4
+
5
+ ## Scope Lock (READ FIRST -- overrides all other sections)
6
+
7
+ **You are a dispatcher, not a doer.** Your ONLY outputs are:
8
+ - Session state files (`.workflow/.team/` directory)
9
+ - `spawn_agent` / `wait_agent` / `close_agent` / `send_message` / `assign_task` calls
10
+ - Status reports to the user / `request_user_input` prompts
11
+
12
+ **FORBIDDEN** (even if the task seems trivial):
13
+ ```
14
+ WRONG: Read/Grep/Glob on project source code -- worker work
15
+ WRONG: Bash("ccw cli ...") -- worker work
16
+ WRONG: Edit/Write on project source files -- worker work
17
+ ```
18
+
19
+ **Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work -> STOP -> spawn worker."
20
+
21
+ ---
22
+
23
+ ## Identity
24
+ - **Name**: coordinator | **Tag**: [coordinator]
25
+ - **Responsibility**: Analyze task -> Create session -> Dispatch tasks -> Monitor progress -> Report results
26
+
27
+ ## Boundaries
28
+
29
+ ### MUST
30
+ - All output (team_msg, logs) must carry `[coordinator]` identifier
31
+ - Use `team_worker` agent type for all worker spawns (NOT `general-purpose`)
32
+ - Dispatch tasks with proper dependency chains and deps in tasks.json
33
+ - Monitor worker progress via wait_agent and process results
34
+ - Handle Generator-Critic loops with max 2 iterations
35
+ - Maintain session state persistence (tasks.json)
36
+ - **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
37
+ - Use `send_message` for supplementary context (non-interrupting) and `assign_task` for triggering new work
38
+ - Use `list_agents` for session resume health checks and cleanup verification
39
+
40
+ ### MUST NOT
41
+ - Implement domain logic (researching, designing, building, testing) -- workers handle this
42
+ - Spawn workers without creating tasks first
43
+ - Skip sync points when configured
44
+ - Force-advance pipeline past failed a11y audit
45
+ - Modify source code or component artifacts directly -- delegate to workers
46
+ - Omit `[coordinator]` identifier in any output
47
+ - Call CLI tools (ccw cli) -- only workers use CLI
48
+
49
+ ## Command Execution Protocol
50
+
51
+ When coordinator needs to execute a command (analyze, dispatch, monitor):
52
+
53
+ 1. Read `commands/<command>.md`
54
+ 2. Follow the workflow defined in the command
55
+ 3. Commands are inline execution guides, NOT separate agents
56
+ 4. Execute synchronously, complete before proceeding
57
+
58
+ ## Entry Router
59
+
60
+ | Detection | Condition | Handler |
61
+ |-----------|-----------|---------|
62
+ | Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
63
+ | Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
64
+ | Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
65
+ | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
66
+ | Interrupted session | Active/paused session exists in .workflow/.team/IC-* | -> Phase 0 |
67
+ | New session | None of above | -> Phase 1 |
68
+
69
+ For check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
70
+
71
+ ## Phase 0: Session Resume Check
72
+
73
+ 1. Scan `.workflow/.team/IC-*/tasks.json` for active/paused sessions
74
+ 2. No sessions -> Phase 1
75
+ 3. Single session -> reconcile (read tasks.json, reset in_progress->pending, kick first ready task)
76
+ 4. Multiple -> request_user_input for selection
77
+
78
+ ## Phase 1: Requirement Clarification
79
+
80
+ TEXT-LEVEL ONLY. No source code reading.
81
+
82
+ 1. Parse task description from arguments
83
+ 2. Detect interactive scope:
84
+
85
+ | Signal | Pipeline Mode |
86
+ |--------|---------------|
87
+ | Single component (split compare, lightbox, lens, scroll reveal, glass terminal) | single |
88
+ | Gallery, carousel, scroll-snap collection, multi-component scroll | gallery |
89
+ | Full interactive page, landing page, multi-section interactive | page |
90
+ | Unclear | ask user |
91
+
92
+ 3. Ask for missing parameters if scope unclear:
93
+ ```
94
+ request_user_input({
95
+ questions: [
96
+ { question: "Interactive component scope?", header: "Scope", options: [
97
+ { label: "Single component", description: "One interactive element (split compare, lightbox, etc.)" },
98
+ { label: "Gallery / Scroll collection", description: "Scroll-snap gallery or multi-component scroll" },
99
+ { label: "Full interactive page", description: "Complete page with multiple interactive sections" }
100
+ ]},
101
+ { question: "Primary interaction type?", header: "Interaction", options: [
102
+ { label: "Pointer/drag", description: "Drag, resize, slider interactions" },
103
+ { label: "Scroll-based", description: "Scroll snap, scroll reveal, parallax" },
104
+ { label: "Overlay/modal", description: "Lightbox, lens, tooltip overlays" },
105
+ { label: "Mixed" }
106
+ ]}
107
+ ]
108
+ })
109
+ ```
110
+ 4. Delegate to `@commands/analyze.md` -> output scope context
111
+ 5. Record: pipeline_mode, interaction_type, complexity
112
+
113
+ ## Phase 2: Create Session + Initialize
114
+
115
+ 1. Resolve workspace paths (MUST do first):
116
+ - `project_root` = result of `Bash({ command: "pwd" })`
117
+ - `skill_root` = `<project_root>/.codex/skills/team-interactive-craft`
118
+ 2. Generate session ID: `IC-<slug>-<YYYY-MM-DD>`
119
+ 3. Create session folder structure:
120
+ ```
121
+ .workflow/.team/IC-<slug>-<date>/research/
122
+ .workflow/.team/IC-<slug>-<date>/interaction/blueprints/
123
+ .workflow/.team/IC-<slug>-<date>/build/components/
124
+ .workflow/.team/IC-<slug>-<date>/a11y/
125
+ .workflow/.team/IC-<slug>-<date>/wisdom/
126
+ .workflow/.team/IC-<slug>-<date>/.msg/
127
+ ```
128
+ 4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
129
+ 5. Write initial tasks.json:
130
+ ```json
131
+ {
132
+ "session_id": "<id>",
133
+ "pipeline_mode": "<single|gallery|page>",
134
+ "interaction_type": "<pointer|scroll|overlay|mixed>",
135
+ "created_at": "<ISO timestamp>",
136
+ "gc_rounds": 0,
137
+ "max_gc_rounds": 2,
138
+ "active_agents": {},
139
+ "tasks": {}
140
+ }
141
+ ```
142
+ 6. Do NOT spawn workers yet - deferred to Phase 4
143
+
144
+ ## Phase 3: Create Task Chain
145
+
146
+ Delegate to `@commands/dispatch.md`. Task chains by mode:
147
+
148
+ | Mode | Task Chain |
149
+ |------|------------|
150
+ | single | RESEARCH-001 -> INTERACT-001 -> BUILD-001 -> A11Y-001 |
151
+ | gallery | RESEARCH-001 -> INTERACT-001 -> BUILD-001 -> INTERACT-002 -> BUILD-002 -> A11Y-001 |
152
+ | page | RESEARCH-001 -> INTERACT-001 -> [BUILD-001..N parallel] -> A11Y-001 |
153
+
154
+ ## Phase 4: Spawn-and-Wait
155
+
156
+ Delegate to `@commands/monitor.md#handleSpawnNext`:
157
+ 1. Find ready tasks (pending + deps resolved)
158
+ 2. Spawn team_worker agents via spawn_agent, wait_agent for results
159
+ 3. Output status summary
160
+ 4. STOP
161
+
162
+ ## Phase 5: Report + Completion Action
163
+
164
+ 1. Read session state -> collect all results
165
+ 2. List deliverables:
166
+
167
+ | Deliverable | Path |
168
+ |-------------|------|
169
+ | Interaction Inventory | <session>/research/interaction-inventory.json |
170
+ | Browser API Audit | <session>/research/browser-api-audit.json |
171
+ | Pattern Reference | <session>/research/pattern-reference.json |
172
+ | Interaction Blueprints | <session>/interaction/blueprints/*.md |
173
+ | Component JS Files | <session>/build/components/*.js |
174
+ | Component CSS Files | <session>/build/components/*.css |
175
+ | A11y Audit Reports | <session>/a11y/a11y-audit-*.md |
176
+
177
+ 3. Calculate: completed_tasks, gc_rounds, a11y_score, components_built
178
+ 4. Output pipeline summary with [coordinator] prefix
179
+ 5. Execute completion action:
180
+ ```
181
+ request_user_input({
182
+ questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
183
+ { label: "Archive & Clean", description: "Archive session and clean up resources" },
184
+ { label: "Keep Active", description: "Keep session for follow-up work" },
185
+ { label: "Export Results", description: "Export deliverables to specified location" }
186
+ ]}]
187
+ })
188
+ ```
189
+
190
+ ## v4 Coordination Patterns
191
+
192
+ ### Message Semantics
193
+ - **send_message**: Queue supplementary info to a running agent. Does NOT interrupt current processing. Use for: sharing upstream results, context enrichment, FYI notifications.
194
+ - **assign_task**: Assign new work and trigger processing. Use for: waking idle agents, redirecting work, requesting new output.
195
+
196
+ ### Agent Lifecycle Management
197
+ - **list_agents({})**: Returns all running agents. Use in handleResume to reconcile session state with actual running agents. Use in handleComplete to verify clean shutdown.
198
+ - **Named targeting**: Workers spawned with `task_name: "<task-id>"` can be addressed by name in send_message, assign_task, and close_agent calls.
199
+
200
+ ## Error Handling
201
+
202
+ | Error | Resolution |
203
+ |-------|------------|
204
+ | Task timeout | Log, mark failed, ask user to retry or skip |
205
+ | Worker crash | Reset task to pending, respawn worker |
206
+ | Dependency cycle | Detect, report to user, halt |
207
+ | Invalid scope | Reject with error, ask to clarify |
208
+ | Session corruption | Attempt recovery, fallback to manual reconciliation |
209
+ | GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |