---
name: debug
description: Debug errors, test failures, or unexpected behavior. Auto-detects project type.
argument-hint: "[error message or description]"
---
# Debug Command
## Context
```
TECH_STACK = config_read("tech_stack", "generic")
LESSONS_PATH = config_read("lessons_path", ".agents/lessons/")
```
## Bug Description
$ARGUMENTS
**If the bug description above is empty**, ask the user: "What error or issue are you experiencing? Please paste the error message or describe the unexpected behavior."
Do not proceed until you have a clear bug description.
## Discover Similar Past Issues
**Check if lessons directory exists, then discover similar past issues:**
```
Task(subagent_type="majestic-engineer:workflow:lessons-discoverer",
prompt="workflow_phase: debugging | tech_stack: [tech_stack from context] | task: [bug_description]")
```
**If lessons found with score > 70:**
Present the high-confidence matches to the user BEFORE starting investigation:
```
Found similar past issues:
1. [Lesson title] (score: 78)
{lessons_path}/[category]/[filename].md
2. [Lesson title] (score: 65)
{lessons_path}/[category]/[filename].md
```
Use AskUserQuestion:
```
High-confidence match found. Read the documented solution first?
1. Read Lesson 1 (Recommended)
2. Read Lesson 2
3. Continue with full investigation
```
**If user chooses to read a lesson:**
- Display the lesson content using `Read(file_path="[lesson_path]")`
- Ask: "Does this apply to your issue?"
- If yes: Apply the documented solution, verify it works
- If no: Continue with full investigation
**Error handling:**
- If lessons directory doesn't exist: Continue to Project Context Detection
- If discovery returns 0 lessons: Continue to Project Context Detection
- If discovery fails: Log warning, continue to Project Context Detection
This step is **non-blocking** - failures do not stop the workflow.
## Project Context Detection
**Step 1: Check config**
Use "Tech stack" from Context above. If configured, use it to determine project type.
**Step 2: Check AGENTS.md for debugging guidance**
Look for `AGENTS.md` in the project root for:
- Debugging workflows
- Testing commands
- Project-specific conventions
**Step 3: Fall back to file-based detection only if needed**
If neither config nor AGENTS.md provides context, detect project type from files:
```bash
ls Gemfile package.json pyproject.toml setup.py go.mod Cargo.toml 2>/dev/null
```
| File Found | Project Type | Debugger |
|------------|--------------|----------|
| Gemfile | Ruby/Rails | `agent rails-debugger` |
| package.json | Node.js | General debugging |
| pyproject.toml / setup.py | Python | General debugging |
| go.mod | Go | General debugging |
| Cargo.toml | Rust | General debugging |
## Workflow
### For Rails Projects (from AGENTS.md or Gemfile detected)
Invoke the specialized Rails debugger agent:
```
agent rails-debugger ""
```
The rails-debugger will:
- Analyze stack traces and error messages
- Check recent git changes
- Inspect logs and database state
- Identify root cause and propose fixes
### For Other Projects
1. **Analyze the error message** - Parse for error types, file paths, line numbers
2. **Check recent changes** - `git log --oneline -10` and `git diff HEAD~3`
3. **Search for solutions** - Use web-research agent if needed
4. **Propose fix** - Provide minimal code changes to resolve
## Output Format
After debugging, provide:
1. **Root Cause** - What's actually wrong (explain *why*, not just *what*)
2. **Evidence** - Specific logs, traces, or code proving the cause
3. **Fix** - Minimal code changes to resolve the issue
4. **Verification** - Commands or tests to confirm the fix works