CtrlK
BlogDocsLog inGet started
Tessl Logo

team-frontend

Unified team skill for frontend development. Pure router — all roles read this file. Beat model is coordinator-only in monitor.md. Built-in ui-ux-pro-max design intelligence. Triggers on "team frontend".

36

Quality

32%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./.codex/skills/team-frontend/SKILL.md
SKILL.md
Quality
Evals
Security

Team Frontend Development

Unified team skill: frontend development with built-in ui-ux-pro-max design intelligence. Covers requirement analysis, design system generation, frontend implementation, and quality assurance. Built on team-worker agent architecture — all worker roles share a single agent definition with role-specific Phase 2-4 loaded from role.md specs.

Architecture

Skill(skill="team-frontend", args="task description")
                    |
         SKILL.md (this file) = Router
                    |
     +--------------+--------------+
     |                             |
  no --role flag              --role <name>
     |                             |
  Coordinator                  Worker
  roles/coordinator/role.md    roles/<name>/role.md
     |
     +-- analyze -> dispatch -> spawn workers -> STOP
                                    |
                    +-------+-------+-------+
                    v       v       v       v
               [analyst] [architect] [developer] [qa]
              (team-worker agents, each loads roles/<role>/role.md)

Role Registry

RolePathPrefixInner Loop
coordinatorroles/coordinator/role.md
analystroles/analyst/role.mdANALYZE-*false
architectroles/architect/role.mdARCH-*false
developerroles/developer/role.mdDEV-*true
qaroles/qa/role.mdQA-*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 CallVerdictReason
spawn_agent, wait_agent, close_agent, send_message, followup_taskALLOWEDOrchestration
list_agentsALLOWEDAgent health check
request_user_inputALLOWEDUser interaction
mcp__ccw-tools__team_msgALLOWEDMessage bus
Read/Write on .workflow/.team/ filesALLOWEDSession state
Read on roles/, commands/, specs/ALLOWEDLoading own instructions
Read/Grep/Glob on project source codeBLOCKEDDelegate to worker
Edit on any file outside .workflow/BLOCKEDDelegate to worker
Bash("ccw cli ...")BLOCKEDOnly workers call CLI
Bash running build/test/lint commandsBLOCKEDDelegate 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: FE
  • Session path: .workflow/.team/FE-<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>, ...)

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

Rolemodelreasoning_effortRationale
Analyst (ANALYZE-*)(default)highDesign intelligence requires deep UI/UX reasoning
Architect (ARCH-*)(default)highComponent spec and design token generation needs precision
Developer (DEV-*)(default)highFrontend code generation needs full reasoning
QA (QA-*)(default)high5-dimension audit requires thorough analysis

Override model/reasoning_effort in spawn_agent when cost optimization is needed:

spawn_agent({
  agent_type: "team_worker",
  task_name: "<task-id>",
  fork_turns: "none",
  model: "<model-override>",
  reasoning_effort: "<effort-level>",
  message: "..."
})

User Commands

CommandAction
check / statusView execution status graph
resume / continueAdvance to next step

Session Directory

.workflow/.team/FE-<slug>-<YYYY-MM-DD>/
├── .msg/
│   ├── messages.jsonl          # Message bus log
│   └── meta.json               # Session state + cross-role state
├── task-analysis.json          # Coordinator analyze output
├── wisdom/                     # Cross-task knowledge
├── analysis/                   # Analyst output
│   ├── design-intelligence.json
│   └── requirements.md
├── architecture/               # Architect output
│   ├── design-tokens.json
│   ├── component-specs/
│   └── project-structure.md
├── qa/                         # QA output
│   └── audit-<NNN>.md
└── build/                      # Developer output

Specs Reference

v4 Agent Coordination

Message Semantics

IntentAPIExample
Send architecture specs to running developersend_messageQueue design tokens and component specs to DEV-*
Not used in this skillfollowup_taskNo resident agents -- all workers are one-shot
Check running agentslist_agentsVerify agent health during resume

Pipeline Pattern

Sequential pipeline with GC loops: analyst -> architect -> developer -> QA. In system mode, architect revision (ARCH-002) and developer (DEV-001) may run in parallel after QA-001 arch review.

fork_turns Consideration

Developer workers (DEV-*) benefit from fork_turns: "all" when the coordinator has accumulated significant design context (analysis results, architecture specs, design tokens). This avoids the developer needing to re-read all upstream artifacts:

// Consider fork_turns: "all" for developer in feature/system modes
spawn_agent({
  agent_type: "team_worker",
  task_name: "DEV-001",
  fork_turns: "all",  // Developer gets full coordinator context including design decisions
  message: "..."
})

GC Loop (QA Fix Cycle)

QA may flag FIX_REQUIRED, creating DEV-fix + QA-recheck tasks (max 2 rounds). If QA score remains < 6 after 2 rounds, escalate to user.

Agent Health Check

Use list_agents({}) in handleResume and handleComplete:

// Reconcile session state with actual running agents
const running = list_agents({})
// Compare with tasks.json active_agents
// 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: "DEV-001", message: "..." }) -- queue architecture specs to running developer
  • close_agent({ target: "ARCH-001" }) -- cleanup by name after completion

Error Handling

ScenarioResolution
Unknown commandError with available command list
Role not foundError with role registry
QA score < 6 over 2 GC roundsEscalate to user
ui-ux-pro-max unavailableDegrade to LLM general design knowledge
Worker no responseReport waiting task, suggest user resume
Pipeline deadlockCheck blockedBy chain, report blocking point
Repository
catlog22/Claude-Code-Workflow
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.