Skip to content
Back to skills

Systematic Debugging

ASecurity

Use when diagnosing broken, incorrect, flaky, slow, or resource-heavy behavior, or checking a claimed root cause. Require causal evidence before confirmation; skip routine implementation without a defect.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsdebuggingapidatabaseperformance

Works with

  • api

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add adtn0810/truestack --skill systematic-debugging --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Systematic Debugging?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Systematic Debugging
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adtn0810-systematic-debugging/badge)](https://www.skillsdirectory.com/skills/adtn0810-systematic-debugging)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: systematic-debugging
description: Use when diagnosing broken, incorrect, flaky, slow, or resource-heavy behavior, or checking a claimed root cause. Require causal evidence before confirmation; skip routine implementation without a defect.
---

# Systematic debugging

Find the failing mechanism before changing it. Preserve the smallest useful reproduction, the observed result, the expected result, and the relevant environment or version. If a production issue cannot reproduce locally, collect bounded evidence from the affected path using existing authorized read access.

Trace the failing input through the code and component boundaries. Check recent changes, logs, exceptions, configuration, dependency versions, and stored state only as the evidence requires. Distinguish an observed fact from an explanation. An error message identifies where failure surfaced; it does not automatically identify its cause.

Form a testable hypothesis and choose a probe that can separate it from plausible alternatives. Change one meaningful variable at a time. Prefer inspecting an invariant, reproducing a boundary case, or tracing a request over speculative edits. Keep temporary diagnostics narrow, redact sensitive data, and remove them when no longer useful.

## Evidence before a diagnosis

Use explicit certainty labels: **observed symptom**, **suspected cause**, or **confirmed cause for a stated scope**. Do not announce “root cause found” merely because code looks wrong, a log correlates with the failure, or another agent sounds confident. A real defect in an unused path can be unrelated to the reported incident.

Before confirming, establish the reported failure, connect the proposed mechanism to the executed path and relevant input/state, and obtain a discriminating result. A controlled failure-before/fix-after reproduction with a matching trace or code path is strong evidence; so is decisive captured execution evidence when reproduction is unavailable. A passing suite, a workaround, or disappearance after several simultaneous changes does not by itself establish causality. If the evidence does not distinguish plausible causes, retain the hypothesis label and continue investigating within authorization.

Provide the proof with the diagnosis, without waiting to be asked: the observed failure, source/trace location, and probe or test result that supports the causal link. State the scope proved. A local reproducer does not automatically establish production attribution; that needs matching incident conditions/version evidence. Do not perform unauthorized production writes to obtain proof.

Preserve the certainty label and raw evidence in handoffs. If later evidence disproves a diagnosis, retract it explicitly and update the explanation; do not replace one unsupported confident claim with another. These rules gate claims, not progress: investigation and clearly labelled mitigation can continue while the cause is uncertain.

After two failed fixes for the same symptom, stop patching and revisit the model with fresh evidence or an independent investigation. Changing the patch does not reset the count. Do not repeat an identical unsuccessful attempt, mask an exception, loosen an assertion, or add arbitrary sleeps merely to make the signal disappear.

## Performance mode

Define the metric, workload, data size, concurrency, and environment that represent the complaint. Capture a comparable baseline. Use a profiler, trace, query plan, allocation/connection evidence, or browser timing to locate the actual bottleneck. Check query count and cardinality before adding indexes or caches. Apply one justified change, then remeasure under comparable conditions and confirm correctness. Report absolute measurements and conditions; separate measured improvement from expected production benefit.

## Fix and close

Choose the smallest fix that removes the cause while preserving unrelated behavior. Reproduce the original failure after the fix and add a meaningful regression guard when it protects a likely recurrence. Use test-verify for repository checks and database-api-evolution when the remedy changes persisted state or an API contract.

Conclude with the cause, evidence, changed behavior, and verification. If the cause remains uncertain, label the hypothesis and the next discriminating check. A workaround may be useful, but report its limits and remaining investigation honestly.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…