claude-code-workflow 7.2.26 → 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.
- package/.ccw/specs/architecture-constraints.md +5 -0
- package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
- package/.claude/skills/investigate/SKILL.md +110 -0
- package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
- package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
- package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
- package/.claude/skills/investigate/phases/04-implementation.md +139 -0
- package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
- package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
- package/.claude/skills/investigate/specs/iron-law.md +101 -0
- package/.claude/skills/security-audit/SKILL.md +125 -0
- package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
- package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
- package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
- package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
- package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
- package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
- package/.claude/skills/ship/SKILL.md +105 -0
- package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
- package/.claude/skills/ship/phases/02-code-review.md +137 -0
- package/.claude/skills/ship/phases/03-version-bump.md +171 -0
- package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
- package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
- package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
- package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
- package/.claude/skills/team-arch-opt/SKILL.md +1 -1
- package/.claude/skills/team-arch-opt/roles/coordinator/commands/monitor.md +3 -1
- package/.claude/skills/team-arch-opt/roles/refactorer/role.md +3 -1
- package/.claude/skills/team-arch-opt/specs/team-config.json +2 -2
- package/.claude/skills/team-coordinate/SKILL.md +4 -3
- package/.claude/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +1 -1
- package/.claude/skills/team-coordinate/roles/coordinator/commands/dispatch.md +3 -2
- package/.claude/skills/team-coordinate/roles/coordinator/commands/monitor.md +3 -2
- package/.claude/skills/team-coordinate/roles/coordinator/role.md +16 -15
- package/.claude/skills/team-coordinate/specs/pipelines.md +7 -4
- package/.claude/skills/team-coordinate/specs/role-spec-template.md +1 -0
- package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
- package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
- package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.claude/skills/team-lifecycle-v4/SKILL.md +1 -1
- package/.claude/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +14 -2
- package/.claude/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +24 -2
- package/.claude/skills/team-lifecycle-v4/roles/executor/role.md +3 -1
- package/.claude/skills/team-motion-design/SKILL.md +129 -0
- package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
- package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
- package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
- package/.claude/skills/team-perf-opt/SKILL.md +1 -1
- package/.claude/skills/team-perf-opt/roles/optimizer/role.md +3 -1
- package/.claude/skills/team-perf-opt/specs/team-config.json +2 -2
- package/.claude/skills/team-quality-assurance/SKILL.md +1 -1
- package/.claude/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +4 -2
- package/.claude/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +4 -2
- package/.claude/skills/team-quality-assurance/roles/executor/role.md +3 -1
- package/.claude/skills/team-testing/SKILL.md +1 -1
- package/.claude/skills/team-testing/roles/coordinator/commands/dispatch.md +5 -2
- package/.claude/skills/team-testing/roles/coordinator/commands/monitor.md +4 -2
- package/.claude/skills/team-testing/roles/executor/role.md +3 -1
- package/.claude/skills/team-ui-polish/SKILL.md +127 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
- package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
- package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
- package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
- package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.claude/skills/team-uidesign/SKILL.md +6 -1
- package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
- package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
- package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
- package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
- package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
- package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
- package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
- package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
- package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
- package/.claude/skills/team-ux-improve/SKILL.md +3 -0
- package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
- package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
- package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
- package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
- package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
- package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
- package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
- package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
- package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
- package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
- package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
- package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
- package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/.codex/skills/investigate/agents/investigator.md +392 -0
- package/.codex/skills/investigate/orchestrator.md +362 -0
- package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
- package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
- package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
- package/.codex/skills/investigate/phases/04-implementation.md +195 -0
- package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
- package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
- package/.codex/skills/security-audit/orchestrator.md +384 -0
- package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
- package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
- package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
- package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
- package/.codex/skills/ship/agents/ship-operator.md +318 -0
- package/.codex/skills/ship/orchestrator.md +426 -0
- package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
- package/.codex/skills/ship/phases/02-code-review.md +228 -0
- package/.codex/skills/ship/phases/03-version-bump.md +259 -0
- package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
- package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
- package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
- package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
- package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.codex/skills/team-motion-design/SKILL.md +222 -0
- package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
- package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
- package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
- package/.codex/skills/team-ui-polish/SKILL.md +218 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
- package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
- package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
- package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
- package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/README.md +8 -0
- package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
- package/ccw/dist/core/hooks/hook-templates.js +114 -1
- package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +34 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +2 -2
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
- package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +105 -105
- package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
|
@@ -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
|
|
@@ -0,0 +1,170 @@
|
|
|
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
|
+
## Identity
|
|
6
|
+
- **Name**: coordinator | **Tag**: [coordinator]
|
|
7
|
+
- **Responsibility**: Analyze task -> Create team -> Dispatch tasks -> Monitor progress -> Report results
|
|
8
|
+
|
|
9
|
+
## Boundaries
|
|
10
|
+
|
|
11
|
+
### MUST
|
|
12
|
+
- All output (SendMessage, team_msg, logs) must carry `[coordinator]` identifier
|
|
13
|
+
- Use `team-worker` agent type for all worker spawns (NOT `general-purpose`)
|
|
14
|
+
- Dispatch tasks with proper dependency chains and blockedBy
|
|
15
|
+
- Monitor worker progress via message bus and route messages
|
|
16
|
+
- Handle Generator-Critic loops (optimizer<->verifier) with max 2 iterations
|
|
17
|
+
- Maintain session state persistence
|
|
18
|
+
|
|
19
|
+
### MUST NOT
|
|
20
|
+
- Implement domain logic (scanning, diagnosing, optimizing, verifying) -- workers handle this
|
|
21
|
+
- Spawn workers without creating tasks first
|
|
22
|
+
- Force-advance pipeline past failed verification
|
|
23
|
+
- Modify source code or design artifacts directly -- delegate to workers
|
|
24
|
+
- Omit `[coordinator]` identifier in any output
|
|
25
|
+
|
|
26
|
+
## Command Execution Protocol
|
|
27
|
+
|
|
28
|
+
When coordinator needs to execute a command (analyze, dispatch, monitor):
|
|
29
|
+
|
|
30
|
+
1. Read `commands/<command>.md`
|
|
31
|
+
2. Follow the workflow defined in the command
|
|
32
|
+
3. Commands are inline execution guides, NOT separate agents
|
|
33
|
+
4. Execute synchronously, complete before proceeding
|
|
34
|
+
|
|
35
|
+
## Entry Router
|
|
36
|
+
|
|
37
|
+
| Detection | Condition | Handler |
|
|
38
|
+
|-----------|-----------|---------|
|
|
39
|
+
| Worker callback | Message contains [scanner], [diagnostician], [optimizer], [verifier] | -> handleCallback (monitor.md) |
|
|
40
|
+
| Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
|
|
41
|
+
| Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
|
|
42
|
+
| Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
|
|
43
|
+
| Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
|
|
44
|
+
| Interrupted session | Active/paused session exists in .workflow/.team/UIP-* | -> Phase 0 |
|
|
45
|
+
| New session | None of above | -> Phase 1 |
|
|
46
|
+
|
|
47
|
+
For callback/check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
|
|
48
|
+
|
|
49
|
+
## Phase 0: Session Resume Check
|
|
50
|
+
|
|
51
|
+
1. Scan `.workflow/.team/UIP-*/.msg/meta.json` for active/paused sessions
|
|
52
|
+
2. No sessions -> Phase 1
|
|
53
|
+
3. Single session -> reconcile (audit TaskList, reset in_progress->pending, rebuild team, kick first ready task)
|
|
54
|
+
4. Multiple -> AskUserQuestion for selection
|
|
55
|
+
|
|
56
|
+
## Phase 1: Requirement Clarification
|
|
57
|
+
|
|
58
|
+
TEXT-LEVEL ONLY. No source code reading.
|
|
59
|
+
|
|
60
|
+
1. Parse task description from arguments
|
|
61
|
+
2. Detect polish scope:
|
|
62
|
+
|
|
63
|
+
| Signal | Pipeline Mode |
|
|
64
|
+
|--------|---------------|
|
|
65
|
+
| "scan", "audit", "check", "report", "analyze" | scan-only |
|
|
66
|
+
| "fix color", "fix typography", specific dimension keyword | targeted |
|
|
67
|
+
| "polish", "fix all", "full", "improve", "clean up" | full |
|
|
68
|
+
| Unclear | ask user |
|
|
69
|
+
|
|
70
|
+
3. Ask for missing parameters if scope unclear:
|
|
71
|
+
```
|
|
72
|
+
AskUserQuestion({
|
|
73
|
+
questions: [
|
|
74
|
+
{ question: "What should I polish?", header: "Target", options: [
|
|
75
|
+
{ label: "URL", description: "Live page URL for Chrome DevTools analysis" },
|
|
76
|
+
{ label: "Component path", description: "Specific component files to polish" },
|
|
77
|
+
{ label: "Full site", description: "Scan and polish entire frontend" }
|
|
78
|
+
]},
|
|
79
|
+
{ question: "Polish mode?", header: "Mode", options: [
|
|
80
|
+
{ label: "Scan only", description: "Discover + diagnose, report only" },
|
|
81
|
+
{ label: "Targeted fix", description: "Fix specific dimensions" },
|
|
82
|
+
{ label: "Full polish", description: "Complete polish cycle" }
|
|
83
|
+
]}
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
```
|
|
87
|
+
4. Delegate to `@commands/analyze.md` -> output scope context
|
|
88
|
+
5. Record: pipeline_mode, target, complexity, dimension_filters
|
|
89
|
+
|
|
90
|
+
## Phase 2: Create Team + Initialize Session
|
|
91
|
+
|
|
92
|
+
1. Resolve workspace paths (MUST do first):
|
|
93
|
+
- `project_root` = result of `Bash({ command: "pwd" })`
|
|
94
|
+
- `skill_root` = `<project_root>/.claude/skills/team-ui-polish`
|
|
95
|
+
2. Generate session ID: `UIP-<slug>-<YYYY-MM-DD>`
|
|
96
|
+
3. Create session folder structure:
|
|
97
|
+
```
|
|
98
|
+
.workflow/.team/UIP-<slug>-<date>/scan/
|
|
99
|
+
.workflow/.team/UIP-<slug>-<date>/diagnosis/
|
|
100
|
+
.workflow/.team/UIP-<slug>-<date>/optimization/
|
|
101
|
+
.workflow/.team/UIP-<slug>-<date>/verification/
|
|
102
|
+
.workflow/.team/UIP-<slug>-<date>/evidence/
|
|
103
|
+
.workflow/.team/UIP-<slug>-<date>/wisdom/
|
|
104
|
+
.workflow/.team/UIP-<slug>-<date>/.msg/
|
|
105
|
+
```
|
|
106
|
+
4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
|
|
107
|
+
5. TeamCreate(team_name="ui-polish")
|
|
108
|
+
6. Do NOT spawn workers yet - deferred to Phase 4
|
|
109
|
+
|
|
110
|
+
## Phase 3: Create Task Chain
|
|
111
|
+
|
|
112
|
+
Delegate to `@commands/dispatch.md`. Task chains by mode:
|
|
113
|
+
|
|
114
|
+
| Mode | Task Chain |
|
|
115
|
+
|------|------------|
|
|
116
|
+
| scan-only | SCAN-001 -> DIAG-001 |
|
|
117
|
+
| targeted | SCAN-001 -> DIAG-001 -> OPT-001 -> VERIFY-001 |
|
|
118
|
+
| full | SCAN-001 -> DIAG-001 -> OPT-001 -> VERIFY-001 (GC loop if verify fails) |
|
|
119
|
+
|
|
120
|
+
## Phase 4: Spawn-and-Stop
|
|
121
|
+
|
|
122
|
+
Delegate to `@commands/monitor.md#handleSpawnNext`:
|
|
123
|
+
1. Find ready tasks (pending + blockedBy resolved)
|
|
124
|
+
2. Spawn team-worker agents (see SKILL.md Spawn Template)
|
|
125
|
+
3. Output status summary
|
|
126
|
+
4. STOP
|
|
127
|
+
|
|
128
|
+
## Phase 5: Report + Completion Action
|
|
129
|
+
|
|
130
|
+
1. Read session state -> collect all results
|
|
131
|
+
2. List deliverables:
|
|
132
|
+
|
|
133
|
+
| Deliverable | Path |
|
|
134
|
+
|-------------|------|
|
|
135
|
+
| Scan Report | <session>/scan/scan-report.md |
|
|
136
|
+
| Diagnosis Report | <session>/diagnosis/diagnosis-report.md |
|
|
137
|
+
| Optimization Log | <session>/optimization/fix-log.md |
|
|
138
|
+
| Verification Report | <session>/verification/verify-report.md |
|
|
139
|
+
| Before/After Screenshots | <session>/evidence/*.png |
|
|
140
|
+
|
|
141
|
+
3. Calculate summary:
|
|
142
|
+
- `issues_found`: total from scan report
|
|
143
|
+
- `issues_fixed`: total from optimization log
|
|
144
|
+
- `issues_remaining`: issues_found - issues_fixed + regressions
|
|
145
|
+
- `before_score`: original scan score (out of 32)
|
|
146
|
+
- `after_score`: verification re-scan score (out of 32)
|
|
147
|
+
- `gc_rounds`: number of optimizer<->verifier iterations
|
|
148
|
+
4. Output pipeline summary with [coordinator] prefix
|
|
149
|
+
5. Execute completion action:
|
|
150
|
+
```
|
|
151
|
+
AskUserQuestion({
|
|
152
|
+
questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
|
|
153
|
+
{ label: "Archive & Clean", description: "Archive session and clean up team resources" },
|
|
154
|
+
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
155
|
+
{ label: "Export Results", description: "Export deliverables to specified location" }
|
|
156
|
+
]}]
|
|
157
|
+
})
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Error Handling
|
|
161
|
+
|
|
162
|
+
| Error | Resolution |
|
|
163
|
+
|-------|------------|
|
|
164
|
+
| Task timeout | Log, mark failed, ask user to retry or skip |
|
|
165
|
+
| Worker crash | Reset task to pending, respawn worker |
|
|
166
|
+
| Dependency cycle | Detect, report to user, halt |
|
|
167
|
+
| Invalid scope | Reject with error, ask to clarify |
|
|
168
|
+
| Session corruption | Attempt recovery, fallback to manual reconciliation |
|
|
169
|
+
| GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |
|
|
170
|
+
| Chrome DevTools unavailable | Continue without screenshots, note in report |
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
role: diagnostician
|
|
3
|
+
prefix: DIAG
|
|
4
|
+
inner_loop: false
|
|
5
|
+
message_types: [diag_complete, diag_progress, error]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Root Cause Diagnostician
|
|
9
|
+
|
|
10
|
+
Deep-dive root cause analysis of discovered design problems. Classify severity, group systemic vs one-off issues, build fix dependency graph, and map each issue group to Impeccable fix strategies.
|
|
11
|
+
|
|
12
|
+
## Phase 2: Context & Artifact Loading
|
|
13
|
+
|
|
14
|
+
| Input | Source | Required |
|
|
15
|
+
|-------|--------|----------|
|
|
16
|
+
| Scan report | <session>/scan/scan-report.md | Yes |
|
|
17
|
+
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
18
|
+
| Fix strategies | specs/fix-strategies.md | Yes |
|
|
19
|
+
| Design standards | specs/design-standards.md | Yes |
|
|
20
|
+
|
|
21
|
+
1. Extract session path from task description
|
|
22
|
+
2. Read scan report: parse per-dimension scores, issue inventory, systemic patterns
|
|
23
|
+
3. Read specs/fix-strategies.md for issue-to-fix mapping
|
|
24
|
+
4. Read specs/design-standards.md for target state reference
|
|
25
|
+
|
|
26
|
+
## Phase 3: Root Cause Analysis
|
|
27
|
+
|
|
28
|
+
### Step 1: Issue Classification
|
|
29
|
+
|
|
30
|
+
For each issue in the scan report, classify:
|
|
31
|
+
|
|
32
|
+
| Classification | Definition | Example |
|
|
33
|
+
|---------------|------------|---------|
|
|
34
|
+
| Systemic | Affects whole project, single root cause creates many symptoms | "No design token system" causes 15 hard-coded color issues |
|
|
35
|
+
| One-off | Single component, isolated fix | Button missing hover state in one component |
|
|
36
|
+
|
|
37
|
+
### Step 2: Root Cause Grouping
|
|
38
|
+
|
|
39
|
+
Group issues by shared root cause. Common root cause patterns:
|
|
40
|
+
|
|
41
|
+
| Root Cause | Typical Symptoms |
|
|
42
|
+
|------------|-----------------|
|
|
43
|
+
| No design token system | Hard-coded colors, inconsistent spacing, no theme support |
|
|
44
|
+
| AI-generated template | Multiple AI slop tells (gradient text, glassmorphism, generic fonts) |
|
|
45
|
+
| No typography system | Muddy hierarchy, arbitrary font sizes, no modular scale |
|
|
46
|
+
| No spacing scale | Arbitrary spacing values, monotonous rhythm, no gap usage |
|
|
47
|
+
| No motion system | Random durations, bad easing, no reduced-motion |
|
|
48
|
+
| Missing state layer | No hover/focus/active/disabled/loading across components |
|
|
49
|
+
| No responsive strategy | Fixed widths, missing breakpoints, small mobile targets |
|
|
50
|
+
| No hierarchy design | Everything same weight, no squint test pass, size-only hierarchy |
|
|
51
|
+
|
|
52
|
+
### Step 3: Priority Assignment
|
|
53
|
+
|
|
54
|
+
For each root cause group:
|
|
55
|
+
|
|
56
|
+
| Priority | Criteria |
|
|
57
|
+
|----------|----------|
|
|
58
|
+
| P0 | Contains any blocking issue (WCAG AA failure, missing focus, horizontal scroll, no viewport meta) |
|
|
59
|
+
| P1 | Contains major issues (pure black/white, contrast near-fail, missing hover/loading) |
|
|
60
|
+
| P2 | Contains minor issues (no OKLCH, overused fonts, monotonous spacing) |
|
|
61
|
+
| P3 | Polish only (missing exit animation, no container queries, optical adjustments) |
|
|
62
|
+
|
|
63
|
+
### Step 4: Fix Strategy Mapping
|
|
64
|
+
|
|
65
|
+
For each root cause group, map to Impeccable fix strategy (from specs/fix-strategies.md):
|
|
66
|
+
|
|
67
|
+
| Root Cause | Fix Strategy | Effort |
|
|
68
|
+
|------------|-------------|--------|
|
|
69
|
+
| No token system | Create token file, tokenize all values | systemic, high |
|
|
70
|
+
| AI template aesthetic | Break templates, add intentional design | systemic, high |
|
|
71
|
+
| No type system | Define modular scale, apply across project | systemic, medium |
|
|
72
|
+
| No spacing scale | Define 4pt scale, replace arbitrary values | systemic, medium |
|
|
73
|
+
| No motion system | Create motion tokens, fix easing/duration | systemic, medium |
|
|
74
|
+
| Missing states | Add state CSS to each component | distributed, medium |
|
|
75
|
+
| No responsive | Add media queries, fix widths/targets | distributed, high |
|
|
76
|
+
| Individual issues | Component-level fixes | one-off, low |
|
|
77
|
+
|
|
78
|
+
### Step 5: Fix Dependency Graph
|
|
79
|
+
|
|
80
|
+
Build ordered dependency graph:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
1. Design token system (if missing) -- everything else depends on this
|
|
84
|
+
2. Color fixes (pure black/white, contrast) -- visual foundation
|
|
85
|
+
3. Typography system -- content hierarchy
|
|
86
|
+
4. Spacing scale -- layout foundation
|
|
87
|
+
5. Anti-AI-slop cleanup -- requires tokens, colors, type to be in place
|
|
88
|
+
6. Motion system -- independent
|
|
89
|
+
7. Interaction states -- independent per component
|
|
90
|
+
8. Visual hierarchy -- requires typography + spacing
|
|
91
|
+
9. Responsive fixes -- last, tests everything together
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Rules:
|
|
95
|
+
- Token system MUST come before individual token consumption fixes
|
|
96
|
+
- Color fixes before anti-slop (anti-slop fixes may adjust colors)
|
|
97
|
+
- Typography before hierarchy (hierarchy depends on type scale)
|
|
98
|
+
- Responsive fixes last (they validate all other fixes at different viewports)
|
|
99
|
+
|
|
100
|
+
## Phase 4: Validate Diagnosis Completeness
|
|
101
|
+
|
|
102
|
+
| Check | Pass Criteria |
|
|
103
|
+
|-------|---------------|
|
|
104
|
+
| All issues covered | Every issue from scan report appears in at least one root cause group |
|
|
105
|
+
| No orphan issues | No issues without a root cause group |
|
|
106
|
+
| Fix strategies assigned | Every root cause group has a fix strategy |
|
|
107
|
+
| Dependencies valid | Dependency graph is acyclic |
|
|
108
|
+
| Priority consistent | Group priority matches highest-severity issue in group |
|
|
109
|
+
|
|
110
|
+
Output: `<session>/diagnosis/diagnosis-report.md`
|
|
111
|
+
|
|
112
|
+
Report structure:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
# Diagnosis Report
|
|
116
|
+
|
|
117
|
+
## Summary
|
|
118
|
+
- Total issues: N (P0: X, P1: X, P2: X, P3: X)
|
|
119
|
+
- Root cause groups: N
|
|
120
|
+
- Systemic issues: N
|
|
121
|
+
- One-off issues: N
|
|
122
|
+
- Estimated effort: <low|medium|high>
|
|
123
|
+
|
|
124
|
+
## Root Cause Groups (by priority)
|
|
125
|
+
|
|
126
|
+
### [P0] <Root Cause Name>
|
|
127
|
+
- **Type**: systemic | one-off
|
|
128
|
+
- **Affected issues**: <count>
|
|
129
|
+
- **Affected files**: <file list>
|
|
130
|
+
- **Description**: <what is fundamentally wrong>
|
|
131
|
+
- **Fix strategy**: <from fix-strategies.md>
|
|
132
|
+
- **Effort**: <quick fix | medium | systemic change>
|
|
133
|
+
- **Dependencies**: <which other fixes must come first>
|
|
134
|
+
- **Issues in this group**:
|
|
135
|
+
| # | Location | Severity | Description |
|
|
136
|
+
|---|----------|----------|-------------|
|
|
137
|
+
| 1 | file:line | P0 | ... |
|
|
138
|
+
|
|
139
|
+
### [P1] <Root Cause Name>
|
|
140
|
+
...
|
|
141
|
+
|
|
142
|
+
## Fix Dependency Graph
|
|
143
|
+
<ordered list of fix phases>
|
|
144
|
+
|
|
145
|
+
## Recommended Fix Order
|
|
146
|
+
1. <fix phase 1>: <root cause groups to address>
|
|
147
|
+
2. <fix phase 2>: <root cause groups to address>
|
|
148
|
+
...
|
|
149
|
+
|
|
150
|
+
## Metadata
|
|
151
|
+
- Source: <session>/scan/scan-report.md
|
|
152
|
+
- Original score: X/32
|
|
153
|
+
- Timestamp: <ISO timestamp>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
After writing the report, send completion message:
|
|
157
|
+
```
|
|
158
|
+
mcp__ccw-tools__team_msg(session_id, role="diagnostician", type="diag_complete", content="Diagnosis complete. Root cause groups: N. Systemic: N. Fix phases: N.")
|
|
159
|
+
SendMessage(participant="coordinator", message="[diagnostician] DIAG-001 complete. Root cause groups: N (P0: X, P1: X, P2: X, P3: X). Systemic: N, One-off: N. Report: <session>/diagnosis/diagnosis-report.md")
|
|
160
|
+
```
|