Unified team skill for interactive component crafting. Vanilla JS + CSS interactive components with zero dependencies. Research -> interaction design -> build -> a11y test. Uses team-worker agent architecture with roles/ for domain logic. Coordinator orchestrates pipeline with GC loops and sync points. Triggers on "team interactive craft", "interactive component".
Systematic interactive component pipeline: research -> interaction design -> build -> a11y test. Built on team-worker agent architecture -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from roles/<role>/role.md.
Skill(skill="team-interactive-craft", 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
[team-worker agents, each loads roles/<role>/role.md]
researcher interaction-designer builder a11y-tester
| Role |
|---|
| Path |
|---|
| Prefix |
|---|
| Inner Loop |
|---|
| coordinator | roles/coordinator/role.md | -- | -- |
| researcher | roles/researcher/role.md | RESEARCH-* | false |
| interaction-designer | roles/interaction-designer/role.md | INTERACT-* | false |
| builder | roles/builder/role.md | BUILD-* | true |
| a11y-tester | roles/a11y-tester/role.md | A11Y-* | false |
Parse $ARGUMENTS:
--role <name> -> Read roles/<name>/role.md, execute Phase 2-4--role -> roles/coordinator/role.md, execute entry routerCoordinator 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_message, followup_task | ALLOWED | Orchestration |
list_agents | ALLOWED | Agent health check |
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.
IC.workflow/.team/IC-<date>-<slug>/ccw cli --mode analysis (read-only), ccw cli --mode write (modifications)mcp__ccw-tools__team_msg(session_id=<session-id>, ...)Coordinator spawns workers using this template:
spawn_agent({
agent_type: "team_worker",
task_name: "<task-id>",
fork_turns: "none",
message: `## Role Assignment