Create symptom-based debugging documentation that matches how developers actually search for solutions
Create debugging documentation organized by observable symptoms, not root causes. Developers search by what they see, not by what's wrong.
Announce at start: "I'm using the documenting-debugging-workflows skill to create symptom-based debugging docs."
Wrong: Organize by root cause (memory-leaks/, type-errors/) Right: Organize by observable symptom (visual-bugs/, slow-startup/)
Developers don't know the root cause when they start debugging - they know what they observe.
Gather observable symptoms from:
For each symptom, note:
Group symptoms by observable category:
FIX/
āāā symptoms/
ā āāā visual-bugs/ # "Rendering looks wrong"
ā āāā performance/ # "It's slow"
ā āāā test-failures/ # "Tests fail"
ā āāā build-errors/ # "Won't compile"
ā āāā data-issues/ # "Data is wrong"
āāā investigation/
ā āāā systematic-debugging.md
āāā solutions/
āāā common-fixes.md
Choose categories based on YOUR project's common issues.
Create the entry point with a scannable table:
# [Category] Debugging Guide
## Quick Diagnosis
| Symptom | Likely Cause | Investigation | Priority |
|---------|--------------|---------------|----------|
| [What you see] | [Root cause] | [Link] | ā ļø High |
| [What you see] | [Root cause] | [Link] | ā ļø Critical |
Priority icons:
For each symptom, create structured documentation:
Use template: ${CLAUDE_PLUGIN_ROOT}templates/symptom-debugging-template.md
Document systematic approaches in investigation/:
Document known fixes in solutions/:
Document when to escalate:
Don't:
Do:
## Rendering Artifacts on Screen
### What You See
Flickering textures, z-fighting, or objects appearing through walls.
### Likely Causes
1. **Floating point precision** (most common)
- Objects far from origin
- Verify: Check object world coordinates
2. **Z-buffer precision**
- Near/far plane ratio too large
- Verify: Check camera settings
### Investigation Steps
1. [ ] Log object world coordinates
```rust
info!("Position: {:?}", transform.translation);
If > 10000 units from origin ā floating point issue
info!("Near: {}, Far: {}", camera.near, camera.far);
If ratio > 10000 ā z-buffer issueIf floating point: Implement floating origin If z-buffer: Adjust camera planes
## Related Skills
- **Organizing documentation:** `${CLAUDE_PLUGIN_ROOT}skills/organizing-documentation/SKILL.md`
- **Creating research packages:** `${CLAUDE_PLUGIN_ROOT}skills/creating-research-packages/SKILL.md`
- **Creating quality gates:** `${CLAUDE_PLUGIN_ROOT}skills/creating-quality-gates/SKILL.md`
## References
- Standards: `${CLAUDE_PLUGIN_ROOT}standards/documentation-structure.md`
- Template: `${CLAUDE_PLUGIN_ROOT}templates/symptom-debugging-template.md`