From claude-code-debugger
This skill should be used when the user asks to "debug this", "fix this bug", "why is this failing", "investigate error", "getting an error", "exception thrown", "crash", "not working", "what's causing this", "root cause", "diagnose this issue", or describes any software bug or error. Also activates when spawning subagents for debugging tasks, using Task tool for bug investigation, or coordinating multiple agents on a debugging problem. Provides memory-first debugging workflow that checks past incidents before investigating.
npx claudepluginhub tyroneross/claude-code-debugger --plugin claude-code-debuggerThis skill uses the workspace's default tool permissions.
This skill integrates the claude-code-debugger memory system into debugging workflows. The core principle: **never solve the same bug twice**.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
This skill integrates the claude-code-debugger memory system into debugging workflows. The core principle: never solve the same bug twice.
Before investigating any bug, always check the debugging memory using the debugger search MCP tool:
Use the debugger search tool with the symptom description.
The search returns a verdict with matching incidents and patterns.
Verdict-based decision tree:
Results are returned as compact summaries. Drill into matches on demand:
search MCP tool — returns verdict + compact matchesdetail MCP tool with the ID to load full incident/pattern dataoutcome MCP tool to record whether the fix worked, failed, or was modifiedWhen this skill activates, always announce it to the user:
This ensures users know the debugger is active and working.
When no past solution applies, follow this systematic approach.
For non-trivial issues, load the debug-loop skill instead of the basic steps below. The trigger is the verdict category from memory search, not a numeric confidence score:
KNOWN_FIX → apply the fix directly, skip the loopLIKELY_MATCH → enter debug loop (past incidents exist but need verification against current context)WEAK_SIGNAL → enter debug loop (loosely related, needs fresh investigation)NO_MATCH → enter debug loop (no prior knowledge, full investigation needed)Also enter the debug loop when:
The debug loop provides: causal tree investigation, hypothesis testing, iterative fix-verify-score cycles (up to 5x), fix critique before declaring done, and transparent ✅/⚠️/❓ reporting.
For straightforward bugs where the cause is immediately apparent, use these steps directly:
Establish a reliable reproduction path:
Narrow down the problem space:
Find the root cause:
Implement the solution:
Confirm the fix works:
After fixing a bug, use the debugger store MCP tool to document it for future retrieval.
The store tool accepts:
Claude Code can also directly write incident files to .claude/memory/incidents/ using the Write tool.
Step 1: Generate incident ID
INC_YYYYMMDD_HHMMSS_xxxx
Where xxxx is 4 random alphanumeric characters. Example: INC_20241231_143052_a7b2
Step 2: Write JSON file
.claude/memory/incidents/INC_20241231_143052_a7b2.json
Minimal incident structure:
{
"incident_id": "INC_20241231_143052_a7b2",
"timestamp": 1735654252000,
"symptom": "User-facing description of the bug",
"root_cause": {
"description": "Technical explanation of why the bug occurred",
"file": "path/to/problematic/file.ts",
"category": "logic|config|dependency|performance|react-hooks",
"confidence": 0.85
},
"fix": {
"approach": "What was done to fix it",
"changes": [
{
"file": "path/to/file.ts",
"lines_changed": 10,
"change_type": "modify|add|delete",
"summary": "Brief description of change"
}
]
},
"verification": {
"status": "verified|unverified",
"regression_tests_passed": true,
"success_criteria_met": true
},
"tags": ["relevant", "keywords", "for", "search"],
"files_changed": ["list/of/all/files.ts"],
"quality_score": 0.75
}
Step 3: Ensure directory exists Before writing, create the directory if needed:
mkdir -p .claude/memory/incidents
The memory system scores incidents on:
Target 75%+ quality score for effective future retrieval.
Apply descriptive tags for better searchability:
react, typescript, api, databaselogic, config, dependency, performancecrash, render, timeout, validationWhen the memory system finds a match:
The memory system automatically extracts patterns when 3+ similar incidents exist. Patterns represent reusable solutions with higher reliability than individual incidents.
When a pattern matches:
| Tool | Purpose |
|---|---|
search | Search memory for similar bugs (returns verdict) |
store | Store a new debugging incident |
detail | Get full details of an incident or pattern |
status | Show memory statistics |
list | List recent incidents |
patterns | List known fix patterns |
outcome | Record whether a fix worked |
For complex issues that may span multiple areas (database, frontend, API, performance), use parallel assessment to diagnose all domains simultaneously.
Four specialized assessor agents are available:
| Assessor | Expertise |
|---|---|
database-assessor | Prisma, PostgreSQL, queries, migrations, connection issues |
frontend-assessor | React, hooks, rendering, state, hydration, SSR |
api-assessor | Endpoints, REST/GraphQL, auth, middleware, CORS |
performance-assessor | Latency, memory, CPU, bottlenecks, optimization |
Launch assessors in parallel using the Task tool:
For: "search is slow and returns wrong results"
Launch simultaneously:
- database-assessor (query performance)
- api-assessor (endpoint correctness)
- performance-assessor (latency analysis)
Each assessor returns a JSON assessment with:
confidence: 0-1 scoreprobable_causes: List of likely issuesrecommended_actions: Steps to fixrelated_incidents: Past memory matches| Domain | Trigger Keywords |
|---|---|
| Database | query, schema, migration, prisma, sql, connection, constraint, index |
| Frontend | react, hook, useEffect, render, component, state, hydration, browser |
| API | endpoint, route, request, response, auth, 500, 404, cors, middleware |
| Performance | slow, latency, timeout, memory, leak, cpu, bottleneck, optimization |
After parallel assessments complete:
The debugger can ingest traces from multiple sources to aid diagnosis:
When traces are available:
Traces are summarized to minimize token usage while preserving key diagnostic information.
The memory system uses tiered retrieval to minimize context size:
| Tier | Token Usage | Content |
|---|---|---|
| Summary | ~100 tokens | ID, symptom preview, category |
| Compact | ~200 tokens | Short keys, essential fields |
| Full | ~550 tokens | Complete incident details |
Default budget: 2500 tokens
The system automatically selects the appropriate tier based on available budget.
When debugging involves subagents (your own or from other plugins), follow these guidelines to ensure debugging memory is utilized.
Before spawning debugging-related subagents:
search MCP toolExample subagent prompt with debugging context:
Investigate the database timeout issue.
DEBUGGING MEMORY CONTEXT:
- Found 2 similar incidents: INC_20241215_db_timeout, INC_20241201_pool_exhaust
- Pattern PTN_connection_pool suggests checking pool size and idle timeout
- Previous fix: Increased pool size from 10 to 25 in DATABASE_URL
Start your investigation considering this prior knowledge.
Inform the user when debugging memory cannot be used with subagents:
External MCP tools: "Note: The debugging subagent is using external MCP tools that cannot access local debugging memory. I searched memory beforehand and found [X matching incidents / no matches]."
Third-party agents: "Note: This third-party debugging agent doesn't have access to your project's debugging memory. Consider searching debugging memory first to check for similar past issues."
Sandboxed environments: "Note: The subagent runs in a sandboxed environment without access to debugging memory. I've pre-loaded relevant context from [X] matching incidents."
When using parallel assessment or multiple debugging subagents:
search MCP tool before spawning agentsstore MCP tool to document the combined diagnosissearch tool before investigating any bugstore tool after resolving bugsoutcome tool to improve future verdicts