Claude-Code-Workflow team-frontend-debug

Frontend debugging team using Chrome DevTools MCP. Dual-mode — feature-list testing or bug-report debugging. Triggers on "team-frontend-debug", "frontend debug".

install
source · Clone the upstream repo
git clone https://github.com/catlog22/Claude-Code-Workflow
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/catlog22/Claude-Code-Workflow "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.codex/skills/team-frontend-debug" ~/.claude/skills/catlog22-claude-code-workflow-team-frontend-debug-28fce5 && rm -rf "$T"
manifest: .codex/skills/team-frontend-debug/SKILL.md
source content

Frontend Debug Team

Dual-mode frontend debugging: feature-list testing or bug-report debugging, powered by Chrome DevTools MCP.

Architecture

Skill(skill="team-frontend-debug", args="feature list or bug description")
                    |
         SKILL.md (this file) = Router
                    |
     +--------------+--------------+
     |                             |
  no --role flag              --role <name>
     |                             |
  Coordinator                  Worker
  roles/coordinator/role.md    roles/<name>/role.md
     |
     +-- analyze input → select pipeline → dispatch → spawn → STOP
                                    |
         ┌──────────────────────────┼──────────────────────┐
         v                         v                       v
    [test-pipeline]          [debug-pipeline]          [shared]
     tester(DevTools)        reproducer(DevTools)      analyzer
                                                       fixer
                                                       verifier

Pipeline Modes

InputPipelineFlow
Feature list / 功能清单
test-pipeline
TEST → ANALYZE → FIX → VERIFY
Bug report / 错误描述
debug-pipeline
REPRODUCE → ANALYZE → FIX → VERIFY

Role Registry

RolePathPrefixInner Loop
coordinatorroles/coordinator/role.md
testerroles/tester/role.mdTEST-*true
reproducerroles/reproducer/role.mdREPRODUCE-*false
analyzerroles/analyzer/role.mdANALYZE-*false
fixerroles/fixer/role.mdFIX-*true
verifierroles/verifier/role.mdVERIFY-*false

Role Router

Parse

$ARGUMENTS
:

  • Has
    --role <name>
    → Read
    roles/<name>/role.md
    , execute Phase 2-4
  • No
    --role
    roles/coordinator/role.md
    , execute entry router

Delegation Lock

Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.

Before calling ANY tool, apply this check:

Tool CallVerdictReason
spawn_agent
,
wait_agent
,
close_agent
,
send_message
,
followup_task
ALLOWEDOrchestration
list_agents
ALLOWEDAgent health check
request_user_input
ALLOWEDUser interaction
mcp__ccw-tools__team_msg
ALLOWEDMessage bus
Read/Write
on
.workflow/.team/
files
ALLOWEDSession state
Read
on
roles/
,
commands/
,
specs/
ALLOWEDLoading own instructions
Read/Grep/Glob
on project source code
BLOCKEDDelegate to worker
Edit
on any file outside
.workflow/
BLOCKEDDelegate to worker
Bash("ccw cli ...")
BLOCKEDOnly workers call CLI
Bash
running build/test/lint commands
BLOCKEDDelegate to worker

If a tool call is BLOCKED: STOP. Create a task, spawn a worker.

No exceptions for "simple" tasks. Even a single-file read-and-report MUST go through spawn_agent.


Shared Constants

  • Session prefix:
    TFD
  • Session path:
    .workflow/.team/TFD-<date>-<slug>/
  • CLI tools:
    ccw cli --mode analysis
    (read-only),
    ccw cli --mode write
    (modifications)
  • Message bus:
    mcp__ccw-tools__team_msg(session_id=<session-id>, ...)

Workspace Resolution

Coordinator MUST resolve paths at Phase 2 before spawning workers:

  1. Run
    Bash({ command: "pwd" })
    → capture
    project_root
    (absolute path)
  2. skill_root = <project_root>/.claude/skills/team-frontend-debug
  3. Store in
    team-session.json
    :
    { "project_root": "/abs/path/to/project", "skill_root": "/abs/path/to/skill" }
    
  4. All worker
    role_spec
    values MUST use
    <skill_root>/roles/<role>/role.md
    (absolute)

This ensures workers always receive an absolute, resolvable path regardless of their working directory.

Chrome DevTools MCP Tools

All browser inspection operations use Chrome DevTools MCP. Reproducer and Verifier are primary consumers.

ToolPurpose
mcp__chrome-devtools__navigate_page
Navigate to target URL
mcp__chrome-devtools__take_screenshot
Capture visual state
mcp__chrome-devtools__take_snapshot
Capture DOM/a11y tree
mcp__chrome-devtools__list_console_messages
Read console logs
mcp__chrome-devtools__get_console_message
Get specific console message
mcp__chrome-devtools__list_network_requests
Monitor network activity
mcp__chrome-devtools__get_network_request
Inspect request/response detail
mcp__chrome-devtools__performance_start_trace
Start performance recording
mcp__chrome-devtools__performance_stop_trace
Stop and analyze trace
mcp__chrome-devtools__click
Simulate user click
mcp__chrome-devtools__fill
Fill form inputs
mcp__chrome-devtools__hover
Hover over elements
mcp__chrome-devtools__evaluate_script
Execute JavaScript in page
mcp__chrome-devtools__wait_for
Wait for element/text
mcp__chrome-devtools__list_pages
List open browser tabs
mcp__chrome-devtools__select_page
Switch active tab

Worker Spawn Template

Coordinator spawns workers using this template:

spawn_agent({
  agent_type: "team_worker",
  task_name: "<task-id>",
  fork_turns: "none",
  message: `## Role Assignment
role: <role>
role_spec: <skill_root>/roles/<role>/role.md
session: <session-folder>
session_id: <session-id>
requirement: <task-description>
inner_loop: <true|false>

Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.

## Task Context
task_id: <task-id>
title: <task-title>
description: <task-description>
pipeline_phase: <pipeline-phase>

## Upstream Context
<prev_context>`
})

After spawning, use

wait_agent({ timeout_ms: 1800000 })
to collect results. If
result.timed_out
, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents. Use
close_agent({ target })
each worker.

Model Selection Guide

Debug workflows require tool-heavy interaction (Chrome DevTools MCP). Reasoning effort varies by role.

Rolereasoning_effortRationale
testermediumSystematic feature testing via DevTools, follows test plan
reproducermediumReproduce bugs via DevTools interaction steps
analyzerhighRoot cause analysis requires deep reasoning about evidence
fixerhighCode fixes must address root cause precisely
verifiermediumVerification follows defined success criteria via DevTools

User Commands

CommandAction
check
/
status
View execution status graph
resume
/
continue
Advance to next step
revise <TASK-ID> [feedback]
Revise specific task
feedback <text>
Inject feedback for revision
retry <TASK-ID>
Re-run a failed task

v4 Agent Coordination

Message Semantics

IntentAPIExample
Queue supplementary info (don't interrupt)
send_message
Send DevTools evidence to running analyzer
Assign new work / trigger debug round
followup_task
Assign re-fix after verification failure
Check running agents
list_agents
Verify agent health during resume

Agent Health Check

Use

list_agents({})
in handleResume and handleComplete:

// Reconcile session state with actual running agents
const running = list_agents({})
// Compare with team-session.json active tasks
// Reset orphaned tasks (in_progress but agent gone) to pending

Named Agent Targeting

Workers are spawned with

task_name: "<task-id>"
enabling direct addressing:

  • send_message({ target: "ANALYZE-001", message: "..." })
    -- send evidence from reproducer to analyzer
  • followup_task({ target: "FIX-001", message: "..." })
    -- assign fix based on analysis results
  • close_agent({ target: "VERIFY-001" })
    -- cleanup after verification

Iterative Debug Loop Pattern

When verifier reports a fix did not resolve the issue, coordinator uses

followup_task
to trigger re-analysis and re-fix:

// Verifier reports failure -> coordinator dispatches re-fix
followup_task({
  target: "FIX-001",   // reuse existing fixer if inner_loop, or spawn new
  message: `## Re-fix Assignment
verification_result: FAIL
failure_evidence: <verifier's screenshot/console evidence>
previous_fix_summary: <what was tried>
instruction: Analyze verification failure and apply corrected fix.`
})

This pattern enables iterative debug rounds: FIX -> VERIFY -> re-FIX -> re-VERIFY (max 3 rounds).

Completion Action

When pipeline completes, coordinator presents:

functions.request_user_input({
  questions: [{
    question: "Pipeline complete. What would you like to do?",
    header: "Completion",
    multiSelect: false,
    options: [
      { label: "Archive & Clean (Recommended)", description: "Archive session, clean up" },
      { label: "Keep Active", description: "Keep session for follow-up debugging" },
      { label: "Export Results", description: "Export debug report and patches" }
    ]
  }]
})

Specs Reference

Session Directory

.workflow/.team/TFD-<date>-<slug>/
├── team-session.json           # Session state + role registry
├── evidence/                   # Screenshots, snapshots, network logs
├── artifacts/                  # Test reports, RCA reports, patches, verification reports
├── wisdom/                     # Cross-task debug knowledge
└── .msg/                       # Team message bus

Error Handling

ScenarioResolution
All features pass testReport success, pipeline completes without ANALYZE/FIX/VERIFY
Bug not reproducibleReproducer reports failure, coordinator asks user for more details
Browser not availableReport error, suggest manual reproduction steps
Analysis inconclusiveAnalyzer requests more evidence via iteration loop
Fix introduces regressionVerifier reports fail, coordinator dispatches re-fix
No issues found in testSkip downstream tasks, report all-pass
Unknown commandError with available command list
Role not foundError with role registry