skills-src/debug/SKILL.md
Bug investigation and fix workflow. Triggers: 'debug', 'fix bug', 'investigate issue', 'something is broken', or /debug. Hotfix track for quick fixes, thorough track for root cause analysis. Do NOT use for feature development or refactoring. Do NOT escalate to /ideate unless the fix requires architectural redesign.
npx skillsauth add lvlup-sw/exarchos debugInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Investigation-first workflow for debugging and regression fixes. Provides two tracks based on urgency: hotfix (fast, minimal ceremony) and thorough (rigorous, full RCA documentation).
Activate this skill when:
{{COMMAND_PREFIX}}debug commandDisambiguation: If the user says "fix" or "clean up" — use {{COMMAND_PREFIX}}debug when something is broken (error, crash, wrong behavior). Use {{COMMAND_PREFIX}}refactor when the code works but needs structural improvement.
{{COMMAND_PREFIX}}debug
│
┌────┴────┐
│ Triage │
└────┬────┘
│
┌─────────────────┼─────────────────┐
│ │ │
--hotfix (default) --escalate
│ │ │
▼ ▼ ▼
┌────────────────┐ ┌─────────────┐ ┌──────────┐
│ Hotfix Track │ │ Thorough │ │ {{COMMAND_PREFIX}}ideate │
│ │ │ Track │ │ handoff │
└────────────────┘ └─────────────┘ └──────────┘
# Default: thorough track
{{COMMAND_PREFIX}}debug "Description of the bug"
# Fast path: hotfix track
{{COMMAND_PREFIX}}debug --hotfix "Production is down - users can't login"
# Escalate to feature workflow
{{COMMAND_PREFIX}}debug --escalate "This needs architectural changes"
# Switch from hotfix to thorough (during investigation)
{{COMMAND_PREFIX}}debug --switch-thorough
# Escalate to {{COMMAND_PREFIX}}ideate (manual handoff)
{{COMMAND_PREFIX}}debug --escalate "Reason for escalation"
# Resume after context compaction
{{COMMAND_PREFIX}}rehydrate <featureId>
| Aspect | Hotfix | Thorough | |--------|--------|----------| | Urgency | P0 (production down) | P1/P2 (normal priority) | | Investigation | 15 min time-boxed | No time limit | | RCA Document | No (minimal in state) | Yes (full docs/rca/) | | Worktree | No (in-place fix) | Yes (isolated) | | Review | Smoke test only | Spec review | | Human Checkpoints | 1 (merge) | 1 (merge) |
For track-selection criteria at the triage phase, query the decision runbook:
exarchos_orchestrate({ action: "runbook", id: "triage-decision" })
For investigation escalation criteria, query:
exarchos_orchestrate({ action: "runbook", id: "investigation-decision" })
These runbooks encode the structured decision trees for track selection. The agent reads the decision tree and follows the guidance — the platform does not execute branches.
Fix production issues ASAP. Speed over ceremony.
HSM phases: triage → investigate (15 min max) → hotfix-implement (no worktree) → hotfix-validate → completed
See references/triage-questions.md for triage guidance.
investigation.startedAt in stateinvestigation.timeout event, pause for user confirmation
For detailed phase instructions, see references/hotfix-track.md.
Fix bugs with proper rigor. Full RCA documentation.
HSM phases: triage → investigate → rca → design → debug-implement (worktree + TDD) → debug-validate → debug-review → synthesize → completed
For detailed phase instructions, see references/thorough-track.md. For systematic investigation methodology, see references/investigation-checklist.md.
The rca and design phases are the thorough track's design-time surfaces. At these phases — before committing to a fix approach — surface a Constraints section anchored to the architectural invariants relevant to the fix. This is the debug design-time equivalent of /ideate's Phase 0 and uses the same single shared source of truth for the selection rules and devCatalog gating: see @skills/brainstorming/references/constraint-anchoring.md. Load .exarchos/invariants.md (cost-of-load: always-load entries) and emit the Constraints section. devCatalog-gated: when .exarchos.yml: invariants.devCatalog: enabled is unset or disabled, surface no Constraints section and proceed directly. The hotfix track skips this step (speed over ceremony).
Before fixing a bug in the thorough track, capture the buggy behavior as a characterization test:
This is not required for the hotfix track — hotfixes prioritize speed over documentation.
{{COMMAND_PREFIX}}ideate.For detailed switching logic, see references/thorough-track.md.
Both tracks have ONE human checkpoint before completion.
Hotfix auto-chain:
triage → investigate → hotfix-implement → [HUMAN: hotfix-validate] → completed
(auto) (auto)
Thorough auto-chain:
triage → investigate → rca → design → debug-implement → debug-validate → debug-review → [HUMAN: synthesize] → completed
(auto) (auto) (auto) (auto) (auto) (auto)
Initialize debug workflow:
action: "init", featureId: "debug-<issue-slug>", workflowType: "debug"
See @skills/debug/references/state-schema.md for full schema.
Every phase transition has a guard that must be satisfied. Before transitioning, consult @skills/workflow-state/references/phase-transitions.md for the exact prerequisite for each guard.
Use exarchos_workflow({ action: "describe", actions: ["update", "init"] }) for
parameter schemas and exarchos_workflow({ action: "describe", playbook: "debug" })
for phase transitions, guards, and playbook guidance.
Debug workflows resume like feature workflows:
{{COMMAND_PREFIX}}rehydrate <featureId>
Extended to support:
workflowType: "debug" field{{COMMAND_PREFIX}}rehydrate <featureId> (the rehydration document's next_actions envelope determines the next verb on resume){{COMMAND_PREFIX}}rehydrate <featureId> at session start (no implicit hook)Completion guard shapes — set these via exarchos_workflow update before transitioning to completed:
| Exit path | Guard | Required state |
|-----------|-------|----------------|
| Direct push (no PR) | fix-verified-directly | resolution: { directPush: true, commitSha: "<sha>" } |
| Validation passed | validation-passed | validation: { passed: true } |
| Via PR | Through synthesize → completed | prUrl must exist |
references/rca-template.md)Completion guard shapes — the thorough track exits through synthesize → completed (guard: pr-url-exists, requires prUrl in state).
| Don't | Do Instead | |-------|------------| | Start coding before understanding bug | Investigate first, always | | Skip RCA on thorough track | Document for future learning | | Exceed 15 min on hotfix investigation | Switch to thorough track | | Add features during bug fix | Scope creep - only fix the bug | | Skip tests because "it's just a fix" | Fixes need tests to prevent regression |
See references/troubleshooting.md for MCP tool failures, state desync, investigation timeouts, and track switching issues.
tools
Land a subagent worktree branch onto an integration branch with preflight + recorded rollback. Triggers: operator (or `next_actions`) surfaces verb `merge_orchestrate` via Exarchos MCP. Local git operation — NOT remote PR merging (that is `merge_pr`).
tools
Land a subagent worktree branch onto an integration branch with preflight + recorded rollback. Triggers: operator (or `next_actions`) surfaces verb `merge_orchestrate` via Exarchos MCP. Local git operation — NOT remote PR merging (that is `merge_pr`).
tools
Land a subagent worktree branch onto an integration branch with preflight + recorded rollback. Triggers: operator (or `next_actions`) surfaces verb `merge_orchestrate` via Exarchos MCP. Local git operation — NOT remote PR merging (that is `merge_pr`).
tools
Land a subagent worktree branch onto an integration branch with preflight + recorded rollback. Triggers: operator (or `next_actions`) surfaces verb `merge_orchestrate` via Exarchos MCP. Local git operation — NOT remote PR merging (that is `merge_pr`).