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,129 @@
1
+ ---
2
+ name: team-motion-design
3
+ description: Unified team skill for motion design. Animation token systems, scroll choreography, GPU-accelerated transforms, reduced-motion fallback. Uses team-worker agent architecture. Triggers on "team motion design", "animation system".
4
+ allowed-tools: Agent, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, TaskList, TaskGet, TaskUpdate, TaskCreate, TeamCreate, TeamDelete, SendMessage, mcp__ccw-tools__read_file, mcp__ccw-tools__write_file, mcp__ccw-tools__edit_file, mcp__ccw-tools__team_msg, mcp__chrome-devtools__performance_start_trace, mcp__chrome-devtools__performance_stop_trace, mcp__chrome-devtools__performance_analyze_insight, mcp__chrome-devtools__evaluate_script, mcp__chrome-devtools__take_screenshot
5
+ ---
6
+
7
+ # Team Motion Design
8
+
9
+ Systematic motion design pipeline: research -> choreography -> animation -> performance testing. Built on **team-worker agent architecture** -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from `roles/<role>/role.md`.
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ Skill(skill="team-motion-design", args="task description")
15
+ |
16
+ SKILL.md (this file) = Router
17
+ |
18
+ +--------------+--------------+
19
+ | |
20
+ no --role flag --role <name>
21
+ | |
22
+ Coordinator Worker
23
+ roles/coordinator/role.md roles/<name>/role.md
24
+ |
25
+ +-- analyze -> dispatch -> spawn workers -> STOP
26
+ |
27
+ +-------+-------+-------+-------+
28
+ v v v v
29
+ [team-worker agents, each loads roles/<role>/role.md]
30
+ motion-researcher choreographer animator motion-tester
31
+ ```
32
+
33
+ ## Role Registry
34
+
35
+ | Role | Path | Prefix | Inner Loop |
36
+ |------|------|--------|------------|
37
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
38
+ | motion-researcher | [roles/motion-researcher/role.md](roles/motion-researcher/role.md) | MRESEARCH-* | false |
39
+ | choreographer | [roles/choreographer/role.md](roles/choreographer/role.md) | CHOREO-* | false |
40
+ | animator | [roles/animator/role.md](roles/animator/role.md) | ANIM-* | true |
41
+ | motion-tester | [roles/motion-tester/role.md](roles/motion-tester/role.md) | MTEST-* | false |
42
+
43
+ ## Role Router
44
+
45
+ Parse `$ARGUMENTS`:
46
+ - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
47
+ - No `--role` -> `@roles/coordinator/role.md`, execute entry router
48
+
49
+ ## Shared Constants
50
+
51
+ - **Session prefix**: `MD`
52
+ - **Session path**: `.workflow/.team/MD-<slug>-<date>/`
53
+ - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
54
+ - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
55
+ - **Max GC rounds**: 2
56
+
57
+ ## Worker Spawn Template
58
+
59
+ Coordinator spawns workers using this template:
60
+
61
+ ```
62
+ Agent({
63
+ subagent_type: "team-worker",
64
+ description: "Spawn <role> worker for <task-id>",
65
+ team_name: "motion-design",
66
+ name: "<role>",
67
+ run_in_background: true,
68
+ prompt: `## Role Assignment
69
+ role: <role>
70
+ role_spec: <skill_root>/roles/<role>/role.md
71
+ session: <session-folder>
72
+ session_id: <session-id>
73
+ team_name: motion-design
74
+ requirement: <task-description>
75
+ inner_loop: <true|false>
76
+
77
+ Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
78
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
79
+ })
80
+ ```
81
+
82
+ ## User Commands
83
+
84
+ | Command | Action |
85
+ |---------|--------|
86
+ | `check` / `status` | View execution status graph |
87
+ | `resume` / `continue` | Advance to next step |
88
+
89
+ ## Specs Reference
90
+
91
+ - [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
92
+ - [specs/motion-tokens.md](specs/motion-tokens.md) -- Animation token schema
93
+ - [specs/gpu-constraints.md](specs/gpu-constraints.md) -- Compositor-only animation rules
94
+ - [specs/reduced-motion.md](specs/reduced-motion.md) -- Accessibility motion preferences
95
+
96
+ ## Session Directory
97
+
98
+ ```
99
+ .workflow/.team/MD-<slug>-<date>/
100
+ +-- .msg/
101
+ | +-- messages.jsonl # Team message bus
102
+ | +-- meta.json # Pipeline config + GC state
103
+ +-- research/ # Motion researcher output
104
+ | +-- perf-traces/ # Chrome DevTools performance traces
105
+ | +-- animation-inventory.json
106
+ | +-- performance-baseline.json
107
+ | +-- easing-catalog.json
108
+ +-- choreography/ # Choreographer output
109
+ | +-- motion-tokens.json
110
+ | +-- sequences/ # Scroll choreography sequences
111
+ +-- animations/ # Animator output
112
+ | +-- keyframes/ # CSS @keyframes files
113
+ | +-- orchestrators/ # JS animation orchestrators
114
+ +-- testing/ # Motion tester output
115
+ | +-- traces/ # Performance trace data
116
+ | +-- reports/ # Performance reports
117
+ +-- wisdom/ # Cross-task knowledge
118
+ ```
119
+
120
+ ## Error Handling
121
+
122
+ | Scenario | Resolution |
123
+ |----------|------------|
124
+ | Unknown command | Error with available command list |
125
+ | Role not found | Error with role registry |
126
+ | Session corruption | Attempt recovery, fallback to manual |
127
+ | Fast-advance conflict | Coordinator reconciles on next callback |
128
+ | Completion action fails | Default to Keep Active |
129
+ | GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |
@@ -0,0 +1,194 @@
1
+ ---
2
+ role: animator
3
+ prefix: ANIM
4
+ inner_loop: true
5
+ message_types: [state_update]
6
+ ---
7
+
8
+ # Animation Implementer
9
+
10
+ Implement CSS animations/transitions and JS orchestration from choreography specs. Build @keyframes with motion tokens as custom properties, IntersectionObserver-based scroll triggers, requestAnimationFrame coordination, and prefers-reduced-motion overrides. GPU-accelerated, compositor-only animations.
11
+
12
+ ## Phase 2: Context & Artifact Loading
13
+
14
+ | Input | Source | Required |
15
+ |-------|--------|----------|
16
+ | Motion tokens | <session>/choreography/motion-tokens.json | Yes |
17
+ | Choreography sequences | <session>/choreography/sequences/*.md | Yes (component/page) |
18
+ | Research artifacts | <session>/research/*.json | Yes |
19
+ | GPU constraints | specs/gpu-constraints.md | Yes |
20
+ | Reduced motion spec | specs/reduced-motion.md | Yes |
21
+ | Performance report | <session>/testing/reports/perf-report-*.md | Only for GC fix tasks |
22
+ | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
23
+
24
+ 1. Extract session path from task description
25
+ 2. Read motion tokens from choreography/motion-tokens.json
26
+ 3. Read choreography sequences (if applicable) from choreography/sequences/*.md
27
+ 4. Read research artifacts for existing animation context
28
+ 5. Read GPU constraints and reduced motion specs
29
+ 6. Detect task type from subject: "token" -> Token CSS, "section" -> Section animation, "fix" -> GC fix
30
+ 7. If GC fix task: read latest performance report from testing/reports/
31
+
32
+ ## Phase 3: Implementation Execution
33
+
34
+ ### Token CSS Implementation (ANIM-001 in tokens mode)
35
+
36
+ Generate CSS custom properties and utility classes:
37
+
38
+ **File: `<session>/animations/keyframes/motion-tokens.css`**:
39
+ ```css
40
+ :root {
41
+ /* Easing functions */
42
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
43
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
44
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
45
+
46
+ /* Duration scale */
47
+ --duration-fast: 0.15s;
48
+ --duration-base: 0.3s;
49
+ --duration-slow: 0.6s;
50
+ --duration-slower: 0.8s;
51
+ --duration-slowest: 1.2s;
52
+
53
+ /* Stagger */
54
+ --stagger-increment: 0.05s;
55
+ }
56
+
57
+ /* Reduced motion overrides */
58
+ @media (prefers-reduced-motion: reduce) {
59
+ *, *::before, *::after {
60
+ animation-duration: 0.01ms !important;
61
+ animation-iteration-count: 1 !important;
62
+ transition-duration: 0.01ms !important;
63
+ scroll-behavior: auto !important;
64
+ }
65
+ }
66
+ ```
67
+
68
+ **File: `<session>/animations/keyframes/utility-animations.css`**:
69
+ - `@keyframes fade-in` (opacity 0->1)
70
+ - `@keyframes fade-up` (opacity 0->1, translateY 20px->0)
71
+ - `@keyframes fade-down` (opacity 0->1, translateY -20px->0)
72
+ - `@keyframes slide-in-left` (translateX -100%->0)
73
+ - `@keyframes slide-in-right` (translateX 100%->0)
74
+ - `@keyframes scale-in` (scale 0.95->1, opacity 0->1)
75
+ - Utility classes: `.animate-fade-in`, `.animate-fade-up`, etc.
76
+ - All animations consume motion token custom properties
77
+ - All use compositor-only properties (transform, opacity)
78
+
79
+ ### Component/Section Animation (ANIM-001..N in component/page mode)
80
+
81
+ For each section or component defined in choreography sequences:
82
+
83
+ **CSS @keyframes** (`<session>/animations/keyframes/<name>.css`):
84
+ - Define @keyframes consuming motion tokens via `var(--ease-out)`, `var(--duration-slow)`
85
+ - Use `will-change: transform, opacity` on animated elements (remove after animation via JS)
86
+ - Only animate compositor-safe properties: transform (translate, scale, rotate), opacity, filter
87
+ - NEVER animate: width, height, top, left, margin, padding, border, color, background-color
88
+
89
+ **JS Orchestrator** (`<session>/animations/orchestrators/<name>.js`):
90
+ ```javascript
91
+ // IntersectionObserver-based scroll trigger
92
+ const observer = new IntersectionObserver((entries) => {
93
+ entries.forEach(entry => {
94
+ if (entry.isIntersecting) {
95
+ entry.target.classList.add('is-visible');
96
+ observer.unobserve(entry.target); // one-shot
97
+ }
98
+ });
99
+ }, { threshold: 0.2, rootMargin: '0px 0px -100px 0px' });
100
+
101
+ // Staggered animation orchestrator
102
+ function staggerReveal(container, itemSelector) {
103
+ const items = container.querySelectorAll(itemSelector);
104
+ const increment = parseFloat(getComputedStyle(document.documentElement)
105
+ .getPropertyValue('--stagger-increment')) || 0.05;
106
+
107
+ items.forEach((item, index) => {
108
+ item.style.transitionDelay = `${index * increment}s`;
109
+ });
110
+ // Trigger via IntersectionObserver on container
111
+ observer.observe(container);
112
+ }
113
+
114
+ // Reduced motion detection
115
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');
116
+ if (prefersReducedMotion.matches) {
117
+ // Skip parallax, disable springs, use instant transitions
118
+ }
119
+
120
+ // requestAnimationFrame for scroll-linked effects (parallax)
121
+ function parallaxScroll(element, rate) {
122
+ if (prefersReducedMotion.matches) return; // skip for reduced motion
123
+ let ticking = false;
124
+ window.addEventListener('scroll', () => {
125
+ if (!ticking) {
126
+ requestAnimationFrame(() => {
127
+ const scrolled = window.pageYOffset;
128
+ element.style.transform = `translateY(${scrolled * rate}px)`;
129
+ ticking = false;
130
+ });
131
+ ticking = true;
132
+ }
133
+ });
134
+ }
135
+ ```
136
+
137
+ ### Height Animation Workaround
138
+ Since `height` triggers layout (NEVER animate), use the grid trick:
139
+ ```css
140
+ .expandable {
141
+ display: grid;
142
+ grid-template-rows: 0fr;
143
+ transition: grid-template-rows var(--duration-normal) var(--ease-out-quart);
144
+ }
145
+ .expandable.open {
146
+ grid-template-rows: 1fr;
147
+ }
148
+ .expandable > .content {
149
+ overflow: hidden;
150
+ }
151
+ ```
152
+ This achieves smooth height animation using only grid layout changes (compositor-friendly).
153
+
154
+ ### Perceived Performance
155
+ - **80ms threshold**: Any response under 80ms feels instant to the human brain
156
+ - **Preemptive starts**: Begin animation on `pointerdown` not `click` (saves ~80-120ms perceived)
157
+ - **Early completion**: Visual feedback can "finish" before actual operation completes (optimistic UI)
158
+ - **Ease-in compresses perceived time**: Use ease-in for waiting states (progress bars) — makes them feel faster
159
+ - **Ease-out satisfies entrances**: Use ease-out for content appearing — natural deceleration feels "settled"
160
+
161
+ ### GC Fix Mode (ANIM-fix-N)
162
+
163
+ - Parse performance report for specific issues
164
+ - Replace layout-triggering properties with compositor-only alternatives:
165
+ - `width/height` -> `transform: scale()`
166
+ - `top/left` -> `transform: translate()`
167
+ - `background-color` -> `opacity` on overlay
168
+ - Reduce will-change elements to max 3-4 simultaneous
169
+ - Add missing prefers-reduced-motion overrides
170
+ - Signal `animation_revision` instead of `animation_ready`
171
+
172
+ ## Phase 4: Self-Validation & Output
173
+
174
+ 1. Animation integrity checks:
175
+
176
+ | Check | Pass Criteria |
177
+ |-------|---------------|
178
+ | no_layout_triggers | No width, height, top, left, margin, padding in @keyframes |
179
+ | will_change_budget | Max 3-4 elements with will-change simultaneously |
180
+ | reduced_motion | @media (prefers-reduced-motion: reduce) query present |
181
+ | token_consumption | Animations use var(--token) references, no hardcoded values |
182
+ | compositor_only | Only transform, opacity, filter in animation properties |
183
+
184
+ 2. JS orchestrator checks:
185
+
186
+ | Check | Pass Criteria |
187
+ |-------|---------------|
188
+ | intersection_observer | IntersectionObserver used for scroll triggers (not scroll events) |
189
+ | raf_throttled | requestAnimationFrame used with ticking guard for scroll |
190
+ | reduced_motion_js | `matchMedia('(prefers-reduced-motion: reduce)')` check present |
191
+ | cleanup | will-change removed after animation completes (if applicable) |
192
+
193
+ 3. Update `<session>/wisdom/.msg/meta.json` under `animator` namespace:
194
+ - Read existing -> merge `{ "animator": { task_type, keyframe_count, orchestrator_count, uses_intersection_observer, has_parallax, has_stagger } }` -> write back
@@ -0,0 +1,164 @@
1
+ ---
2
+ role: choreographer
3
+ prefix: CHOREO
4
+ inner_loop: false
5
+ message_types: [state_update]
6
+ ---
7
+
8
+ # Motion Choreographer
9
+
10
+ Design animation token systems (easing functions, duration/delay scales), scroll-triggered reveal sequences, and transition state diagrams. Consume research findings from motion-researcher. Define the motion language that the animator implements.
11
+
12
+ ## Phase 2: Context & Artifact Loading
13
+
14
+ | Input | Source | Required |
15
+ |-------|--------|----------|
16
+ | Research artifacts | <session>/research/*.json | Yes |
17
+ | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
18
+ | Motion token spec | specs/motion-tokens.md | Yes |
19
+ | GPU constraints | specs/gpu-constraints.md | Yes |
20
+ | Reduced motion spec | specs/reduced-motion.md | Yes |
21
+
22
+ 1. Extract session path from task description
23
+ 2. Read research findings: animation-inventory.json, performance-baseline.json, easing-catalog.json
24
+ 3. Read motion token schema from specs/motion-tokens.md
25
+ 4. Read GPU constraints from specs/gpu-constraints.md for safe property list
26
+ 5. Read reduced motion guidelines from specs/reduced-motion.md
27
+
28
+ ## Phase 3: Design Execution
29
+
30
+ ### Motion Token System
31
+
32
+ Define complete token system as CSS custom properties + JSON:
33
+
34
+ **Easing Functions**:
35
+ - `--ease-out`: `cubic-bezier(0.16, 1, 0.3, 1)` -- emphasis exit, deceleration
36
+ - `--ease-in-out`: `cubic-bezier(0.65, 0, 0.35, 1)` -- smooth symmetrical
37
+ - `--ease-spring`: `cubic-bezier(0.34, 1.56, 0.64, 1)` -- overshoot bounce
38
+ - Integrate existing easing functions from research (avoid duplicates, reconcile naming)
39
+
40
+ **Duration Scale**:
41
+ - `--duration-fast`: `0.15s` -- micro-interactions (button press, toggle)
42
+ - `--duration-base`: `0.3s` -- standard transitions (hover, focus)
43
+ - `--duration-slow`: `0.6s` -- content reveals, panel slides
44
+ - `--duration-slower`: `0.8s` -- page transitions, large moves
45
+ - `--duration-slowest`: `1.2s` -- hero animations, splash
46
+
47
+ **Delay Scale**:
48
+ - `--stagger-base`: `0s` -- first item in stagger sequence
49
+ - `--stagger-increment`: `0.05s` to `0.1s` -- per-item delay addition
50
+ - Formula: `delay = base_delay + (index * stagger_increment)`
51
+ - Max visible stagger: 8 items (avoid >0.8s total delay)
52
+
53
+ **Reduced Motion Overrides**:
54
+ - All durations -> `0.01ms`
55
+ - All easings -> `linear` (instant)
56
+ - No parallax, no bounce/spring
57
+ - Opacity-only fades allowed (<0.15s)
58
+
59
+ Output: `<session>/choreography/motion-tokens.json`
60
+ ```json
61
+ {
62
+ "easing": {
63
+ "ease-out": { "value": "cubic-bezier(0.16, 1, 0.3, 1)", "use": "exit emphasis, deceleration" },
64
+ "ease-in-out": { "value": "cubic-bezier(0.65, 0, 0.35, 1)", "use": "smooth symmetrical" },
65
+ "ease-spring": { "value": "cubic-bezier(0.34, 1.56, 0.64, 1)", "use": "overshoot bounce" }
66
+ },
67
+ "duration": {
68
+ "fast": { "value": "0.15s", "use": "micro-interactions" },
69
+ "base": { "value": "0.3s", "use": "standard transitions" },
70
+ "slow": { "value": "0.6s", "use": "content reveals" },
71
+ "slower": { "value": "0.8s", "use": "page transitions" },
72
+ "slowest": { "value": "1.2s", "use": "hero animations" }
73
+ },
74
+ "stagger": {
75
+ "base_delay": "0s",
76
+ "increment": "0.05s",
77
+ "max_items": 8
78
+ },
79
+ "reduced_motion": {
80
+ "duration_override": "0.01ms",
81
+ "easing_override": "linear",
82
+ "allowed": ["opacity"],
83
+ "disallowed": ["parallax", "bounce", "spring", "infinite-loop"]
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### Scroll Choreography Sequences
89
+
90
+ For component and page modes, define reveal sequences:
91
+
92
+ - IntersectionObserver thresholds per section (typical: 0.1 to 0.3)
93
+ - Entry direction: fade-up, fade-in, slide-left, slide-right
94
+ - Stagger groups: which elements stagger together, with calculated delays
95
+ - Parallax depths: foreground (1x), midground (0.5x), background (0.2x) scroll rates
96
+ - Scroll-linked effects: progress-based opacity, transform interpolation
97
+
98
+ Output per section: `<session>/choreography/sequences/<section-name>.md`
99
+ ```markdown
100
+ # Section: <name>
101
+
102
+ ## Trigger
103
+ - Observer threshold: 0.2
104
+ - Root margin: "0px 0px -100px 0px"
105
+
106
+ ## Sequence
107
+ 1. Heading: fade-up, duration-slow, ease-out, delay 0s
108
+ 2. Subheading: fade-up, duration-slow, ease-out, delay 0.05s
109
+ 3. Cards[0..N]: fade-up, duration-slow, ease-out, stagger 0.08s each
110
+
111
+ ## Parallax (if applicable)
112
+ - Background image: 0.2x scroll rate
113
+ - Foreground elements: 1x (normal)
114
+
115
+ ## Reduced Motion Fallback
116
+ - All elements: opacity fade only, duration-fast
117
+ - No parallax, no directional movement
118
+ ```
119
+
120
+ ### Transition State Diagrams
121
+
122
+ Define state transitions for interactive elements:
123
+
124
+ | State Pair | Properties | Duration | Easing |
125
+ |------------|-----------|----------|--------|
126
+ | hidden -> visible (entry) | opacity: 0->1, transform: translateY(20px)->0 | duration-slow | ease-out |
127
+ | visible -> hidden (exit) | opacity: 1->0, transform: 0->translateY(-10px) | duration-base | ease-in-out |
128
+ | idle -> hover | opacity: 1->0.8, transform: scale(1)->scale(1.02) | duration-fast | ease-out |
129
+ | idle -> focus | outline: none->2px solid, outline-offset: 0->2px | duration-fast | ease-out |
130
+ | idle -> active (pressed) | transform: scale(1)->scale(0.98) | duration-fast | ease-out |
131
+ | idle -> loading | opacity: 1->0.6, add pulse animation | duration-base | ease-in-out |
132
+
133
+ All transitions use compositor-only properties (transform, opacity) per GPU constraints.
134
+
135
+ ## Phase 4: Self-Validation
136
+
137
+ 1. Token completeness checks:
138
+
139
+ | Check | Pass Criteria |
140
+ |-------|---------------|
141
+ | easing_complete | All 3 easing functions defined with valid cubic-bezier |
142
+ | duration_complete | All 5 duration steps defined |
143
+ | stagger_defined | Base delay, increment, and max items specified |
144
+ | reduced_motion | Override values defined for all token categories |
145
+
146
+ 2. Sequence checks (if applicable):
147
+
148
+ | Check | Pass Criteria |
149
+ |-------|---------------|
150
+ | threshold_valid | IntersectionObserver threshold between 0 and 1 |
151
+ | safe_properties | Only compositor-safe properties in animations |
152
+ | stagger_budget | No stagger sequence exceeds 0.8s total |
153
+ | fallback_present | Reduced motion fallback defined for each sequence |
154
+
155
+ 3. State diagram checks:
156
+
157
+ | Check | Pass Criteria |
158
+ |-------|---------------|
159
+ | states_covered | entry, exit, hover, focus, active states defined |
160
+ | compositor_only | All animated properties are transform or opacity |
161
+ | durations_use_tokens | All durations reference token scale values |
162
+
163
+ 4. Update `<session>/wisdom/.msg/meta.json` under `choreographer` namespace:
164
+ - Read existing -> merge `{ "choreographer": { token_count, sequence_count, state_diagrams, has_parallax, has_stagger } }` -> write back
@@ -0,0 +1,64 @@
1
+ # Analyze Task
2
+
3
+ Parse user task -> detect motion design scope -> build dependency graph -> 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
+ | easing, cubic-bezier, duration, timing | token system | tokens |
12
+ | scroll, parallax, reveal, stagger, intersection | scroll choreography | page |
13
+ | transition, hover, focus, state change | component animation | component |
14
+ | @keyframes, will-change, transform, opacity | animation implementation | component |
15
+ | page transition, route animation, full page | page-level motion | page |
16
+ | motion tokens, animation system, design system | token system | tokens |
17
+ | spring, bounce, overshoot | easing design | tokens |
18
+ | reduced-motion, prefers-reduced-motion, a11y | accessibility | component or tokens |
19
+
20
+ ## Scope Determination
21
+
22
+ | Signal | Pipeline Mode |
23
+ |--------|---------------|
24
+ | Token/easing/duration system mentioned | tokens |
25
+ | Animate specific component(s) | component |
26
+ | Full page scroll choreography or page transitions | page |
27
+ | Unclear | ask user |
28
+
29
+ ## Complexity Scoring
30
+
31
+ | Factor | Points |
32
+ |--------|--------|
33
+ | Single easing/token system | +1 |
34
+ | Component animation | +2 |
35
+ | Full page choreography | +3 |
36
+ | Multiple scroll sections | +1 |
37
+ | Parallax effects | +1 |
38
+ | Reduced-motion required | +1 |
39
+ | Performance constraints mentioned | +1 |
40
+
41
+ Results: 1-2 Low (tokens), 3-4 Medium (component), 5+ High (page)
42
+
43
+ ## Framework Detection
44
+
45
+ | Keywords | Framework |
46
+ |----------|-----------|
47
+ | react, jsx, tsx | React |
48
+ | vue, v-bind | Vue |
49
+ | svelte | Svelte |
50
+ | vanilla, plain js | Vanilla JS |
51
+ | css-only, pure css | CSS-only |
52
+ | Default | CSS + Vanilla JS |
53
+
54
+ ## Output
55
+
56
+ Write scope context to coordinator memory:
57
+ ```json
58
+ {
59
+ "pipeline_mode": "<tokens|component|page>",
60
+ "scope": "<description>",
61
+ "framework": "<detected-framework>",
62
+ "complexity": { "score": 0, "level": "Low|Medium|High" }
63
+ }
64
+ ```