AgentSkillsCN

troubleshoot

采用五步循环法,系统性调试空间/[项目]/中的各类问题。适用于遇到Bug、测试失败,或遭遇意外行为时使用。

SKILL.md
--- frontmatter
name: troubleshoot
description: "Systematic debugging with 5-step loop for issues in spaces/[project]/. Use when encountering bugs, test failures, or unexpected behavior."
model: claude-sonnet-4-20250514
allowed-tools: Read, Write, Edit, Glob, Grep, Bash

/troubleshoot

Systematic debugging using a 5-step loop: Research → Hypothesize → Implement → Test → Document.

Usage

bash
/troubleshoot yourbench "tests failing after auth changes"
/troubleshoot yourbench 001       # Debug in context of issue
/troubleshoot coordinatr          # General debugging session

The 5-Step Loop

code
┌─────────────────────────────────────────────┐
│                                             │
│  1. Research → 2. Hypothesize → 3. Implement│
│       ↑                              ↓      │
│       │                              │      │
│       └──────── 5. Document ← 4. Test ──────│
│                     │                       │
│                     ↓                       │
│              (if not fixed, repeat)         │
│                                             │
└─────────────────────────────────────────────┘

Step Details

Step 1: Research

Before guessing, understand:

bash
# Check existing research
Glob: resources/research/*.md
Glob: ideas/[project]/notes/research/*.md

# Search for similar issues in codebase
Grep: spaces/[project]/ for error message

# Check library docs via Context7
# WebSearch for error messages, known issues

Spawn research-specialist agent for:

  • Unfamiliar error messages
  • Library/framework behavior
  • Best practices for the pattern

Step 2: Hypothesize

Form ONE hypothesis:

markdown
Hypothesis: Query fires before auth state is set

Evidence:
- isLoading is true when query executes
- Error occurs only on initial load
- Works after manual refresh

Debug Plan:
1. Add console.log before query
2. Check auth state timing
3. Verify order of operations

Only one hypothesis at a time. Multiple theories = confusion.

Step 3: Implement

Apply fix + add debugging:

typescript
// Add liberal debug logging
console.log('[Auth] State before query:', authState);
console.log('[Query] Executing with user:', user?.id);

// Implement the fix
if (!authState.isReady) {
  console.log('[Query] Waiting for auth...');
  return;
}

Step 4: Test

Validate the fix:

bash
cd spaces/[project]

# Run specific tests
npm test -- --grep "auth"

# Run full suite
npm test

# Manual verification if needed
npm run dev

NEVER claim "fixed" without tests passing.

Step 5: Document

Update WORKLOG with findings:

markdown
## YYYY-MM-DD - Troubleshooting Loop 1

**Hypothesis**: Query fires before auth state is set

**Debug findings**:
- isLoading was true when query executed
- Auth state not propagating to component
- Race condition between auth init and query

**Implementation**: Added auth state check before query

**Result**: ✓ Fixed - 47/47 tests passing

**Gotcha**: Auth state needs explicit ready check, not just truthy

If Not Fixed

  1. Rollback changes: git checkout -- .
  2. Document what you learned
  3. Return to Step 1 with new information

Execution Modes

Mode 1: During TASK Implementation

bash
/troubleshoot yourbench 001 "tests failing"
  1. Read: TASK.md, PLAN.md, WORKLOG.md for context
  2. Execute 5-step loop
  3. Document in issue's WORKLOG.md
  4. Continue with /implement when fixed

Mode 2: Standalone Debugging

bash
/troubleshoot yourbench "login broken on Safari"
  1. Investigate without issue context
  2. Document findings
  3. Suggest creating BUG issue if significant

Key Rules

  1. Research BEFORE guessing
  2. ONE hypothesis at a time
  3. Liberal debug logging - console.log('[Component] State:', data)
  4. NEVER claim "fixed" without tests passing
  5. Rollback on failure before next attempt
  6. Document everything for future reference

Workflow

code
/implement → (issue occurs) → /troubleshoot → /worklog → /implement

After fixing:

  • Add WORKLOG entry with findings
  • Continue implementation
  • Or create BUG issue if recurring problem