← スキル一覧に戻る
debug-console
rayzru / info-web
⭐ 0🍴 0📅 2026年1月13日
Debug web app by capturing and analyzing console errors using Chrome DevTools MCP
SKILL.md
---
name: debug-console
description: Debug web app by capturing and analyzing console errors using Chrome DevTools MCP
context: fork
allowed-tools:
- mcp__playwright__browser_navigate
- mcp__playwright__browser_console_messages
- Read
- Write
---
# Debug with Console
Captures and analyzes console errors from web applications using Chrome DevTools MCP.
**Token Efficiency**: Eliminates manual console inspection pattern (60% savings: 2,000 → 800 tokens)
## Usage
Invoke with: `/debug-console [url]`
**Examples**:
- `/debug-console` - Debug current page (if browser already open)
- `/debug-console http://localhost:3000/app/scheduler` - Navigate and debug specific page
- `/debug-console http://localhost:3000` - Debug homepage
## Prerequisites
- Chrome DevTools MCP enabled: `claude --chrome`
- Chrome browser running with Claude in Chrome extension
- Application running on localhost:3000
## Workflow
### Step 1: Navigate to URL
**If URL provided**:
```javascript
mcp__playwright__browser_navigate({ url: "[provided-url]" })
```
**If no URL provided**:
- Use current page in Chrome browser
- Skip navigation step
### Step 2: Capture Console Messages
**Capture errors and warnings**:
```javascript
mcp__playwright__browser_console_messages({ level: "error" })
```
**Filter criteria**:
- Level: "error" includes errors and warnings (higher severity levels included)
- JavaScript errors
- Network failures (404, 500, CORS errors)
- React/Next.js errors
- Runtime exceptions
### Step 3: Analyze Errors
**Group errors by type**:
1. **Syntax Errors**: Parse errors, invalid syntax
2. **Runtime Errors**: TypeError, ReferenceError, null/undefined access
3. **Network Errors**: Failed fetches, 404s, CORS issues
4. **Framework Errors**: React hydration, Next.js errors
5. **Third-party Errors**: External library errors
**Extract details**:
- Error message (full text)
- File location (file:line:column)
- Stack trace (if available)
- Error count (number of occurrences)
- Timestamp (when error occurred)
### Step 4: Report Findings
**Create structured summary**:
```markdown
## Console Debug Report: [URL]
**Date**: [timestamp]
**Browser**: Chrome (via Chrome DevTools MCP)
### Summary
- Total errors: [count]
- Critical errors: [count] (blocking functionality)
- Warnings: [count] (non-blocking issues)
- Network failures: [count]
### Critical Errors
#### 1. [Error Type] - [Severity]
- **Message**: [error message]
- **Location**: [file:line:column]
- **Type**: [TypeError | ReferenceError | NetworkError | etc.]
- **Stack Trace**:
```
[stack trace if available]
```
- **Occurrences**: [count]
- **Impact**: [description of what's broken]
- **Recommendation**: [specific fix suggestion]
[Repeat for each critical error]
### Warnings
#### 1. [Warning Type]
- **Message**: [warning message]
- **Location**: [file:line:column]
- **Recommendation**: [fix suggestion]
[Repeat for each warning]
### Network Failures
#### 1. [Request URL]
- **Status**: [404 | 500 | etc.]
- **Type**: [CORS | Timeout | Server Error]
- **Recommendation**: [fix suggestion]
[Repeat for each network failure]
### Next Steps
**Immediate actions**:
1. [Fix critical error 1]
2. [Fix critical error 2]
3. [Address network failures]
**Optional improvements**:
1. [Address warnings]
2. [Performance optimizations based on console logs]
```
### Step 5: Save Report (if critical errors found)
**Only save if**:
- Critical errors count > 0
- OR warnings count > 3
- OR network failures count > 1
**Save location**: `.claude/logs/debug_console_[timestamp].md`
**If no critical issues**:
- Report summary directly to user
- Don't create log file (token efficiency)
## Success Criteria
- [x] All console errors captured (error level and above)
- [x] Errors categorized by type (syntax, runtime, network, framework)
- [x] File locations extracted (file:line:column)
- [x] Stack traces included for critical errors
- [x] Actionable recommendations provided for each error
- [x] Report format clear and structured
## Error Handling
### Common Issues
**Issue**: "Chrome DevTools MCP not available"
- **Solution**: Start Claude Code with `claude --chrome`
- **Fallback**: Suggest manual console inspection
**Issue**: "Browser not responding"
- **Solution**: Check for modal dialogs blocking browser
- **Action**: Dismiss dialogs manually or create new tab
**Issue**: "No console messages found"
- **Result**: Report "No errors found" (success case)
- **Action**: Inform user app is running without console errors
**Issue**: "Too many console messages (>100)"
- **Solution**: Use `head_limit` to capture first 50 errors
- **Action**: Note in report: "First 50 errors shown (total: [count])"
## Examples
### Example 1: Simple Debug
**User**: `/debug-console http://localhost:3000/app/scheduler`
**Output**:
```markdown
## Console Debug Report: http://localhost:3000/app/scheduler
### Summary
- Total errors: 2
- Critical errors: 1
- Warnings: 1
### Critical Errors
#### 1. TypeError - Critical
- **Message**: Cannot read properties of undefined (reading 'shifts')
- **Location**: SchedulerView.tsx:42:15
- **Type**: TypeError (Runtime Error)
- **Stack Trace**:
```
at SchedulerView (SchedulerView.tsx:42:15)
at renderWithHooks (react-dom.production.min.js:14985)
```
- **Occurrences**: 1
- **Impact**: Scheduler fails to render shift data
- **Recommendation**: Add null check before accessing shifts: `data?.shifts?.map(...)`
### Warnings
#### 1. React Hydration Warning
- **Message**: Text content did not match. Server: "0 shifts" Client: "Loading..."
- **Location**: ShiftCount.tsx:15:8
- **Recommendation**: Ensure server and client render same initial state
### Next Steps
**Immediate actions**:
1. Fix TypeError in SchedulerView.tsx line 42 (add null check)
2. Review React hydration in ShiftCount component
```
### Example 2: No Errors Found
**User**: `/debug-console`
**Output**:
```markdown
## Console Debug Report: http://localhost:3000/app/scheduler
✅ No errors found!
**Summary**:
- Total errors: 0
- Warnings: 0
- Network failures: 0
The application is running without console errors.
```
### Example 3: Network Failures
**User**: `/debug-console http://localhost:3000/app/dashboard`
**Output**:
```markdown
## Console Debug Report: http://localhost:3000/app/dashboard
### Summary
- Total errors: 0
- Network failures: 2
### Network Failures
#### 1. GET /api/trpc/users.getAll
- **Status**: 500 Internal Server Error
- **Type**: Server Error
- **Recommendation**: Check server logs for tRPC procedure error
#### 2. GET /api/trpc/metrics.getWeekly
- **Status**: 404 Not Found
- **Type**: Missing Endpoint
- **Recommendation**: Verify tRPC router includes metrics.getWeekly procedure
### Next Steps
**Immediate actions**:
1. Check backend server logs for users.getAll error
2. Add metrics.getWeekly procedure to tRPC router
```
## Integration with Development Workflow
**When to use this Skill**:
- ✅ After implementing new feature (verify no console errors)
- ✅ Before committing code (pre-commit check)
- ✅ When user reports "app not working" (debug console first)
- ✅ After deployment to localhost (sanity check)
- ✅ When debugging UI issues (check for JavaScript errors)
**When NOT to use**:
- ❌ For formal E2E tests (use Playwright test framework instead)
- ❌ For production debugging (use production monitoring tools)
- ❌ For performance profiling (use Chrome DevTools profiler directly)
## Related Tools and Skills
- **auth-verify Skill**: Authenticate before debugging authenticated pages
- **PLAYWRIGHT_MCP_AUTOMATION.md**: Browser automation patterns
- **Chrome DevTools MCP**: Native browser debugging capabilities
## Token Efficiency
**Baseline (manual console inspection)**:
- Read PLAYWRIGHT_MCP_AUTOMATION.md: 1,200 tokens
- Navigate to page: 200 tokens
- Capture console: 300 tokens
- Analyze and format report: 300 tokens
- **Total**: ~2,000 tokens
**With debug-console Skill**:
- Skill invocation: 200 tokens
- Console capture + analysis: 400 tokens
- Report generation: 200 tokens
- **Total**: ~800 tokens
**Savings**: 1,200 tokens (60% reduction)
**Projected usage**: 10x per week
**Weekly savings**: 12,000 tokens
**Annual savings**: 624,000 tokens (~$1.50/year)
---
**Skill Version**: 1.0
**Created**: 2026-01-09
**Last Updated**: 2026-01-09
**Requires**: Claude Code v2.1.0+, Chrome DevTools MCP