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
|
@@ -14,3 +14,8 @@ keywords: [architecture, constraint, schema, compatibility, portability, design,
|
|
|
14
14
|
|
|
15
15
|
- [compatibility] When enhancing existing schemas, use optional fields and additionalProperties rather than creating new schemas. Avoid breaking changes.
|
|
16
16
|
- [portability] Use relative paths for cross-artifact navigation to ensure portability across different environments and installations.
|
|
17
|
+
|
|
18
|
+
## Skill Design
|
|
19
|
+
|
|
20
|
+
- [decision:skills] All skills must follow Completion Status Protocol (DONE/DONE_WITH_CONCERNS/BLOCKED/NEEDS_CONTEXT) defined in SKILL-DESIGN-SPEC.md sections 13-14. New skills created via skill-generator auto-include the protocol reference. (2026-03-29)
|
|
21
|
+
- [decision:hooks] Hook safety guardrails use TypeScript HookTemplate pattern (not standalone bash scripts) for integration with CCW hook endpoint system. Templates: careful-destructive-guard, freeze-edit-boundary. (2026-03-29)
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
10. [质量控制规范](#10-质量控制规范)
|
|
19
19
|
11. [最佳实践清单](#11-最佳实践清单)
|
|
20
20
|
12. [示例模板](#12-示例模板)
|
|
21
|
+
13. [Completion Status Protocol](#13-completion-status-protocol)
|
|
22
|
+
14. [Escalation Protocol](#14-escalation-protocol)
|
|
21
23
|
|
|
22
24
|
---
|
|
23
25
|
|
|
@@ -665,6 +667,144 @@ Generate XXX through multi-phase analysis.
|
|
|
665
667
|
|
|
666
668
|
---
|
|
667
669
|
|
|
670
|
+
## 13. Completion Status Protocol
|
|
671
|
+
|
|
672
|
+
### 13.1 Status Definitions
|
|
673
|
+
|
|
674
|
+
Every Skill execution MUST terminate with one of the following four statuses:
|
|
675
|
+
|
|
676
|
+
| Status | Exit Code | Definition |
|
|
677
|
+
|--------|-----------|------------|
|
|
678
|
+
| **DONE** | 0 | All acceptance criteria met, outputs generated successfully |
|
|
679
|
+
| **DONE_WITH_CONCERNS** | 0 | Completed but with warnings or non-blocking issues |
|
|
680
|
+
| **BLOCKED** | 1 | Cannot proceed, requires external action or resource |
|
|
681
|
+
| **NEEDS_CONTEXT** | 2 | Missing information needed to make a decision |
|
|
682
|
+
|
|
683
|
+
### 13.2 When to Use
|
|
684
|
+
|
|
685
|
+
| Status | Use When |
|
|
686
|
+
|--------|----------|
|
|
687
|
+
| **DONE** | All phases completed, quality gates passed, outputs validated |
|
|
688
|
+
| **DONE_WITH_CONCERNS** | Core task completed but: deprecation warnings found, quality score 60-79%, non-critical checks failed, partial data used as fallback |
|
|
689
|
+
| **BLOCKED** | Required file/service unavailable, dependency not installed, permission denied, prerequisite task not completed |
|
|
690
|
+
| **NEEDS_CONTEXT** | Ambiguous user requirement, multiple valid interpretations, missing configuration value, unclear scope boundary |
|
|
691
|
+
|
|
692
|
+
### 13.3 Output Format
|
|
693
|
+
|
|
694
|
+
Each status MUST use the following structured output at the end of Skill execution:
|
|
695
|
+
|
|
696
|
+
```
|
|
697
|
+
## STATUS: {DONE|DONE_WITH_CONCERNS|BLOCKED|NEEDS_CONTEXT}
|
|
698
|
+
|
|
699
|
+
**Summary**: {one-line description of outcome}
|
|
700
|
+
|
|
701
|
+
### Details
|
|
702
|
+
{status-specific content — see below}
|
|
703
|
+
|
|
704
|
+
### Outputs
|
|
705
|
+
- {list of files created/modified, if any}
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
**DONE details**:
|
|
709
|
+
```
|
|
710
|
+
### Details
|
|
711
|
+
- Phases completed: {N}/{N}
|
|
712
|
+
- Quality score: {score}%
|
|
713
|
+
- Key outputs: {list of primary deliverables}
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
**DONE_WITH_CONCERNS details**:
|
|
717
|
+
```
|
|
718
|
+
### Details
|
|
719
|
+
- Phases completed: {N}/{N}
|
|
720
|
+
- Concerns:
|
|
721
|
+
1. {concern description} — Impact: {low|medium} — Suggested fix: {action}
|
|
722
|
+
2. ...
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
**BLOCKED details**:
|
|
726
|
+
```
|
|
727
|
+
### Details
|
|
728
|
+
- Blocked at: Phase {N}, Step {M}
|
|
729
|
+
- Blocker: {specific description of what is blocking}
|
|
730
|
+
- Need: {specific action or resource required to unblock}
|
|
731
|
+
- Attempted: {what was tried before declaring blocked}
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
**NEEDS_CONTEXT details**:
|
|
735
|
+
```
|
|
736
|
+
### Details
|
|
737
|
+
- Paused at: Phase {N}, Step {M}
|
|
738
|
+
- Questions:
|
|
739
|
+
1. {specific question requiring user/caller input}
|
|
740
|
+
2. ...
|
|
741
|
+
- Context available: {what is already known}
|
|
742
|
+
- Impact: {what cannot proceed without answers}
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
---
|
|
746
|
+
|
|
747
|
+
## 14. Escalation Protocol
|
|
748
|
+
|
|
749
|
+
### 14.1 Three-Strike Rule
|
|
750
|
+
|
|
751
|
+
When a Skill encounters consecutive failures on the **same step**, the following escalation applies:
|
|
752
|
+
|
|
753
|
+
| Strike | Action |
|
|
754
|
+
|--------|--------|
|
|
755
|
+
| 1st failure | Log error, retry with adjusted approach |
|
|
756
|
+
| 2nd failure | Log error, try alternative strategy |
|
|
757
|
+
| 3rd failure | **STOP execution immediately**, output diagnostic dump, request human intervention |
|
|
758
|
+
|
|
759
|
+
### 14.2 Failure Tracking
|
|
760
|
+
|
|
761
|
+
Track failures per step, not globally. A success on any step resets that step's failure counter.
|
|
762
|
+
|
|
763
|
+
```
|
|
764
|
+
Step failure counter:
|
|
765
|
+
Phase 2, Step 3: [fail] [fail] [STOP] → escalate
|
|
766
|
+
Phase 2, Step 4: [fail] [success] → counter reset, continue
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
### 14.3 Diagnostic Dump Format
|
|
770
|
+
|
|
771
|
+
On the 3rd consecutive failure, output the following diagnostic block:
|
|
772
|
+
|
|
773
|
+
```
|
|
774
|
+
## ESCALATION: 3-Strike Limit Reached
|
|
775
|
+
|
|
776
|
+
### Failed Step
|
|
777
|
+
- Phase: {phase_number} — {phase_name}
|
|
778
|
+
- Step: {step_number} — {step_name}
|
|
779
|
+
|
|
780
|
+
### Error History
|
|
781
|
+
1. Attempt 1: {error message or description}
|
|
782
|
+
Strategy: {what was tried}
|
|
783
|
+
2. Attempt 2: {error message or description}
|
|
784
|
+
Strategy: {alternative approach tried}
|
|
785
|
+
3. Attempt 3: {error message or description}
|
|
786
|
+
Strategy: {final approach tried}
|
|
787
|
+
|
|
788
|
+
### Current State
|
|
789
|
+
- Last successful phase/step: {phase.step}
|
|
790
|
+
- Files generated so far: {list}
|
|
791
|
+
- Files touched in failed attempts: {list}
|
|
792
|
+
|
|
793
|
+
### Diagnosis
|
|
794
|
+
- Likely root cause: {assessment}
|
|
795
|
+
- Suggested human action: {specific recommendation}
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### 14.4 Post-Escalation Behavior
|
|
799
|
+
|
|
800
|
+
After outputting the diagnostic dump:
|
|
801
|
+
1. Set Skill status to **BLOCKED** (see Section 13)
|
|
802
|
+
2. Do NOT attempt further retries
|
|
803
|
+
3. Preserve all intermediate outputs for debugging
|
|
804
|
+
4. Wait for human intervention before resuming
|
|
805
|
+
|
|
806
|
+
---
|
|
807
|
+
|
|
668
808
|
## 附录 A: 设计对比
|
|
669
809
|
|
|
670
810
|
| 设计点 | software-manual | copyright-docs |
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: investigate
|
|
3
|
+
description: Systematic debugging with Iron Law methodology. 5-phase investigation from evidence collection to verified fix. Triggers on "investigate", "debug", "root cause".
|
|
4
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Investigate
|
|
8
|
+
|
|
9
|
+
Systematic debugging skill that enforces the Iron Law: never fix without a confirmed root cause. Produces a structured debug report with full evidence chain, minimal fix, and regression test.
|
|
10
|
+
|
|
11
|
+
## Iron Law Principle
|
|
12
|
+
|
|
13
|
+
**No fix without confirmed root cause.** Every investigation follows a strict evidence chain:
|
|
14
|
+
1. Reproduce the bug with concrete evidence
|
|
15
|
+
2. Analyze patterns to assess scope
|
|
16
|
+
3. Form and test hypotheses (max 3 strikes)
|
|
17
|
+
4. Implement minimal fix ONLY after root cause is confirmed
|
|
18
|
+
5. Verify fix and generate structured report
|
|
19
|
+
|
|
20
|
+
Violation of the Iron Law (skipping to Phase 4 without Phase 3 confirmation) is prohibited.
|
|
21
|
+
|
|
22
|
+
## Key Design Principles
|
|
23
|
+
|
|
24
|
+
1. **Evidence-First**: Collect before theorizing. Logs, stack traces, and reproduction steps are mandatory inputs.
|
|
25
|
+
2. **Minimal Fix**: Change only what is necessary. Refactoring is not debugging.
|
|
26
|
+
3. **3-Strike Escalation**: If 3 consecutive hypothesis tests fail, STOP and escalate with a diagnostic dump.
|
|
27
|
+
4. **Regression Coverage**: Every fix must include a test that fails without the fix and passes with it.
|
|
28
|
+
5. **Structured Output**: All findings are recorded in machine-readable JSON for future reference.
|
|
29
|
+
|
|
30
|
+
## Execution Flow
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Phase 1: Root Cause Investigation
|
|
34
|
+
Reproduce bug, collect evidence (errors, logs, traces)
|
|
35
|
+
Use ccw cli --tool gemini --mode analysis for initial diagnosis
|
|
36
|
+
Output: investigation-report.json
|
|
37
|
+
|
|
|
38
|
+
v
|
|
39
|
+
Phase 2: Pattern Analysis
|
|
40
|
+
Search codebase for similar patterns (same error, module, antipattern)
|
|
41
|
+
Assess scope: isolated vs systemic
|
|
42
|
+
Output: pattern-analysis section in report
|
|
43
|
+
|
|
|
44
|
+
v
|
|
45
|
+
Phase 3: Hypothesis Testing
|
|
46
|
+
Form max 3 hypotheses from evidence
|
|
47
|
+
Test each with minimal read-only probes
|
|
48
|
+
3-strike rule: STOP and escalate on 3 consecutive failures
|
|
49
|
+
Output: confirmed root cause with evidence chain
|
|
50
|
+
|
|
|
51
|
+
v
|
|
52
|
+
Phase 4: Implementation [GATE: requires Phase 3 confirmed root cause]
|
|
53
|
+
Implement minimal fix
|
|
54
|
+
Add regression test
|
|
55
|
+
Verify fix resolves reproduction case
|
|
56
|
+
|
|
|
57
|
+
v
|
|
58
|
+
Phase 5: Verification & Report
|
|
59
|
+
Run full test suite
|
|
60
|
+
Check for regressions
|
|
61
|
+
Generate structured debug report to .workflow/.debug/
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Directory Setup
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
mkdir -p .workflow/.debug
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Output Structure
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
.workflow/.debug/
|
|
74
|
+
debug-report-{YYYY-MM-DD}-{slug}.json # Structured debug report
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Completion Status Protocol
|
|
78
|
+
|
|
79
|
+
This skill follows the Completion Status Protocol defined in `_shared/SKILL-DESIGN-SPEC.md` sections 13-14.
|
|
80
|
+
|
|
81
|
+
| Status | When |
|
|
82
|
+
|--------|------|
|
|
83
|
+
| **DONE** | Root cause confirmed, fix applied, regression test passes, no regressions |
|
|
84
|
+
| **DONE_WITH_CONCERNS** | Fix applied but partial test coverage or minor warnings |
|
|
85
|
+
| **BLOCKED** | Cannot reproduce bug, or 3-strike escalation triggered in Phase 3 |
|
|
86
|
+
| **NEEDS_CONTEXT** | Missing reproduction steps, unclear error conditions |
|
|
87
|
+
|
|
88
|
+
## Reference Documents
|
|
89
|
+
|
|
90
|
+
| Document | Purpose |
|
|
91
|
+
|----------|---------|
|
|
92
|
+
| [phases/01-root-cause-investigation.md](phases/01-root-cause-investigation.md) | Evidence collection and reproduction |
|
|
93
|
+
| [phases/02-pattern-analysis.md](phases/02-pattern-analysis.md) | Codebase pattern search and scope assessment |
|
|
94
|
+
| [phases/03-hypothesis-testing.md](phases/03-hypothesis-testing.md) | Hypothesis formation, testing, and 3-strike rule |
|
|
95
|
+
| [phases/04-implementation.md](phases/04-implementation.md) | Minimal fix with Iron Law gate |
|
|
96
|
+
| [phases/05-verification-report.md](phases/05-verification-report.md) | Test suite, regression check, report generation |
|
|
97
|
+
| [specs/iron-law.md](specs/iron-law.md) | Iron Law rules definition |
|
|
98
|
+
| [specs/debug-report-format.md](specs/debug-report-format.md) | Structured debug report JSON schema |
|
|
99
|
+
|
|
100
|
+
## CLI Integration
|
|
101
|
+
|
|
102
|
+
This skill leverages `ccw cli` for multi-model analysis at key points:
|
|
103
|
+
|
|
104
|
+
| Phase | CLI Usage | Mode |
|
|
105
|
+
|-------|-----------|------|
|
|
106
|
+
| Phase 1 | Initial diagnosis from error evidence | `--mode analysis` |
|
|
107
|
+
| Phase 2 | Cross-file pattern search | `--mode analysis` |
|
|
108
|
+
| Phase 3 | Hypothesis validation assistance | `--mode analysis` |
|
|
109
|
+
|
|
110
|
+
All CLI calls use `--mode analysis` (read-only). No write-mode CLI calls during investigation phases 1-3.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Phase 1: Root Cause Investigation
|
|
2
|
+
|
|
3
|
+
Reproduce the bug and collect all available evidence before forming any theories.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
- Reproduce the bug with concrete, observable symptoms
|
|
8
|
+
- Collect all evidence: error messages, logs, stack traces, affected files
|
|
9
|
+
- Establish a baseline understanding of what goes wrong and where
|
|
10
|
+
- Use CLI analysis for initial diagnosis
|
|
11
|
+
|
|
12
|
+
## Execution Steps
|
|
13
|
+
|
|
14
|
+
### Step 1: Understand the Bug Report
|
|
15
|
+
|
|
16
|
+
Parse the user's description to extract:
|
|
17
|
+
- **Symptom**: What observable behavior is wrong?
|
|
18
|
+
- **Expected**: What should happen instead?
|
|
19
|
+
- **Context**: When/where does it occur? (specific input, environment, timing)
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
const bugReport = {
|
|
23
|
+
symptom: "extracted from user description",
|
|
24
|
+
expected_behavior: "what should happen",
|
|
25
|
+
context: "when/where it occurs",
|
|
26
|
+
user_provided_files: ["files mentioned by user"],
|
|
27
|
+
user_provided_errors: ["error messages provided"]
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Step 2: Reproduce the Bug
|
|
32
|
+
|
|
33
|
+
Attempt to reproduce using the most direct method available:
|
|
34
|
+
|
|
35
|
+
1. **Run the failing test** (if one exists):
|
|
36
|
+
```bash
|
|
37
|
+
# Identify and run the specific failing test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
2. **Run the failing command** (if CLI/script):
|
|
41
|
+
```bash
|
|
42
|
+
# Execute the command that triggers the bug
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
3. **Read error-producing code path** (if reproduction requires complex setup):
|
|
46
|
+
- Use `Grep` to find the error message in source code
|
|
47
|
+
- Use `Read` to trace the code path that produces the error
|
|
48
|
+
- Document the theoretical reproduction path
|
|
49
|
+
|
|
50
|
+
**If reproduction fails**: Document what was attempted. The investigation can continue with static analysis, but note this as a concern.
|
|
51
|
+
|
|
52
|
+
### Step 3: Collect Evidence
|
|
53
|
+
|
|
54
|
+
Gather all available evidence using project tools:
|
|
55
|
+
|
|
56
|
+
```javascript
|
|
57
|
+
// 1. Find error messages in source
|
|
58
|
+
Grep({ pattern: "error message text", path: "src/" })
|
|
59
|
+
|
|
60
|
+
// 2. Find related log output
|
|
61
|
+
Grep({ pattern: "relevant log pattern", path: "." })
|
|
62
|
+
|
|
63
|
+
// 3. Read stack trace files or test output
|
|
64
|
+
Read({ file_path: "path/to/failing-test-output" })
|
|
65
|
+
|
|
66
|
+
// 4. Identify affected files and modules
|
|
67
|
+
Glob({ pattern: "**/*relevant-module*" })
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Step 4: Initial Diagnosis via CLI Analysis
|
|
71
|
+
|
|
72
|
+
Use `ccw cli` for a broader diagnostic perspective:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
ccw cli -p "PURPOSE: Diagnose root cause of bug from collected evidence
|
|
76
|
+
TASK: Analyze error context | Trace data flow | Identify suspicious code patterns
|
|
77
|
+
MODE: analysis
|
|
78
|
+
CONTEXT: @{affected_files} | Evidence: {error_messages_and_traces}
|
|
79
|
+
EXPECTED: Top 3 likely root causes ranked by evidence strength
|
|
80
|
+
CONSTRAINTS: Read-only analysis | Focus on {affected_module}" \
|
|
81
|
+
--tool gemini --mode analysis
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Step 5: Write Investigation Report
|
|
85
|
+
|
|
86
|
+
Generate `investigation-report.json` in memory (carried to next phase):
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"phase": 1,
|
|
91
|
+
"bug_description": "concise description of the bug",
|
|
92
|
+
"reproduction": {
|
|
93
|
+
"reproducible": true,
|
|
94
|
+
"steps": [
|
|
95
|
+
"step 1: ...",
|
|
96
|
+
"step 2: ...",
|
|
97
|
+
"step 3: observe error"
|
|
98
|
+
],
|
|
99
|
+
"reproduction_method": "test|command|static_analysis"
|
|
100
|
+
},
|
|
101
|
+
"evidence": {
|
|
102
|
+
"error_messages": ["exact error text"],
|
|
103
|
+
"stack_traces": ["relevant stack trace"],
|
|
104
|
+
"affected_files": ["file1.ts", "file2.ts"],
|
|
105
|
+
"affected_modules": ["module-name"],
|
|
106
|
+
"log_output": ["relevant log lines"]
|
|
107
|
+
},
|
|
108
|
+
"initial_diagnosis": {
|
|
109
|
+
"cli_tool_used": "gemini",
|
|
110
|
+
"top_suspects": [
|
|
111
|
+
{ "description": "suspect 1", "evidence_strength": "strong|moderate|weak", "files": [] }
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Output
|
|
118
|
+
|
|
119
|
+
- **Data**: `investigation-report` (in-memory, passed to Phase 2)
|
|
120
|
+
- **Format**: JSON structure as defined above
|
|
121
|
+
|
|
122
|
+
## Quality Checks
|
|
123
|
+
|
|
124
|
+
- [ ] Bug symptom clearly documented
|
|
125
|
+
- [ ] Reproduction attempted (success or documented failure)
|
|
126
|
+
- [ ] At least one piece of concrete evidence collected (error message, stack trace, or failing test)
|
|
127
|
+
- [ ] Affected files identified
|
|
128
|
+
- [ ] Initial diagnosis generated
|
|
129
|
+
|
|
130
|
+
## Next Phase
|
|
131
|
+
|
|
132
|
+
Proceed to [Phase 2: Pattern Analysis](02-pattern-analysis.md) with the investigation report.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Phase 2: Pattern Analysis
|
|
2
|
+
|
|
3
|
+
Search for similar patterns in the codebase to determine if the bug is isolated or systemic.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
- Search for similar error patterns, antipatterns, or code smells across the codebase
|
|
8
|
+
- Determine if the bug is an isolated incident or part of a systemic issue
|
|
9
|
+
- Identify related code that may be affected by the same root cause
|
|
10
|
+
- Refine the scope of the investigation
|
|
11
|
+
|
|
12
|
+
## Execution Steps
|
|
13
|
+
|
|
14
|
+
### Step 1: Search for Similar Error Patterns
|
|
15
|
+
|
|
16
|
+
Look for the same error type or message elsewhere in the codebase:
|
|
17
|
+
|
|
18
|
+
```javascript
|
|
19
|
+
// Search for identical or similar error messages
|
|
20
|
+
Grep({ pattern: "error_message_fragment", path: "src/", output_mode: "content", context: 3 })
|
|
21
|
+
|
|
22
|
+
// Search for the same exception/error type
|
|
23
|
+
Grep({ pattern: "ErrorClassName|error_code", path: "src/", output_mode: "files_with_matches" })
|
|
24
|
+
|
|
25
|
+
// Search for similar error handling patterns
|
|
26
|
+
Grep({ pattern: "catch.*{similar_pattern}", path: "src/", output_mode: "content" })
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Step 2: Search for Same Antipattern
|
|
30
|
+
|
|
31
|
+
If the initial diagnosis suggests a coding antipattern, search for it globally:
|
|
32
|
+
|
|
33
|
+
```javascript
|
|
34
|
+
// Examples of antipattern searches:
|
|
35
|
+
// Missing null checks
|
|
36
|
+
Grep({ pattern: "variable\\.property", path: "src/", glob: "*.ts" })
|
|
37
|
+
|
|
38
|
+
// Unchecked async operations
|
|
39
|
+
Grep({ pattern: "async.*without.*await", path: "src/" })
|
|
40
|
+
|
|
41
|
+
// Direct mutation of shared state
|
|
42
|
+
Grep({ pattern: "shared_state_pattern", path: "src/" })
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Step 3: Module-Level Analysis
|
|
46
|
+
|
|
47
|
+
Examine the affected module for structural issues:
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
// List all files in the affected module
|
|
51
|
+
Glob({ pattern: "src/affected-module/**/*" })
|
|
52
|
+
|
|
53
|
+
// Check imports and dependencies
|
|
54
|
+
Grep({ pattern: "import.*from.*affected-module", path: "src/" })
|
|
55
|
+
|
|
56
|
+
// Check for circular dependencies or unusual patterns
|
|
57
|
+
Grep({ pattern: "require.*affected-module", path: "src/" })
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step 4: CLI Cross-File Pattern Analysis (Optional)
|
|
61
|
+
|
|
62
|
+
For complex patterns that span multiple files, use CLI analysis:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
ccw cli -p "PURPOSE: Identify all instances of antipattern across codebase; success = complete scope map
|
|
66
|
+
TASK: Search for pattern '{antipattern_description}' | Map all occurrences | Assess systemic risk
|
|
67
|
+
MODE: analysis
|
|
68
|
+
CONTEXT: @src/**/*.{ext} | Bug in {module}, pattern: {pattern_description}
|
|
69
|
+
EXPECTED: List of all files with same pattern, risk assessment per occurrence
|
|
70
|
+
CONSTRAINTS: Focus on {antipattern} pattern only | Ignore test files for scope" \
|
|
71
|
+
--tool gemini --mode analysis
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Step 5: Scope Assessment
|
|
75
|
+
|
|
76
|
+
Classify the bug scope based on findings:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"phase": 2,
|
|
81
|
+
"pattern_analysis": {
|
|
82
|
+
"scope": "isolated|module-wide|systemic",
|
|
83
|
+
"similar_occurrences": [
|
|
84
|
+
{
|
|
85
|
+
"file": "path/to/file.ts",
|
|
86
|
+
"line": 42,
|
|
87
|
+
"pattern": "description of similar pattern",
|
|
88
|
+
"risk": "same_bug|potential_bug|safe"
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"total_occurrences": 1,
|
|
92
|
+
"affected_modules": ["module-name"],
|
|
93
|
+
"antipattern_identified": "description or null",
|
|
94
|
+
"scope_justification": "why this scope classification"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Scope Definitions**:
|
|
100
|
+
- **isolated**: Bug exists in a single location, no similar patterns found
|
|
101
|
+
- **module-wide**: Same pattern exists in multiple files within the same module
|
|
102
|
+
- **systemic**: Pattern spans multiple modules, may require broader fix
|
|
103
|
+
|
|
104
|
+
## Output
|
|
105
|
+
|
|
106
|
+
- **Data**: `pattern-analysis` section added to investigation report (in-memory)
|
|
107
|
+
- **Format**: JSON structure as defined above
|
|
108
|
+
|
|
109
|
+
## Decision Point
|
|
110
|
+
|
|
111
|
+
| Scope | Action |
|
|
112
|
+
|-------|--------|
|
|
113
|
+
| isolated | Proceed to Phase 3 with narrow focus |
|
|
114
|
+
| module-wide | Proceed to Phase 3, note all occurrences for Phase 4 fix |
|
|
115
|
+
| systemic | Proceed to Phase 3, but flag for potential multi-phase fix or separate tracking |
|
|
116
|
+
|
|
117
|
+
## Quality Checks
|
|
118
|
+
|
|
119
|
+
- [ ] At least 3 search queries executed against the codebase
|
|
120
|
+
- [ ] Scope classified as isolated, module-wide, or systemic
|
|
121
|
+
- [ ] Similar occurrences documented with file:line references
|
|
122
|
+
- [ ] Scope justification provided with evidence
|
|
123
|
+
|
|
124
|
+
## Next Phase
|
|
125
|
+
|
|
126
|
+
Proceed to [Phase 3: Hypothesis Testing](03-hypothesis-testing.md) with the pattern analysis results.
|