Documenting Debugging Workflows
Create symptom-based debugging documentation that matches how developers actually search for solutions
What this skill does
# 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`
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.