Files
Claude-Code-Workflow/.codex/skills/team-frontend-debug/SKILL.md
catlog22 3111bd23f4 feat: add Delegation Lock and Scope Lock to all 18 team skill coordinators
Prevent coordinator from executing task work directly instead of
delegating to team_worker agents. Three-layer enforcement:

- SKILL.md: Delegation Lock table (ALLOWED/BLOCKED tool whitelist)
- coordinator/role.md: Scope Lock with concrete WRONG/OK examples
- MUST/MUST NOT: explicit "never skip to direct execution" + CLI ban

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 17:17:31 +08:00

8.5 KiB

name, description, allowed-tools
name description allowed-tools
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". spawn_agent(*), wait_agent(*), send_input(*), close_agent(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__chrome-devtools__*(*)

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

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

Role Registry

Role Path Prefix Inner Loop
coordinator roles/coordinator/role.md
tester roles/tester/role.md TEST-* true
reproducer roles/reproducer/role.md REPRODUCE-* false
analyzer roles/analyzer/role.md ANALYZE-* false
fixer roles/fixer/role.md FIX-* true
verifier roles/verifier/role.md VERIFY-* false

Role Router

Parse $ARGUMENTS:

  • Has --role <name> → Read roles/<name>/role.md, execute Phase 2-4
  • No --roleroles/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 Call Verdict Reason
spawn_agent, wait_agent, close_agent, send_input ALLOWED Orchestration
request_user_input ALLOWED User interaction
mcp__ccw-tools__team_msg ALLOWED Message bus
Read/Write on .workflow/.team/ files ALLOWED Session state
Read on roles/, commands/, specs/ ALLOWED Loading own instructions
Read/Grep/Glob on project source code BLOCKED Delegate to worker
Edit on any file outside .workflow/ BLOCKED Delegate to worker
Bash("ccw cli ...") BLOCKED Only workers call CLI
Bash running build/test/lint commands BLOCKED Delegate 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-<slug>-<date>/
  • 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.

Tool Purpose
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",
  items: [
    { type: "text", text: `## 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.` },

    { type: "text", text: `## Task Context
task_id: <task-id>
title: <task-title>
description: <task-description>
pipeline_phase: <pipeline-phase>` },

    { type: "text", text: `## Upstream Context
<prev_context>` }
  ]
})

After spawning, use wait_agent({ ids: [...], timeout_ms: 900000 }) to collect results, then close_agent({ id }) each worker.

User Commands

Command Action
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

Completion Action

When pipeline completes, coordinator presents:

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-<slug>-<date>/
├── 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

Scenario Resolution
All features pass test Report success, pipeline completes without ANALYZE/FIX/VERIFY
Bug not reproducible Reproducer reports failure, coordinator asks user for more details
Browser not available Report error, suggest manual reproduction steps
Analysis inconclusive Analyzer requests more evidence via iteration loop
Fix introduces regression Verifier reports fail, coordinator dispatches re-fix
No issues found in test Skip downstream tasks, report all-pass
Unknown command Error with available command list
Role not found Error with role registry