在开始新功能或项目之前,通过对话明确目的、偏好和限制。根据需要用图示或原型核对理解,并按工作规模整理说明或设计文档。
- 明确新功能的目的
- 整理演讲或商业构想
- 比较界面或房间布局
通过复现步骤、日志和近期更改,调查缺陷、测试失败及异常行为的原因。按证据推进假设验证、修复和修复后的测试,逐步确认问题根源。
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
systematic-debugging 按顺序调查缺陷或测试失败的根本原因,验证假设,再进行修复和确认。它检查错误信息、复现步骤及近期更改,并整理故障代码与正常代码之间的差异。对于多个组件相连的系统,会记录各环节的输入、输出和配置,逐步缩小问题发生的位置。
适合原因不明的技术问题,例如生产环境故障、构建失败和性能问题。需要紧急修复,或多次修改仍未解决问题时,也可以用它整理调查依据,按证据继续排查。
修复前需要准备会失败的测试或复现脚本,修复后还要检查是否影响其他测试。原文引用了用于编写测试和确认完成情况的相关技能。如果修复失败达到三次或更多,会先与用户讨论设计,再继续修改。
本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。
AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。
总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月19日 评估。仅供参考,安装前请同时查看原文。
安装前可以查看交给 AI 代理的指令内容。
Core principle: ALWAYS find root cause before attempting fixes. Symptom fixes are failure.
Violating the letter of this process is violating the spirit of debugging.
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
If you haven't completed Phase 1, you cannot propose fixes.
Use for ANY technical issue:
Use this ESPECIALLY when:
Don't skip when:
You MUST complete each phase before proceeding to the next.
BEFORE attempting ANY fix:
Read Error Messages Carefully
Reproduce Consistently
Check Recent Changes
Gather Evidence in Multi-Component Systems
WHEN system has multiple components (CI → build → signing, API → service → database):
BEFORE proposing fixes, add diagnostic instrumentation:
For EACH component boundary:
- Log what data enters component
- Log what data exits component
- Verify environment/config propagation
- Check state at each layer
Run once to gather evidence showing WHERE it breaks
THEN analyze evidence to identify failing component
THEN investigate that specific component
Example (multi-layer system):
# Layer 1: Workflow
echo "=== Secrets available in workflow: ==="
echo "IDENTITY: $([ -n "${IDENTITY:-}" ] && echo SET || echo UNSET)"
# Layer 2: Build script
echo "=== Env vars in build script: ==="
printenv IDENTITY >/dev/null 2>&1 && echo "IDENTITY in environment" || echo "IDENTITY not in environment"
# Layer 3: Signing script
echo "=== Keychain state: ==="
security list-keychains
security find-identity -v
# Layer 4: Actual signing
codesign --sign "$IDENTITY" --verbose=4 "$APP"
This reveals: Which layer fails (secrets → workflow ✓, workflow → build ✗)
Trace Data Flow
WHEN error is deep in call stack:
See root-cause-tracing.md in this directory for the complete backward tracing technique.
Quick version:
Find the pattern before fixing:
Find Working Examples
Compare Against References
Identify Differences
Understand Dependencies
Scientific method:
Form Single Hypothesis
Test Minimally
Verify Before Continuing
When You Don't Know
Fix the root cause, not the symptom:
Create Failing Test Case
superpowers:test-driven-development skill for writing proper failing testsImplement Single Fix
Verify Fix
superpowers:verification-before-completion skill before claiming successIf Fix Doesn't Work
If 3+ Fixes Failed: Question Architecture
Pattern indicating architectural problem:
STOP and question fundamentals:
Discuss with your human partner before attempting more fixes
This is NOT a failed hypothesis - this is a wrong architecture.
If you catch yourself thinking:
ALL of these mean: STOP. Return to Phase 1.
If 3+ fixes failed: Question the architecture (see Phase 4.5)
Watch for these redirections:
When you see these: STOP. Return to Phase 1.
| Excuse | Reality |
|---|---|
| "Issue is simple, don't need process" | Simple issues have root causes too. Process is fast for simple bugs. |
| "Emergency, no time for process" | Systematic debugging is FASTER than guess-and-check thrashing. |
| "Just try this first, then investigate" | First fix sets the pattern. Do it right from the start. |
| "I'll write test after confirming fix works" | Untested fixes don't stick. Test first proves it. |
| "Multiple fixes at once saves time" | Can't isolate what worked. Causes new bugs. |
| "Reference too long, I'll adapt the pattern" | Partial understanding guarantees bugs. Read it completely. |
| "I see the problem, let me fix it" | Seeing symptoms ≠ understanding root cause. |
| "One more fix attempt" (after 2+ failures) | 3+ failures = architectural problem. Question pattern, don't fix again. |
| Phase | Key Activities | Success Criteria |
|---|---|---|
| 1. Root Cause | Read errors, reproduce, check changes, gather evidence | Understand WHAT and WHY |
| 2. Pattern | Find working examples, compare | Identify differences |
| 3. Hypothesis | Form theory, test minimally | Confirmed or new hypothesis |
| 4. Implementation | Create test, fix, verify | Bug resolved, tests pass |
If systematic investigation reveals issue is truly environmental, timing-dependent, or external:
But: 95% of "no root cause" cases are incomplete investigation.
These techniques are part of systematic debugging and available in this directory:
root-cause-tracing.md - Trace bugs backward through call stack to find original triggerdefense-in-depth.md - Add validation at multiple layers after finding root causecondition-based-waiting.md - Replace arbitrary timeouts with condition polling还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
在开始新功能或项目之前,通过对话明确目的、偏好和限制。根据需要用图示或原型核对理解,并按工作规模整理说明或设计文档。
读取 superpowers 会话记录,调查重复工作、偏离计划、耗时及令牌消耗。以文件路径和行号为依据整理经过,生成有证据支持的报告。
将相互独立的缺陷或测试失败分配给不同代理,并行调查和修复。明确各自范围与报告要求,再检查修改冲突、运行完整测试并整合结果。
在同一会话中逐项执行已有的实施计划,确认测试先失败后通过,记录进度与判断,并在全部任务结束后审查整个分支的更改。
在实现完成后检查全部测试,让用户选择本地合并、创建拉取请求或保留现状,并执行所选操作,再根据选择和工作环境整理分支与工作区。
将代码审查意见与实际代码、支持的运行环境及现有行为进行核对,确认建议是否合理,梳理疑问并依据技术证据回复,再逐项修改和测试。