Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Diagnose Kandev bugs, running-instance issues, UI/browser failures, and runtime behavior. Use when the user reports unexpected behavior, asks to investigate, asks to add logs/instrumentation, or when a fix needs root-cause evidence before implementing. Triage first, gather evidence safely, then hand off to /fix for code changes.
.claude/skills/kdlbs-debug/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 50% | 0% |
Diagnose efficiently and safely. Debugging produces evidence and a root-cause hypothesis; /fix turns that into a regression-tested patch.
Perform triage, evidence gathering, and diagnosis directly in the primary conversation. Keep production edits out of the diagnostic phase, then proceed through /fix when code changes are needed.
Create a visible task list:
/fix when code changes are neededPick one path before launching anything:
| Class | Signals | Reference | |---|---|---| | Backend logic | validation, dedup, data shaping, workflow routing, API/service behavior | references/backend-repro.md | | Live instance | user has a running instance already misbehaving and you need read-only state/logs | references/instance.md | | UI/browser | layout, focus, click flow, WS-driven UI, console/network behavior | references/browser.md plus references/instance.md | | Needs logs | current evidence is insufficient and instrumentation is needed | references/instrumentation.md |
Rules:
pkill kandev.Start with the cheapest faithful reproduction:
/fix.get_diagnostic_bundle_kandev with backend, frontend, or all; inspect manifest.json before assuming a source is complete.scripts/kandev-logs <port> --source backend|frontend|all; do not relaunch. Set KANDEV_API_TOKEN only when authentication is enabled.scripts/dev-isolated --web, drivepnpm --dir apps exec playwright-cli, and correlate console/network state with a fresh all-source bundle.
Start with the retained backend files before asking for a broad export. Each Kandev home has logs/backend-logs.log plus the two preceding UTC daily files (backend-logs-YYYY-MM-DD.log). The active file appends across same-day restarts and each daily file is bounded, so search the exact files rather than loading an entire log into memory:
bashrg --fixed-strings '<task-id>' '<home>/logs' -g 'backend-logs*.log' rg --fixed-strings '<session-id>' '<home>/logs' -g 'backend-logs*.log'
Prefer a task ID, session ID, or exact route/error string. Add a bounded time window only after the exact search; do not use a broad rg over the whole home directory because task workspaces and ACP files can contain unrelated private content. A zero-match task search is inconclusive when the event is an install-wide startup/API event.
Request only the needed bundle sources. Standard bundles contain backend and frontend diagnostic events; a custom bundle can add the allow-listed runtime index. These sources do not read stored chat transcripts, session messages, or agent messages. If the maintainer explicitly needs agent protocol evidence, use the debug-only ACP source and select the exact authorized sessions; ACP raw/normalized frames may contain prompts, responses, tool calls, file/MCP data, environment-derived values, and secrets. Always inspect manifest.json and its warnings before assuming a source is complete, and grep task/session IDs inside the extracted ZIP before broadening to route text or timestamps.
Cancellation intent is separate from event serialization: A generic per-session event-serialization mutex only orders work; it is not evidence that cancellation was requested. Model cancellation intent with separate state or a refcount, and mark it only around real cancellation operations. During concurrency debugging, inspect that state independently before attributing a queued or dropped event to cancellation.
Provider diagnostics: Raw agent stderr may contain URLs, IDs, subscription details, or other sensitive runtime data. Inspect it only in memory, sanitize it before writing to generic logs, ring buffers, process-exit errors, persistence, or the UI, and ensure bounded diagnostic consumers cannot block subprocess stderr draining.
Load only the reference needed for the selected path:
references/backend-repro.md - targeted Go repro tests and backend-first debugging.references/instance.md - instance discovery, isolated launch, logs/export, and teardown.references/browser.md - workspace-pinned playwright-cli browser debugging against isolated instances.references/instrumentation.md - temporary vs persistent frontend/backend logging rules.Use references/instrumentation.md before adding:
console.loglogger.Warn("[DEBUG] ...")createDebugLogger(...)logger.Debug / logger.Info for persistent diagnosisTemporary logs must be stripped before /commit or /pr. Persistent instrumentation stays only when it has ongoing diagnostic value.
When you can state:
then stop debugging and proceed through /fix in the same primary conversation.
Report:
Other measured skills in the registry, with their headline benchmark lift.