systematic-debugging
Apply systematic debugging for any bug
๋ํ ๋ค์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค: Cycleaddict,DMJGilbert,Doyajin174,obra,Asmayaseen,DYAI2025,ChrisWiles,davila7,CodingCossack
Random fixes waste time and create new bugs. This skill provides a four-phase methodology to find root cause before attempting any fix. It prevents symptom-level patching and ensures lasting solutions.
์คํฌ ZIP ๋ค์ด๋ก๋
Claude์์ ์ ๋ก๋
์ค์ โ ๊ธฐ๋ฅ โ ์คํฌ โ ์คํฌ ์ ๋ก๋๋ก ์ด๋
ํ ๊ธ์ ์ผ๊ณ ์ฌ์ฉ ์์
ํ ์คํธํด ๋ณด๊ธฐ
"systematic-debugging" ์ฌ์ฉ ์ค์ ๋๋ค. Test fails with 'Expected status completed but received pending'
์์ ๊ฒฐ๊ณผ:
- Phase 1 - Root Cause: Trace when status gets set versus when we check it
- Phase 2 - Pattern: Find working tests that verify status updates
- Phase 3 - Hypothesis: Perhaps async operation not awaited before assertion
- Phase 4 - Implementation: Add waitFor condition to detect actual state change
"systematic-debugging" ์ฌ์ฉ ์ค์ ๋๋ค. File created in wrong directory during tests
์์ ๊ฒฐ๊ณผ:
- Phase 1 - Root Cause: Use find-polluter.sh to identify which test creates the file
- Phase 2 - Pattern: Compare with tests that run clean
- Phase 3 - Hypothesis: Empty path variable resolves to cwd
- Phase 4 - Implementation: Add validation layer that refuses operation outside tmpdir
"systematic-debugging" ์ฌ์ฉ ์ค์ ๋๋ค. Environment secrets not reaching build layer
์์ ๊ฒฐ๊ณผ:
- Phase 1 - Evidence: Log env vars at each layer (workflow, build, signing)
- Phase 2 - Pattern: Find where propagation breaks down
- Phase 3 - Hypothesis: Layer transition strips environment
- Phase 4 - Implementation: Add defense-in-depth check at each layer boundary
๋ณด์ ๊ฐ์ฌ
์์ This is a legitimate debugging methodology skill containing only documentation and code examples. All 138 static findings are FALSE POSITIVES. The flagged patterns are markdown documentation showing example debugging commands, shell variable expansion, environment checks, and standard filesystem operations - all used for legitimate debugging documentation purposes. No malicious code or intent present.
์ํ ์์ธ
โก ์คํฌ๋ฆฝํธ ํฌํจ (1)
๐ ํ์ผ ์์คํ ์ก์ธ์ค (1)
ํ์ง ์ ์
๋ง๋ค ์ ์๋ ๊ฒ
Fix test failures properly
Stop adding sleep statements. Trace why tests fail at the source for permanent fixes.
Avoid symptom-level patching
Follow documented process instead of guessing fixes when encountering unexpected behavior.
Trace complex call stacks
Find where invalid data originates in multi-component systems with proven tracing techniques.
์ด ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์
Load skills/debugging/systematic-debugging and help me investigate this test failure. The test expects X but received Y.
Use the root cause tracing technique to trace this bug backward through the call chain. The error appears at line N.
Apply the condition-based waiting pattern to replace arbitrary timeouts in this test file.
Check my work against the systematic debugging process. Have I actually found the root cause?
๋ชจ๋ฒ ์ฌ๋ก
- Always complete Phase 1 (root cause) before proposing any fix, even under time pressure
- Trace backward through the call chain to find where bad data originated, not where it manifests
- Add validation at every layer data passes through to make bugs structurally impossible
ํผํ๊ธฐ
- Adding sleep statements instead of waiting for actual conditions
- Fixing where the error appears instead of tracing to the source
- Proposing multiple fixes at once to 'get more coverage'
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Can I skip to the fix if the issue seems obvious?
What if I do not understand the codebase well enough to trace root cause?
How do I handle production emergencies with this skill?
When should I use condition-based waiting?
What if three fixes have already failed?
How is this different from test-driven development?
๊ฐ๋ฐ์ ์ธ๋ถ ์ ๋ณด
ํ์ผ ๊ตฌ์กฐ
๐ condition-based-waiting-example.ts
๐ condition-based-waiting.md
๐ CREATION-LOG.md
๐ defense-in-depth.md
๐ find-polluter.sh
๐ SKILL.md
๐ test-academic.md
๐ test-pressure-1.md
๐ test-pressure-2.md
๐ test-pressure-3.md