systematic-debugging
Use when diagnosing a bug, failing check, unexpected behavior, or production incident before changing code. Do NOT use for known mechanical edits without a failure.
- License 许可
- MIT
- 最近更新
- 2026-10-14
- Stars
- ★ 16
- Forks
- 5
01 前言 Front Matter
- name
- systematic-debugging
- version
- 6.2.0
- category
- workflow
- description
- Use when diagnosing a bug, failing check, unexpected behavior, or production incident before changing code. Do NOT use for known mechanical edits without a failure.
02 资源文件 11
- 参考文档CHANGELOG.md311 B
- 脚本condition-based-waiting-example.ts4.9 KB
- 参考文档condition-based-waiting.md3.4 KB
- 参考文档CREATION-LOG.md4.2 KB
- 参考文档defense-in-depth.md3.6 KB
- 脚本find-polluter.sh1.9 KB
- 参考文档root-cause-tracing.md5.2 KB
- 参考文档test-academic.md653 B
- 参考文档test-pressure-1.md1.9 KB
- 参考文档test-pressure-2.md2.2 KB
- 参考文档test-pressure-3.md2.6 KB
03 SKILL.md 正文
Systematic Debugging
Find the failing boundary and root cause before implementing a fix. Scale the investigation and regression protection to the risk.
Read ../using-superpowers/references/risk-policy.md.
1. Establish Evidence
- Read the complete error and relevant logs.
- Reproduce the symptom or state why reproduction is unavailable.
- Check recent changes and environmental differences.
- Trace the bad value or state backward across component boundaries.
- Add temporary diagnostics only where evidence is missing.
Do not propose a fix from the symptom alone.
2. Form One Hypothesis
State the suspected root cause and the evidence supporting it. Make the smallest reversible experiment that distinguishes this hypothesis from the alternatives. Change one variable at a time.
If the experiment fails, update the hypothesis instead of stacking fixes.
3. Implement the Root-Cause Fix
- Keep the production change narrow.
- Remove temporary diagnostics unless they provide lasting operational value.
- Avoid unrelated refactoring.
Regression Protection
- High risk or reproduced regression: write one minimal automated regression or contract test first when practical.
- Medium risk: add a focused test only when the failure would otherwise be hard to notice again.
- Low risk or impractical automation: use a reproducible smoke check.
Do not create a test for every helper touched by the fix.
4. Verify the Boundary
Run the original reproduction and the closest affected checks. Run the full suite only for shared core changes, a release boundary, or an explicit request.
After 3 failed fix hypotheses, stop and reassess the architecture or missing evidence with the user. Do not start a blind fourth attempt.
Supporting Techniques
root-cause-tracing.mddefense-in-depth.mdcondition-based-waiting.md
04 同仓库更多 Skills
bad
暂无简介
writing-skills
Use when creating, editing, or validating reusable agent skills and their trigger behavior. Do NOT use for ordinary project documentation or one-off prompts.
writing-plans
Use when an approved change spans multiple dependent outcomes and needs a durable implementation sequence before coding. Do NOT use for small, obvious, reversible edits.
verification-before-completion
Use when about to claim work is complete, fixed, passing, or ready to integrate. Do NOT use to repeat checks without a completion claim or concrete doubt.
using-superpowers
Use when starting a conversation or deciding whether a Superpowers workflow matches the current task. Do NOT use it to auto-invoke skills whose stated triggers do not match.
using-git-worktrees
Use when feature work needs isolation from the current workspace or before executing a risky implementation plan. Do NOT use when the current workspace is already safe and isolated.