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
| |
Coordinator Worker
roles/coordinator/role.md roles//role.md
|
+-- analyze -> dispatch -> spawn workers -> STOP
|
+-------+-------+-------+-------+
v v v v
[strat] [gen] [exec] [analyst]
team-worker agents, each loads roles//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
-> Read
roles//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--/
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=, ...)
Worker Spawn Template
Coordinator spawns workers using this template:
Agent({
subagent_type: "team-worker",
description: "Spawn worker",
team_name: "testing",
name: "",
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
Revise specific task
feedback
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--/
├── .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