571 lines
13 KiB
Markdown
571 lines
13 KiB
Markdown
---
|
|
description: Coordinate complex debugging workflows with logging, monitoring, and agent orchestration
|
|
---
|
|
|
|
<!--
|
|
ATTRIBUTION:
|
|
Debug Coordinate Plugin
|
|
by Marty Bonacci & Claude Code (2025)
|
|
Based on: docs/learnings/2025-10-14-orchestrator-missed-opportunity.md
|
|
-->
|
|
|
|
## User Input
|
|
|
|
```text
|
|
$ARGUMENTS
|
|
```
|
|
|
|
You **MUST** consider the user input before proceeding (if not empty).
|
|
|
|
## Goal
|
|
|
|
Execute systematic debugging coordination workflow:
|
|
1. **Discovery Phase** - Add logging and collect data
|
|
2. **Analysis Phase** - Correlate patterns and identify root causes
|
|
3. **Orchestration Phase** - Spawn specialist agents and coordinate fixes
|
|
4. **Integration Phase** - Verify fixes work together
|
|
|
|
**Usage**: `/debug:coordinate <problem-description>`
|
|
|
|
**Example**:
|
|
```bash
|
|
/debug:coordinate "navbar not updating after sign-in, sign-out not working, like button blank page"
|
|
```
|
|
|
|
---
|
|
|
|
## Pre-Coordination Hook
|
|
|
|
```bash
|
|
echo "🐛 Debug Coordinator"
|
|
echo "==================="
|
|
echo ""
|
|
echo "Systematic debugging with logging, monitoring, and agent orchestration"
|
|
echo ""
|
|
|
|
# Record start time
|
|
COORD_START_TIME=$(date +%s)
|
|
|
|
# Get repository root
|
|
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
```
|
|
|
|
---
|
|
|
|
## Execution Steps
|
|
|
|
### Step 1: Parse Problem Description
|
|
|
|
```bash
|
|
# Get problem description from arguments
|
|
PROBLEM_DESC="$ARGUMENTS"
|
|
|
|
if [ -z "$PROBLEM_DESC" ]; then
|
|
echo "❌ Error: Problem description required"
|
|
echo ""
|
|
echo "Usage: /debug:coordinate <problem-description>"
|
|
echo ""
|
|
echo "Example:"
|
|
echo "/debug:coordinate \"navbar not updating, sign-out broken, like button error\""
|
|
exit 1
|
|
fi
|
|
|
|
echo "📋 Problem: $PROBLEM_DESC"
|
|
echo ""
|
|
```
|
|
|
|
---
|
|
|
|
### Step 2: Discovery Phase - Initial Analysis
|
|
|
|
Analyze the problem description to identify:
|
|
- How many distinct issues are mentioned
|
|
- Which domains might be affected
|
|
- Whether orchestration is appropriate
|
|
|
|
```bash
|
|
echo "🔍 Phase 1: Discovery & Analysis"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
# Count potential bugs (look for separators like commas, "and", bullet points)
|
|
BUG_COUNT=$(echo "$PROBLEM_DESC" | tr ',' '\n' | tr ';' '\n' | grep -v '^$' | wc -l)
|
|
|
|
echo "Analyzing problem description..."
|
|
echo " • Identified $BUG_COUNT potential issue(s)"
|
|
echo ""
|
|
|
|
# Create debug session directory
|
|
DEBUG_SESSION_ID=$(date +%Y%m%d-%H%M%S)
|
|
DEBUG_DIR="${REPO_ROOT}/.debug-sessions/${DEBUG_SESSION_ID}"
|
|
mkdir -p "$DEBUG_DIR"
|
|
|
|
echo "Created debug session: $DEBUG_SESSION_ID"
|
|
echo "Directory: $DEBUG_DIR"
|
|
echo ""
|
|
|
|
# Write problem description to session
|
|
cat > "$DEBUG_DIR/problem-description.md" <<EOF
|
|
# Debug Session: $DEBUG_SESSION_ID
|
|
|
|
**Created**: $(date)
|
|
**Problem Description**: $PROBLEM_DESC
|
|
|
|
## Issues Identified
|
|
|
|
EOF
|
|
|
|
# Parse individual issues
|
|
ISSUE_NUM=1
|
|
echo "$PROBLEM_DESC" | tr ',' '\n' | tr ';' '\n' | grep -v '^$' | while read -r ISSUE; do
|
|
ISSUE_TRIMMED=$(echo "$ISSUE" | sed 's/^ *//g' | sed 's/ *$//g')
|
|
if [ -n "$ISSUE_TRIMMED" ]; then
|
|
echo "$ISSUE_NUM. $ISSUE_TRIMMED" >> "$DEBUG_DIR/problem-description.md"
|
|
ISSUE_NUM=$((ISSUE_NUM + 1))
|
|
fi
|
|
done
|
|
|
|
echo "✅ Problem analysis complete"
|
|
echo ""
|
|
```
|
|
|
|
---
|
|
|
|
### Step 3: Determine Debugging Strategy
|
|
|
|
Based on the number of issues, decide whether to use orchestration:
|
|
|
|
```bash
|
|
echo "🎯 Determining debugging strategy..."
|
|
echo ""
|
|
|
|
if [ "$BUG_COUNT" -ge 3 ]; then
|
|
STRATEGY="orchestrated"
|
|
echo "Strategy: ORCHESTRATED (multi-bug scenario)"
|
|
echo ""
|
|
echo "Rationale:"
|
|
echo " • $BUG_COUNT distinct issues detected"
|
|
echo " • Parallel investigation will be faster"
|
|
echo " • Orchestrator recommended for 3+ bugs"
|
|
echo ""
|
|
else
|
|
STRATEGY="sequential"
|
|
echo "Strategy: SEQUENTIAL (1-2 bugs)"
|
|
echo ""
|
|
echo "Rationale:"
|
|
echo " • $BUG_COUNT issue(s) detected"
|
|
echo " • Sequential debugging is efficient for small sets"
|
|
echo ""
|
|
fi
|
|
|
|
# Save strategy to session
|
|
echo "**Strategy**: $STRATEGY" >> "$DEBUG_DIR/problem-description.md"
|
|
echo "" >> "$DEBUG_DIR/problem-description.md"
|
|
```
|
|
|
|
---
|
|
|
|
### Step 4: Discovery Phase - Add Logging Strategy
|
|
|
|
Generate a logging strategy document that identifies where to add instrumentation:
|
|
|
|
```markdown
|
|
Create a logging strategy specification:
|
|
|
|
Analyze the problem description and generate a comprehensive logging plan.
|
|
|
|
For each suspected issue:
|
|
1. Identify likely affected files/components
|
|
2. Specify logging points to add
|
|
3. Define what data to capture
|
|
4. Determine monitoring approach
|
|
|
|
**Output**: Create `$DEBUG_DIR/logging-strategy.md` with:
|
|
- Files to instrument
|
|
- Logging statements to add
|
|
- Data to capture
|
|
- Monitoring commands
|
|
```
|
|
|
|
**Logging Strategy Template**:
|
|
|
|
```markdown
|
|
# Logging Strategy
|
|
|
|
## Issue 1: [Issue Description]
|
|
|
|
### Suspected Files
|
|
- `path/to/file1.ts` - [reason]
|
|
- `path/to/file2.ts` - [reason]
|
|
|
|
### Logging Points
|
|
|
|
**File**: `path/to/file1.ts`
|
|
**Location**: Line XX (in function `functionName`)
|
|
**Log Statement**:
|
|
```typescript
|
|
console.log('[DEBUG-1] FunctionName:', { variable1, variable2, context })
|
|
```
|
|
**Purpose**: Capture state at critical point
|
|
|
|
### Monitoring
|
|
- Watch for: `[DEBUG-1]` in console
|
|
- Expected output: Values should be X
|
|
- Error indicators: null, undefined, unexpected values
|
|
|
|
---
|
|
|
|
## Issue 2: [Issue Description]
|
|
...
|
|
```
|
|
|
|
```bash
|
|
echo "📝 Phase 2: Logging Strategy"
|
|
echo "============================"
|
|
echo ""
|
|
|
|
echo "Generating logging strategy..."
|
|
echo ""
|
|
echo "ACTION REQUIRED: Analyze the problem and create logging strategy"
|
|
echo ""
|
|
echo "Create file: $DEBUG_DIR/logging-strategy.md"
|
|
echo ""
|
|
echo "For each issue in the problem description:"
|
|
echo " 1. Identify suspected files/components"
|
|
echo " 2. Determine strategic logging points"
|
|
echo " 3. Specify what data to capture"
|
|
echo " 4. Define monitoring approach"
|
|
echo ""
|
|
echo "Use template from: plugins/debug-coordinate/templates/logging-strategy-template.md"
|
|
echo ""
|
|
```
|
|
|
|
After logging strategy is created, proceed to implementation:
|
|
|
|
```bash
|
|
echo "After creating logging strategy, implement the logging:"
|
|
echo ""
|
|
echo " 1. Add logging statements to suspected files"
|
|
echo " 2. Ensure logs are easily searchable (use prefixes like [DEBUG-1])"
|
|
echo " 3. Capture relevant context (variables, state, params)"
|
|
echo " 4. Commit logging additions (so they can be reverted later)"
|
|
echo ""
|
|
```
|
|
|
|
---
|
|
|
|
### Step 5: Analysis Phase - Run & Monitor
|
|
|
|
```bash
|
|
echo "📊 Phase 3: Monitor & Analyze"
|
|
echo "============================="
|
|
echo ""
|
|
|
|
echo "Next steps:"
|
|
echo " 1. Start the application (if not running)"
|
|
echo " 2. Reproduce each issue"
|
|
echo " 3. Capture log output to: $DEBUG_DIR/logs/"
|
|
echo " 4. Analyze patterns and identify root causes"
|
|
echo ""
|
|
echo "Monitoring commands:"
|
|
echo " • Save logs: [command] 2>&1 | tee $DEBUG_DIR/logs/session.log"
|
|
echo " • Watch specific pattern: tail -f [logfile] | grep DEBUG"
|
|
echo " • Filter errors: grep -E 'ERROR|WARN|DEBUG' [logfile]"
|
|
echo ""
|
|
```
|
|
|
|
Create analysis template:
|
|
|
|
```bash
|
|
cat > "$DEBUG_DIR/analysis-template.md" <<'EOF'
|
|
# Debug Analysis
|
|
|
|
## Issue 1: [Description]
|
|
|
|
### Log Evidence
|
|
```
|
|
[Paste relevant log output]
|
|
```
|
|
|
|
### Root Cause
|
|
[What is causing this issue?]
|
|
|
|
**File**: path/to/file.ts
|
|
**Line**: XX
|
|
**Problem**: [Specific issue - e.g., variable undefined, wrong condition, etc.]
|
|
|
|
### Domain
|
|
- [ ] Backend
|
|
- [ ] Frontend
|
|
- [ ] Database
|
|
- [ ] Config
|
|
- [ ] Testing
|
|
|
|
### Fix Strategy
|
|
[How to fix this issue]
|
|
|
|
---
|
|
|
|
## Issue 2: [Description]
|
|
...
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
**Total Issues**: X
|
|
**Domains Affected**: [list]
|
|
**Orchestration Recommended**: Yes/No
|
|
EOF
|
|
|
|
echo "Created analysis template: $DEBUG_DIR/analysis-template.md"
|
|
echo ""
|
|
echo "Fill in this template as you analyze logs and identify root causes"
|
|
echo ""
|
|
```
|
|
|
|
---
|
|
|
|
### Step 6: Orchestration Phase - Generate Fix Plan
|
|
|
|
Once root causes are identified, generate orchestration plan:
|
|
|
|
```bash
|
|
echo "🎯 Phase 4: Orchestration Planning"
|
|
echo "==================================="
|
|
echo ""
|
|
|
|
if [ "$STRATEGY" = "orchestrated" ]; then
|
|
echo "Generating orchestration plan for parallel fixes..."
|
|
echo ""
|
|
|
|
cat > "$DEBUG_DIR/orchestration-plan.md" <<'EOF'
|
|
# Orchestration Plan
|
|
|
|
## Execution Strategy
|
|
|
|
**Mode**: Parallel
|
|
**Agents**: [Number based on domains]
|
|
|
|
---
|
|
|
|
## Agent Assignments
|
|
|
|
### Agent 1: [Domain] Track
|
|
**Responsibility**: [Description]
|
|
**Issues**: #1, #3
|
|
**Files to Modify**:
|
|
- path/to/file1.ts
|
|
- path/to/file2.ts
|
|
|
|
**Changes Required**:
|
|
1. [Specific change 1]
|
|
2. [Specific change 2]
|
|
|
|
**Dependencies**: None (can run in parallel)
|
|
|
|
---
|
|
|
|
### Agent 2: [Domain] Track
|
|
**Responsibility**: [Description]
|
|
**Issues**: #2, #4
|
|
**Files to Modify**:
|
|
- path/to/file3.tsx
|
|
- path/to/file4.tsx
|
|
|
|
**Changes Required**:
|
|
1. [Specific change 1]
|
|
2. [Specific change 2]
|
|
|
|
**Dependencies**: None (can run in parallel)
|
|
|
|
---
|
|
|
|
## Coordination Points
|
|
|
|
### Server Restarts
|
|
- After Agent 1 completes (backend changes)
|
|
- After Agent 2 completes (if needed)
|
|
|
|
### Integration Testing
|
|
- After all agents complete
|
|
- Run full test suite
|
|
- Manual verification of each fix
|
|
|
|
---
|
|
|
|
## Success Criteria
|
|
- [ ] All issues resolved
|
|
- [ ] No new regressions
|
|
- [ ] Tests pass
|
|
- [ ] Application works as expected
|
|
EOF
|
|
|
|
echo "✅ Orchestration plan template created: $DEBUG_DIR/orchestration-plan.md"
|
|
echo ""
|
|
echo "ACTION REQUIRED: Fill in orchestration plan based on analysis"
|
|
echo ""
|
|
echo "Then launch orchestrator:"
|
|
echo " /project-orchestrator:debug --plan=$DEBUG_DIR/orchestration-plan.md"
|
|
echo ""
|
|
|
|
else
|
|
echo "Sequential debugging workflow (1-2 bugs)"
|
|
echo ""
|
|
echo "Fix issues sequentially using /speclab:bugfix for each"
|
|
echo ""
|
|
fi
|
|
```
|
|
|
|
---
|
|
|
|
### Step 7: Integration Phase - Verification
|
|
|
|
```bash
|
|
echo "✅ Phase 5: Integration & Verification"
|
|
echo "======================================="
|
|
echo ""
|
|
|
|
echo "After fixes are implemented:"
|
|
echo ""
|
|
echo "1. Run integration tests"
|
|
echo "2. Manually verify each issue is fixed"
|
|
echo "3. Check for new regressions"
|
|
echo "4. Remove debug logging (or keep if useful)"
|
|
echo "5. Document learnings"
|
|
echo ""
|
|
echo "Verification checklist: $DEBUG_DIR/verification-checklist.md"
|
|
echo ""
|
|
|
|
cat > "$DEBUG_DIR/verification-checklist.md" <<'EOF'
|
|
# Verification Checklist
|
|
|
|
## Issue Verification
|
|
|
|
- [ ] Issue 1: [Description] - FIXED
|
|
- [ ] Issue 2: [Description] - FIXED
|
|
- [ ] Issue 3: [Description] - FIXED
|
|
|
|
## Regression Testing
|
|
|
|
- [ ] Existing tests still pass
|
|
- [ ] No new errors in console
|
|
- [ ] No performance degradation
|
|
- [ ] All user flows work correctly
|
|
|
|
## Cleanup
|
|
|
|
- [ ] Remove temporary debug logging (or commit if useful)
|
|
- [ ] Update documentation
|
|
- [ ] Create regression tests for each fix
|
|
- [ ] Document learnings
|
|
|
|
## Metrics
|
|
|
|
**Debugging Time**: [X hours]
|
|
**Number of Issues Fixed**: [X]
|
|
**Strategy Used**: [Sequential/Orchestrated]
|
|
**Time Savings** (if orchestrated): [X%]
|
|
EOF
|
|
|
|
echo "Created verification checklist"
|
|
echo ""
|
|
```
|
|
|
|
---
|
|
|
|
## Post-Coordination Hook
|
|
|
|
```bash
|
|
echo ""
|
|
echo "📊 Debug Coordination Summary"
|
|
echo "=============================="
|
|
echo ""
|
|
|
|
# Calculate duration
|
|
COORD_END_TIME=$(date +%s)
|
|
COORD_DURATION=$((COORD_END_TIME - COORD_START_TIME))
|
|
COORD_MINUTES=$((COORD_DURATION / 60))
|
|
|
|
echo "Session ID: $DEBUG_SESSION_ID"
|
|
echo "Duration: ${COORD_MINUTES}m ${COORD_DURATION}s"
|
|
echo "Strategy: $STRATEGY"
|
|
echo "Issues: $BUG_COUNT"
|
|
echo ""
|
|
echo "Artifacts Created:"
|
|
echo " • $DEBUG_DIR/problem-description.md"
|
|
echo " • $DEBUG_DIR/logging-strategy.md"
|
|
echo " • $DEBUG_DIR/analysis-template.md"
|
|
if [ "$STRATEGY" = "orchestrated" ]; then
|
|
echo " • $DEBUG_DIR/orchestration-plan.md"
|
|
fi
|
|
echo " • $DEBUG_DIR/verification-checklist.md"
|
|
echo ""
|
|
echo "📈 Next Steps:"
|
|
echo ""
|
|
if [ "$STRATEGY" = "orchestrated" ]; then
|
|
echo "ORCHESTRATED WORKFLOW:"
|
|
echo " 1. Fill in logging-strategy.md"
|
|
echo " 2. Implement logging and run application"
|
|
echo " 3. Analyze logs and complete analysis-template.md"
|
|
echo " 4. Fill in orchestration-plan.md"
|
|
echo " 5. Launch orchestrator: /project-orchestrator:debug --plan=$DEBUG_DIR/orchestration-plan.md"
|
|
echo " 6. Verify all fixes with verification-checklist.md"
|
|
else
|
|
echo "SEQUENTIAL WORKFLOW:"
|
|
echo " 1. Fill in logging-strategy.md"
|
|
echo " 2. Implement logging and run application"
|
|
echo " 3. Analyze logs and identify root causes"
|
|
echo " 4. Fix issues one by one using /speclab:bugfix"
|
|
echo " 5. Verify with verification-checklist.md"
|
|
fi
|
|
echo ""
|
|
echo "💡 Tip: This structured approach ensures:"
|
|
echo " • Systematic investigation (not random debugging)"
|
|
echo " • Clear documentation of findings"
|
|
echo " • Efficient parallelization (when possible)"
|
|
echo " • Verifiable results"
|
|
echo ""
|
|
```
|
|
|
|
---
|
|
|
|
## Success Criteria
|
|
|
|
✅ Problem description parsed
|
|
✅ Debug session created
|
|
✅ Strategy determined (sequential vs orchestrated)
|
|
✅ Logging strategy template created
|
|
✅ Analysis template created
|
|
✅ Orchestration plan template created (if needed)
|
|
✅ Verification checklist created
|
|
✅ Clear next steps provided
|
|
|
|
---
|
|
|
|
## Error Handling
|
|
|
|
**If no problem description provided**:
|
|
- Display usage example
|
|
- Exit with error
|
|
|
|
**If repository not detected**:
|
|
- Create debug session in current directory
|
|
- Warn user about missing git context
|
|
|
|
---
|
|
|
|
## Design Philosophy
|
|
|
|
Based on learnings from [2025-10-14-orchestrator-missed-opportunity.md](../../../docs/learnings/2025-10-14-orchestrator-missed-opportunity.md):
|
|
|
|
1. **Systematic Over Random**: Structured phases prevent random debugging
|
|
2. **Logging First**: Add instrumentation before making changes
|
|
3. **Parallel When Possible**: 3+ bugs → orchestrate
|
|
4. **Document Everything**: Create audit trail for learnings
|
|
5. **Verify Thoroughly**: Checklists ensure nothing missed
|
|
|
|
---
|
|
|
|
**This plugin transforms chaotic debugging into systematic investigation with clear orchestration opportunities.**
|