Skip to content
Back to skills

Frontend Debug

ASecurity

Autonomously debug frontend issues through empirical browser observation using Chrome DevTools MCP. This skill should be used when debugging UI/UX issues, visual bugs, interaction failures, console errors, or network problems in web applications. Provides systematic 6-phase debugging workflow with GitHub integration, automated verification, and knowledge retention.

  • 666 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added February 8, 2026
developmentjavascriptgojavabashtestingdebugginggitapidatabasefrontend

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add majiayu000/claude-skill-registry --skill frontend-debug --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Frontend Debug?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Frontend Debug
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-frontend-debug/badge)](https://www.skillsdirectory.com/skills/majiayu000-frontend-debug)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: frontend-debug
description: Autonomously debug frontend issues through empirical browser observation using Chrome DevTools MCP. This skill should be used when debugging UI/UX issues, visual bugs, interaction failures, console errors, or network problems in web applications. Provides systematic 6-phase debugging workflow with GitHub integration, automated verification, and knowledge retention.
---

# Frontend Debug

## Overview

Enable autonomous frontend debugging through empirical browser observation and systematic investigation. This skill implements a structured 6-phase workflow that combines Chrome DevTools MCP for real-world browser testing with automated root cause analysis, fix implementation, and verification. No issue is considered resolved until empirically verified through direct browser interaction.

**Core Principle**: Evidence-based debugging requires direct browser observation. Never assume a fix works without browser verification.

## When to Use This Skill

Invoke this skill for:

- Visual bugs: Elements missing, misaligned, or incorrectly styled
- Interaction failures: Clicks not working, forms not submitting, navigation broken
- Console errors: JavaScript errors, warnings, or unexpected log messages
- Network issues: Failed API requests, incorrect payloads, timeout errors
- Regression detection: Features that stopped working after changes
- GitHub issue debugging: When issue numbers or URLs are referenced

**Activation patterns**:
```bash
# Direct invocation with issue description
@~/.claude/skills/frontend-debug/SKILL.md "Login button not responding"

# With flags for complex issues
@~/.claude/skills/frontend-debug/SKILL.md "Form validation broken" --ultrathink --loop

# From GitHub issue (automatically fetches details)
@~/.claude/skills/frontend-debug/SKILL.md --github-issue 123
@~/.claude/skills/frontend-debug/SKILL.md "#123"  # Shorthand
```

## Workflow Architecture

Execute debugging through 6 systematic phases:

**Phase 0**: Initialization & Context Gathering
**Phase 1**: Browser Investigation & Observation
**Phase 2**: Root Cause Analysis & Fix Strategy
**Phase 3**: Implementation
**Phase 4**: Empirical Verification (MANDATORY)
**Phase 5**: Reporting & Cleanup

**Loop Flag**: If `--loop` is specified, automatically retry Phase 1-4 on verification failure (max 3 iterations).

---

## Phase 0: Initialization & Context Gathering

**Objective**: Establish debugging session and gather complete issue context.

### Step 1: Determine Issue Source

If GitHub issue reference detected (e.g., `--github-issue 123`, `"#123"`, GitHub URL):
1. Load `@contexts/github-integration.md` for GitHub workflow guidance
2. Fetch issue details via gh CLI: `gh issue view <number> --json title,body,labels`
3. Extract reproduction steps, expected vs actual behavior

If inline description provided:
1. Use description as-is for investigation
2. Ask clarifying questions if ambiguous

If no description:
1. Request user to describe: symptoms, steps to reproduce, expected behavior

### Step 2: Detect Project Context

Check for special project configurations:

**SoftTrak Detection**:
- Check if `package.json` contains "softtrak" OR `.softtrak/` directory exists
- If detected → Load `@contexts/softtrak.md` for credentials and auto-correction details

**Git Worktree Detection**:
- Run: `git rev-parse --git-dir | grep "\.git/worktrees"`
- If in worktree → Load `@contexts/worktree.md` for multi-session management

### Step 3: Initialize Session

Create debugging session with tracking:

```bash
# Generate session ID
SESSION_ID="{project-name}-{timestamp}"  # or "{worktree-name}-{timestamp}"

# Create checkpoint file for crash recovery
touch .debug-session-${SESSION_ID}.json

# Initialize TodoWrite with 6-phase tracking
# - Phase 0: Initialization ✅
# - Phase 1: Investigation (pending)
# - Phase 2: Root Cause Analysis (pending)
# - Phase 3: Implementation (pending)
# - Phase 4: Verification (pending)
# - Phase 5: Reporting (pending)
```

### Step 4: Check for Incomplete Sessions

Look for existing checkpoint files:
```bash
ls -la .debug-session-*.json
```

If found, offer to resume from last checkpoint with session state.

**Checkpoint Criteria**: Session initialized, issue understood, TodoWrite created, ready for browser investigation.

---

## Phase 1: Browser Investigation & Observation

**Objective**: Systematically investigate issue through direct browser observation.

**Primary Tool**: Chrome DevTools MCP (MANDATORY - always use `--isolated` flag)

### Investigation Sequence

#### 1. Launch Browser Session

```bash
# CRITICAL: Always use --isolated flag to prevent browser conflicts
# Launch new isolated Chrome instance
# Navigate to application URL
# Handle authentication if required (use login helpers if available)
# Navigate to problematic page/feature
```

#### 2. Capture Initial State

Execute all baseline captures:

```yaml
required_captures:
  - take_snapshot: Document current DOM/UI state
  - take_screenshot: Visual baseline for comparison
  - list_console_messages: Capture all console output (errors, warnings, info)
  - list_network_requests: Capture all network activity (status codes, payloads)
```

#### 3. Reproduce Issue

Follow reproduction steps systematically:
- Execute each step from issue description
- Use browser interaction tools: `click`, `fill`, `hover`, `navigate`
- Observe behavior vs expected behavior at each step
- Document exact failure mode and symptoms

#### 4. Deep Investigation

Execute comprehensive checks:

```yaml
mandatory_checks:
  console_analysis:
    - Identify errors (stack traces, error messages)
    - Note warnings related to issue
    - Check for missing dependencies or failed imports

  network_analysis:
    - Identify failed requests (4xx, 5xx status codes)
    - Inspect request/response payloads
    - Check for timeout errors or slow requests

  dom_analysis:
    - Verify elements exist in DOM via snapshot
    - Check element visibility and styling
    - Validate event listeners are attached

  state_analysis:
    - Inspect localStorage, sessionStorage
    - Check cookies and authentication state
    - Validate application state in console
```

#### 5. Parallel Analysis (if needed)

For complex issues, invoke additional analysis:

- **Sequential MCP**: Multi-step reasoning for complex root cause analysis
- **Context7 MCP**: Framework-specific patterns and debugging approaches
- **Codebase Exploration**: Read relevant source files for context

**Checkpoint Criteria**: Issue reproduced in browser, root cause hypothesis formed with confidence score.

---

## Phase 2: Root Cause Analysis & Fix Strategy

**Objective**: Determine why issue occurs and formulate fix strategy.

### Step 1: Invoke Troubleshooting Analysis

Use SuperClaude troubleshoot command:

```bash
/sc:troubleshoot [detailed-issue-description] --validate --c7 --seq --persona-analyzer
```

This provides structured analysis using:
- Sequential MCP for systematic reasoning
- Context7 MCP for framework patterns
- Analyzer persona for root cause investigation

### Step 2: Formulate Hypothesis

Structure analysis output:

```yaml
root_cause_analysis:
  primary_cause: "Why the issue occurs (e.g., event listener not attached)"
  contributing_factors:
    - "Factor 1 (e.g., async timing issue)"
    - "Factor 2 (e.g., missing dependency)"
  confidence_score: 0.75  # 0.0-1.0 scale
  evidence:
    - "Console error showing specific failure"
    - "Network request returning 404"
    - "DOM element missing expected class"
```

### Step 3: Generate Fix Candidates

Develop 1-3 potential fixes ranked by confidence:

```yaml
fix_candidates:
  option_1:
    approach: "Primary fix strategy"
    confidence: 0.8
    risk: "low"
    rollback: "Easy - single file change"

  option_2:
    approach: "Alternative fix strategy"
    confidence: 0.6
    risk: "medium"
    rollback: "Moderate - multiple files"
```

### Step 4: Request Confirmation (if needed)

If confidence < 70%:
1. Present analysis and proposed fix to user
2. Explain uncertainty and alternatives
3. Request approval before proceeding

**Checkpoint Criteria**: Root cause identified with acceptable confidence, fix strategy approved.

### Step 5: Complexity Escalation Assessment

**After root cause analysis, evaluate debugging complexity for potential agent delegation:**

**Escalation Indicators** (if ANY are true, consider agent delegation):

1. **Low Confidence**: Root cause confidence score **<60%**
2. **Multi-Domain Issue**: Multiple interacting systems involved
   - Example: Network (API) + State (Redux) + UI (rendering)
3. **Systemic Problem**: Issue affects multiple components or features
4. **Deep Investigation**: Requires analysis across **>5 files**
5. **Specialized Analysis**: User explicitly requests domain-specific investigation
6. **Multiple Issues**: User reports 2+ unrelated problems to debug

**Decision Logic**:

If escalation indicators detected:
```yaml
action: delegate_to_agent
reason: "Complex debugging requires specialized sub-agent coordination"
next_step: "Invoke Task tool with frontend-debug-agent"
confidence_requirement: "<60% OR multi_domain:true OR systemic:true"
```

**Agent Invocation Pattern**:
```
Tool: Task
Description: "Complex frontend debugging requiring specialized analysis: [issue-summary]"
Agent Type: root-cause-analyst
Context: {
  browser_evidence: "[screenshots, console logs]",
  reproduction_steps: "[steps from Phase 1]",
  hypothesis: "[from Phase 2 analysis]",
  confidence: "[confidence score]",
  domains_affected: "[network|state|ui|performance]"
}
```

Agent will spawn specialized debugging sub-agents and coordinate investigation.

If escalation indicators NOT detected:
```yaml
action: continue_with_skill
reason: "Confidence acceptable, single-domain issue, skill-based debugging appropriate"
next_step: "Proceed to Phase 3: Implementation"
```

---

**Proceed with skill-based fix implementation:**

## Phase 3: Implementation

**Objective**: Apply fix to codebase following best practices.

### Step 1: Code Modification

Execute fix using appropriate tools:

```yaml
file_operations:
  single_file: Use Edit tool
  multiple_files: Use MultiEdit tool for atomic changes

code_standards:
  - Follow existing code patterns and conventions
  - Add inline comments explaining fix
  - Consider edge cases and error handling
  - Maintain consistent formatting
```

### Step 2: Backend Verification (if applicable)

For issues involving backend changes:

```bash
# Test API endpoints with curl
curl -X POST http://localhost:3000/api/endpoint \
  -H "Content-Type: application/json" \
  -d '{"test": "data"}'

# Check database state if relevant
# Verify server logs for errors
```

### Step 3: Build & Restart (if required)

Execute build process if needed:

```bash
# Rebuild application
npm run build  # or appropriate build command

# Restart dev server
# Clear browser cache if needed
# Verify server is running
```

**Checkpoint Criteria**: Fix implemented in code, application ready for empirical testing.

---

## Phase 4: Empirical Verification (MANDATORY)

**Objective**: Verify fix through direct browser observation.

**CRITICAL**: This phase is MANDATORY. Never skip browser verification. Use Chrome DevTools MCP exclusively.

### Verification Criteria (ALL must pass)

Execute comprehensive verification:

#### 1. UI State Verification ✅

```yaml
checks:
  - Visual appearance matches expected state
  - Elements present and correctly positioned
  - Styling applied correctly
  - Responsive behavior works
  - Screenshot comparison (before/after)
```

#### 2. Console Verification ✅

```yaml
checks:
  - No errors related to the fix
  - No new warnings introduced
  - Expected log messages present
  - Clean console output
```

#### 3. Network Verification ✅

```yaml
checks:
  - All requests succeed (200/201/204 status)
  - Payloads correct in structure and content
  - Response times acceptable
  - No timeout errors
```

#### 4. Interaction Verification ✅

```yaml
checks:
  - Complete user flow works end-to-end
  - All clickable elements respond
  - Forms submit successfully
  - Navigation functions correctly
  - State persists appropriately
```

#### 5. Regression Check ✅

```yaml
checks:
  - Related features still work
  - No new issues introduced
  - Core workflows unaffected
  - Edge cases handled
```

### Verification Process

Execute verification systematically:

```yaml
step_1_prepare:
  - Hard reload browser (Cmd+Shift+R / Ctrl+Shift+R)
  - Clear cached state if needed
  - Return to starting point of user flow

step_2_execute:
  - Reproduce original issue scenario
  - Observe UI state and behavior at each step
  - Monitor console for errors
  - Monitor network for failures

step_3_validate:
  - Compare actual behavior against expected
  - Take final screenshot for evidence
  - Document verification results
  - Note any unexpected observations
```

### Verification Failure Handling

If ANY verification criterion fails:

**With `--loop` flag** (Enhanced with Agent Escalation):

**Iteration 1** (Skill-based):
- Automatically restart from Phase 1
- Re-investigate with new observations in skill context

**If Iteration 1 fails** → Escalation Decision:
```yaml
iteration_1_failed: true
action: "Evaluate complexity for agent delegation"
threshold: "If confidence <50% OR new domains discovered → delegate"
```

**Iterations 2-3** (Agent-based if escalated):
- Invoke frontend-debug-agent for deeper investigation
- Agent spawns specialized sub-agents as needed
- Agent coordinates up to 2 additional iterations
- Maximum total: 1 skill iteration + 2 agent iterations = 3 total

**Rationale**: Keep simple retries in main context, escalate complex cases to agents.

**Without `--loop` flag**:
1. Report verification failure with details
2. Explain which criteria failed and why
3. Request user guidance on next steps

**Checkpoint Criteria**: All 5 verification criteria passed, fix confirmed working.

---

## Phase 5: Reporting & Cleanup

**Objective**: Document findings and close debugging session.

### Step 1: Generate Investigation Report

Create comprehensive report:

```markdown
# Frontend Debug Report: {Issue Title}

## Summary
[One-line description of issue and fix]

## Root Cause
[Detailed explanation of why issue occurred]

## Fix Applied
[What was changed and why it resolves the issue]

## Verification Results
- ✅ UI State: [Details]
- ✅ Console: [Details]
- ✅ Network: [Details]
- ✅ Interactions: [Details]
- ✅ Regression: [Details]

## Evidence
- Before Screenshot: [path]
- After Screenshot: [path]
- Console Logs: [relevant logs]
- Network Activity: [relevant requests]

## Recommended Tests
[Suggested regression tests to prevent future issues]

## Session Details
- Session ID: {session-id}
- Duration: {elapsed-time}
- Iterations: {loop-count}
```

### Step 2: GitHub Integration (if applicable)

If debugging from GitHub issue:

```bash
# Post resolution comment with report
gh issue comment <number> --body "[report-content]"

# Add resolved label to indicate fix has been applied and verified
gh issue edit <number> --add-label "resolved-by-claude"

# Remove automated-debug label if present
gh issue edit <number> --remove-label "automated-debug"

# DO NOT automatically close the issue
# Let human developers review the fix and close manually
# This ensures proper validation and prevents premature closure
```

### Step 3: Session Cleanup

Clean up debugging artifacts:

```bash
# Mark all TodoWrite tasks as completed
# Delete checkpoint file: rm .debug-session-${SESSION_ID}.json
# Close browser session via Chrome DevTools MCP
# Save final report to appropriate location
```

### Step 4: Knowledge Base Update (optional but recommended)

Store learning for future debugging:

```json
{
  "issue_pattern": "description of issue type",
  "root_cause_category": "async timing | network | state management | etc",
  "solution_pattern": "approach that resolved issue",
  "detection_signals": ["symptom 1", "symptom 2"],
  "fix_template": "reusable solution approach"
}
```

**Checkpoint Criteria**: Report generated, GitHub issue updated (if applicable), session cleaned up.

---

## Error Handling

### Browser Session Failures

```yaml
chrome_devtools_unavailable:
  symptom: "MCP connection fails"
  action: "Check Chrome DevTools MCP configuration in .mcp.json"
  fallback: "Request user to verify MCP setup and Chrome installation"

browser_already_running:
  symptom: "Port conflict or existing instance"
  cause: "--isolated flag not used"
  solution: "Always use --isolated=true for new debugging sessions"

navigation_timeout:
  symptom: "Page load timeout"
  action: "Increase timeout or check network connectivity"
  fallback: "Request user to verify application is running and accessible"

authentication_required:
  symptom: "Login page or auth wall"
  action: "Use project-specific login helper if available"
  fallback: "Request user credentials or authentication approach"
```

### Verification Failures

```yaml
fix_does_not_work:
  with_loop_flag:
    action: "Automatically restart Phase 1 (max 3 iterations)"
    logging: "Document why previous fix failed"

  without_loop_flag:
    action: "Report failure with detailed explanation"
    next_step: "Request user guidance on alternative approaches"

new_issue_introduced:
  action: "Rollback changes to previous working state"
  logging: "Document regression details"
  next_step: "Re-analyze with different fix strategy"

partial_success:
  action: "Document which criteria passed vs failed"
  decision: "Discuss with user whether partial fix is acceptable"
```

### GitHub Integration Failures

```yaml
gh_cli_not_available:
  symptom: "gh command not found"
  action: "Warn user to install: brew install gh"
  fallback: "Continue with manual issue description"

issue_not_found:
  symptom: "Issue number doesn't exist"
  action: "Verify issue number and repository"
  fallback: "Request user to provide issue details manually"

authentication_failed:
  symptom: "gh auth required"
  action: "Guide user through: gh auth login"
  fallback: "Continue without GitHub integration"
```

### Tool Reference Failures

If encountering errors with Chrome DevTools MCP tools:
1. Load `@references/mcp-tools.md` for detailed tool documentation
2. Review proper tool usage and parameters
3. Check for MCP configuration issues

---

## Conditional Context Loading

**Design Principle**: Load additional context only when detected or needed to optimize token usage.

### When to Load Additional Context

**GitHub Integration** → Load `@contexts/github-integration.md`
- **Trigger**: `--github-issue` flag OR GitHub issue reference detected (#123, URLs)
- **Provides**: Issue lifecycle management, gh CLI commands, automated tracking
- **Token Cost**: +1,000 tokens

**SoftTrak Project** → Load `@contexts/softtrak.md`
- **Trigger**: `package.json` contains "softtrak" OR `.softtrak/` directory exists
- **Provides**: Test credentials, auto-correction, project-specific configurations
- **Token Cost**: +600 tokens

**Git Worktree** → Load `@contexts/worktree.md`
- **Trigger**: `git rev-parse --git-dir | grep "\.git/worktrees"` succeeds
- **Provides**: Multi-session management, browser isolation strategies
- **Token Cost**: +400 tokens

**Tool Reference** → Load `@references/mcp-tools.md`
- **Trigger**: Agent encounters tool errors OR needs specific tool guidance
- **Provides**: Detailed Chrome DevTools MCP tool reference with examples
- **Token Cost**: +2,000 tokens

**Usage Examples** → Load `@references/examples.md`
- **Trigger**: User requests examples OR agent needs workflow clarification
- **Provides**: Example scenarios, expected workflows, common patterns
- **Token Cost**: +1,500 tokens

---

## Resources

This skill includes organized resources for effective debugging:

### scripts/

**`cleanup-sessions.sh`**
- Remove stale debug session checkpoint files
- Execute periodically to prevent workspace clutter
- Usage: `bash scripts/cleanup-sessions.sh`

### references/

**`mcp-tools.md`** - Detailed Chrome DevTools MCP tool reference
- Load when encountering tool errors
- Provides comprehensive tool usage examples
- Includes parameter documentation

**`examples.md`** - Example debugging scenarios
- Load when needing workflow clarification
- Shows realistic debugging sessions
- Demonstrates best practices

### contexts/

**`github-integration.md`** - GitHub issue lifecycle management
- Load when `--github-issue` flag used or issue reference detected
- Provides gh CLI command reference
- Documents automated tracking workflow

**`softtrak.md`** - SoftTrak project configuration
- Load when SoftTrak project detected
- Provides test credentials and auto-correction details
- Documents project-specific patterns

**`worktree.md`** - Git worktree multi-session support
- Load when in git worktree environment
- Provides browser isolation strategies
- Documents concurrent debugging workflows

### templates/

**`investigation-report-template.md`** - Report structure template
**`verification-checklist.md`** - Verification criteria checklist
**`session-state-schema.json`** - Session checkpoint schema
**`mcp-config-example.json`** - Chrome DevTools MCP configuration example

### Knowledge Base

**`knowledge-base.json`** - Stored debugging patterns and solutions
**`framework-quirks.json`** - Framework-specific gotchas and patterns
**`project-contexts/softtrak.json`** - SoftTrak project data

---

## Best Practices

1. **Always Use Chrome DevTools MCP**: Empirical verification requires real browser observation
2. **Always Use --isolated Flag**: Prevents browser conflicts in concurrent debugging sessions
3. **Load Context Conditionally**: Only load additional modules when detection patterns match
4. **Document Thoroughly**: Maintain detailed checkpoint files for crash recovery
5. **Verify Empirically**: Never assume a fix works without browser verification in Phase 4
6. **Loop When Uncertain**: Use `--loop` flag for complex issues requiring iteration
7. **GitHub Integration**: Use issue tracking for accountability and knowledge retention
8. **Session Management**: Create checkpoint files for recovery from crashes or interruptions

---

## Performance & Token Optimization

**Modular Loading Strategy**: Conditional loading minimizes token usage.

**Token Budget**:
- Core Workflow (SKILL.md): ~4,500 tokens
- GitHub Integration: +1,000 tokens (conditional)
- SoftTrak Context: +600 tokens (conditional)
- Worktree Support: +400 tokens (conditional)
- Tool Reference: +2,000 tokens (conditional)
- Usage Examples: +1,500 tokens (conditional)

**Total Range**: 4,500 tokens (minimal) to 10,000 tokens (all modules loaded)

**Optimization**: Load only what's needed based on detection patterns, achieving 30-70% token savings vs loading everything upfront.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.