--- name: Documenting Debugging Workflows description: Create symptom-based debugging documentation that matches how developers actually search for solutions when_to_use: when creating debugging guides, documenting common bugs, building troubleshooting documentation, or organizing FIX/ sections version: 1.0.0 --- # Documenting Debugging Workflows ## Overview 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." ## When to Use - Creating debugging documentation for a project - Documenting common bugs and their fixes - Building troubleshooting guides - Organizing FIX/ section content - Recurring issues need documentation ## Core Principle **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. ## The Process ### Step 1: Collect Symptoms Gather observable symptoms from: - Bug reports and issues - Support tickets - Slack/team chat questions - Your own debugging sessions - Code review comments For each symptom, note: - What exactly does the developer see? - How do they describe it? - What words do they use to search? ### Step 2: Create Symptom Categories 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. ### Step 3: Build Quick Diagnosis Table Create the entry point with a scannable table: ```markdown # [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: - ☠️ Critical (production impact) - ⚠️ High (blocking work) - 🎯 Medium (should fix soon) - ✅ Low (minor annoyance) ### Step 4: Document Each Symptom For each symptom, create structured documentation: 1. **What You See** - Exact observable behavior 2. **Likely Causes** - Ordered by probability 3. **Investigation Steps** - With commands to run 4. **Solutions** - Fixes for each cause 5. **Prevention** - How to avoid in future **Use template:** `${CLAUDE_PLUGIN_ROOT}templates/symptom-debugging-template.md` ### Step 5: Create Investigation Strategies Document systematic approaches in `investigation/`: - How to reproduce consistently - How to isolate the problem - Gathering evidence (logs, metrics) - Forming and testing hypotheses - Binary search for breaking changes ### Step 6: Build Solutions Catalog Document known fixes in `solutions/`: - Common error codes and fixes - Proven workarounds - Configuration fixes - Code patterns that prevent issues ### Step 7: Add Escalation Guidance Document when to escalate: - Time thresholds (stuck > X hours) - Impact thresholds (production, data, security) - Who to contact - What information to gather first ### Step 8: Verify and Maintain - Test documentation with someone unfamiliar - Update when new symptoms discovered - Archive outdated fixes (don't delete - mark as historical) - Track which docs get used most ## Checklist - [ ] Symptoms collected from real sources - [ ] Categories match project's common issues - [ ] Quick diagnosis table created - [ ] Each symptom has structured documentation - [ ] Investigation strategies documented - [ ] Solutions catalog started - [ ] Escalation guidance clear - [ ] Tested with fresh eyes ## Anti-Patterns **Don't:** - Organize by root cause (developers don't know it yet) - Skip the quick diagnosis table - Write investigation steps without commands - Forget escalation guidance - Let docs become stale **Do:** - Use exact symptom descriptions - Include runnable commands - Link to related docs liberally - Update when fixes are found - Track which docs help most ## Example: Visual Bug Entry ```markdown ## 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 2. [ ] Check camera near/far planes ```rust info!("Near: {}, Far: {}", camera.near, camera.far); ``` If ratio > 10000 → z-buffer issue ### Solutions **If floating point:** Implement floating origin **If z-buffer:** Adjust camera planes ### Prevention - Use floating origin for large worlds - Keep near plane as far as acceptable ``` ## 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`