claude-code-workflow 7.2.27 → 7.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/.ccw/specs/architecture-constraints.md +5 -0
  2. package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
  3. package/.claude/skills/investigate/SKILL.md +110 -0
  4. package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
  5. package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
  6. package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
  7. package/.claude/skills/investigate/phases/04-implementation.md +139 -0
  8. package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
  9. package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
  10. package/.claude/skills/investigate/specs/iron-law.md +101 -0
  11. package/.claude/skills/security-audit/SKILL.md +125 -0
  12. package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
  13. package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
  14. package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
  15. package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
  16. package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
  17. package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
  18. package/.claude/skills/ship/SKILL.md +105 -0
  19. package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
  20. package/.claude/skills/ship/phases/02-code-review.md +137 -0
  21. package/.claude/skills/ship/phases/03-version-bump.md +171 -0
  22. package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
  23. package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
  24. package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
  25. package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
  26. package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
  27. package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  28. package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
  29. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  30. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
  31. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
  32. package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
  33. package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  34. package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  35. package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  36. package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
  37. package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
  38. package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  39. package/.claude/skills/team-motion-design/SKILL.md +129 -0
  40. package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
  41. package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
  42. package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  43. package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
  44. package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
  45. package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
  46. package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  47. package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  48. package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  49. package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
  50. package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
  51. package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
  52. package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
  53. package/.claude/skills/team-ui-polish/SKILL.md +127 -0
  54. package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  55. package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
  56. package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
  57. package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
  58. package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
  59. package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
  60. package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
  61. package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
  62. package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  63. package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
  64. package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  65. package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
  66. package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  67. package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
  68. package/.claude/skills/team-uidesign/SKILL.md +6 -1
  69. package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
  70. package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
  71. package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
  72. package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
  73. package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
  74. package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
  75. package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
  76. package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
  77. package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
  78. package/.claude/skills/team-ux-improve/SKILL.md +3 -0
  79. package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
  80. package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
  81. package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
  82. package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
  83. package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
  84. package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
  85. package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
  86. package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
  87. package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
  88. package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
  89. package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
  90. package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  91. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  92. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
  93. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
  94. package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
  95. package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  96. package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  97. package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  98. package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  99. package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  100. package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  101. package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
  102. package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
  103. package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  104. package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  105. package/.codex/skills/investigate/agents/investigator.md +392 -0
  106. package/.codex/skills/investigate/orchestrator.md +362 -0
  107. package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
  108. package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
  109. package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
  110. package/.codex/skills/investigate/phases/04-implementation.md +195 -0
  111. package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
  112. package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
  113. package/.codex/skills/security-audit/orchestrator.md +384 -0
  114. package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
  115. package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
  116. package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
  117. package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
  118. package/.codex/skills/ship/agents/ship-operator.md +318 -0
  119. package/.codex/skills/ship/orchestrator.md +426 -0
  120. package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
  121. package/.codex/skills/ship/phases/02-code-review.md +228 -0
  122. package/.codex/skills/ship/phases/03-version-bump.md +259 -0
  123. package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
  124. package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
  125. package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
  126. package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  127. package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
  128. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  129. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
  130. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
  131. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
  132. package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  133. package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  134. package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  135. package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
  136. package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
  137. package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  138. package/.codex/skills/team-motion-design/SKILL.md +222 -0
  139. package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
  140. package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
  141. package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  142. package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
  143. package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
  144. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
  145. package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  146. package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  147. package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  148. package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
  149. package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
  150. package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
  151. package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
  152. package/.codex/skills/team-ui-polish/SKILL.md +218 -0
  153. package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  154. package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
  155. package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
  156. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
  157. package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
  158. package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
  159. package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
  160. package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
  161. package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  162. package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
  163. package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  164. package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
  165. package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  166. package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
  167. package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
  168. package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  169. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  170. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
  171. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
  172. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
  173. package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  174. package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  175. package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  176. package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  177. package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  178. package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  179. package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
  180. package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
  181. package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  182. package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  183. package/README.md +8 -0
  184. package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
  185. package/ccw/dist/core/hooks/hook-templates.js +114 -1
  186. package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
  187. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  188. package/ccw/dist/core/routes/cli-routes.js +34 -0
  189. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  190. package/ccw/dist/core/routes/system-routes.js +2 -2
  191. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  192. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
  193. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
  195. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
  197. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
  199. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
  200. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
  201. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
  202. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
  203. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
  204. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
  205. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
  206. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
  207. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
  208. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
  209. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
  210. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
  211. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
  212. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
  213. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
  214. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
  215. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
  216. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
  217. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
  218. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
  219. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
  220. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
  221. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
  222. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
  223. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
  224. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
  225. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
  226. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
  227. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
  228. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
  229. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
  230. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
  231. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
  232. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
  233. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
  234. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
  235. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
  236. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
  237. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
  238. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
  239. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
  240. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
  241. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
  242. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
  243. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
  244. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
  245. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
  246. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
  247. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
  248. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
  249. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
  250. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
  251. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
  252. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
  253. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
  254. package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
  255. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
  256. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
  257. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
  258. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
  259. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
  260. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
  261. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
  262. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
  263. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
  264. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
  265. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
  266. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
  267. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
  268. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
  269. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
  270. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
  271. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
  272. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
  273. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
  274. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
  275. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
  276. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
  277. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
  278. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
  279. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
  280. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
  281. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
  282. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
  283. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
  284. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
  285. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
  286. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
  287. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
  288. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
  289. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
  290. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
  291. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
  292. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
  293. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
  294. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
  295. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
  296. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
  297. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
  298. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
  299. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
  300. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
  301. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
  302. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
  303. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
  304. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
  305. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
  306. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
  307. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
  308. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
  309. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
  310. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
  311. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
  312. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
  313. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
  314. package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
  315. package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
  316. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
  317. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
  318. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
  319. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
  320. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
  321. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
  322. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
  323. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
  324. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
  325. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
  326. package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
  327. package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
  328. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
  329. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
  330. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
  331. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
  332. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
  333. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
  334. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
  335. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
  336. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
  337. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
  338. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
  339. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
  340. package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
  341. package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
  342. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
  343. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
  344. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
  345. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
  346. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
  347. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
  348. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
  349. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
  350. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
  351. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
  352. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
  353. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
  354. package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
  355. package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
  356. package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
  357. package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
  358. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
  359. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
  360. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
  361. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
  362. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
  363. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
  364. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
  365. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
  366. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
  367. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
  368. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
  369. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
  370. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
  371. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
  372. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
  373. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
  374. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
  375. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
  376. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
  377. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
  378. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
  379. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
  380. package/ccw/frontend/dist/index.html +1 -1
  381. package/package.json +105 -105
  382. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
@@ -0,0 +1,99 @@
1
+ {
2
+ "team_name": "motion-design",
3
+ "team_display_name": "Motion Design",
4
+ "description": "Motion design team for animation token systems, scroll choreography, GPU-accelerated transforms, reduced-motion fallback",
5
+ "version": "1.0.0",
6
+
7
+ "roles": {
8
+ "coordinator": {
9
+ "task_prefix": null,
10
+ "responsibility": "Scope assessment, pipeline orchestration, performance gate management, GC loop control",
11
+ "message_types": ["task_unblocked", "perf_checkpoint", "fix_required", "error", "shutdown"]
12
+ },
13
+ "motion-researcher": {
14
+ "task_prefix": "MRESEARCH",
15
+ "responsibility": "Audit existing animations, measure paint/composite costs, catalog easing patterns",
16
+ "message_types": ["research_ready", "research_progress", "error"]
17
+ },
18
+ "choreographer": {
19
+ "task_prefix": "CHOREO",
20
+ "responsibility": "Design animation token system, scroll-triggered reveal sequences, transition state diagrams",
21
+ "message_types": ["choreography_ready", "choreography_progress", "error"]
22
+ },
23
+ "animator": {
24
+ "task_prefix": "ANIM",
25
+ "inner_loop": true,
26
+ "responsibility": "Implement CSS animations/transitions, JS orchestration, IntersectionObserver triggers, rAF coordination",
27
+ "message_types": ["animation_ready", "animation_revision", "animation_progress", "error"]
28
+ },
29
+ "motion-tester": {
30
+ "task_prefix": "MTEST",
31
+ "responsibility": "Chrome DevTools perf traces, compositor-only verification, FPS measurement, layout thrashing detection, reduced-motion validation",
32
+ "message_types": ["perf_passed", "perf_warning", "fix_required", "error"]
33
+ }
34
+ },
35
+
36
+ "pipelines": {
37
+ "tokens": {
38
+ "description": "Animation token system: research -> choreography -> animation -> test",
39
+ "task_chain": ["MRESEARCH-001", "CHOREO-001", "ANIM-001", "MTEST-001"],
40
+ "complexity": "low"
41
+ },
42
+ "component": {
43
+ "description": "Component animation: research -> choreography -> animation -> test (GC loop)",
44
+ "task_chain": ["MRESEARCH-001", "CHOREO-001", "ANIM-001", "MTEST-001"],
45
+ "gc_loop": { "generator": "ANIM", "critic": "MTEST", "trigger": "FPS < 60 or layout thrashing" },
46
+ "complexity": "medium"
47
+ },
48
+ "page": {
49
+ "description": "Page scroll choreography: research -> choreography -> parallel animations -> test",
50
+ "task_chain": [
51
+ "MRESEARCH-001", "CHOREO-001",
52
+ "ANIM-001..N:parallel",
53
+ "MTEST-001"
54
+ ],
55
+ "parallel_fan_out": { "after": "CHOREO-001", "tasks": "ANIM-*", "join_before": "MTEST-001" },
56
+ "complexity": "high"
57
+ }
58
+ },
59
+
60
+ "innovation_patterns": {
61
+ "generator_critic": {
62
+ "generator": "animator",
63
+ "critic": "motion-tester",
64
+ "max_rounds": 2,
65
+ "convergence": "perf.score >= 8 && perf.fps >= 60 && perf.thrashing_count === 0",
66
+ "trigger": "FPS < 60 or layout thrashing detected",
67
+ "escalation": "Coordinator intervenes after max rounds"
68
+ },
69
+ "shared_memory": {
70
+ "file": "shared-memory.json",
71
+ "fields": {
72
+ "motion-researcher": ["animation_inventory", "performance_baseline", "easing_catalog"],
73
+ "choreographer": ["motion_tokens", "scroll_sequences", "state_diagrams"],
74
+ "animator": ["keyframe_registry", "orchestrator_registry"],
75
+ "motion-tester": ["perf_history", "issue_registry"]
76
+ }
77
+ },
78
+ "parallel_fan_out": {
79
+ "pattern": "CP-3",
80
+ "description": "Multiple ANIM tasks execute in parallel for page mode, joined before MTEST",
81
+ "trigger": "page pipeline after CHOREO-001 completion"
82
+ },
83
+ "review_fix": {
84
+ "pattern": "CP-2",
85
+ "description": "Animator and motion-tester in Generator-Critic loop",
86
+ "max_rounds": 2,
87
+ "trigger": "FPS < 60 or layout thrashing detected"
88
+ }
89
+ },
90
+
91
+ "session_dirs": {
92
+ "base": ".workflow/.team/MD-{slug}-{YYYY-MM-DD}/",
93
+ "research": "research/",
94
+ "choreography": "choreography/",
95
+ "animations": "animations/",
96
+ "testing": "testing/",
97
+ "messages": ".workflow/.team-msg/{team-name}/"
98
+ }
99
+ }
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: team-ui-polish
3
+ description: Unified team skill for UI polish. Auto-discover and fix UI design issues using Impeccable design standards. Anti-AI-slop detection, color/typography/spacing quality, motion, interaction states, visual hierarchy. Uses team-worker agent architecture. Triggers on "team ui polish", "ui polish", "design polish".
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__evaluate_script, mcp__chrome-devtools__take_screenshot, mcp__chrome-devtools__navigate_page, mcp__chrome-devtools__resize_page
5
+ ---
6
+
7
+ # Team UI Polish
8
+
9
+ Automatic UI quality improvement pipeline: scan -> diagnose -> optimize -> verify. 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-ui-polish", 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
+ scanner diagnostician optimizer <-> verifier (GC loop)
31
+ ```
32
+
33
+ ## Role Registry
34
+
35
+ | Role | Path | Prefix | Inner Loop |
36
+ |------|------|--------|------------|
37
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
38
+ | scanner | [roles/scanner/role.md](roles/scanner/role.md) | SCAN-* | false |
39
+ | diagnostician | [roles/diagnostician/role.md](roles/diagnostician/role.md) | DIAG-* | false |
40
+ | optimizer | [roles/optimizer/role.md](roles/optimizer/role.md) | OPT-* | true |
41
+ | verifier | [roles/verifier/role.md](roles/verifier/role.md) | VERIFY-* | 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**: `UIP`
52
+ - **Session path**: `.workflow/.team/UIP-<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: "ui-polish",
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: ui-polish
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/team-config.json](specs/team-config.json) -- Team configuration
93
+ - [specs/anti-patterns.md](specs/anti-patterns.md) -- AI slop and design anti-pattern catalog
94
+ - [specs/design-standards.md](specs/design-standards.md) -- Impeccable positive design standards
95
+ - [specs/fix-strategies.md](specs/fix-strategies.md) -- Issue-to-fix mapping
96
+ - [specs/scoring-guide.md](specs/scoring-guide.md) -- Scoring rubric
97
+
98
+ ## Session Directory
99
+
100
+ ```
101
+ .workflow/.team/UIP-<slug>-<date>/
102
+ +-- .msg/
103
+ | +-- messages.jsonl # Team message bus
104
+ | +-- meta.json # Pipeline config + GC state
105
+ +-- scan/ # Scanner output
106
+ | +-- scan-report.md
107
+ +-- diagnosis/ # Diagnostician output
108
+ | +-- diagnosis-report.md
109
+ +-- optimization/ # Optimizer output
110
+ | +-- fix-log.md
111
+ +-- verification/ # Verifier output
112
+ | +-- verify-report.md
113
+ +-- evidence/ # Screenshots (before/after)
114
+ | +-- *.png
115
+ +-- wisdom/ # Cross-task knowledge
116
+ ```
117
+
118
+ ## Error Handling
119
+
120
+ | Scenario | Resolution |
121
+ |----------|------------|
122
+ | Unknown command | Error with available command list |
123
+ | Role not found | Error with role registry |
124
+ | Session corruption | Attempt recovery, fallback to manual |
125
+ | Fast-advance conflict | Coordinator reconciles on next callback |
126
+ | Completion action fails | Default to Keep Active |
127
+ | GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |
@@ -0,0 +1,77 @@
1
+ # Analyze Task
2
+
3
+ Parse user task -> detect polish scope -> determine pipeline mode -> estimate complexity.
4
+
5
+ **CONSTRAINT**: Text-level analysis only. NO source code reading, NO codebase exploration.
6
+
7
+ ## Signal Detection
8
+
9
+ | Keywords | Dimension | Priority |
10
+ |----------|-----------|----------|
11
+ | AI slop, generic, templated, looks like AI | Anti-Patterns | P0 |
12
+ | color, palette, contrast, OKLCH, dark mode, theme | Color Quality | P1 |
13
+ | font, typography, heading, text size, type scale | Typography | P1 |
14
+ | spacing, padding, margin, rhythm, gap, grid | Spacing/Layout | P1 |
15
+ | animation, transition, motion, easing, animate | Motion | P2 |
16
+ | hover, focus, active, disabled, states, interaction | Interaction States | P2 |
17
+ | hierarchy, visual weight, composition, squint | Visual Hierarchy | P2 |
18
+ | responsive, mobile, breakpoint, viewport | Responsive | P2 |
19
+
20
+ ## Scope Determination
21
+
22
+ | Signal | Pipeline Mode |
23
+ |--------|---------------|
24
+ | "scan", "audit", "check", "report", "analyze", "review" | scan-only |
25
+ | "fix color", "fix typography", specific dimension keyword | targeted |
26
+ | "polish", "fix all", "full", "improve", "clean up", "redesign" | full |
27
+ | Unclear | ask user |
28
+
29
+ ## Dimension Filter (targeted mode only)
30
+
31
+ When targeted mode detected, extract which dimensions to focus on:
32
+
33
+ | Keywords | Dimension Filter |
34
+ |----------|-----------------|
35
+ | AI slop, generic | anti_patterns |
36
+ | color, palette, contrast | color |
37
+ | font, typography, type | typography |
38
+ | spacing, layout, grid | spacing |
39
+ | animation, motion | motion |
40
+ | hover, focus, states | interaction |
41
+ | hierarchy, visual weight | hierarchy |
42
+ | responsive, mobile | responsive |
43
+
44
+ ## Target Detection
45
+
46
+ | Signal | Target Type |
47
+ |--------|-------------|
48
+ | URL provided (http/https) | url |
49
+ | File path provided (.tsx, .css, .html) | component |
50
+ | "all", "full site", "entire", "everything" | full_site |
51
+ | Directory path | directory |
52
+
53
+ ## Complexity Scoring
54
+
55
+ | Factor | Points |
56
+ |--------|--------|
57
+ | Single component / single URL | +1 |
58
+ | Multiple components | +2 |
59
+ | Full site | +3 |
60
+ | Multiple dimensions targeted | +1 |
61
+ | Chrome DevTools required | +1 |
62
+ | Responsive checks needed | +1 |
63
+
64
+ Results: 1-2 Low (scan-only), 3-4 Medium (targeted), 5+ High (full)
65
+
66
+ ## Output
67
+
68
+ Write scope context to coordinator memory:
69
+ ```json
70
+ {
71
+ "pipeline_mode": "<scan-only|targeted|full>",
72
+ "target": "<url|component-path|full_site>",
73
+ "target_type": "<url|component|directory|full_site>",
74
+ "dimension_filters": ["<dimension-names or empty for all>"],
75
+ "complexity": { "score": 0, "level": "Low|Medium|High" }
76
+ }
77
+ ```
@@ -0,0 +1,194 @@
1
+ # Command: Dispatch
2
+
3
+ Create the UI polish task chain with correct dependencies and structured task descriptions. Supports scan-only, targeted, and full pipeline modes.
4
+
5
+ ## Phase 2: Context Loading
6
+
7
+ | Input | Source | Required |
8
+ |-------|--------|----------|
9
+ | User requirement | From coordinator Phase 1 | Yes |
10
+ | Session folder | From coordinator Phase 2 | Yes |
11
+ | Pipeline mode | From analyze output | Yes |
12
+ | Target | From analyze output (url/component/full_site) | Yes |
13
+ | Dimension filters | From analyze output (targeted mode only) | No |
14
+
15
+ 1. Load user requirement and polish scope from session context
16
+ 2. Load pipeline stage definitions from specs/pipelines.md
17
+ 3. Read `pipeline_mode`, `target`, and `dimension_filters` from session context
18
+
19
+ ## Phase 3: Task Chain Creation (Mode-Branched)
20
+
21
+ ### Task Description Template
22
+
23
+ Every task description uses structured format:
24
+
25
+ ```
26
+ TaskCreate({
27
+ subject: "<TASK-ID>",
28
+ description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
29
+ TASK:
30
+ - <step 1: specific action>
31
+ - <step 2: specific action>
32
+ - <step 3: specific action>
33
+ CONTEXT:
34
+ - Session: <session-folder>
35
+ - Target: <url|component-path|full_site>
36
+ - Dimension filters: <all | specific dimensions>
37
+ - Upstream artifacts: <artifact-1>, <artifact-2>
38
+ - Shared memory: <session>/wisdom/.msg/meta.json
39
+ EXPECTED: <deliverable path> + <quality criteria>
40
+ CONSTRAINTS: <scope limits, focus areas>"
41
+ })
42
+ TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
43
+ ```
44
+
45
+ ### Mode Router
46
+
47
+ | Mode | Action |
48
+ |------|--------|
49
+ | `scan-only` | Create 2 tasks: SCAN -> DIAG |
50
+ | `targeted` | Create 4 tasks: SCAN -> DIAG -> OPT -> VERIFY |
51
+ | `full` | Create 4 tasks: SCAN -> DIAG -> OPT -> VERIFY (with GC loop enabled) |
52
+
53
+ ---
54
+
55
+ ### Scan-Only Pipeline Task Chain
56
+
57
+ **SCAN-001** (scanner):
58
+ ```
59
+ TaskCreate({
60
+ subject: "SCAN-001",
61
+ description: "PURPOSE: Scan UI against Impeccable's 8 audit dimensions to discover all design problems | Success: Complete scan report with per-dimension scores and issue inventory
62
+ TASK:
63
+ - Load target files or take screenshots via Chrome DevTools
64
+ - Extract color values, font definitions, spacing values, animation declarations
65
+ - Score all 8 dimensions: anti-patterns, color, typography, spacing, motion, interaction, hierarchy, responsive
66
+ - Generate issue inventory with file:line locations and severity
67
+ CONTEXT:
68
+ - Session: <session-folder>
69
+ - Target: <target>
70
+ - Dimension filters: all
71
+ - Shared memory: <session>/wisdom/.msg/meta.json
72
+ EXPECTED: <session>/scan/scan-report.md | 8-dimension scored report with issue inventory
73
+ CONSTRAINTS: Read-only analysis | Reference specs/anti-patterns.md and specs/design-standards.md"
74
+ })
75
+ TaskUpdate({ taskId: "SCAN-001", owner: "scanner" })
76
+ ```
77
+
78
+ **DIAG-001** (diagnostician):
79
+ ```
80
+ TaskCreate({
81
+ subject: "DIAG-001",
82
+ description: "PURPOSE: Deep-dive root cause analysis of scan findings, classify severity, group systemic vs one-off | Success: Prioritized diagnosis with fix dependency graph
83
+ TASK:
84
+ - Read scan report and classify each issue as systemic or one-off
85
+ - Group issues by root cause
86
+ - Build fix dependency graph (which fixes must come first)
87
+ - Prioritize by severity (P0 -> P1 -> P2 -> P3)
88
+ CONTEXT:
89
+ - Session: <session-folder>
90
+ - Upstream artifacts: scan/scan-report.md
91
+ - Shared memory: <session>/wisdom/.msg/meta.json
92
+ EXPECTED: <session>/diagnosis/diagnosis-report.md | Root cause groups with fix strategies and dependency graph
93
+ CONSTRAINTS: Read-only analysis | Reference specs/fix-strategies.md"
94
+ })
95
+ TaskUpdate({ taskId: "DIAG-001", addBlockedBy: ["SCAN-001"], owner: "diagnostician" })
96
+ ```
97
+
98
+ ---
99
+
100
+ ### Targeted Pipeline Task Chain
101
+
102
+ Same as scan-only SCAN-001 and DIAG-001, plus:
103
+
104
+ **Note**: For targeted mode, SCAN-001 description adds dimension filter:
105
+ ```
106
+ - Dimension filters: <specific dimensions from analyze output>
107
+ ```
108
+
109
+ **OPT-001** (optimizer):
110
+ ```
111
+ TaskCreate({
112
+ subject: "OPT-001",
113
+ description: "PURPOSE: Apply targeted fixes for specified dimensions following Impeccable design standards | Success: All P0/P1 issues in targeted dimensions resolved
114
+ TASK:
115
+ - Read diagnosis report for prioritized fix plan
116
+ - Apply fixes in dependency order (systemic first, then one-off)
117
+ - Follow Impeccable fix strategies per dimension
118
+ - Self-validate: no regressions, code compiles/lints
119
+ CONTEXT:
120
+ - Session: <session-folder>
121
+ - Dimension filters: <targeted dimensions>
122
+ - Upstream artifacts: scan/scan-report.md, diagnosis/diagnosis-report.md
123
+ - Shared memory: <session>/wisdom/.msg/meta.json
124
+ EXPECTED: Modified source files + <session>/optimization/fix-log.md | Each fix documented with before/after
125
+ CONSTRAINTS: Only fix targeted dimensions | Reference specs/fix-strategies.md and specs/design-standards.md"
126
+ })
127
+ TaskUpdate({ taskId: "OPT-001", addBlockedBy: ["DIAG-001"], owner: "optimizer" })
128
+ ```
129
+
130
+ **VERIFY-001** (verifier):
131
+ ```
132
+ TaskCreate({
133
+ subject: "VERIFY-001",
134
+ description: "PURPOSE: Verify fixes improved scores without introducing regressions | Success: Score improved or maintained in all dimensions, zero regressions
135
+ TASK:
136
+ - Re-scan fixed code against same 8 dimensions
137
+ - Calculate before/after score delta per dimension
138
+ - Check for regressions (new issues introduced by fixes)
139
+ - Take after screenshots if Chrome DevTools available
140
+ CONTEXT:
141
+ - Session: <session-folder>
142
+ - Upstream artifacts: scan/scan-report.md, optimization/fix-log.md
143
+ - Shared memory: <session>/wisdom/.msg/meta.json
144
+ EXPECTED: <session>/verification/verify-report.md | Before/after comparison with regression check
145
+ CONSTRAINTS: Read-only verification | Signal fix_required if regressions found"
146
+ })
147
+ TaskUpdate({ taskId: "VERIFY-001", addBlockedBy: ["OPT-001"], owner: "verifier" })
148
+ ```
149
+
150
+ ---
151
+
152
+ ### Full Pipeline Task Chain
153
+
154
+ Same as targeted pipeline. The difference is in GC loop behavior:
155
+ - When VERIFY-001 reports `fix_required`, coordinator creates OPT-fix task (see monitor.md)
156
+ - Full mode enables GC loop; targeted mode does not create GC fix tasks
157
+
158
+ ---
159
+
160
+ ### GC Fix Task Template (created by monitor.md when verify fails)
161
+
162
+ ```
163
+ TaskCreate({
164
+ subject: "OPT-fix-<round>",
165
+ description: "PURPOSE: Address verification regressions from round <round> | Success: All regressions resolved, no new issues
166
+ TASK:
167
+ - Parse verification feedback for specific regressions
168
+ - Apply targeted fixes for regression issues only
169
+ - Self-validate before reporting
170
+ CONTEXT:
171
+ - Session: <session-folder>
172
+ - Upstream artifacts: verification/verify-report.md, optimization/fix-log.md
173
+ - Shared memory: <session>/wisdom/.msg/meta.json
174
+ EXPECTED: Updated source files + appended <session>/optimization/fix-log.md
175
+ CONSTRAINTS: Fix regressions only, do not expand scope"
176
+ })
177
+ TaskUpdate({ taskId: "OPT-fix-<round>", owner: "optimizer" })
178
+ ```
179
+
180
+ Then create new VERIFY task blocked by OPT-fix.
181
+
182
+ ## Phase 4: Validation
183
+
184
+ Verify task chain integrity:
185
+
186
+ | Check | Method | Expected |
187
+ |-------|--------|----------|
188
+ | Task count correct | TaskList count | scan-only: 2, targeted: 4, full: 4 |
189
+ | Dependencies correct | Trace dependency graph | Acyclic, correct blockedBy |
190
+ | No circular dependencies | Trace dependency graph | Acyclic |
191
+ | Task IDs use correct prefixes | Pattern check | SCAN/DIAG/OPT/VERIFY |
192
+ | Structured descriptions complete | Each has PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS | All present |
193
+
194
+ If validation fails, fix the specific task and re-validate.
@@ -0,0 +1,180 @@
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 [scanner], [diagnostician], [optimizer], [verifier] | 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
+ | `[scanner]` or `SCAN-*` | scanner |
33
+ | `[diagnostician]` or `DIAG-*` | diagnostician |
34
+ | `[optimizer]` or `OPT-*` | optimizer |
35
+ | `[verifier]` or `VERIFY-*` | verifier |
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
+ | SCAN-001 | - | Notify user: scan complete, proceed to diagnosis |
45
+ | DIAG-001 | - | Check pipeline mode: scan-only -> handleComplete, else proceed to OPT |
46
+ | OPT-001 / OPT-fix-* | - | Proceed to VERIFY |
47
+ | VERIFY-001 / VERIFY-* | GC Checkpoint | Check verify signal -> GC loop or handleComplete |
48
+
49
+ 5. **GC Checkpoint handling** (VERIFY task completed):
50
+ Read verify signal from message: `verify_passed`, `verify_failed`, or `fix_required`
51
+
52
+ | Signal | Condition | Action |
53
+ |--------|-----------|--------|
54
+ | `verify_passed` | No regressions, score_delta >= 0 | GC converged -> handleComplete |
55
+ | `verify_failed` | Regressions found but non-critical | gc_rounds < max -> create OPT-fix task |
56
+ | `fix_required` | Score dropped or critical regressions | gc_rounds < max -> create OPT-fix task (CRITICAL) |
57
+ | Any | gc_rounds >= max | Escalate to user |
58
+
59
+ **GC Fix Task Creation**:
60
+ ```
61
+ TaskCreate({ subject: "OPT-fix-<round>",
62
+ description: "PURPOSE: Address verification regressions | Success: All regressions resolved
63
+ TASK:
64
+ - Parse verification feedback for specific regressions
65
+ - Apply targeted fixes for regression issues only
66
+ CONTEXT:
67
+ - Session: <session-folder>
68
+ - Upstream artifacts: verification/verify-report.md" })
69
+ TaskUpdate({ taskId: "OPT-fix-<round>", owner: "optimizer" })
70
+ ```
71
+ Then create new VERIFY task blocked by OPT-fix. Increment gc_state.round.
72
+
73
+ **GC Escalation Options** (when max rounds exceeded):
74
+ 1. Accept current state - skip further fixes, complete pipeline
75
+ 2. Try one more round
76
+ 3. Terminate
77
+
78
+ 6. -> handleSpawnNext
79
+
80
+ ## handleCheck
81
+
82
+ Read-only status report, then STOP.
83
+
84
+ ```
85
+ Pipeline Status (<pipeline-mode>):
86
+ [DONE] SCAN-001 (scanner) -> scan-report.md
87
+ [DONE] DIAG-001 (diagnostician) -> diagnosis-report.md
88
+ [RUN] OPT-001 (optimizer) -> applying fixes...
89
+ [WAIT] VERIFY-001 (verifier) -> blocked by OPT-001
90
+
91
+ GC Rounds: 0/2
92
+ Score: <before-score>/32 -> pending
93
+ Session: <session-id>
94
+ Commands: 'resume' to advance | 'check' to refresh
95
+ ```
96
+
97
+ Output status -- do NOT advance pipeline.
98
+
99
+ ## handleResume
100
+
101
+ 1. Audit task list for inconsistencies:
102
+ - Tasks stuck in "in_progress" -> reset to "pending"
103
+ - Tasks with completed blockers but still "pending" -> include in spawn list
104
+ 2. -> handleSpawnNext
105
+
106
+ ## handleSpawnNext
107
+
108
+ Find ready tasks, spawn workers, STOP.
109
+
110
+ 1. Collect: completedSubjects, inProgressSubjects, readySubjects (pending + all blockedBy completed)
111
+ 2. No ready + work in progress -> report waiting, STOP
112
+ 3. No ready + nothing in progress -> handleComplete
113
+ 4. Has ready -> for each:
114
+ a. Check inner loop role with active worker -> skip (worker picks up)
115
+ b. TaskUpdate -> in_progress
116
+ c. team_msg log -> task_unblocked
117
+ d. Spawn team-worker:
118
+
119
+ ```
120
+ Agent({
121
+ subagent_type: "team-worker",
122
+ description: "Spawn <role> worker for <task-id>",
123
+ team_name: "ui-polish",
124
+ name: "<role>",
125
+ run_in_background: true,
126
+ prompt: `## Role Assignment
127
+ role: <role>
128
+ role_spec: <project>/.claude/skills/team-ui-polish/roles/<role>/role.md
129
+ session: <session-folder>
130
+ session_id: <session-id>
131
+ team_name: ui-polish
132
+ requirement: <task-description>
133
+ inner_loop: <true|false>
134
+
135
+ Read role_spec file to load Phase 2-4 domain instructions.
136
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
137
+ })
138
+ ```
139
+
140
+ **Spawn rules by mode**:
141
+
142
+ | Mode | Behavior |
143
+ |------|----------|
144
+ | scan-only | Sequential: SCAN-001 -> DIAG-001 |
145
+ | targeted | Sequential: SCAN -> DIAG -> OPT -> VERIFY |
146
+ | full | Sequential: SCAN -> DIAG -> OPT -> VERIFY, then GC loop if needed |
147
+
148
+ 5. Add to active_workers, update session, output summary, STOP
149
+
150
+ ## handleComplete
151
+
152
+ Pipeline done. Generate report and completion action.
153
+
154
+ **Completion check by mode**:
155
+
156
+ | Mode | Completion Condition |
157
+ |------|---------------------|
158
+ | scan-only | SCAN-001 + DIAG-001 completed |
159
+ | targeted | All 4 tasks (+ any fix tasks) completed |
160
+ | full | All 4 tasks (+ any fix tasks) completed |
161
+
162
+ 1. If any tasks not completed -> handleSpawnNext
163
+ 2. If all completed -> transition to coordinator Phase 5
164
+
165
+ ## handleAdapt
166
+
167
+ Capability gap reported mid-pipeline.
168
+
169
+ 1. Parse gap description
170
+ 2. Check if existing role covers it -> redirect
171
+ 3. Role count < 5 -> generate dynamic role spec
172
+ 4. Create new task, spawn worker
173
+ 5. Role count >= 5 -> merge or pause
174
+
175
+ ## Fast-Advance Reconciliation
176
+
177
+ On every coordinator wake:
178
+ 1. Read team_msg entries with type="fast_advance"
179
+ 2. Sync active_workers with spawned successors
180
+ 3. No duplicate spawns