Systematic debugging with MCP integration, auto-invoke from qa-commit, Phase 7 Harden
Scanned 9/1/2026
Install to Claude Code
npx -y skills add WellApp-ai/Well --skill debug --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Debug?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wellapp-ai-debug)More formats (shields.io, HTML) on the badges page.
---
name: debug
description: Systematic debugging with MCP integration, auto-invoke from qa-commit, Phase 7 Harden
---
# Debug Skill
Diagnose and fix issues systematically. Enhanced with MCP integrations for deeper analysis and automatic regression test generation.
## When to Use
- **Auto-invoked** by qa-commit skill on RED verdict
- Error messages appearing in console/terminal
- Feature not working as expected
- Build/runtime failures
- "Something is broken" situations
## Modes
| Mode | Trigger | Context Provided |
|------|---------|------------------|
| **Auto** | qa-commit RED verdict | Failed G#N/AC#N, error messages |
| **Manual** | User invokes | User describes issue |
## The Enhanced Flow
```
Phase 0: Context Loading (if auto-invoked)
↓
Phase 0.5: Jidoka Escalation Check ──→ [Tier 2/3] ──→ ESCALATE to human
↓ [Tier 1]
Phase 1: Gather (ReadLints, Browser MCP, Context7)
↓
Phase 2: Reproduce (Browser MCP)
↓
Phase 3: Isolate (Known Issues DB query)
↓
Phase 4: Diagnose
↓
Phase 5: Fix
↓
Phase 6: Verify ──→ [FAIL] ──→ Phase 8 ──→ Phase 0.5
↓ [PASS]
Phase 7: Harden (generate regression test)
↓
Phase 8: Update Jidoka Counters (reset on success)
```
---
## Phase 0: Context Loading (Auto-Invoke Only)
When invoked from qa-commit, receive context:
```markdown
## Debug Context (from qa-commit)
**Failed Criteria:**
- [G#N or AC#N]: [Description]
**Verification Report:**
- ReadLints errors: [list]
- Shell errors: [list]
- Browser errors: [list if applicable]
**Expected Behavior:**
[From QA Contract]
**Actual Behavior:**
[Observed during verification]
```
Skip this phase if manually invoked.
---
## Phase 0.5: Jidoka Escalation Check (NEW)
Before attempting fix, check escalation tier to determine if human intervention is needed.
### Track Error History
Maintain error_history across debug invocations:
| Field | Description |
|-------|-------------|
| error_signature | Hash of error type + location |
| count | Times this exact error seen |
| fixes_attempted | List of fix descriptions |
### Tier Evaluation
| Tier | Condition | Action |
|------|-----------|--------|
| Tier 1 | error_count < 3 | Continue to Phase 1 (normal debug) |
| Tier 2 | error_count >= 3 (same error) | ESCALATE to human |
| Tier 3 | total_errors >= 5 (any) | ESCALATE to human |
### Tier 2/3 Escalation Output
If escalation triggered, skip Phases 1-7 and output:
```
R | [Feature] | AGENT | JIDOKA STOP
---
Same error detected [N] times:
> [Error message]
Attempted fixes:
1. [Fix 1] - Failed: [why]
2. [Fix 2] - Failed: [why]
3. [Fix 3] - Failed: [why]
Options:
A. Try different approach - [describe alternative]
B. Skip this commit, continue to next
C. Pause session, investigate manually
D. Abort feature, reassess scope
---
Reply with A, B, C, or D
```
Invoke `decision-capture` skill with escalation context.
### Escalation Resolution
On user response:
- **A:** Reset error_count for this signature, apply new approach
- **B:** Mark commit as SKIPPED, proceed to next
- **C:** End session, invoke `session-status` for final metrics
- **D:** End session with ABANDONED outcome
---
## Phase 1: Gather Information (Enhanced)
### 1.1 ReadLints Integration
Use Cursor's ReadLints tool on affected files:
```
ReadLints:
paths: [affected files from context]
```
Categorize:
- Errors → Primary suspects
- Warnings → Secondary investigation
- Related files → Expand scope if needed
### 1.2 Browser MCP Deep Scan
For frontend issues, use Browser MCP:
```
browser_navigate: [affected URL]
browser_snapshot: Get current DOM state
browser_console_messages: All errors/warnings
browser_network_requests: API failures
```
Extract:
- Console errors with stack traces
- Failed network requests with status codes
- DOM state anomalies
### 1.3 Context7 Error Lookup
Identify libraries involved and query for error patterns:
```
Context7 MCP:
1. resolve-library-id: libraryName = "[library from stack trace]"
2. get-library-docs: topic = "[error message keywords]", mode = "info"
```
Look for:
- Known issues with the library
- Common error patterns
- Recommended fixes
### 1.4 Standard Gathering
- [ ] Get full error message/stack trace
- [ ] Check server logs if backend issue
- [ ] Identify when issue started (recent changes?)
---
## Phase 2: Reproduce (Enhanced)
### 2.1 Document Steps
```markdown
## Reproduction Steps
1. Navigate to: [URL]
2. Action: [What triggers the issue]
3. Expected: [What should happen]
4. Actual: [What actually happens]
```
### 2.2 Browser MCP Reproduction
```
browser_navigate: [starting URL]
browser_click: [trigger element]
browser_type: [if input needed]
browser_take_screenshot: Capture failure state
browser_network_requests: Capture API calls
```
### 2.3 Capture Evidence
- Screenshot at failure point
- Console log at failure
- Network request/response
---
## Phase 3: Isolate (Enhanced with Known Issues DB)
### 3.1 Query Known Issues Database
Before deep investigation, check if this is a known issue:
```
Notion MCP:
API-query-database:
database_id: "[KNOWN_ISSUES_DB_ID]"
filter:
property: "Error Pattern"
rich_text:
contains: "[error keywords]"
```
**If match found:**
```markdown
## Known Issue Match
**Pattern:** [Error pattern from DB]
**Root Cause:** [From DB]
**Fix Pattern:** [From DB]
**Occurrences:** [N] times
Applying known fix...
```
→ Skip to Phase 5 with known fix.
**If no match:**
→ Continue to Phase 4.
### 3.2 Standard Isolation
- [ ] Trace error to specific file/line
- [ ] Check recent git changes: `git log -5 --oneline`
- [ ] Search for related code: `SemanticSearch`, `Grep`
---
## Phase 4: Diagnose
### 4.1 Root Cause Analysis
Read relevant code with context:
```
Read: [file with error]
SemanticSearch: "How is [function] supposed to work?"
```
### 4.2 Check Common Issues
- [ ] Type mismatches
- [ ] Null/undefined access
- [ ] Async timing issues
- [ ] Missing dependencies
- [ ] State management bugs
- [ ] API contract mismatches
### 4.3 Hypothesis Formation
```markdown
## Diagnosis
**Root Cause:** [What's causing the issue]
**Evidence:**
- [Evidence 1]
- [Evidence 2]
**Proposed Fix:** [What needs to change]
```
---
## Phase 5: Fix (Enhanced)
### 5.1 Pattern Compliance
Before implementing fix:
1. Invoke `design-context` skill (silent)
2. Check Context7 for library best practices
3. Ensure fix follows existing patterns
### 5.2 Implement Fix
- [ ] Propose minimal fix
- [ ] Explain why fix works
- [ ] Wait for user approval before implementing
### 5.3 Apply Fix
Make the code changes.
---
## Phase 6: Verify (Enhanced)
### 6.1 Technical Verification
```bash
npm run typecheck
npm run lint
npm run test -- --grep "[related tests]"
```
### 6.2 Re-run qa-commit
For the specific failed criteria:
```markdown
## Re-verification
Re-running qa-commit for:
- [G#N or AC#N that failed]
Result: [PASS/FAIL]
```
### 6.3 Outcome
**If PASS:** Continue to Phase 7 (Harden)
**If FAIL:** Return to Phase 3 (Isolate) with new information
---
## Phase 7: Harden (NEW)
Prevent regression by generating tests and updating knowledge base.
### 7.1 Generate Regression Test
Create test that would catch this issue:
**For Backend (G#N):**
```typescript
// Regression test: [issue description]
// Debug session: [date]
it('should not [bug behavior] when [condition]', async () => {
// Reproduction steps
const result = await [action that caused bug];
expect(result).not.toBe([buggy behavior]);
expect(result).toBe([correct behavior]);
});
```
**For Frontend (AC#N):**
```typescript
// Regression test: [issue description]
test('should handle [edge case]', async ({ page }) => {
// Reproduction steps
await page.goto('[URL]');
await page.click('[trigger]');
await expect(page.locator('[element]')).toBeVisible();
});
```
### 7.2 Invoke test-hardening
```markdown
Invoking test-hardening skill for regression test...
```
### 7.3 Update Known Issues (if novel)
If this was a new issue pattern:
```
Notion MCP:
API-create-page:
parent: { database_id: "[KNOWN_ISSUES_DB_ID]" }
properties:
Error Pattern: "[Error message pattern]"
Root Cause: "[What caused it]"
Fix Pattern: "[How to fix]"
Library: [relation if applicable]
Occurrences: 1
```
### 7.4 Capture Patine (if significant)
If this reveals a pattern worth remembering:
```markdown
Invoking decision-capture skill...
"Learned: [pattern] causes [issue]. Fix: [approach]."
```
---
## Phase 8: Update Jidoka Counters (NEW)
Update escalation counters based on fix outcome.
### On GREEN (fix successful)
- Reset error_count for this signature to 0
- Clear fixes_attempted list
- Log success in session metrics
- Invoke `session-status` to update muda tracking
```markdown
## Jidoka Counter Reset
Error signature: [hash]
Previous count: [N]
New count: 0
Status: RESOLVED
```
### On RED (fix failed)
- Increment error_count for this signature
- Append fix description to fixes_attempted
- Return to Phase 0.5 for tier check
```markdown
## Jidoka Counter Update
Error signature: [hash]
Count: [N] → [N+1]
Fix attempted: [description]
Next: Re-evaluate escalation tier
```
---
## Output Format
```markdown
## Debug Report
### Issue
[Brief description]
### Root Cause
[What caused it]
### Fix Applied
[What was changed]
### Verification
- TypeCheck: PASS
- Lint: PASS
- Tests: PASS
- qa-commit: GREEN
### Hardening
- Regression test: [Created/Skipped]
- Known Issues: [Added/Existing]
- Patine: [Captured/Skipped]
**Status:** RESOLVED
```
---
## MCP Tools Used
| Tool | Phase | Purpose |
|------|-------|---------|
| ReadLints | 1 | Get lint/type errors |
| Browser MCP | 1, 2 | Console, network, DOM |
| Context7 | 1 | Library error patterns |
| Notion MCP | 3, 7 | Known Issues database |
| Shell | 6 | Run tests, typecheck |
| SemanticSearch | 3, 4 | Find related code |
| Grep | 3 | Search for patterns |
---
## Invocation
- **Auto:** Invoked by qa-commit on RED verdict
- **Manual:** "use debug skill"
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!