claude-code-workflow 7.2.27 → 7.2.29

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 (416) 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/brainstorm/SKILL.md +3 -3
  106. package/.codex/skills/clean/SKILL.md +3 -3
  107. package/.codex/skills/investigate/agents/investigator.md +392 -0
  108. package/.codex/skills/investigate/orchestrator.md +362 -0
  109. package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
  110. package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
  111. package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
  112. package/.codex/skills/investigate/phases/04-implementation.md +195 -0
  113. package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
  114. package/.codex/skills/issue-discover/SKILL.md +13 -13
  115. package/.codex/skills/issue-discover/phases/02-discover.md +4 -4
  116. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +3 -3
  117. package/.codex/skills/parallel-dev-cycle/SKILL.md +4 -4
  118. package/.codex/skills/parallel-dev-cycle/phases/02-agent-execution.md +6 -6
  119. package/.codex/skills/parallel-dev-cycle/phases/03-result-aggregation.md +10 -10
  120. package/.codex/skills/review-cycle/SKILL.md +10 -10
  121. package/.codex/skills/review-cycle/phases/02-parallel-review.md +6 -6
  122. package/.codex/skills/review-cycle/phases/04-iterative-deep-dive.md +4 -4
  123. package/.codex/skills/review-cycle/phases/07-fix-parallel-planning.md +4 -4
  124. package/.codex/skills/review-cycle/phases/08-fix-execution.md +2 -2
  125. package/.codex/skills/roadmap-with-file/SKILL.md +14 -14
  126. package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
  127. package/.codex/skills/security-audit/orchestrator.md +384 -0
  128. package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
  129. package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
  130. package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
  131. package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
  132. package/.codex/skills/ship/agents/ship-operator.md +318 -0
  133. package/.codex/skills/ship/orchestrator.md +426 -0
  134. package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
  135. package/.codex/skills/ship/phases/02-code-review.md +228 -0
  136. package/.codex/skills/ship/phases/03-version-bump.md +259 -0
  137. package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
  138. package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
  139. package/.codex/skills/spec-generator/README.md +1 -1
  140. package/.codex/skills/spec-generator/SKILL.md +184 -88
  141. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +4 -7
  142. package/.codex/skills/spec-generator/phases/01-discovery.md +30 -11
  143. package/.codex/skills/spec-generator/phases/02-product-brief.md +2 -5
  144. package/.codex/skills/spec-generator/phases/03-requirements.md +4 -6
  145. package/.codex/skills/spec-generator/phases/04-architecture.md +4 -6
  146. package/.codex/skills/spec-generator/phases/05-epics-stories.md +4 -6
  147. package/.codex/skills/spec-generator/phases/06-5-auto-fix.md +4 -5
  148. package/.codex/skills/spec-generator/phases/06-readiness-check.md +8 -8
  149. package/.codex/skills/spec-generator/phases/07-issue-export.md +2 -2
  150. package/.codex/skills/spec-setup/SKILL.md +4 -4
  151. package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
  152. package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  153. package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
  154. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  155. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
  156. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
  157. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
  158. package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  159. package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  160. package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  161. package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
  162. package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
  163. package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  164. package/.codex/skills/team-motion-design/SKILL.md +222 -0
  165. package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
  166. package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
  167. package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  168. package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
  169. package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
  170. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
  171. package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  172. package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  173. package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  174. package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
  175. package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
  176. package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
  177. package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
  178. package/.codex/skills/team-ui-polish/SKILL.md +218 -0
  179. package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  180. package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
  181. package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
  182. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
  183. package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
  184. package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
  185. package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
  186. package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
  187. package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  188. package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
  189. package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  190. package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
  191. package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  192. package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
  193. package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
  194. package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  195. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  196. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
  197. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
  198. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
  199. package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  200. package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  201. package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  202. package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  203. package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  204. package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  205. package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
  206. package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
  207. package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  208. package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  209. package/.codex/skills/workflow-plan/SKILL.md +6 -6
  210. package/.codex/skills/workflow-tdd-plan/SKILL.md +5 -5
  211. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +19 -19
  212. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +5 -5
  213. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +5 -5
  214. package/README.md +8 -0
  215. package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
  216. package/ccw/dist/core/hooks/hook-templates.js +114 -1
  217. package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
  218. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  219. package/ccw/dist/core/routes/cli-routes.js +34 -0
  220. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  221. package/ccw/dist/core/routes/system-routes.js +2 -2
  222. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  223. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-exlTDW81.js} +3 -3
  224. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-exlTDW81.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-cgV9LfAI.js} +2 -2
  226. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-cgV9LfAI.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-Dk5jJdWt.js} +2 -2
  228. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-Dk5jJdWt.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-Be9xsPiv.js} +2 -2
  230. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-Be9xsPiv.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-Bh9jBtPI.js} +2 -2
  232. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-Bh9jBtPI.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BrE-oyEq.js} +2 -2
  234. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BrE-oyEq.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cd3nrC93.js} +2 -2
  236. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cd3nrC93.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DXFl3VKF.js} +2 -2
  238. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DXFl3VKF.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-IV8zpjgX.js} +2 -2
  240. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-IV8zpjgX.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-CpDxtmRX.js} +2 -2
  242. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-CpDxtmRX.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-BchjWe7s.js} +2 -2
  244. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-BchjWe7s.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-CbWvaJ0y.js} +2 -2
  246. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-CbWvaJ0y.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-YMjVRiCk.js} +2 -2
  248. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-YMjVRiCk.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-JW2ehYY_.js} +2 -2
  250. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-JW2ehYY_.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BtqzqDVq.js} +2 -2
  252. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BtqzqDVq.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-BsJL_W4d.js} +3 -3
  254. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-BsJL_W4d.js.map} +1 -1
  255. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-BuWpQ7k5.js} +2 -2
  256. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-BuWpQ7k5.js.map} +1 -1
  257. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-D0BtMIWy.js} +2 -2
  258. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-D0BtMIWy.js.map} +1 -1
  259. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-C7dwsAKG.js} +2 -2
  260. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-C7dwsAKG.js.map} +1 -1
  261. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-D0nCNaeB.js} +2 -2
  262. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-D0nCNaeB.js.map} +1 -1
  263. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-B5c2Kb9r.js} +3 -3
  264. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-B5c2Kb9r.js.map} +1 -1
  265. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-C-S5CehM.js} +2 -2
  266. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-C-S5CehM.js.map} +1 -1
  267. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-P_B0JVUQ.js} +2 -2
  268. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-P_B0JVUQ.js.map} +1 -1
  269. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-S4Jn9LUE.js} +2 -2
  270. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-S4Jn9LUE.js.map} +1 -1
  271. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-C2Zlr7AC.js} +2 -2
  272. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-C2Zlr7AC.js.map} +1 -1
  273. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-CMVfz8s5.js} +2 -2
  274. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-CMVfz8s5.js.map} +1 -1
  275. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-YEMjFARX.js} +3 -3
  276. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-YEMjFARX.js.map} +1 -1
  277. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-DnTm55nG.js} +2 -2
  278. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-DnTm55nG.js.map} +1 -1
  279. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CUwebtO2.js} +2 -2
  280. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CUwebtO2.js.map} +1 -1
  281. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-0qyH1Z5P.js} +2 -2
  282. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-0qyH1Z5P.js.map} +1 -1
  283. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-BpgP4087.js} +2 -2
  284. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-BpgP4087.js.map} +1 -1
  285. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js +150 -0
  286. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js.map +1 -0
  287. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js +7 -0
  288. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js.map +1 -0
  289. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DT-yTVkD.js} +4 -4
  290. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DT-yTVkD.js.map} +1 -1
  291. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-CYSPdqWk.js} +2 -2
  292. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-CYSPdqWk.js.map} +1 -1
  293. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-CPh6Zor1.js} +2 -2
  294. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-CPh6Zor1.js.map} +1 -1
  295. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-Ds-8830B.js} +2 -2
  296. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-Ds-8830B.js.map} +1 -1
  297. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-CJODUxBk.js} +2 -2
  298. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-CJODUxBk.js.map} +1 -1
  299. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-Cn3fGUuO.js} +3 -3
  300. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-Cn3fGUuO.js.map} +1 -1
  301. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-CjwVpw6k.js} +2 -2
  302. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-CjwVpw6k.js.map} +1 -1
  303. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-2vZa9Ic3.js} +2 -2
  304. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-2vZa9Ic3.js.map} +1 -1
  305. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-CUU5XDgT.js} +2 -2
  306. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-CUU5XDgT.js.map} +1 -1
  307. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-Cc3nKRZ5.js} +2 -2
  308. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-Cc3nKRZ5.js.map} +1 -1
  309. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-BwpSRDUa.js} +2 -2
  310. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-BwpSRDUa.js.map} +1 -1
  311. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-DBzUW1XC.js} +2 -2
  312. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-DBzUW1XC.js.map} +1 -1
  313. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CGNNsjvE.js} +2 -2
  314. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CGNNsjvE.js.map} +1 -1
  315. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-D27G86Ul.js} +2 -2
  316. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-D27G86Ul.js.map} +1 -1
  317. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-C1Ij47Yz.js} +2 -2
  318. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-C1Ij47Yz.js.map} +1 -1
  319. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-C6MOB7Au.js} +2 -2
  320. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-C6MOB7Au.js.map} +1 -1
  321. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-BxfBlZ26.js} +2 -2
  322. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-BxfBlZ26.js.map} +1 -1
  323. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-NI237wA-.js} +2 -2
  324. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-NI237wA-.js.map} +1 -1
  325. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-Byn2_2v6.js} +2 -2
  326. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-Byn2_2v6.js.map} +1 -1
  327. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-D-7PhZjx.js} +2 -2
  328. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-D-7PhZjx.js.map} +1 -1
  329. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-BoAsK_FL.js} +2 -2
  330. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-BoAsK_FL.js.map} +1 -1
  331. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-DCSxJIS4.js} +2 -2
  332. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-DCSxJIS4.js.map} +1 -1
  333. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-CHS3prza.js} +2 -2
  334. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-CHS3prza.js.map} +1 -1
  335. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-D7K35U7S.js} +2 -2
  336. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-D7K35U7S.js.map} +1 -1
  337. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-eq9xE07G.js} +2 -2
  338. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-eq9xE07G.js.map} +1 -1
  339. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-C1DMpBua.js} +2 -2
  340. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-C1DMpBua.js.map} +1 -1
  341. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-Di5SBCY-.js} +2 -2
  342. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-Di5SBCY-.js.map} +1 -1
  343. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index--_R7COnA.js} +2 -2
  344. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index--_R7COnA.js.map} +1 -1
  345. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-BUol9HDD.js} +3 -3
  346. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-BUol9HDD.js.map} +1 -1
  347. package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-CT9oykfw.js} +2 -2
  348. package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-CT9oykfw.js.map} +1 -1
  349. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-Ddwvf87H.js} +2 -2
  350. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-Ddwvf87H.js.map} +1 -1
  351. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-LiX0qZbN.js} +2 -2
  352. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-LiX0qZbN.js.map} +1 -1
  353. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-CL3DVEwb.js} +2 -2
  354. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-CL3DVEwb.js.map} +1 -1
  355. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CC5cFeq6.js} +2 -2
  356. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CC5cFeq6.js.map} +1 -1
  357. package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-ngFQ9bs0.js} +2 -2
  358. package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-ngFQ9bs0.js.map} +1 -1
  359. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-BEU6I0KK.js} +2 -2
  360. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-BEU6I0KK.js.map} +1 -1
  361. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BWZdLA6y.js} +2 -2
  362. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BWZdLA6y.js.map} +1 -1
  363. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-K6_Chm7n.js} +2 -2
  364. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-K6_Chm7n.js.map} +1 -1
  365. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CWkphauf.js} +2 -2
  366. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CWkphauf.js.map} +1 -1
  367. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-DrNgkamn.js} +2 -2
  368. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-DrNgkamn.js.map} +1 -1
  369. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CMo3sw5_.js} +2 -2
  370. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CMo3sw5_.js.map} +1 -1
  371. package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-DppNTW5e.js} +2 -2
  372. package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-DppNTW5e.js.map} +1 -1
  373. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-CD8aPMbZ.js} +2 -2
  374. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-CD8aPMbZ.js.map} +1 -1
  375. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-B4z90fQD.js} +2 -2
  376. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-B4z90fQD.js.map} +1 -1
  377. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2-CAKRU_QC.js} +2 -2
  378. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2-CAKRU_QC.js.map} +1 -1
  379. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-KhI3HrzX.js} +2 -2
  380. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-KhI3HrzX.js.map} +1 -1
  381. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-BtdGIpuq.js} +2 -2
  382. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-BtdGIpuq.js.map} +1 -1
  383. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-ZoBUkXoD.js} +2 -2
  384. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-ZoBUkXoD.js.map} +1 -1
  385. package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CltxQP-P.js} +2 -2
  386. package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CltxQP-P.js.map} +1 -1
  387. package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-C32OUSGf.js} +2 -2
  388. package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-C32OUSGf.js.map} +1 -1
  389. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-0IxoyAVZ.js} +2 -2
  390. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-0IxoyAVZ.js.map} +1 -1
  391. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-4eKCkyBn.js} +2 -2
  392. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-4eKCkyBn.js.map} +1 -1
  393. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-zLTUWqhi.js} +2 -2
  394. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-zLTUWqhi.js.map} +1 -1
  395. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-BtN2vpOX.js} +2 -2
  396. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-BtN2vpOX.js.map} +1 -1
  397. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-_spj49qL.js} +2 -2
  398. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-_spj49qL.js.map} +1 -1
  399. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-Bm9KFZvd.js} +2 -2
  400. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-Bm9KFZvd.js.map} +1 -1
  401. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-DOmpm6v9.js} +2 -2
  402. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-DOmpm6v9.js.map} +1 -1
  403. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-D2rj4rea.js} +2 -2
  404. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-D2rj4rea.js.map} +1 -1
  405. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-OskEpomF.js} +3 -3
  406. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-OskEpomF.js.map} +1 -1
  407. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-BjMgsNSF.js} +2 -2
  408. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-BjMgsNSF.js.map} +1 -1
  409. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-CLhyYWa7.js} +2 -2
  410. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-CLhyYWa7.js.map} +1 -1
  411. package/ccw/frontend/dist/index.html +1 -1
  412. package/package.json +105 -105
  413. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js +0 -150
  414. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
  415. package/ccw/frontend/dist/assets/SkillsManagerPage-D3LzbpJY.js +0 -7
  416. package/ccw/frontend/dist/assets/SkillsManagerPage-D3LzbpJY.js.map +0 -1
@@ -0,0 +1,216 @@
1
+ ---
2
+ role: builder
3
+ prefix: BUILD
4
+ inner_loop: true
5
+ message_types: [state_update]
6
+ ---
7
+
8
+ # Interactive Component Builder
9
+
10
+ Implement vanilla JS + CSS interactive components from interaction blueprints. Zero dependencies, ES modules, progressive enhancement, GPU-only animations, touch-aware. Act as Generator in the builder<->a11y-tester Generator-Critic loop.
11
+
12
+ ## Phase 2: Context & Artifact Loading
13
+
14
+ | Input | Source | Required |
15
+ |-------|--------|----------|
16
+ | Interaction blueprints | <session>/interaction/blueprints/*.md | Yes |
17
+ | Research artifacts | <session>/research/*.json | Yes |
18
+ | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
19
+ | A11y audit feedback | <session>/a11y/a11y-audit-*.md | Only for GC fix tasks |
20
+
21
+ 1. Extract session path from task description
22
+ 2. Read interaction blueprint for target component
23
+ 3. Read research artifacts: browser-api-audit.json (API availability), pattern-reference.json (reference patterns)
24
+ 4. Detect task type from subject: numbered -> New component, "fix" -> GC fix
25
+ 5. If GC fix task: read latest a11y audit feedback
26
+
27
+ ## Phase 3: Implementation Execution
28
+
29
+ **Component Implementation (BUILD-001, BUILD-002, etc.)**:
30
+
31
+ ### JavaScript (ES Module)
32
+ Implement component class in `<session>/build/components/{name}.js`:
33
+
34
+ ```javascript
35
+ // Structure template (adapt to component type)
36
+ export class ComponentName {
37
+ // --- Configuration ---
38
+ static defaults = { /* configurable params from blueprint */ };
39
+
40
+ // --- Lifecycle ---
41
+ constructor(element, options = {}) { /* merge options, query DOM, bind events */ }
42
+ init() { /* setup observers, initial state */ }
43
+ destroy() { /* cleanup: remove listeners, disconnect observers */ }
44
+
45
+ // --- State Machine ---
46
+ #state = 'idle';
47
+ #setState(next) { /* validate transition, update, trigger side effects */ }
48
+
49
+ // --- Event Handlers (from blueprint event flow map) ---
50
+ #onPointerDown(e) { /* setPointerCapture, transition state */ }
51
+ #onPointerMove(e) { /* lerp interpolation, update transform */ }
52
+ #onPointerUp(e) { /* releasePointerCapture, settle animation */ }
53
+ #onKeyDown(e) { /* keyboard mapping from blueprint */ }
54
+
55
+ // --- Animation ---
56
+ #lerp(current, target, speed) { return current + (target - current) * speed; }
57
+ #animate() { /* requestAnimationFrame loop, GPU-only transforms */ }
58
+
59
+ // --- Observers ---
60
+ #resizeObserver = null; // responsive behavior
61
+ #intersectionObserver = null; // scroll triggers
62
+
63
+ // --- Accessibility ---
64
+ #announceToScreenReader(message) { /* aria-live region update */ }
65
+ }
66
+
67
+ // Auto-init: progressive enhancement
68
+ document.querySelectorAll('[data-component-name]').forEach(el => {
69
+ new ComponentName(el);
70
+ });
71
+ ```
72
+
73
+ Requirements:
74
+ - Pure ES module with `export` (no CommonJS, no bundler)
75
+ - Class-based with private fields (#)
76
+ - Constructor accepts DOM element + options object
77
+ - State machine from blueprint with validated transitions
78
+ - Event handlers from blueprint event flow map
79
+ - Lerp interpolation for smooth drag/follow (speed from blueprint)
80
+ - requestAnimationFrame for frame-synced updates
81
+ - setPointerCapture for reliable drag tracking
82
+ - ResizeObserver for responsive layout adjustments
83
+ - IntersectionObserver for scroll-triggered behavior (when applicable)
84
+ - Proper cleanup in destroy() method
85
+ - Auto-init via data attribute for progressive enhancement
86
+
87
+ ### CSS (Custom Properties)
88
+ Implement styles in `<session>/build/components/{name}.css`:
89
+
90
+ ```css
91
+ /* Structure template */
92
+ /* --- Custom Properties (configurable) --- */
93
+ .component-name {
94
+ --component-duration: 400ms;
95
+ --component-easing: cubic-bezier(0.16, 1, 0.3, 1);
96
+ --component-color-primary: #1a1a2e;
97
+ /* ... from blueprint animation choreography */
98
+ }
99
+
100
+ /* --- Base Layout (works without JS) --- */
101
+ .component-name { /* progressive enhancement base */ }
102
+
103
+ /* --- States (from blueprint state machine) --- */
104
+ .component-name[data-state="idle"] { }
105
+ .component-name[data-state="hover"] { }
106
+ .component-name[data-state="active"] { }
107
+ .component-name[data-state="dragging"] { }
108
+
109
+ /* --- Animations (GPU-only: transform + opacity) --- */
110
+ .component-name__element {
111
+ transform: translateX(0);
112
+ opacity: 1;
113
+ transition: transform var(--component-duration) var(--component-easing),
114
+ opacity var(--component-duration) var(--component-easing);
115
+ will-change: transform, opacity;
116
+ }
117
+
118
+ /* --- Focus Styles --- */
119
+ .component-name:focus-visible {
120
+ outline: 2px solid var(--component-focus-color, #4a9eff);
121
+ outline-offset: 2px;
122
+ }
123
+
124
+ /* --- Reduced Motion --- */
125
+ @media (prefers-reduced-motion: reduce) {
126
+ .component-name,
127
+ .component-name * {
128
+ transition-duration: 0.01ms !important;
129
+ animation-duration: 0.01ms !important;
130
+ }
131
+ }
132
+
133
+ /* --- Responsive --- */
134
+ @media (max-width: 768px) { /* touch-optimized sizes */ }
135
+ ```
136
+
137
+ Requirements:
138
+ - CSS custom properties for all configurable values (no preprocessor)
139
+ - Base layout works without JavaScript (progressive enhancement)
140
+ - State-driven via data attributes (`data-state`, `data-active`)
141
+ - GPU-only animations: transform + opacity ONLY (no width/height/top/left)
142
+ - `will-change` on animated elements
143
+ - `prefers-reduced-motion` media query with instant transitions
144
+ - `focus-visible` for keyboard-only focus ring
145
+ - Responsive breakpoints for touch targets (min 44x44px)
146
+ - No inline styles from JS -- use CSS classes and custom properties
147
+
148
+ ### Native Platform APIs (prefer over custom implementations)
149
+
150
+ **Dialog API** (`<dialog>`):
151
+ - Use `<dialog>` for modals — provides built-in focus trap and backdrop
152
+ - `dialog.showModal()` for modal (with backdrop, escape-to-close, focus trap)
153
+ - `dialog.show()` for non-modal
154
+ - `dialog.close()` to dismiss
155
+ - Style `::backdrop` pseudo-element for overlay
156
+ - Returns focus to trigger element on close
157
+ - Add `inert` attribute to siblings when modal is open (prevents background interaction)
158
+
159
+ **Popover API** (native tooltips/dropdowns):
160
+ - `<div popover>` for light-dismiss popovers (click-outside-to-close)
161
+ - `<button popovertarget="id">` for trigger
162
+ - Auto-stacking (no z-index management needed)
163
+ - Built-in accessibility (focus management, escape-to-close)
164
+ - Use for: tooltips, dropdown menus, date pickers, color pickers
165
+
166
+ **CSS Anchor Positioning** (Chrome 125+, progressive enhancement):
167
+ - `anchor-name: --trigger` on trigger element
168
+ - `position-anchor: --trigger` on positioned element
169
+ - `@position-try` for fallback positioning
170
+ - Fallback: `position: fixed` with JS-calculated coordinates
171
+
172
+ **GC Fix Mode (BUILD-fix-N)**:
173
+ - Parse a11y audit feedback for specific issues
174
+ - Re-read affected component files
175
+ - Apply targeted fixes: missing ARIA attributes, keyboard handlers, focus management, contrast adjustments
176
+ - Re-write affected files
177
+ - Signal `build_revision` instead of `build_ready`
178
+
179
+ ## Phase 4: Self-Validation & Output
180
+
181
+ 1. Zero-dependency check:
182
+
183
+ | Check | Pass Criteria |
184
+ |-------|---------------|
185
+ | No imports from npm | No `import` from node_modules paths |
186
+ | No require() | No CommonJS require statements |
187
+ | ES module exports | Uses `export class` or `export function` |
188
+ | No build tools needed | Runs directly in browser with `<script type="module">` |
189
+
190
+ 2. State machine completeness:
191
+
192
+ | Check | Pass Criteria |
193
+ |-------|---------------|
194
+ | All states from blueprint | Every blueprint state has corresponding code path |
195
+ | All transitions | Every transition has handler code |
196
+ | Error recovery | All states can reach idle via reset |
197
+
198
+ 3. Accessibility baseline:
199
+
200
+ | Check | Pass Criteria |
201
+ |-------|---------------|
202
+ | Keyboard handlers | onKeyDown handles Enter, Space, Escape, Arrows |
203
+ | ARIA attributes | role, aria-label, aria-expanded (as needed) set |
204
+ | Focus management | tabindex, focus-visible styles present |
205
+ | Reduced motion | prefers-reduced-motion media query in CSS |
206
+
207
+ 4. Performance baseline:
208
+
209
+ | Check | Pass Criteria |
210
+ |-------|---------------|
211
+ | GPU-only transforms | No width/height/top/left in transitions |
212
+ | No forced reflow | No offsetWidth/getBoundingClientRect in animation loop |
213
+ | Cleanup | destroy() disconnects all observers and listeners |
214
+
215
+ 5. Update `<session>/wisdom/.msg/meta.json` under `builder` namespace:
216
+ - Read existing -> merge `{ "builder": { task_type, component_name, file_count, output_dir, states_implemented, events_bound } }` -> write back
@@ -0,0 +1,71 @@
1
+ # Analyze Task
2
+
3
+ Parse user task -> detect interactive component scope -> identify browser APIs -> determine pipeline mode.
4
+
5
+ **CONSTRAINT**: Text-level analysis only. NO source code reading, NO codebase exploration.
6
+
7
+ ## Signal Detection
8
+
9
+ | Keywords | Capability | Pipeline Hint |
10
+ |----------|------------|---------------|
11
+ | split, compare, before/after, slider, divider | split-compare | single |
12
+ | gallery, carousel, scroll-snap, horizontal scroll | scroll-snap-gallery | gallery |
13
+ | lightbox, modal, overlay, fullscreen view | lightbox | single |
14
+ | scroll reveal, appear on scroll, fade in, stagger | scroll-reveal | single or gallery |
15
+ | glass, terminal, frosted, blur, backdrop | glass-terminal | single |
16
+ | lens, magnify, zoom, loupe | lens-effect | single |
17
+ | drag, resize, pointer, touch | pointer-interaction | single |
18
+ | page, landing, sections, multi-section | interactive-page | page |
19
+ | multiple components, collection, set | multi-component | gallery or page |
20
+
21
+ ## Scope Determination
22
+
23
+ | Signal | Pipeline Mode |
24
+ |--------|---------------|
25
+ | Single component mentioned | single |
26
+ | Gallery or scroll-based multi-component | gallery |
27
+ | Full interactive page or multi-section | page |
28
+ | Unclear | ask user |
29
+
30
+ ## Complexity Scoring
31
+
32
+ | Factor | Points |
33
+ |--------|--------|
34
+ | Single component | +1 |
35
+ | Gallery / scroll collection | +2 |
36
+ | Full interactive page | +3 |
37
+ | Pointer/drag interactions | +1 |
38
+ | Scroll-based triggers (IntersectionObserver) | +1 |
39
+ | Touch gestures (pinch, swipe) | +1 |
40
+ | Overlay/modal with focus trap | +1 |
41
+ | Animation choreography (stagger, sequence) | +1 |
42
+
43
+ Results: 1-2 Low (single), 3-4 Medium (gallery), 5+ High (page)
44
+
45
+ ## Browser API Detection
46
+
47
+ | Keywords | Browser API |
48
+ |----------|-------------|
49
+ | scroll, appear, visibility, threshold | IntersectionObserver |
50
+ | resize, container, responsive, layout | ResizeObserver |
51
+ | drag, pointer, mouse, click | Pointer Events |
52
+ | touch, swipe, pinch, gesture | Touch Events |
53
+ | scroll snap, snap point, mandatory | CSS scroll-snap |
54
+ | clip, mask, reveal, wipe | CSS clip-path |
55
+ | blur, frosted, glass | CSS backdrop-filter |
56
+ | animate, transition, keyframe | Web Animations API |
57
+ | focus, trap, tab, keyboard | Focus Management |
58
+
59
+ ## Output
60
+
61
+ Write scope context to coordinator memory:
62
+ ```json
63
+ {
64
+ "pipeline_mode": "<single|gallery|page>",
65
+ "scope": "<description>",
66
+ "interaction_type": "<pointer|scroll|overlay|mixed>",
67
+ "components": ["<detected-component-types>"],
68
+ "browser_apis": ["<detected-apis>"],
69
+ "complexity": { "score": 0, "level": "Low|Medium|High" }
70
+ }
71
+ ```
@@ -0,0 +1,192 @@
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 session meta.json `pipeline` | Yes |
12
+ | Interaction type | From session meta.json `interaction_type` | Yes |
13
+
14
+ 1. Load user requirement and scope from session meta.json
15
+ 2. Load pipeline stage definitions from specs/pipelines.md
16
+ 3. Read `pipeline` and `interaction_type` from session 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
+ - Scope: <interaction-scope>
35
+ - Components: <component-list>
36
+ - Upstream artifacts: <artifact-1>, <artifact-2>
37
+ - Shared memory: <session>/wisdom/.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
+ | `single` | Create 4 tasks: RESEARCH -> INTERACT -> BUILD -> A11Y |
49
+ | `gallery` | Create 6 tasks: RESEARCH -> INTERACT-001 -> BUILD-001 -> INTERACT-002 -> BUILD-002 -> A11Y |
50
+ | `page` | Create 4+ tasks: RESEARCH -> INTERACT -> [BUILD-001..N parallel] -> A11Y |
51
+
52
+ ---
53
+
54
+ ### Single Pipeline Task Chain
55
+
56
+ **RESEARCH-001** (researcher):
57
+ ```
58
+ TaskCreate({
59
+ subject: "RESEARCH-001",
60
+ description: "PURPOSE: Analyze interaction patterns, browser API availability, and reference implementations | Success: 3 research artifacts with valid data
61
+ TASK:
62
+ - Catalog existing interactive components in project
63
+ - Audit browser API usage (IntersectionObserver, ResizeObserver, Pointer Events, Touch Events)
64
+ - Collect reference patterns for target component type
65
+ CONTEXT:
66
+ - Session: <session-folder>
67
+ - Scope: <interaction-scope>
68
+ - Components: <component-list>
69
+ - Shared memory: <session>/wisdom/.msg/meta.json
70
+ EXPECTED: <session>/research/*.json | All 3 research files with valid JSON
71
+ CONSTRAINTS: Read-only analysis | Focus on <interaction-scope>"
72
+ })
73
+ TaskUpdate({ taskId: "RESEARCH-001", owner: "researcher" })
74
+ ```
75
+
76
+ **INTERACT-001** (interaction-designer):
77
+ ```
78
+ TaskCreate({
79
+ subject: "INTERACT-001",
80
+ description: "PURPOSE: Design complete interaction blueprint with state machine and event flows | Success: Blueprint with all states, events, and keyboard mappings defined
81
+ TASK:
82
+ - Define state machine (idle -> hover -> active -> animating -> complete)
83
+ - Map event flows (pointer/touch/keyboard -> handlers -> state transitions)
84
+ - Specify gesture parameters (lerp speed, thresholds, easing)
85
+ - Design animation choreography (entry/exit/idle transitions)
86
+ - Create touch/keyboard/mouse mapping table
87
+ CONTEXT:
88
+ - Session: <session-folder>
89
+ - Scope: <interaction-scope>
90
+ - Upstream artifacts: research/*.json
91
+ - Shared memory: <session>/wisdom/.msg/meta.json
92
+ EXPECTED: <session>/interaction/blueprints/<component-name>.md | Complete state machine + event map + keyboard coverage
93
+ CONSTRAINTS: Vanilla JS only | GPU-only animations | Progressive enhancement"
94
+ })
95
+ TaskUpdate({ taskId: "INTERACT-001", addBlockedBy: ["RESEARCH-001"], owner: "interaction-designer" })
96
+ ```
97
+
98
+ **BUILD-001** (builder):
99
+ ```
100
+ TaskCreate({
101
+ subject: "BUILD-001",
102
+ description: "PURPOSE: Implement interactive component as vanilla JS + CSS | Success: Working ES module + CSS with all states, touch-aware, keyboard accessible
103
+ TASK:
104
+ - Implement ES module component class from interaction blueprint
105
+ - Write CSS with custom properties (no preprocessor)
106
+ - Add progressive enhancement (content works without JS)
107
+ - Use GPU-only animations (transform + opacity)
108
+ - Implement pointer events with touch fallback
109
+ - Add ResizeObserver for responsive behavior
110
+ - Add IntersectionObserver for scroll triggers (if applicable)
111
+ CONTEXT:
112
+ - Session: <session-folder>
113
+ - Scope: <interaction-scope>
114
+ - Upstream artifacts: interaction/blueprints/*.md, research/*.json
115
+ - Shared memory: <session>/wisdom/.msg/meta.json
116
+ EXPECTED: <session>/build/components/<name>.js + <name>.css | Zero dependencies, all states implemented
117
+ CONSTRAINTS: No npm packages | ES modules only | No inline styles | < 5ms per frame"
118
+ })
119
+ TaskUpdate({ taskId: "BUILD-001", addBlockedBy: ["INTERACT-001"], owner: "builder" })
120
+ ```
121
+
122
+ **A11Y-001** (a11y-tester):
123
+ ```
124
+ TaskCreate({
125
+ subject: "A11Y-001",
126
+ description: "PURPOSE: Audit accessibility of built component | Success: Audit report with pass/fail per check, 0 critical issues
127
+ TASK:
128
+ - Test keyboard navigation (tab order, arrow keys, escape, enter/space)
129
+ - Check screen reader compatibility (ARIA roles, states, live regions)
130
+ - Verify reduced motion fallback (prefers-reduced-motion)
131
+ - Test focus management (visible indicator, focus trap for overlays)
132
+ - Check color contrast (foreground/background ratio)
133
+ CONTEXT:
134
+ - Session: <session-folder>
135
+ - Scope: <interaction-scope>
136
+ - Upstream artifacts: build/components/*.js, build/components/*.css, interaction/blueprints/*.md
137
+ - Shared memory: <session>/wisdom/.msg/meta.json
138
+ EXPECTED: <session>/a11y/a11y-audit-001.md | Per-check pass/fail with remediation suggestions
139
+ CONSTRAINTS: Read-only analysis | GC convergence: 0 critical issues"
140
+ })
141
+ TaskUpdate({ taskId: "A11Y-001", addBlockedBy: ["BUILD-001"], owner: "a11y-tester" })
142
+ ```
143
+
144
+ ---
145
+
146
+ ### Gallery Pipeline Task Chain
147
+
148
+ Create tasks in dependency order:
149
+
150
+ | Task | Role | blockedBy | Description |
151
+ |------|------|-----------|-------------|
152
+ | RESEARCH-001 | researcher | (none) | Interaction patterns + browser API audit |
153
+ | INTERACT-001 | interaction-designer | RESEARCH-001 | Base component interaction blueprint |
154
+ | BUILD-001 | builder | INTERACT-001 | Base component implementation |
155
+ | INTERACT-002 | interaction-designer | BUILD-001 | Gallery/scroll-snap interaction blueprint |
156
+ | BUILD-002 | builder | INTERACT-002 | Gallery container + navigation implementation |
157
+ | A11Y-001 | a11y-tester | BUILD-002 | Full gallery accessibility audit |
158
+
159
+ Task descriptions follow same template as single pipeline, with subject-specific content:
160
+ - INTERACT-002 focuses on scroll-snap container, navigation dots, active item detection
161
+ - BUILD-002 focuses on gallery container with CSS scroll-snap, IntersectionObserver for active item, navigation controls
162
+
163
+ ---
164
+
165
+ ### Page Pipeline Task Chain
166
+
167
+ | Task | Role | blockedBy | Description |
168
+ |------|------|-----------|-------------|
169
+ | RESEARCH-001 | researcher | (none) | Interaction patterns for all page sections |
170
+ | INTERACT-001 | interaction-designer | RESEARCH-001 | Blueprints for all interactive sections |
171
+ | BUILD-001..N | builder | INTERACT-001 | One task per section (parallel fan-out) |
172
+ | A11Y-001 | a11y-tester | BUILD-001..N (all) | Full page accessibility audit |
173
+
174
+ **Parallel fan-out**: Create one BUILD task per distinct interactive section detected in the interaction blueprint. Each BUILD task is blocked only by INTERACT-001. A11Y-001 is blocked by ALL BUILD tasks.
175
+
176
+ Task descriptions for each BUILD-00N specify which section to implement, referencing the corresponding section in the interaction blueprint.
177
+
178
+ ---
179
+
180
+ ## Phase 4: Validation
181
+
182
+ Verify task chain integrity:
183
+
184
+ | Check | Method | Expected |
185
+ |-------|--------|----------|
186
+ | Task count correct | TaskList count | single: 4, gallery: 6, page: 3+N |
187
+ | Dependencies correct | Trace dependency graph | Acyclic, correct blockedBy |
188
+ | No circular dependencies | Trace dependency graph | Acyclic |
189
+ | Task IDs use correct prefixes | Pattern check | RESEARCH/INTERACT/BUILD/A11Y |
190
+ | Structured descriptions complete | Each has PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS | All present |
191
+
192
+ If validation fails, fix the specific task and re-validate.
@@ -0,0 +1,183 @@
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 [researcher], [interaction-designer], [builder], [a11y-tester] | 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
+ | `[researcher]` or `RESEARCH-*` | researcher |
33
+ | `[interaction-designer]` or `INTERACT-*` | interaction-designer |
34
+ | `[builder]` or `BUILD-*` | builder |
35
+ | `[a11y-tester]` or `A11Y-*` | a11y-tester |
36
+
37
+ 2. Mark task completed: `TaskUpdate({ taskId: "<task-id>", status: "completed" })`
38
+ 3. Record completion in session state
39
+
40
+ 4. Check checkpoint for completed task:
41
+
42
+ | Completed Task | Checkpoint | Action |
43
+ |---------------|------------|--------|
44
+ | RESEARCH-001 | - | Notify user: research complete |
45
+ | INTERACT-001 | - | Proceed to BUILD-001 (single/gallery) or BUILD-001..N (page parallel) |
46
+ | INTERACT-002 | - | Proceed to BUILD-002 (gallery) |
47
+ | BUILD-001 | - | Check mode: single -> A11Y-001; gallery -> INTERACT-002; page -> check if all BUILD done |
48
+ | BUILD-001..N | - | Page mode: check if all BUILD tasks done -> A11Y-001 |
49
+ | BUILD-002 | - | Gallery: proceed to A11Y-001 |
50
+ | A11Y-001 | QUALITY: A11y Gate | Check a11y signal -> GC loop or complete |
51
+
52
+ 5. **A11y Gate handling** (A11Y task completed):
53
+ Read a11y signal from message: `a11y_passed`, `a11y_result`, or `fix_required`
54
+
55
+ | Signal | Condition | Action |
56
+ |--------|-----------|--------|
57
+ | `a11y_passed` | 0 critical issues | GC converged -> record gate -> handleComplete |
58
+ | `a11y_result` | Minor issues only | gc_rounds < max -> create BUILD-fix task |
59
+ | `fix_required` | Critical issues found | gc_rounds < max -> create BUILD-fix task (CRITICAL) |
60
+ | Any | gc_rounds >= max | Escalate to user |
61
+
62
+ **GC Fix Task Creation**:
63
+ ```
64
+ TaskCreate({ subject: "BUILD-fix-<round>",
65
+ description: "PURPOSE: Address a11y audit feedback | Success: All critical/high issues resolved
66
+ TASK:
67
+ - Parse a11y audit feedback for specific issues
68
+ - Apply targeted fixes to component JS/CSS
69
+ CONTEXT:
70
+ - Session: <session-folder>
71
+ - Upstream artifacts: a11y/a11y-audit-<NNN>.md" })
72
+ TaskUpdate({ taskId: "BUILD-fix-<round>", owner: "builder" })
73
+ ```
74
+ Then create new A11Y task blocked by fix. Increment gc_state.round.
75
+
76
+ **GC Escalation Options** (when max rounds exceeded):
77
+ 1. Accept current implementation - skip remaining a11y fixes
78
+ 2. Try one more round
79
+ 3. Terminate
80
+
81
+ 6. -> handleSpawnNext
82
+
83
+ ## handleCheck
84
+
85
+ Read-only status report, then STOP.
86
+
87
+ ```
88
+ Pipeline Status (<pipeline-mode>):
89
+ [DONE] RESEARCH-001 (researcher) -> research/*.json
90
+ [DONE] INTERACT-001 (interaction-designer) -> blueprints/*.md
91
+ [RUN] BUILD-001 (builder) -> building component...
92
+ [WAIT] A11Y-001 (a11y-tester) -> blocked by BUILD-001
93
+
94
+ GC Rounds: 0/2
95
+ Session: <session-id>
96
+ Commands: 'resume' to advance | 'check' to refresh
97
+ ```
98
+
99
+ Output status -- do NOT advance pipeline.
100
+
101
+ ## handleResume
102
+
103
+ 1. Audit task list for inconsistencies:
104
+ - Tasks stuck in "in_progress" -> reset to "pending"
105
+ - Tasks with completed blockers but still "pending" -> include in spawn list
106
+ 2. -> handleSpawnNext
107
+
108
+ ## handleSpawnNext
109
+
110
+ Find ready tasks, spawn workers, STOP.
111
+
112
+ 1. Collect: completedSubjects, inProgressSubjects, readySubjects (pending + all blockedBy completed)
113
+ 2. No ready + work in progress -> report waiting, STOP
114
+ 3. No ready + nothing in progress -> handleComplete
115
+ 4. Has ready -> for each:
116
+ a. Check inner loop role with active worker -> skip (worker picks up)
117
+ b. TaskUpdate -> in_progress
118
+ c. team_msg log -> task_unblocked
119
+ d. Spawn team-worker:
120
+
121
+ ```
122
+ Agent({
123
+ subagent_type: "team-worker",
124
+ description: "Spawn <role> worker for <task-id>",
125
+ team_name: "interactive-craft",
126
+ name: "<role>",
127
+ run_in_background: true,
128
+ prompt: `## Role Assignment
129
+ role: <role>
130
+ role_spec: <project>/.claude/skills/team-interactive-craft/roles/<role>/role.md
131
+ session: <session-folder>
132
+ session_id: <session-id>
133
+ team_name: interactive-craft
134
+ requirement: <task-description>
135
+ inner_loop: <true|false>
136
+
137
+ Read role_spec file to load Phase 2-4 domain instructions.
138
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
139
+ })
140
+ ```
141
+
142
+ **Parallel spawn rules by mode**:
143
+
144
+ | Mode | Scenario | Spawn Behavior |
145
+ |------|----------|---------------|
146
+ | single | Sequential | One task at a time |
147
+ | gallery | Sequential | One task at a time |
148
+ | page | After INTERACT-001 | Spawn BUILD-001..N in parallel (CP-3 fan-out) |
149
+ | page | After all BUILD done | Spawn A11Y-001 |
150
+
151
+ 5. Add to active_workers, update session, output summary, STOP
152
+
153
+ ## handleComplete
154
+
155
+ Pipeline done. Generate report and completion action.
156
+
157
+ **Completion check by mode**:
158
+
159
+ | Mode | Completion Condition |
160
+ |------|---------------------|
161
+ | single | All 4 tasks (+ fix tasks) completed |
162
+ | gallery | All 6 tasks (+ fix tasks) completed |
163
+ | page | All 3+N tasks (+ fix tasks) completed |
164
+
165
+ 1. If any tasks not completed -> handleSpawnNext
166
+ 2. If all completed -> transition to coordinator Phase 5
167
+
168
+ ## handleAdapt
169
+
170
+ Capability gap reported mid-pipeline.
171
+
172
+ 1. Parse gap description
173
+ 2. Check if existing role covers it -> redirect
174
+ 3. Role count < 5 -> generate dynamic role spec
175
+ 4. Create new task, spawn worker
176
+ 5. Role count >= 5 -> merge or pause
177
+
178
+ ## Fast-Advance Reconciliation
179
+
180
+ On every coordinator wake:
181
+ 1. Read team_msg entries with type="fast_advance"
182
+ 2. Sync active_workers with spawned successors
183
+ 3. No duplicate spawns