/ca-debug
Investigate-then-decide root-cause analysis for a defect whose cause is unknown. No code changes — exits to $ca-fix, $ca-adr, or a no-action close.
$ npx -y skills add arbiterForge/codeArbiter --skill ca-debug --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/ca-debug
Context preview
The summary Claude sees to decide when to auto-load this skill.
Investigate-then-decide root-cause analysis for a defect whose cause is unknown. No code changes — exits to $ca-fix, $ca-adr, or a no-action close.
SKILL.md
ca-debug.SKILL.mdname: ca-debug
description: Investigate-then-decide root-cause analysis for a defect whose cause is unknown. No code changes — exits to $ca-fix, $ca-adr, or a no-action close.
argument-hint: "<observed symptom>"
$ca-debug — root-cause investigation
Investigates a defect, anomaly, or unexpected behavior whose cause is not yet known. Separates investigation from implementation: no code is modified while debugging. Describe the symptom with enough fidelity that another operator could reproduce it — observed behavior, reproduction steps (or intermittent-trigger profile), and environment. Vague descriptions ("it's flaky") are rejected; the orchestrator asks for clarification before routing.
If the cause is already known and a regression test is already named, invoke `$ca-fix` directly.
Routes to
The `debug` skill (`${CLAUDE_PLUGIN_ROOT}/routines/debug/SKILL.md`) — five gated phases: symptom capture, hypothesis generation, evidence gathering, root-cause decision, handoff. Phase 4 forces one named exit:
- **(a) Confirmed bug → `$ca-fix`**, carrying the confirmed bug statement, cited evidence, and a named
regression test obligation tied to the minimal repro.
- **(b) Behavior/design ambiguity → `$ca-adr`**, with the ambiguity statement and evidence ledger,
authored only with explicit user attribution.
- **(c) No-action close** — symptom and rationale appended to
`<project-root>/.codearbiter/open-tasks.md`.
A real finding that is out of scope for those exits is marked inline `[NEEDS-TRIAGE]` and the investigation continues.
When NOT to use
- Known bug with a named regression test → `$ca-fix` directly.
- Design discussion with no failing behavior → `$ca-adr`.
- New feature → `$ca-feature`.
- A general "why does it behave this way" question with no defect → `$ca-btw`.
- Re-entry from inside `$ca-fix` or `$ca-adr` → exit that command first (routing-cycle prevention).
Hard gate
MUST NOT modify any code during Phases 1–5 — code changes belong to `$ca-fix`. MUST exit Phase 4 with exactly one of (a)/(b)/(c). Exit (a) MUST carry a regression test obligation. Exit (b) MUST obtain user attribution before any `$ca-adr`. MUST NOT promote INCONCLUSIVE evidence to CONFIRMED without a cited source.
Read more
name: ca-debug description: Investigate-then-decide root-cause analysis for a defect whose cause is unknown. No code changes — exits to $ca-fix, $ca-adr, or a no-action close. argument-hint: "<observed symptom>"
$ca-debug — root-cause investigation
Investigates a defect, anomaly, or unexpected behavior whose cause is not yet known. Separates investigation from implementation: no code is modified while debugging. Describe the symptom with enough fidelity that another operator could reproduce it — observed behavior, reproduction steps (or intermittent-trigger profile), and environment. Vague descriptions ("it's flaky") are rejected; the orchestrator asks for clarification before routing.
If the cause is already known and a regression test is already named, invoke `$ca-fix` directly.
Routes to
The `debug` skill (`${CLAUDE_PLUGIN_ROOT}/routines/debug/SKILL.md`) — five gated phases: symptom capture, hypothesis generation, evidence gathering, root-cause decision, handoff. Phase 4 forces one named exit:
- **(a) Confirmed bug → `$ca-fix`**, carrying the confirmed bug statement, cited evidence, and a named
regression test obligation tied to the minimal repro.
- **(b) Behavior/design ambiguity → `$ca-adr`**, with the ambiguity statement and evidence ledger,
authored only with explicit user attribution.
- **(c) No-action close** — symptom and rationale appended to
`<project-root>/.codearbiter/open-tasks.md`.
A real finding that is out of scope for those exits is marked inline `[NEEDS-TRIAGE]` and the investigation continues.
When NOT to use
- Known bug with a named regression test → `$ca-fix` directly.
- Design discussion with no failing behavior → `$ca-adr`.
- New feature → `$ca-feature`.
- A general "why does it behave this way" question with no defect → `$ca-btw`.
- Re-entry from inside `$ca-fix` or `$ca-adr` → exit that command first (routing-cycle prevention).
Hard gate
MUST NOT modify any code during Phases 1–5 — code changes belong to `$ca-fix`. MUST exit Phase 4 with exactly one of (a)/(b)/(c). Exit (a) MUST carry a regression test obligation. Exit (b) MUST obtain user attribution before any `$ca-adr`. MUST NOT promote INCONCLUSIVE evidence to CONFIRMED without a cited source.
When you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
Other skills on codearbiter.
- /brainstorming
The Socratic spec-refinement front of /feature, and the planning front of /sprint. Routed to BEFORE any code — it takes a one-line idea and drives it to an approved, concrete spec with testable acceptance criteria. Four gated phases — frame, refine, write, approve. No
Open skill - /commit-gate
The only path to a commit. Routed to when the user invokes /commit or otherwise instructs codeArbiter to persist staged changes. Nine gated phases — permission, branch, classification, verification (test/lint/secrets), behavioral proof, diff review, selective stage, message,
Open skill - /context-check
Optional manual drift audit — report stale provenance-tracked docs (via _provenancelib drift detection across .codearbiter/.provenance/), then per stale doc offer re-scout / re-baseline / defer. Not the daily loop; commit-gate auto-heal owns routine maintenance.
Open skill - /context-creation
The brownfield back-fill. Routed to by /create-context, and by startup when .codearbiter/CONTEXT.md lacks the <!--INITIALIZED--> body marker but source code exists. Six gated phases — pre-flight, scout dispatch, synthesis, gap interview, write, lock. Reads the existing codebase
Open skill - /crypto-compliance
The banned-primitive gate. Routed to when changed code hashes, signs, encrypts, derives keys, generates security-relevant randomness, configures TLS, or imports a crypto library. Rejects broken primitives, disabled TLS verification, and home-rolled crypto; the approved-primitive
Open skill - /debug
Investigate-then-decide root-cause analysis for a defect whose cause is unknown (distinct from /fix, which assumes a known bug). Five gated phases: capture, hypothesize, gather, decide, hand off. Investigation only, no code changes; exits to /fix, /adr, or a no-action close.
Open skill

