Team Testing
Orchestrate multi-agent test pipeline: strategist -> generator -> executor -> analyst. Progressive layer coverage (L1/L2/L3) with Generator-Critic loops for coverage convergence.
Architecture
Skill(skill="team-testing", 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 [strat] [gen] [exec] [analyst] team-worker agents, each loads roles/<role>/role.md
Role Registry
Role Path Prefix Inner Loop
coordinator roles/coordinator/role.md — —
strategist roles/strategist/role.md STRATEGY-* false
generator roles/generator/role.md TESTGEN-* true
executor roles/executor/role.md TESTRUN-* true
analyst roles/analyst/role.md TESTANA-* false
Role Router
Parse $ARGUMENTS :
-
Has --role <name> -> Read roles/<name>/role.md , execute Phase 2-4
-
No --role -> Read roles/coordinator/role.md , execute entry router
Shared Constants
-
Session prefix: TST
-
Session path: .workflow/.team/TST-<slug>-<date>/
-
Team name: testing
-
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:
Agent({ subagent_type: "team-worker", description: "Spawn <role> worker", team_name: "testing", name: "<role>", run_in_background: true, prompt: `## Role Assignment role: <role> role_spec: ~ or <project>/.claude/skills/team-testing/roles/<role>/role.md session: <session-folder> session_id: <session-id> team_name: testing requirement: <task-description> inner_loop: <true|false>
Read role_spec file to load Phase 2-4 domain instructions. Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).` })
User Commands
Command Action
check / status
View pipeline status graph
resume / continue
Advance to next step
revise <TASK-ID>
Revise specific task
feedback <text>
Inject feedback for revision
Completion Action
When pipeline completes, coordinator presents:
AskUserQuestion({ questions: [{ question: "Testing pipeline complete. What would you like to do?", header: "Completion", multiSelect: false, options: [ { label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" }, { label: "Keep Active", description: "Keep session for follow-up work" }, { label: "Deepen Coverage", description: "Add more test layers or increase coverage targets" } ] }] })
Session Directory
.workflow/.team/TST-<slug>-<date>/ ├── .msg/messages.jsonl # Team message bus ├── .msg/meta.json # Session metadata ├── wisdom/ # Cross-task knowledge ├── strategy/ # Strategist output ├── tests/ # Generator output (L1-unit/, L2-integration/, L3-e2e/) ├── results/ # Executor output └── analysis/ # Analyst output
Specs Reference
-
specs/pipelines.md — Pipeline definitions and task registry
-
specs/team-config.json — Team configuration
Error Handling
Scenario Resolution
Unknown --role value Error with available role list
Role not found Error with expected path (roles//role.md)
CLI tool fails Worker fallback to direct implementation
GC loop exceeded Accept current coverage with warning
Fast-advance conflict Coordinator reconciles on next callback
Completion action fails Default to Keep Active