/devteam-bug
**Command:** `/devteam:bug "<description>" [options]`
> /plugin marketplace add michael-harris/devteam > /plugin install devteam@devteam-marketplace
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/devteam-bug
Context preview
What this command does when you run it.
**Command:** `/devteam:bug "<description>" [options]`
Command definition
devteam-bug.mdDevTeam Bug Command
**Command:** `/devteam:bug "<description>" [options]`
Fix a bug with structured diagnostic workflow. Uses interview to clarify details and Bug Council for complex issues.
Usage
# Basic bug fix (will trigger interview for missing details)
/devteam:bug "Login fails for guest users"
# Force Bug Council activation
/devteam:bug "Memory leak in image processor" --council
# Specify severity
/devteam:bug "Payment processing timeout" --severity critical
/devteam:bug "Button color wrong" --severity low
# Limit scope
/devteam:bug "API returns 500" --scope "src/api/"
# Skip interview (if you have all details)
/devteam:bug "Null pointer in UserService.getProfile() when user.settings is undefined" --skip-interview
# Cost-optimized
/devteam:bug "Minor typo in error message" --eco
Options
| Option | Description | |--------|-------------| | `--council` | Force Bug Council activation | | `--severity <level>` | Set severity: critical, high, medium, low | | `--scope <path>` | Limit search to specific files/directories | | `--skip-interview` | Skip clarifying questions | | `--eco` | Cost-optimized execution | | `--model <model>` | Force starting model |
Your Process
Phase 0: Initialize Session
source scripts/state.sh
source scripts/events.sh
SESSION_ID=$(start_session "/devteam:bug \"$1\"" "bug")
log_session_started "/devteam:bug \"$1\"" "bug"
set_phase "interview"
Phase 1: Interview (Clarify Bug Details)
**Always ask if missing from description:**
bug_interview:
required:
- key: expected_behavior
question: "What is the expected behavior?"
skip_if: description contains "should" or "expected"
- key: actual_behavior
question: "What is the actual behavior?"
skip_if: description contains "but" or "instead" or "actually"
conditional:
- key: repro_steps
condition: description lacks step-by-step
question: "What steps reproduce this issue?"
- key: environment
condition: could be environment-specific
question: "What environment does this occur in? (browser, OS, version)"
- key: frequency
condition: not clear if consistent
question: "Does this happen every time or intermittently?"
- key: recent_changes
condition: could be regression
question: "Did this start recently? Any recent changes that might be related?"
- key: error_message
condition: no error mentioned
question: "Are there any error messages or stack traces?"**Interview flow:**
async function runBugInterview(description) {
log_interview_started('bug')
const questions = []
const responses = {}
// Check what's missing from description
if (!hasExpectedBehavior(description)) {
const response = await ask("What is the expected behavior?")
responses.expected_behavior = response
questions.push('expected_behavior')
}
if (!hasActualBehavior(description)) {
const response = await ask("What is the actual behavior?")
responses.actual_behavior = response
questions.push('actual_behavior')
}
// ... more conditional questions
log_interview_completed(questions.length)
return responses
}Phase 2: Classify Bug
**Determine severity:**
severity_indicators:
critical:
- "security vulnerability"
- "data loss"
- "system down"
- "production"
- "payment"
- "authentication bypass"
high:
- "major functionality broken"
- "affects all users"
- "no workaround"
- "blocking"
medium:
- "workaround exists"
- "affects some users"
- "degraded experience"
low:
- "cosmetic"
- "typo"
- "minor"
- "edge case"**Determine complexity:**
complexity_indicators:
simple:
- single file likely
- clear error message
- obvious fix
- similar bug fixed before
moderate:
- multiple files
- requires investigation
- unclear root cause
complex:
- architectural issue
- race condition
- intermittent
- cross-system
- no reproduction stepsPhase 3: Create Bug Record
INSERT INTO bugs (
session_id,
description,
severity,
complexity,
status
) VALUES (
'session-xxx',
'Login fails for guest users when settings is null',
'high',
'moderate',
'in_progress'
);Phase 4: Bug Council (if needed)
**Activate Bug Council if:**
- Complexity is `complex`
- `--council` flag specified
- 2+ failed fix attempts
- Severity is `critical`
if (shouldActivateBugCouncil(bug)) {
log_bug_council_activated(reason)
set_phase('bug_council')
// Spawn 5 diagnostic agents in parallel
const councilResults = await Promise.all([
Task({
subagent_type: "diagnosis:root-cause-analyst",
model: "opus",
prompt: `Analyze bug: ${bug.description}
Expected: ${bug.expected_behavior}
Actual: ${bug.actual_behavior}
Repro: ${bug.repro_steps}
Provide:
- Root cause hypothesis
- Evidence supporting hypothesis
- Recommended fix approach
- Confidence score (0-1)`
}),
Task({
subagent_type: "diagnosis:code-archaeologist",
model: "opus",
prompt: `Investigate git history for: ${bug.description}
Look for:
- Recent changes to affected areas
- When behavior changed
- Related commits
- Previous similar fixes`
}),
Task({
subagent_type: "diagnosis:pattern-matcher",
model: "opus",
prompt: `Search codebase for patterns related to: ${bug.description}
Find:
- Similar code patterns
- Related bugs/fixesRead more
DevTeam Bug Command
**Command:** `/devteam:bug "<description>" [options]`
Fix a bug with structured diagnostic workflow. Uses interview to clarify details and Bug Council for complex issues.
Usage
# Basic bug fix (will trigger interview for missing details) /devteam:bug "Login fails for guest users" # Force Bug Council activation /devteam:bug "Memory leak in image processor" --council # Specify severity /devteam:bug "Payment processing timeout" --severity critical /devteam:bug "Button color wrong" --severity low # Limit scope /devteam:bug "API returns 500" --scope "src/api/" # Skip interview (if you have all details) /devteam:bug "Null pointer in UserService.getProfile() when user.settings is undefined" --skip-interview # Cost-optimized /devteam:bug "Minor typo in error message" --eco
Options
| Option | Description | |--------|-------------| | `--council` | Force Bug Council activation | | `--severity <level>` | Set severity: critical, high, medium, low | | `--scope <path>` | Limit search to specific files/directories | | `--skip-interview` | Skip clarifying questions | | `--eco` | Cost-optimized execution | | `--model <model>` | Force starting model |
Your Process
Phase 0: Initialize Session
source scripts/state.sh source scripts/events.sh SESSION_ID=$(start_session "/devteam:bug \"$1\"" "bug") log_session_started "/devteam:bug \"$1\"" "bug" set_phase "interview"
Phase 1: Interview (Clarify Bug Details)
**Always ask if missing from description:**
bug_interview:
required:
- key: expected_behavior
question: "What is the expected behavior?"
skip_if: description contains "should" or "expected"
- key: actual_behavior
question: "What is the actual behavior?"
skip_if: description contains "but" or "instead" or "actually"
conditional:
- key: repro_steps
condition: description lacks step-by-step
question: "What steps reproduce this issue?"
- key: environment
condition: could be environment-specific
question: "What environment does this occur in? (browser, OS, version)"
- key: frequency
condition: not clear if consistent
question: "Does this happen every time or intermittently?"
- key: recent_changes
condition: could be regression
question: "Did this start recently? Any recent changes that might be related?"
- key: error_message
condition: no error mentioned
question: "Are there any error messages or stack traces?"**Interview flow:**
async function runBugInterview(description) {
log_interview_started('bug')
const questions = []
const responses = {}
// Check what's missing from description
if (!hasExpectedBehavior(description)) {
const response = await ask("What is the expected behavior?")
responses.expected_behavior = response
questions.push('expected_behavior')
}
if (!hasActualBehavior(description)) {
const response = await ask("What is the actual behavior?")
responses.actual_behavior = response
questions.push('actual_behavior')
}
// ... more conditional questions
log_interview_completed(questions.length)
return responses
}Phase 2: Classify Bug
**Determine severity:**
severity_indicators:
critical:
- "security vulnerability"
- "data loss"
- "system down"
- "production"
- "payment"
- "authentication bypass"
high:
- "major functionality broken"
- "affects all users"
- "no workaround"
- "blocking"
medium:
- "workaround exists"
- "affects some users"
- "degraded experience"
low:
- "cosmetic"
- "typo"
- "minor"
- "edge case"**Determine complexity:**
complexity_indicators:
simple:
- single file likely
- clear error message
- obvious fix
- similar bug fixed before
moderate:
- multiple files
- requires investigation
- unclear root cause
complex:
- architectural issue
- race condition
- intermittent
- cross-system
- no reproduction stepsPhase 3: Create Bug Record
INSERT INTO bugs (
session_id,
description,
severity,
complexity,
status
) VALUES (
'session-xxx',
'Login fails for guest users when settings is null',
'high',
'moderate',
'in_progress'
);Phase 4: Bug Council (if needed)
**Activate Bug Council if:**
- Complexity is `complex`
- `--council` flag specified
- 2+ failed fix attempts
- Severity is `critical`
if (shouldActivateBugCouncil(bug)) {
log_bug_council_activated(reason)
set_phase('bug_council')
// Spawn 5 diagnostic agents in parallel
const councilResults = await Promise.all([
Task({
subagent_type: "diagnosis:root-cause-analyst",
model: "opus",
prompt: `Analyze bug: ${bug.description}
Expected: ${bug.expected_behavior}
Actual: ${bug.actual_behavior}
Repro: ${bug.repro_steps}
Provide:
- Root cause hypothesis
- Evidence supporting hypothesis
- Recommended fix approach
- Confidence score (0-1)`
}),
Task({
subagent_type: "diagnosis:code-archaeologist",
model: "opus",
prompt: `Investigate git history for: ${bug.description}
Look for:
- Recent changes to affected areas
- When behavior changed
- Related commits
- Previous similar fixes`
}),
Task({
subagent_type: "diagnosis:pattern-matcher",
model: "opus",
prompt: `Search codebase for patterns related to: ${bug.description}
Find:
- Similar code patterns
- Related bugs/fixesA Claude Code plugin providing 127 specialized AI agents with: Interview-driven planning - Clarify requirements before work begins Codebase research - Investigate patterns and blockers before implementation SQLite state management - Reliable session tracking
Repo: michael-harris/devteam
Other commands on michael-harris-devteam.
devteam-design-drift
**Command:** `/devteam:design-drift [scope] [options]`

