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,362 @@
|
|
|
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
|
+
agents: investigator
|
|
5
|
+
phases: 5
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Investigate
|
|
9
|
+
|
|
10
|
+
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.
|
|
11
|
+
|
|
12
|
+
## Architecture
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
+--------------------------------------------------------------+
|
|
16
|
+
| investigate Orchestrator |
|
|
17
|
+
| -> Drive investigator agent through 5 sequential phases |
|
|
18
|
+
+----------------------------+---------------------------------+
|
|
19
|
+
|
|
|
20
|
+
spawn_agent (Phase 1 initial task)
|
|
21
|
+
|
|
|
22
|
+
v
|
|
23
|
+
+------------------+
|
|
24
|
+
| investigator |
|
|
25
|
+
| (single agent, |
|
|
26
|
+
| 5-phase loop) |
|
|
27
|
+
+------------------+
|
|
28
|
+
| ^ |
|
|
29
|
+
assign_task | | | assign_task
|
|
30
|
+
(Phase 2-5) v | v (Phase 3 gate check)
|
|
31
|
+
+------------------+
|
|
32
|
+
| Phase 1: Root |
|
|
33
|
+
| Phase 2: Pattern |
|
|
34
|
+
| Phase 3: Hyp. | <-- Gate: BLOCKED?
|
|
35
|
+
| Phase 4: Impl. | <-- Iron Law gate
|
|
36
|
+
| Phase 5: Report |
|
|
37
|
+
+------------------+
|
|
38
|
+
|
|
|
39
|
+
v
|
|
40
|
+
.workflow/.debug/debug-report-*.json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Agent Registry
|
|
46
|
+
|
|
47
|
+
| Agent | task_name | Role File | Responsibility | Pattern | fork_context |
|
|
48
|
+
|-------|-----------|-----------|----------------|---------|-------------|
|
|
49
|
+
| investigator | `investigator` | `~/.codex/skills/investigate/agents/investigator.md` | Full 5-phase investigation execution | Deep Interaction (2.3) | false |
|
|
50
|
+
|
|
51
|
+
> **COMPACT PROTECTION**: Agent files are execution documents. When context compression occurs and agent instructions are reduced to summaries, **you MUST immediately `Read` the corresponding agent.md to reload before continuing execution**.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Fork Context Strategy
|
|
56
|
+
|
|
57
|
+
| Agent | task_name | fork_context | fork_from | Rationale |
|
|
58
|
+
|-------|-----------|-------------|-----------|-----------|
|
|
59
|
+
| investigator | `investigator` | false | — | Starts fresh; receives all phase context via assign_task messages. No prior conversation history needed. |
|
|
60
|
+
|
|
61
|
+
**Fork Decision Rules**:
|
|
62
|
+
|
|
63
|
+
| Condition | fork_context | Reason |
|
|
64
|
+
|-----------|-------------|--------|
|
|
65
|
+
| investigator spawned (Phase 1) | false | Clean context; full task description in message |
|
|
66
|
+
| Phase 2-5 transitions | N/A | assign_task used, agent already running |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Subagent Registry
|
|
71
|
+
|
|
72
|
+
Utility subagents callable by the investigator agent during analysis phases:
|
|
73
|
+
|
|
74
|
+
| Subagent | Agent File | Callable By | Purpose | Model |
|
|
75
|
+
|----------|-----------|-------------|---------|-------|
|
|
76
|
+
| inline-cli-analysis | `~/.codex/agents/cli-explore-agent.md` | investigator | Cross-file diagnostic analysis (replaces ccw cli calls) | haiku |
|
|
77
|
+
|
|
78
|
+
> Subagents are spawned by the investigator within its own execution context (Pattern 2.8), not by the orchestrator.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Phase Execution
|
|
83
|
+
|
|
84
|
+
### Phase 1: Root Cause Investigation
|
|
85
|
+
|
|
86
|
+
**Objective**: Spawn the investigator agent and assign the Phase 1 investigation task. Agent reproduces the bug, collects evidence, and runs initial diagnosis.
|
|
87
|
+
|
|
88
|
+
**Input**:
|
|
89
|
+
|
|
90
|
+
| Source | Description |
|
|
91
|
+
|--------|-------------|
|
|
92
|
+
| User message | Bug description, symptom, context, error messages |
|
|
93
|
+
|
|
94
|
+
**Execution**:
|
|
95
|
+
|
|
96
|
+
Build the initial spawn message embedding the bug report and Phase 1 instructions, then spawn the investigator:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
spawn_agent({
|
|
100
|
+
task_name: "investigator",
|
|
101
|
+
fork_context: false,
|
|
102
|
+
message: `## TASK ASSIGNMENT
|
|
103
|
+
|
|
104
|
+
### MANDATORY FIRST STEPS (Agent Execute)
|
|
105
|
+
1. Read role definition: ~/.codex/skills/investigate/agents/investigator.md (MUST read first)
|
|
106
|
+
2. Read: ~/.codex/skills/investigate/phases/01-root-cause-investigation.md
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Phase 1: Root Cause Investigation
|
|
111
|
+
|
|
112
|
+
Bug Report:
|
|
113
|
+
<user-provided bug description, symptoms, error messages, context>
|
|
114
|
+
|
|
115
|
+
Execute Phase 1 per the phase file. Produce investigation-report (in-memory) and report back with:
|
|
116
|
+
- Phase 1 complete summary
|
|
117
|
+
- bug_description, reproduction result, evidence collected, initial diagnosis
|
|
118
|
+
- Await next phase assignment.`
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
const p1Result = wait_agent({ targets: ["investigator"], timeout_ms: 300000 })
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Output**:
|
|
125
|
+
|
|
126
|
+
| Artifact | Description |
|
|
127
|
+
|----------|-------------|
|
|
128
|
+
| p1Result | Phase 1 completion summary with evidence, reproduction, initial diagnosis |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### Phase 2: Pattern Analysis
|
|
133
|
+
|
|
134
|
+
**Objective**: Assign Phase 2 to the running investigator. Agent searches codebase for similar patterns and classifies bug scope.
|
|
135
|
+
|
|
136
|
+
**Input**:
|
|
137
|
+
|
|
138
|
+
| Source | Description |
|
|
139
|
+
|--------|-------------|
|
|
140
|
+
| p1Result | Phase 1 output — evidence, affected files, initial suspects |
|
|
141
|
+
|
|
142
|
+
**Execution**:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
assign_task({
|
|
146
|
+
target: "investigator",
|
|
147
|
+
items: [{
|
|
148
|
+
type: "text",
|
|
149
|
+
text: `## Phase 2: Pattern Analysis
|
|
150
|
+
|
|
151
|
+
Read: ~/.codex/skills/investigate/phases/02-pattern-analysis.md
|
|
152
|
+
|
|
153
|
+
Using your Phase 1 findings, execute Phase 2:
|
|
154
|
+
- Search for similar error patterns across the codebase
|
|
155
|
+
- Search for the same antipattern if identified
|
|
156
|
+
- Classify scope: isolated | module-wide | systemic
|
|
157
|
+
- Document all occurrences with file:line references
|
|
158
|
+
|
|
159
|
+
Report back with pattern_analysis section and scope classification. Await next phase assignment.`
|
|
160
|
+
}]
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
const p2Result = wait_agent({ targets: ["investigator"], timeout_ms: 300000 })
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Output**:
|
|
167
|
+
|
|
168
|
+
| Artifact | Description |
|
|
169
|
+
|----------|-------------|
|
|
170
|
+
| p2Result | Pattern analysis section: scope classification, similar occurrences, scope justification |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### Phase 3: Hypothesis Testing
|
|
175
|
+
|
|
176
|
+
**Objective**: Assign Phase 3 to the investigator. Agent forms and tests up to 3 hypotheses. Orchestrator checks output for `BLOCKED` marker before proceeding.
|
|
177
|
+
|
|
178
|
+
**Input**:
|
|
179
|
+
|
|
180
|
+
| Source | Description |
|
|
181
|
+
|--------|-------------|
|
|
182
|
+
| p2Result | Pattern analysis results |
|
|
183
|
+
|
|
184
|
+
**Execution**:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
assign_task({
|
|
188
|
+
target: "investigator",
|
|
189
|
+
items: [{
|
|
190
|
+
type: "text",
|
|
191
|
+
text: `## Phase 3: Hypothesis Testing
|
|
192
|
+
|
|
193
|
+
Read: ~/.codex/skills/investigate/phases/03-hypothesis-testing.md
|
|
194
|
+
|
|
195
|
+
Using Phase 1-2 evidence, execute Phase 3:
|
|
196
|
+
- Form up to 3 ranked hypotheses, each citing evidence
|
|
197
|
+
- Test each hypothesis with read-only probes
|
|
198
|
+
- Track 3-strike counter — if 3 consecutive unproductive failures: STOP and output ESCALATION block with BLOCKED status
|
|
199
|
+
- If a hypothesis is confirmed: output confirmed_root_cause with full evidence chain
|
|
200
|
+
|
|
201
|
+
Report back with hypothesis test results and either:
|
|
202
|
+
confirmed_root_cause (proceed to Phase 4)
|
|
203
|
+
OR BLOCKED: <escalation dump> (halt)`
|
|
204
|
+
}]
|
|
205
|
+
})
|
|
206
|
+
|
|
207
|
+
const p3Result = wait_agent({ targets: ["investigator"], timeout_ms: 480000 })
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Phase 3 Gate Decision**:
|
|
211
|
+
|
|
212
|
+
| Condition | Action |
|
|
213
|
+
|-----------|--------|
|
|
214
|
+
| p3Result contains `confirmed_root_cause` | Proceed to Phase 4 |
|
|
215
|
+
| p3Result contains `BLOCKED` | Halt workflow, output escalation dump to user, close investigator |
|
|
216
|
+
| p3Result contains `ESCALATION: 3-Strike Limit Reached` | Halt workflow, output diagnostic dump, close investigator |
|
|
217
|
+
| Timeout | assign_task "Finalize Phase 3 results now", re-wait 120s; if still timeout → halt |
|
|
218
|
+
|
|
219
|
+
If BLOCKED: close investigator and surface the diagnostic dump to the user. Do not proceed to Phase 4.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### Phase 4: Implementation
|
|
224
|
+
|
|
225
|
+
**Objective**: Assign Phase 4 only after confirmed root cause. Agent implements minimal fix and adds regression test.
|
|
226
|
+
|
|
227
|
+
**Input**:
|
|
228
|
+
|
|
229
|
+
| Source | Description |
|
|
230
|
+
|--------|-------------|
|
|
231
|
+
| p3Result | confirmed_root_cause with evidence chain, affected file:line |
|
|
232
|
+
|
|
233
|
+
**Execution**:
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
assign_task({
|
|
237
|
+
target: "investigator",
|
|
238
|
+
items: [{
|
|
239
|
+
type: "text",
|
|
240
|
+
text: `## Phase 4: Implementation
|
|
241
|
+
|
|
242
|
+
Read: ~/.codex/skills/investigate/phases/04-implementation.md
|
|
243
|
+
|
|
244
|
+
Iron Law gate confirmed — proceed with implementation:
|
|
245
|
+
- Verify confirmed_root_cause is present in your context (gate check)
|
|
246
|
+
- Plan the minimal fix before writing any code
|
|
247
|
+
- Implement only what is necessary to fix the confirmed root cause
|
|
248
|
+
- Add regression test: must fail without fix, pass with fix
|
|
249
|
+
- Verify fix against original reproduction case from Phase 1
|
|
250
|
+
|
|
251
|
+
Report back with fix_applied section. Await Phase 5 assignment.`
|
|
252
|
+
}]
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
const p4Result = wait_agent({ targets: ["investigator"], timeout_ms: 480000 })
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Output**:
|
|
259
|
+
|
|
260
|
+
| Artifact | Description |
|
|
261
|
+
|----------|-------------|
|
|
262
|
+
| p4Result | fix_applied section: files changed, regression test details, reproduction verified |
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
### Phase 5: Verification & Report
|
|
267
|
+
|
|
268
|
+
**Objective**: Assign Phase 5 to run the full test suite and generate the structured debug report.
|
|
269
|
+
|
|
270
|
+
**Input**:
|
|
271
|
+
|
|
272
|
+
| Source | Description |
|
|
273
|
+
|--------|-------------|
|
|
274
|
+
| p4Result | fix_applied details — files changed, regression test |
|
|
275
|
+
|
|
276
|
+
**Execution**:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
assign_task({
|
|
280
|
+
target: "investigator",
|
|
281
|
+
items: [{
|
|
282
|
+
type: "text",
|
|
283
|
+
text: `## Phase 5: Verification & Report
|
|
284
|
+
|
|
285
|
+
Read: ~/.codex/skills/investigate/phases/05-verification-report.md
|
|
286
|
+
|
|
287
|
+
Final phase:
|
|
288
|
+
- Run full test suite (detect framework: npm test / pytest / go test / cargo test)
|
|
289
|
+
- Verify the regression test passes
|
|
290
|
+
- Check for new failures introduced by the fix
|
|
291
|
+
- Generate structured debug report per specs/debug-report-format.md
|
|
292
|
+
- Write report to .workflow/.debug/debug-report-<YYYY-MM-DD>-<slug>.json
|
|
293
|
+
- Output completion status: DONE | DONE_WITH_CONCERNS | BLOCKED`
|
|
294
|
+
}]
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
const p5Result = wait_agent({ targets: ["investigator"], timeout_ms: 300000 })
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**Output**:
|
|
301
|
+
|
|
302
|
+
| Artifact | Description |
|
|
303
|
+
|----------|-------------|
|
|
304
|
+
| p5Result | Completion status, test suite results, path to debug report file |
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Lifecycle Management
|
|
309
|
+
|
|
310
|
+
### Timeout Protocol
|
|
311
|
+
|
|
312
|
+
| Phase | Default Timeout | On Timeout |
|
|
313
|
+
|-------|-----------------|------------|
|
|
314
|
+
| Phase 1 (spawn + wait) | 300000 ms | assign_task "Finalize Phase 1 now" + wait 120s; if still timeout → halt |
|
|
315
|
+
| Phase 2 (assign + wait) | 300000 ms | assign_task "Finalize Phase 2 now" + wait 120s; if still timeout → halt |
|
|
316
|
+
| Phase 3 (assign + wait) | 480000 ms | assign_task "Finalize Phase 3 now" + wait 120s; if still timeout → halt BLOCKED |
|
|
317
|
+
| Phase 4 (assign + wait) | 480000 ms | assign_task "Finalize Phase 4 now" + wait 120s; if still timeout → halt |
|
|
318
|
+
| Phase 5 (assign + wait) | 300000 ms | assign_task "Finalize Phase 5 now" + wait 120s; if still timeout → partial report |
|
|
319
|
+
|
|
320
|
+
### Cleanup Protocol
|
|
321
|
+
|
|
322
|
+
At workflow end (success or halt), close the investigator agent:
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
close_agent({ target: "investigator" })
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Error Handling
|
|
331
|
+
|
|
332
|
+
| Scenario | Resolution |
|
|
333
|
+
|----------|------------|
|
|
334
|
+
| Agent timeout (first) | assign_task "Finalize current work and output results" + re-wait 120000 ms |
|
|
335
|
+
| Agent timeout (second) | close_agent, report partial results to user |
|
|
336
|
+
| Phase 3 BLOCKED | close_agent, surface full escalation dump to user, halt |
|
|
337
|
+
| Phase 4 Iron Law violation | close_agent, report "Cannot proceed: no confirmed root cause" |
|
|
338
|
+
| Phase 4 introduces regression | Investigator returns to fix adjustment; orchestrator re-waits same phase |
|
|
339
|
+
| User cancellation | close_agent({ target: "investigator" }), report current state |
|
|
340
|
+
| send_message ignored | Escalate to assign_task |
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Output Format
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
## Summary
|
|
348
|
+
- One-sentence completion status (DONE / DONE_WITH_CONCERNS / BLOCKED)
|
|
349
|
+
|
|
350
|
+
## Results
|
|
351
|
+
- Root cause: <confirmed root cause description>
|
|
352
|
+
- Fix: <what was changed>
|
|
353
|
+
- Regression test: <test name in test file>
|
|
354
|
+
|
|
355
|
+
## Artifacts
|
|
356
|
+
- File: .workflow/.debug/debug-report-<date>-<slug>.json
|
|
357
|
+
- Description: Full structured investigation report
|
|
358
|
+
|
|
359
|
+
## Next Steps (if DONE_WITH_CONCERNS or BLOCKED)
|
|
360
|
+
1. <recommended follow-up action>
|
|
361
|
+
2. <recommended follow-up action>
|
|
362
|
+
```
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Phase 1: Root Cause Investigation
|
|
2
|
+
|
|
3
|
+
> **COMPACT PROTECTION**: This is a core execution phase. If context compression has occurred and this file is only a summary, **MUST `Read` this file again before executing any Step**. Do not execute from memory.
|
|
4
|
+
|
|
5
|
+
Reproduce the bug and collect all available evidence before forming any theories.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
- Reproduce the bug with concrete, observable symptoms
|
|
10
|
+
- Collect all evidence: error messages, logs, stack traces, affected files
|
|
11
|
+
- Establish a baseline understanding of what goes wrong and where
|
|
12
|
+
- Use inline CLI analysis for initial diagnosis
|
|
13
|
+
|
|
14
|
+
## Input
|
|
15
|
+
|
|
16
|
+
| Source | Required | Description |
|
|
17
|
+
|--------|----------|-------------|
|
|
18
|
+
| assign_task message | Yes | Bug description, symptom, expected behavior, context, user-provided errors |
|
|
19
|
+
| User-provided files | Optional | Any files or paths the user mentioned as relevant |
|
|
20
|
+
|
|
21
|
+
## Execution Steps
|
|
22
|
+
|
|
23
|
+
### Step 1: Parse the Bug Report
|
|
24
|
+
|
|
25
|
+
Extract the following from the user's description:
|
|
26
|
+
- **Symptom**: What observable behavior is wrong?
|
|
27
|
+
- **Expected**: What should happen instead?
|
|
28
|
+
- **Context**: When/where does it occur? (specific input, environment, timing)
|
|
29
|
+
- **User-provided files**: Any files mentioned
|
|
30
|
+
- **User-provided errors**: Any error messages provided
|
|
31
|
+
|
|
32
|
+
Assemble the extracted fields as the initial `investigation-report` structure in memory:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
bugReport = {
|
|
36
|
+
symptom: <extracted from description>,
|
|
37
|
+
expected_behavior: <what should happen>,
|
|
38
|
+
context: <when/where it occurs>,
|
|
39
|
+
user_provided_files: [<files mentioned>],
|
|
40
|
+
user_provided_errors: [<error messages>]
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### Step 2: Reproduce the Bug
|
|
47
|
+
|
|
48
|
+
Attempt reproduction using the most direct method available:
|
|
49
|
+
|
|
50
|
+
| Method | When to use |
|
|
51
|
+
|--------|-------------|
|
|
52
|
+
| Run failing test | A specific failing test is known or can be identified |
|
|
53
|
+
| Run failing command | Bug is triggered by a CLI command or script |
|
|
54
|
+
| Static code path trace | Reproduction requires complex setup; use Read + Grep to trace the path |
|
|
55
|
+
|
|
56
|
+
Execution for each method:
|
|
57
|
+
|
|
58
|
+
**Run failing test**:
|
|
59
|
+
```
|
|
60
|
+
Bash: <detect test runner and run the specific failing test>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Run failing command**:
|
|
64
|
+
```
|
|
65
|
+
Bash: <execute the command that triggers the bug>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Static code path trace**:
|
|
69
|
+
- Use Grep to find the error message text in source
|
|
70
|
+
- Use Read to trace the code path that produces the error
|
|
71
|
+
- Document the theoretical reproduction path
|
|
72
|
+
|
|
73
|
+
**Decision table**:
|
|
74
|
+
|
|
75
|
+
| Outcome | Action |
|
|
76
|
+
|---------|--------|
|
|
77
|
+
| Reproduction successful | Document steps and method, proceed to Step 3 |
|
|
78
|
+
| Reproduction failed | Document what was attempted, note as concern, continue with static analysis |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Step 3: Collect Evidence
|
|
83
|
+
|
|
84
|
+
Gather all available evidence using project tools:
|
|
85
|
+
|
|
86
|
+
1. Search for the exact error message text in source files (Grep with 3 lines of context).
|
|
87
|
+
2. Search for related log output patterns.
|
|
88
|
+
3. Read any stack trace files or test output files if they exist on disk.
|
|
89
|
+
4. Use Glob to identify all files in the affected module or area.
|
|
90
|
+
5. Read the most directly implicated source files.
|
|
91
|
+
|
|
92
|
+
Compile findings into the evidence section of the investigation-report:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
evidence = {
|
|
96
|
+
error_messages: [<exact error text>],
|
|
97
|
+
stack_traces: [<relevant stack trace>],
|
|
98
|
+
affected_files: [<file1>, <file2>],
|
|
99
|
+
affected_modules: [<module-name>],
|
|
100
|
+
log_output: [<relevant log lines>]
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Step 4: Initial Diagnosis via Inline CLI Analysis
|
|
107
|
+
|
|
108
|
+
Spawn inline-cli-analysis subagent for broader diagnostic perspective:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
spawn_agent({
|
|
112
|
+
task_name: "inline-cli-analysis",
|
|
113
|
+
fork_context: false,
|
|
114
|
+
model: "haiku",
|
|
115
|
+
reasoning_effort: "medium",
|
|
116
|
+
message: `### MANDATORY FIRST STEPS
|
|
117
|
+
1. Read: ~/.codex/agents/cli-explore-agent.md
|
|
118
|
+
|
|
119
|
+
PURPOSE: Diagnose root cause of bug from collected evidence
|
|
120
|
+
TASK: Analyze error context | Trace data flow | Identify suspicious code patterns
|
|
121
|
+
MODE: analysis
|
|
122
|
+
CONTEXT: @<affected_files_from_step3> | Evidence: <error_messages_and_traces>
|
|
123
|
+
EXPECTED: Top 3 likely root causes ranked by evidence strength, each with file:line reference
|
|
124
|
+
CONSTRAINTS: Read-only analysis | Focus on <affected_module>`
|
|
125
|
+
})
|
|
126
|
+
const diagResult = wait_agent({ targets: ["inline-cli-analysis"], timeout_ms: 180000 })
|
|
127
|
+
close_agent({ target: "inline-cli-analysis" })
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Record results in initial_diagnosis section:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
initial_diagnosis = {
|
|
134
|
+
cli_tool_used: "inline-cli-analysis",
|
|
135
|
+
top_suspects: [
|
|
136
|
+
{ description: <suspect 1>, evidence_strength: "strong|moderate|weak", files: [<files>] }
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Decision table**:
|
|
142
|
+
|
|
143
|
+
| Outcome | Action |
|
|
144
|
+
|---------|--------|
|
|
145
|
+
| Subagent returns top suspects | Integrate into investigation-report, proceed to Step 5 |
|
|
146
|
+
| Subagent timeout or error | Log warning in investigation-report, proceed to Step 5 without subagent findings |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### Step 5: Assemble Investigation Report
|
|
151
|
+
|
|
152
|
+
Combine all findings into the complete Phase 1 investigation-report:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
investigation_report = {
|
|
156
|
+
phase: 1,
|
|
157
|
+
bug_description: <concise one-sentence description>,
|
|
158
|
+
reproduction: {
|
|
159
|
+
reproducible: true|false,
|
|
160
|
+
steps: ["step 1: ...", "step 2: ...", "step 3: observe error"],
|
|
161
|
+
reproduction_method: "test|command|static_analysis"
|
|
162
|
+
},
|
|
163
|
+
evidence: {
|
|
164
|
+
error_messages: [<exact error text>],
|
|
165
|
+
stack_traces: [<relevant stack trace>],
|
|
166
|
+
affected_files: [<file1>, <file2>],
|
|
167
|
+
affected_modules: [<module-name>],
|
|
168
|
+
log_output: [<relevant log lines>]
|
|
169
|
+
},
|
|
170
|
+
initial_diagnosis: {
|
|
171
|
+
cli_tool_used: "inline-cli-analysis",
|
|
172
|
+
top_suspects: [
|
|
173
|
+
{ description: <suspect>, evidence_strength: "strong|moderate|weak", files: [] }
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Output Phase 1 summary and await assign_task for Phase 2.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Output
|
|
184
|
+
|
|
185
|
+
| Artifact | Format | Description |
|
|
186
|
+
|----------|--------|-------------|
|
|
187
|
+
| investigation-report (phase 1) | In-memory JSON | bug_description, reproduction, evidence, initial_diagnosis |
|
|
188
|
+
| Phase 1 summary | Structured text output | Summary for orchestrator, await Phase 2 assignment |
|
|
189
|
+
|
|
190
|
+
## Success Criteria
|
|
191
|
+
|
|
192
|
+
| Criterion | Validation Method |
|
|
193
|
+
|-----------|-------------------|
|
|
194
|
+
| Bug symptom clearly documented | bug_description field populated with 10+ chars |
|
|
195
|
+
| Reproduction attempted | reproduction.reproducible is true or failure documented |
|
|
196
|
+
| At least one concrete evidence item collected | evidence.error_messages OR stack_traces OR affected_files non-empty |
|
|
197
|
+
| Affected files identified | evidence.affected_files non-empty |
|
|
198
|
+
| Initial diagnosis generated | initial_diagnosis.top_suspects has at least one entry (or timeout documented) |
|
|
199
|
+
|
|
200
|
+
## Error Handling
|
|
201
|
+
|
|
202
|
+
| Scenario | Resolution |
|
|
203
|
+
|----------|------------|
|
|
204
|
+
| Cannot reproduce bug | Document what was attempted, set reproducible: false, continue with static analysis |
|
|
205
|
+
| Error message not found in source | Expand search to whole project, try related terms, continue |
|
|
206
|
+
| No affected files identifiable | Use Glob on broad patterns, document uncertainty |
|
|
207
|
+
| inline-cli-analysis timeout | Continue without subagent result, log warning in initial_diagnosis |
|
|
208
|
+
| User description insufficient | Document in Open Questions, proceed with available information |
|
|
209
|
+
|
|
210
|
+
## Next Phase
|
|
211
|
+
|
|
212
|
+
-> [Phase 2: Pattern Analysis](02-pattern-analysis.md)
|