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,167 @@
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 tasks.json `pipeline_mode` | Yes |
12
+ | Target | From tasks.json `target` (url/component/full_site) | Yes |
13
+ | Dimension filters | From tasks.json (targeted mode only) | No |
14
+
15
+ 1. Load user requirement and polish scope from tasks.json
16
+ 2. Load pipeline stage definitions from specs/pipelines.md
17
+ 3. Read `pipeline_mode`, `target`, and `dimension_filters` from tasks.json
18
+
19
+ ## Phase 3: Task Chain Creation (Mode-Branched)
20
+
21
+ ### Task Entry Template
22
+
23
+ Each task in tasks.json `tasks` object:
24
+ ```json
25
+ {
26
+ "<TASK-ID>": {
27
+ "title": "<concise title>",
28
+ "description": "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>\nTASK:\n - <step 1: specific action>\n - <step 2: specific action>\n - <step 3: specific action>\nCONTEXT:\n - Session: <session-folder>\n - Target: <url|component-path|full_site>\n - Dimension filters: <all | specific dimensions>\n - Upstream artifacts: <artifact-1>, <artifact-2>\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <deliverable path> + <quality criteria>\nCONSTRAINTS: <scope limits, focus areas>",
29
+ "role": "<role-name>",
30
+ "prefix": "<PREFIX>",
31
+ "deps": ["<dependency-list>"],
32
+ "status": "pending",
33
+ "findings": "",
34
+ "error": ""
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Mode Router
40
+
41
+ | Mode | Action |
42
+ |------|--------|
43
+ | `scan-only` | Create 2 tasks: SCAN -> DIAG |
44
+ | `targeted` | Create 4 tasks: SCAN -> DIAG -> OPT -> VERIFY |
45
+ | `full` | Create 4 tasks: SCAN -> DIAG -> OPT -> VERIFY (with GC loop enabled) |
46
+
47
+ ---
48
+
49
+ ### Scan-Only Pipeline Task Chain
50
+
51
+ **SCAN-001** (scanner):
52
+ ```json
53
+ {
54
+ "SCAN-001": {
55
+ "title": "8-dimension UI audit against Impeccable design standards",
56
+ "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\nTASK:\n - Load target files or take screenshots via Chrome DevTools\n - Extract color values, font definitions, spacing values, animation declarations\n - Score all 8 dimensions: anti-patterns, color, typography, spacing, motion, interaction, hierarchy, responsive\n - Generate issue inventory with file:line locations and severity\nCONTEXT:\n - Session: <session-folder>\n - Target: <target>\n - Dimension filters: all\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/scan/scan-report.md | 8-dimension scored report with issue inventory\nCONSTRAINTS: Read-only analysis | Reference specs/anti-patterns.md and specs/design-standards.md",
57
+ "role": "scanner",
58
+ "prefix": "SCAN",
59
+ "deps": [],
60
+ "status": "pending",
61
+ "findings": "",
62
+ "error": ""
63
+ }
64
+ }
65
+ ```
66
+
67
+ **DIAG-001** (diagnostician):
68
+ ```json
69
+ {
70
+ "DIAG-001": {
71
+ "title": "Root cause analysis and fix dependency graph",
72
+ "description": "PURPOSE: Deep-dive root cause analysis of scan findings, classify severity, group systemic vs one-off | Success: Prioritized diagnosis with fix dependency graph\nTASK:\n - Read scan report and classify each issue as systemic or one-off\n - Group issues by root cause\n - Build fix dependency graph (which fixes must come first)\n - Prioritize by severity (P0 -> P1 -> P2 -> P3)\nCONTEXT:\n - Session: <session-folder>\n - Upstream artifacts: scan/scan-report.md\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/diagnosis/diagnosis-report.md | Root cause groups with fix strategies and dependency graph\nCONSTRAINTS: Read-only analysis | Reference specs/fix-strategies.md",
73
+ "role": "diagnostician",
74
+ "prefix": "DIAG",
75
+ "deps": ["SCAN-001"],
76
+ "status": "pending",
77
+ "findings": "",
78
+ "error": ""
79
+ }
80
+ }
81
+ ```
82
+
83
+ ---
84
+
85
+ ### Targeted Pipeline Task Chain
86
+
87
+ Same as scan-only SCAN-001 and DIAG-001, plus:
88
+
89
+ **Note**: For targeted mode, SCAN-001 description adds dimension filter:
90
+ ```
91
+ - Dimension filters: <specific dimensions from analyze output>
92
+ ```
93
+
94
+ **OPT-001** (optimizer):
95
+ ```json
96
+ {
97
+ "OPT-001": {
98
+ "title": "Apply targeted fixes following Impeccable design standards",
99
+ "description": "PURPOSE: Apply targeted fixes for specified dimensions following Impeccable design standards | Success: All P0/P1 issues in targeted dimensions resolved\nTASK:\n - Read diagnosis report for prioritized fix plan\n - Apply fixes in dependency order (systemic first, then one-off)\n - Follow Impeccable fix strategies per dimension\n - Self-validate: no regressions, code compiles/lints\nCONTEXT:\n - Session: <session-folder>\n - Dimension filters: <targeted dimensions>\n - Upstream artifacts: scan/scan-report.md, diagnosis/diagnosis-report.md\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: Modified source files + <session>/optimization/fix-log.md | Each fix documented with before/after\nCONSTRAINTS: Only fix targeted dimensions | Reference specs/fix-strategies.md and specs/design-standards.md",
100
+ "role": "optimizer",
101
+ "prefix": "OPT",
102
+ "deps": ["DIAG-001"],
103
+ "status": "pending",
104
+ "findings": "",
105
+ "error": ""
106
+ }
107
+ }
108
+ ```
109
+
110
+ **VERIFY-001** (verifier):
111
+ ```json
112
+ {
113
+ "VERIFY-001": {
114
+ "title": "Verify fixes improved scores without regressions",
115
+ "description": "PURPOSE: Verify fixes improved scores without introducing regressions | Success: Score improved or maintained in all dimensions, zero regressions\nTASK:\n - Re-scan fixed code against same 8 dimensions\n - Calculate before/after score delta per dimension\n - Check for regressions (new issues introduced by fixes)\n - Take after screenshots if Chrome DevTools available\nCONTEXT:\n - Session: <session-folder>\n - Upstream artifacts: scan/scan-report.md, optimization/fix-log.md\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: <session>/verification/verify-report.md | Before/after comparison with regression check\nCONSTRAINTS: Read-only verification | Signal fix_required if regressions found",
116
+ "role": "verifier",
117
+ "prefix": "VERIFY",
118
+ "deps": ["OPT-001"],
119
+ "status": "pending",
120
+ "findings": "",
121
+ "error": ""
122
+ }
123
+ }
124
+ ```
125
+
126
+ ---
127
+
128
+ ### Full Pipeline Task Chain
129
+
130
+ Same as targeted pipeline. The difference is in GC loop behavior:
131
+ - When VERIFY-001 reports `fix_required`, coordinator creates OPT-fix task (see monitor.md)
132
+ - Full mode enables GC loop; targeted mode does not create GC fix tasks
133
+
134
+ ---
135
+
136
+ ### GC Fix Task Template (created by monitor.md when verify fails)
137
+
138
+ ```json
139
+ {
140
+ "OPT-fix-<round>": {
141
+ "title": "Address verification regressions from round <round>",
142
+ "description": "PURPOSE: Address verification regressions from round <round> | Success: All regressions resolved, no new issues\nTASK:\n - Parse verification feedback for specific regressions\n - Apply targeted fixes for regression issues only\n - Self-validate before reporting\nCONTEXT:\n - Session: <session-folder>\n - Upstream artifacts: verification/verify-report.md, optimization/fix-log.md\n - Shared memory: <session>/wisdom/.msg/meta.json\nEXPECTED: Updated source files + appended <session>/optimization/fix-log.md\nCONSTRAINTS: Fix regressions only, do not expand scope",
143
+ "role": "optimizer",
144
+ "prefix": "OPT",
145
+ "deps": [],
146
+ "status": "pending",
147
+ "findings": "",
148
+ "error": ""
149
+ }
150
+ }
151
+ ```
152
+
153
+ Then create new VERIFY task with deps on OPT-fix.
154
+
155
+ ## Phase 4: Validation
156
+
157
+ Verify task chain integrity:
158
+
159
+ | Check | Method | Expected |
160
+ |-------|--------|----------|
161
+ | Task count correct | tasks.json count | scan-only: 2, targeted: 4, full: 4 |
162
+ | Dependencies correct | Trace dependency graph | Acyclic, correct deps |
163
+ | No circular dependencies | Trace dependency graph | Acyclic |
164
+ | Task IDs use correct prefixes | Pattern check | SCAN/DIAG/OPT/VERIFY |
165
+ | Structured descriptions complete | Each has PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS | All present |
166
+
167
+ If validation fails, fix the specific task and re-validate.
@@ -0,0 +1,230 @@
1
+ # Monitor Pipeline
2
+
3
+ Synchronous pipeline coordination using spawn_agent + wait_agent.
4
+
5
+ ## Constants
6
+
7
+ - WORKER_AGENT: team_worker
8
+ - MAX_GC_ROUNDS: 2
9
+
10
+ ## Handler Router
11
+
12
+ | Source | Handler |
13
+ |--------|---------|
14
+ | "capability_gap" | handleAdapt |
15
+ | "check" or "status" | handleCheck |
16
+ | "resume" or "continue" | handleResume |
17
+ | All tasks completed | handleComplete |
18
+ | Default | handleSpawnNext |
19
+
20
+ ## handleCallback
21
+
22
+ Worker completed (wait_agent returns). Process and advance.
23
+
24
+ 1. Determine role from completed task prefix:
25
+
26
+ | Task Prefix | Role |
27
+ |-------------|------|
28
+ | `SCAN-*` | scanner |
29
+ | `DIAG-*` | diagnostician |
30
+ | `OPT-*` | optimizer |
31
+ | `VERIFY-*` | verifier |
32
+
33
+ 2. Mark task completed in tasks.json: `state.tasks[taskId].status = 'completed'`
34
+ 3. Record completion in session state
35
+
36
+ 4. Check checkpoint for completed task:
37
+
38
+ | Completed Task | Checkpoint | Action |
39
+ |---------------|------------|--------|
40
+ | SCAN-001 | - | Notify user: scan complete, proceed to diagnosis |
41
+ | DIAG-001 | - | Check pipeline mode: scan-only -> handleComplete, else proceed to OPT |
42
+ | OPT-001 / OPT-fix-* | - | Proceed to VERIFY |
43
+ | VERIFY-001 / VERIFY-* | GC Checkpoint | Check verify signal -> GC loop or handleComplete |
44
+
45
+ 5. **GC Checkpoint handling** (VERIFY task completed):
46
+ Read verify signal from result: `verify_passed`, `verify_failed`, or `fix_required`
47
+
48
+ | Signal | Condition | Action |
49
+ |--------|-----------|--------|
50
+ | `verify_passed` | No regressions, score_delta >= 0 | GC converged -> handleComplete |
51
+ | `verify_failed` | Regressions found but non-critical | gc_rounds < max -> create OPT-fix task |
52
+ | `fix_required` | Score dropped or critical regressions | gc_rounds < max -> create OPT-fix task (CRITICAL) |
53
+ | Any | gc_rounds >= max | Escalate to user |
54
+
55
+ **GC Fix Task Creation** (add to tasks.json):
56
+ ```json
57
+ {
58
+ "OPT-fix-<round>": {
59
+ "title": "Address verification regressions",
60
+ "description": "PURPOSE: Address verification regressions | Success: All regressions resolved\nTASK:\n - Parse verification feedback for specific regressions\n - Apply targeted fixes for regression issues only\nCONTEXT:\n - Session: <session-folder>\n - Upstream artifacts: verification/verify-report.md",
61
+ "role": "optimizer",
62
+ "prefix": "OPT",
63
+ "deps": [],
64
+ "status": "pending",
65
+ "findings": "",
66
+ "error": ""
67
+ }
68
+ }
69
+ ```
70
+ Then create new VERIFY task in tasks.json with deps on fix. Increment gc_state.round.
71
+
72
+ **GC Escalation Options** (when max rounds exceeded):
73
+ 1. Accept current state - skip further fixes, complete pipeline
74
+ 2. Try one more round
75
+ 3. Terminate
76
+
77
+ 6. -> handleSpawnNext
78
+
79
+ ## handleCheck
80
+
81
+ Read-only status report from tasks.json, then STOP.
82
+
83
+ ```
84
+ Pipeline Status (<pipeline-mode>):
85
+ [DONE] SCAN-001 (scanner) -> scan-report.md
86
+ [DONE] DIAG-001 (diagnostician) -> diagnosis-report.md
87
+ [RUN] OPT-001 (optimizer) -> applying fixes...
88
+ [WAIT] VERIFY-001 (verifier) -> blocked by OPT-001
89
+
90
+ GC Rounds: 0/2
91
+ Score: <before-score>/32 -> pending
92
+ Session: <session-id>
93
+ Commands: 'resume' to advance | 'check' to refresh
94
+ ```
95
+
96
+ Output status -- do NOT advance pipeline.
97
+
98
+ ## handleResume
99
+
100
+ **Agent Health Check** (v4):
101
+ ```
102
+ // Verify actual running agents match session state
103
+ const runningAgents = list_agents({})
104
+ // For each active_agent in tasks.json:
105
+ // - If agent NOT in runningAgents -> agent crashed
106
+ // - Reset that task to pending, remove from active_agents
107
+ // This prevents stale agent references from blocking the pipeline
108
+ ```
109
+
110
+ 1. Audit tasks.json for inconsistencies:
111
+ - Tasks stuck in "in_progress" -> reset to "pending"
112
+ - Tasks with completed deps but still "pending" -> include in spawn list
113
+ 2. -> handleSpawnNext
114
+
115
+ ## handleSpawnNext
116
+
117
+ Find ready tasks, spawn workers, wait for results.
118
+
119
+ 1. Read tasks.json: completedTasks, inProgressTasks, readyTasks (pending + all deps completed)
120
+ 2. No ready + work in progress -> report waiting, STOP
121
+ 3. No ready + nothing in progress -> handleComplete
122
+ 4. Has ready -> for each:
123
+ a. Check inner loop role with active worker -> skip (worker picks up)
124
+ b. Update task status to in_progress in tasks.json
125
+ c. team_msg log -> task_unblocked
126
+ d. Spawn team_worker:
127
+
128
+ ```javascript
129
+ // 1) Update status in tasks.json
130
+ state.tasks[taskId].status = 'in_progress'
131
+
132
+ // 2) Spawn worker
133
+ const agentId = spawn_agent({
134
+ agent_type: "team_worker",
135
+ task_name: taskId, // e.g., "SCAN-001" -- enables named targeting
136
+ items: [
137
+ { type: "text", text: `## Role Assignment
138
+ role: ${role}
139
+ role_spec: ${skillRoot}/roles/${role}/role.md
140
+ session: ${sessionFolder}
141
+ session_id: ${sessionId}
142
+ requirement: ${taskDescription}
143
+ inner_loop: ${innerLoop}` },
144
+
145
+ { type: "text", text: `Read role_spec file to load Phase 2-4 domain instructions.
146
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).` }
147
+ ]
148
+ })
149
+
150
+ // 3) Track agent
151
+ state.active_agents[taskId] = { agentId, role, started_at: now }
152
+
153
+ // 4) Wait for completion -- use task_name for stable targeting (v4)
154
+ const waitResult = wait_agent({ targets: [taskId], timeout_ms: 900000 })
155
+ if (waitResult.timed_out) {
156
+ state.tasks[taskId].status = 'timed_out'
157
+ close_agent({ target: taskId })
158
+ delete state.active_agents[taskId]
159
+ } else {
160
+ // 5) Collect results and update tasks.json
161
+ state.tasks[taskId].status = 'completed'
162
+ close_agent({ target: taskId }) // Use task_name, not agentId
163
+ delete state.active_agents[taskId]
164
+ }
165
+ ```
166
+
167
+ **Spawn rules by mode**:
168
+
169
+ | Mode | Behavior |
170
+ |------|----------|
171
+ | scan-only | Sequential: SCAN-001 then DIAG-001 |
172
+ | targeted | Sequential: SCAN -> DIAG -> OPT -> VERIFY |
173
+ | full | Sequential: SCAN -> DIAG -> OPT -> VERIFY, then GC loop if verify triggers |
174
+
175
+ **Cross-Agent Supplementary Context** (v4):
176
+
177
+ When spawning workers in a later pipeline phase, send upstream results as supplementary context to already-running workers:
178
+
179
+ ```
180
+ // Example: Send scan results to running diagnostician
181
+ send_message({
182
+ target: "<running-agent-task-name>",
183
+ items: [{ type: "text", text: `## Supplementary Context\n${upstreamFindings}` }]
184
+ })
185
+ // Note: send_message queues info without interrupting the agent's current work
186
+ ```
187
+
188
+ Use `send_message` (not `assign_task`) for supplementary info that enriches but doesn't redirect the agent's current task.
189
+
190
+ 5. Update tasks.json, output summary, STOP
191
+
192
+ ## handleComplete
193
+
194
+ **Cleanup Verification** (v4):
195
+ ```
196
+ // Verify all agents are properly closed
197
+ const remaining = list_agents({})
198
+ // If any team agents still running -> close_agent each
199
+ // Ensures clean session shutdown
200
+ ```
201
+
202
+ Pipeline done. Generate report and completion action.
203
+
204
+ **Completion check by mode**:
205
+
206
+ | Mode | Completion Condition |
207
+ |------|---------------------|
208
+ | scan-only | SCAN-001 + DIAG-001 completed |
209
+ | targeted | All 4 tasks (+ any fix tasks) completed |
210
+ | full | All 4 tasks (+ any fix tasks) completed |
211
+
212
+ 1. If any tasks not completed -> handleSpawnNext
213
+ 2. If all completed -> transition to coordinator Phase 5
214
+
215
+ ## handleAdapt
216
+
217
+ Capability gap reported mid-pipeline.
218
+
219
+ 1. Parse gap description
220
+ 2. Check if existing role covers it -> redirect
221
+ 3. Role count < 5 -> generate dynamic role spec
222
+ 4. Create new task in tasks.json, spawn worker
223
+ 5. Role count >= 5 -> merge or pause
224
+
225
+ ## Fast-Advance Reconciliation
226
+
227
+ On every coordinator wake:
228
+ 1. Read tasks.json for completed tasks
229
+ 2. Sync active_agents with actual state
230
+ 3. No duplicate spawns
@@ -0,0 +1,213 @@
1
+ # Coordinator Role
2
+
3
+ UI Polish Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Manages linear task chains (scan -> diagnose -> optimize -> verify) with optimizer<->verifier GC loops.
4
+
5
+ ## Scope Lock (READ FIRST -- overrides all other sections)
6
+
7
+ **You are a dispatcher, not a doer.** Your ONLY outputs are:
8
+ - Session state files (`.workflow/.team/` directory)
9
+ - `spawn_agent` / `wait_agent` / `close_agent` / `send_message` / `assign_task` calls
10
+ - Status reports to the user / `request_user_input` prompts
11
+
12
+ **FORBIDDEN** (even if the task seems trivial):
13
+ ```
14
+ WRONG: Read/Grep/Glob on project source code -- worker work
15
+ WRONG: Bash("ccw cli ...") -- worker work
16
+ WRONG: Edit/Write on project source files -- worker work
17
+ ```
18
+
19
+ **Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work -> STOP -> spawn worker."
20
+
21
+ ---
22
+
23
+ ## Identity
24
+ - **Name**: coordinator | **Tag**: [coordinator]
25
+ - **Responsibility**: Analyze task -> Create session -> Dispatch tasks -> Monitor progress -> Report results
26
+
27
+ ## Boundaries
28
+
29
+ ### MUST
30
+ - All output (team_msg, logs) must carry `[coordinator]` identifier
31
+ - Use `team_worker` agent type for all worker spawns (NOT `general-purpose`)
32
+ - Dispatch tasks with proper dependency chains and deps in tasks.json
33
+ - Monitor worker progress via wait_agent and process results
34
+ - Handle Generator-Critic loops (optimizer<->verifier) with max 2 iterations
35
+ - Maintain session state persistence (tasks.json)
36
+ - **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
37
+ - Use `send_message` for supplementary context (non-interrupting) and `assign_task` for triggering new work
38
+ - Use `list_agents` for session resume health checks and cleanup verification
39
+
40
+ ### MUST NOT
41
+ - Implement domain logic (scanning, diagnosing, optimizing, verifying) -- workers handle this
42
+ - Spawn workers without creating tasks first
43
+ - Force-advance pipeline past failed verification
44
+ - Modify source code or design artifacts directly -- delegate to workers
45
+ - Omit `[coordinator]` identifier in any output
46
+ - Call CLI tools (ccw cli) -- only workers use CLI
47
+
48
+ ## Command Execution Protocol
49
+
50
+ When coordinator needs to execute a command (analyze, dispatch, monitor):
51
+
52
+ 1. Read `commands/<command>.md`
53
+ 2. Follow the workflow defined in the command
54
+ 3. Commands are inline execution guides, NOT separate agents
55
+ 4. Execute synchronously, complete before proceeding
56
+
57
+ ## Entry Router
58
+
59
+ | Detection | Condition | Handler |
60
+ |-----------|-----------|---------|
61
+ | Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
62
+ | Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
63
+ | Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
64
+ | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
65
+ | Interrupted session | Active/paused session exists in .workflow/.team/UIP-* | -> Phase 0 |
66
+ | New session | None of above | -> Phase 1 |
67
+
68
+ For check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
69
+
70
+ ## Phase 0: Session Resume Check
71
+
72
+ 1. Scan `.workflow/.team/UIP-*/tasks.json` for active/paused sessions
73
+ 2. No sessions -> Phase 1
74
+ 3. Single session -> reconcile (read tasks.json, reset in_progress->pending, kick first ready task)
75
+ 4. Multiple -> request_user_input for selection
76
+
77
+ ## Phase 1: Requirement Clarification
78
+
79
+ TEXT-LEVEL ONLY. No source code reading.
80
+
81
+ 1. Parse task description from arguments
82
+ 2. Detect polish scope:
83
+
84
+ | Signal | Pipeline Mode |
85
+ |--------|---------------|
86
+ | "scan", "audit", "check", "report", "analyze" | scan-only |
87
+ | "fix color", "fix typography", specific dimension keyword | targeted |
88
+ | "polish", "fix all", "full", "improve", "clean up" | full |
89
+ | Unclear | ask user |
90
+
91
+ 3. Ask for missing parameters if scope unclear:
92
+ ```
93
+ request_user_input({
94
+ questions: [
95
+ { question: "What should I polish?", header: "Target", options: [
96
+ { label: "URL", description: "Live page URL for Chrome DevTools analysis" },
97
+ { label: "Component path", description: "Specific component files to polish" },
98
+ { label: "Full site", description: "Scan and polish entire frontend" }
99
+ ]},
100
+ { question: "Polish mode?", header: "Mode", options: [
101
+ { label: "Scan only", description: "Discover + diagnose, report only" },
102
+ { label: "Targeted fix", description: "Fix specific dimensions" },
103
+ { label: "Full polish", description: "Complete polish cycle" }
104
+ ]}
105
+ ]
106
+ })
107
+ ```
108
+ 4. Delegate to `@commands/analyze.md` -> output scope context
109
+ 5. Record: pipeline_mode, target, complexity, dimension_filters
110
+
111
+ ## Phase 2: Create Session + Initialize
112
+
113
+ 1. Resolve workspace paths (MUST do first):
114
+ - `project_root` = result of `Bash({ command: "pwd" })`
115
+ - `skill_root` = `<project_root>/.codex/skills/team-ui-polish`
116
+ 2. Generate session ID: `UIP-<slug>-<YYYY-MM-DD>`
117
+ 3. Create session folder structure:
118
+ ```
119
+ .workflow/.team/UIP-<slug>-<date>/scan/
120
+ .workflow/.team/UIP-<slug>-<date>/diagnosis/
121
+ .workflow/.team/UIP-<slug>-<date>/optimization/
122
+ .workflow/.team/UIP-<slug>-<date>/verification/
123
+ .workflow/.team/UIP-<slug>-<date>/evidence/
124
+ .workflow/.team/UIP-<slug>-<date>/wisdom/
125
+ .workflow/.team/UIP-<slug>-<date>/.msg/
126
+ ```
127
+ 4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
128
+ 5. Write initial tasks.json:
129
+ ```json
130
+ {
131
+ "session_id": "<id>",
132
+ "pipeline_mode": "<scan-only|targeted|full>",
133
+ "target": "<url|component-path|full_site>",
134
+ "created_at": "<ISO timestamp>",
135
+ "gc_rounds": 0,
136
+ "max_gc_rounds": 2,
137
+ "active_agents": {},
138
+ "tasks": {}
139
+ }
140
+ ```
141
+ 6. Do NOT spawn workers yet - deferred to Phase 4
142
+
143
+ ## Phase 3: Create Task Chain
144
+
145
+ Delegate to `@commands/dispatch.md`. Task chains by mode:
146
+
147
+ | Mode | Task Chain |
148
+ |------|------------|
149
+ | scan-only | SCAN-001 -> DIAG-001 |
150
+ | targeted | SCAN-001 -> DIAG-001 -> OPT-001 -> VERIFY-001 |
151
+ | full | SCAN-001 -> DIAG-001 -> OPT-001 -> VERIFY-001 (GC loop if verify fails) |
152
+
153
+ ## Phase 4: Spawn-and-Wait
154
+
155
+ Delegate to `@commands/monitor.md#handleSpawnNext`:
156
+ 1. Find ready tasks (pending + deps resolved)
157
+ 2. Spawn team_worker agents via spawn_agent, wait_agent for results
158
+ 3. Output status summary
159
+ 4. STOP
160
+
161
+ ## Phase 5: Report + Completion Action
162
+
163
+ 1. Read session state -> collect all results
164
+ 2. List deliverables:
165
+
166
+ | Deliverable | Path |
167
+ |-------------|------|
168
+ | Scan Report | <session>/scan/scan-report.md |
169
+ | Diagnosis Report | <session>/diagnosis/diagnosis-report.md |
170
+ | Optimization Log | <session>/optimization/fix-log.md |
171
+ | Verification Report | <session>/verification/verify-report.md |
172
+ | Before/After Screenshots | <session>/evidence/*.png |
173
+
174
+ 3. Calculate summary:
175
+ - `issues_found`: total from scan report
176
+ - `issues_fixed`: total from optimization log
177
+ - `issues_remaining`: issues_found - issues_fixed + regressions
178
+ - `before_score`: original scan score (out of 32)
179
+ - `after_score`: verification re-scan score (out of 32)
180
+ - `gc_rounds`: number of optimizer<->verifier iterations
181
+ 4. Output pipeline summary with [coordinator] prefix
182
+ 5. Execute completion action:
183
+ ```
184
+ request_user_input({
185
+ questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
186
+ { label: "Archive & Clean", description: "Archive session and clean up resources" },
187
+ { label: "Keep Active", description: "Keep session for follow-up work" },
188
+ { label: "Export Results", description: "Export deliverables to specified location" }
189
+ ]}]
190
+ })
191
+ ```
192
+
193
+ ## v4 Coordination Patterns
194
+
195
+ ### Message Semantics
196
+ - **send_message**: Queue supplementary info to a running agent. Does NOT interrupt current processing. Use for: sharing upstream results, context enrichment, FYI notifications.
197
+ - **assign_task**: Assign new work and trigger processing. Use for: waking idle agents, redirecting work, requesting new output.
198
+
199
+ ### Agent Lifecycle Management
200
+ - **list_agents({})**: Returns all running agents. Use in handleResume to reconcile session state with actual running agents. Use in handleComplete to verify clean shutdown.
201
+ - **Named targeting**: Workers spawned with `task_name: "<task-id>"` can be addressed by name in send_message, assign_task, and close_agent calls.
202
+
203
+ ## Error Handling
204
+
205
+ | Error | Resolution |
206
+ |-------|------------|
207
+ | Task timeout | Log, mark failed, ask user to retry or skip |
208
+ | Worker crash | Reset task to pending, respawn worker |
209
+ | Dependency cycle | Detect, report to user, halt |
210
+ | Invalid scope | Reject with error, ask to clarify |
211
+ | Session corruption | Attempt recovery, fallback to manual reconciliation |
212
+ | GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |
213
+ | Chrome DevTools unavailable | Continue without screenshots, note in report |