Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Universal team coordination skill with dynamic role generation. Uses team-worker agent architecture with role-spec files. Only coordinator is built-in -- all worker roles are generated at runtime as role-specs and spawned via team-worker agent. Beat/cadence model for orchestration. Triggers on "Team Coordinate ".
.claude/skills/catlog22-team-coordinate/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 97% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 184% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 104% | 0% |
> Agent timeout: spawn_agent 异步执行且无内置超时 — 除明确短任务外一律 spawn_agent 后立即 wait_agent({ timeout_ms: 3600000 })(上限 1 小时)阻塞等待,绝不依赖 30000 默认值;timed_out: true 且 Agent 未完成时再次 wait_agent 续等,不丢弃。批量场景使用 spawn_agents_on_csv({ max_runtime_seconds: 3600, ... })。
> Plan tracking: codex 无 TaskCreate/TaskUpdate/TodoWrite 任务板。进度清单用 update_plan({ explanation?, plan: [{ step, status }] }) 维护(整体提交步骤数组,status: pending | in_progress | completed),权威状态始终在 session 工件中;依赖/认领(addBlockedBy/owner)是工件字段,不是工具参数。
<required_reading> @~/.maestro/workflows/run-mode-lite.md </required_reading>
Universal team coordination skill: analyze task -> generate role-specs -> dispatch -> execute -> deliver. Only the coordinator is built-in. All worker roles are dynamically generated as lightweight role-spec files and spawned via the team-worker agent.
+---------------------------------------------------+
| spawn_agent({ task_name: "team_coordinate", message: "Execute skill team-coordinate" }) |
| args="task description" |
+-------------------+-------------------------------+
|
Orchestration Mode (auto -> coordinator)
|
Coordinator (built-in)
Phase 0-5 orchestration
|
+-------+-------+-------+-------+
v v v v v
[team-worker agents, each loaded with a dynamic role-spec]
(roles generated at runtime from task analysis)
CLI Tools (callable by any worker):
maestro delegate --mode analysis - analysis and exploration
maestro delegate --mode write - code generation and modification| Constant | Value | |----------|-------| | Session prefix | TC | | Session path | {run_dir}/work/team/ | | Worker agent | team-worker | | Message bus | mcp__maestro__team_msg(session_id=<run-id>, ...) | | CLI analysis | maestro delegate --mode analysis | | CLI write | maestro delegate --mode write | | Max roles | 5 |
This skill is coordinator-only. Workers do NOT invoke this skill -- they are spawned as team-worker agents directly.
Parse $ARGUMENTS. No --role needed -- always routes to coordinator.
Only coordinator is statically registered. All other roles are dynamic, stored as role-specs in session.
| Role | File | Type | |------|------|------| | coordinator | roles/coordinator/role.md | built-in orchestrator | | (dynamic) | {run_dir}/work/team/role-specs/<role-name>.md | runtime-generated role-spec |
Workers can use CLI tools for analysis and code operations:
| Tool | Purpose | |------|---------| | maestro delegate --mode analysis | Analysis, exploration, pattern discovery | | maestro delegate --mode write | Code generation, modification, refactoring |
Always route to coordinator. Coordinator reads roles/coordinator/role.md and executes its phases.
User just provides task description.
Invocation: spawn_agent({ task_name: "team_coordinate", message: "Execute skill team-coordinate, args: task description" })
Lifecycle:
User provides task description
-> coordinator Phase 1: task analysis (detect capabilities, build dependency graph)
-> coordinator Phase 2: generate role-specs + initialize session
-> coordinator Phase 3: create task chain from dependency graph
-> coordinator Phase 4: spawn first batch workers (background) -> STOP
-> Worker executes -> send_message callback -> coordinator advances next step
-> Loop until pipeline complete -> Phase 5 report + completion actionUser Commands (wake paused coordinator):
| Command | Action | |---------|--------| | check / status | Output execution status graph, no advancement | | resume / continue | Check worker states, advance next step | | revise <TASK-ID> [feedback] | Revise specific task with optional feedback | | feedback <text> | Inject feedback into active pipeline | | improve [dimension] | Auto-improve weakest quality dimension |
When coordinator spawns workers, use team-worker agent with role-spec path:
spawn_agent({
subagent_type: "team-worker",
description: "Spawn <role> worker",
team_name: <team-name>,
name: "<role>",
run_in_background: true,
prompt: `## Role Assignment
role: <role>
role_spec: {run_dir}/work/team/role-specs/<role>.md
session: {run_dir}/work/team
session_id: <run-id>
team_name: <team-name>
requirement: <task-description>
inner_loop: <true|false>
## Progress Milestones
session_id: <run-id>
Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
Report blockers immediately via team_msg type="blocker".
Report completion via team_msg type="task_complete" after final send_message.
Read role_spec file to load Phase 2-4 domain instructions.
Execute built-in Phase 1 (task discovery) -> role-spec Phase 2-4 -> built-in Phase 5 (report).`
})Inner Loop roles (role has 2+ serial same-prefix tasks): Set inner_loop: true. The team-worker agent handles the loop internally.
Single-task roles: Set inner_loop: false.
When pipeline completes (all tasks done), coordinator presents an interactive choice:
request_user_input({
questions: [{
question: "Team 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: "Export Results", description: "Export deliverables to target directory, then clean" }
]
}]
})| Choice | Steps | |--------|-------| | Archive & Clean | Update session status="completed" -> TeamDelete -> output final summary with artifact paths | | Keep Active | Update session status="paused" -> output: "Resume with: spawn_agent({ task_name: "team_coordinate", message: "Execute skill team-coordinate, args: resume" })" | | Export Results | request_user_input(target path) -> copy artifacts to target -> Archive & Clean |
| Spec | Purpose | |------|---------| | specs/pipelines.md | Dynamic pipeline model, task naming, dependency graph | | specs/role-spec-template.md | Template for dynamic role-spec generation | | specs/quality-gates.md | Quality thresholds and scoring dimensions | | specs/knowledge-transfer.md | Context transfer protocols between roles |
{run_dir}/
+-- outputs/ # Formal worker deliverables
| +-- <artifact>.md
+-- evidence/discussions/ # Inline discuss records
| +-- <round>.md
+-- report.md # Human-readable synthesis + handoff
+-- work/team/ # Team coordination (non-artifact)
+-- team-session.json # Session state + dynamic role registry
+-- task-analysis.json # Phase 1 output: capabilities, dependency graph
+-- role-specs/ # Dynamic role-spec definitions (generated Phase 2)
| +-- <role-1>.md # Lightweight: frontmatter + Phase 2-4 only
| +-- <role-2>.md
+-- .msg/ # Team message bus + state
| +-- messages.jsonl # Message log
| +-- meta.json # Session metadata + cross-role state
+-- wisdom/ # Cross-task knowledge
| +-- learnings.md
| +-- decisions.md
| +-- issues.md
+-- explorations/ # Shared explore cache
+-- cache-index.json
+-- explore-<angle>.jsonjson{ "session_id": "TC-<slug>-<date>", "task_description": "<original user input>", "status": "active | paused | completed", "team_name": "<team-name>", "roles": [ { "name": "<role-name>", "prefix": "<PREFIX>", "responsibility_type": "<type>", "inner_loop": false, "role_spec": "role-specs/<role-name>.md" } ], "pipeline": { "dependency_graph": {}, "tasks_total": 0, "tasks_completed": 0 }, "active_workers": [], "completed_tasks": [], "completion_action": "interactive", "created_at": "<timestamp>" }
Coordinator supports resume / continue for interrupted sessions:
{run_dir}/work/team/team-session.json for active/paused sessions| Scenario | Resolution | |----------|------------| | Unknown command | Error with available command list | | Dynamic role-spec not found | Error, coordinator may need to regenerate | | Command file not found | Fallback to inline execution | | CLI tool fails | Worker proceeds with direct implementation, logs warning | | Explore cache corrupt | Clear cache, re-explore | | Fast-advance spawns wrong task | Coordinator reconciles on next callback | | capability_gap reported | Coordinator generates new role-spec via handleAdapt | | Completion action fails | Default to Keep Active, log warning |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 25,507 | 12,318 | -52% | 1 | 1 | 0% | 6,206 | 3,824 | -38% | 0 | 0 | — |
case-02 | fail→fail | 4,754 | 7,147 | +50% | 1 | 1 | 0% | 716 | 3,019 | +322% | 0 | 0 | — |
case-03 | fail→fail | 25,582 | 37,116 | +45% | 1 | 1 | 0% | 2,871 | 3,960 | +38% | 0 | 0 | — |
case-04 | fail→fail | 4,662 | 10,262 | +120% | 1 | 1 | 0% | 244 | 3,057 | +1153% | 0 | 0 | — |
case-05 | fail→fail | 13,227 | 6,930 | -48% | 1 | 1 | 0% | 2,593 | 3,023 | +17% | 0 | 0 | — |
case-11 | fail→pass | 8,591 | 2,617 | -70% | 1 | 1 | 0% | 1,525 | 3,007 | +97% | 0 | 0 | — |
case-06 | pass→fail | 9,318 | 12,358 | +33% | 1 | 1 | 0% | 1,714 | 2,979 | +74% | 0 | 0 | — |
case-07 | fail→pass | 13,252 | 10,782 | -19% | 1 | 1 | 0% | 2,197 | 4,607 | +110% | 0 | 0 | — |
case-08 | fail→pass | 20,087 | 3,285 | -84% | 1 | 1 | 0% | 1,905 | 3,187 | +67% | 0 | 0 | — |
case-09 | fail→pass | 7,267 | 3,419 | -53% | 1 | 1 | 0% | 1,084 | 3,077 | +184% | 0 | 0 | — |
case-10 | fail→pass | 9,443 | 3,029 | -68% | 1 | 1 | 0% | 1,416 | 2,893 | +104% | 0 | 0 | — |
case-12 | fail→pass | 13,126 | 6,781 | -48% | 1 | 1 | 0% | 2,064 | 3,784 | +83% | 0 | 0 | — |
case-13 | fail→pass | 12,974 | 7,930 | -39% | 1 | 1 | 0% | 2,219 | 3,253 | +47% | 0 | 0 | — |
case-14 | fail→pass | 6,485 | 2,493 | -62% | 1 | 1 | 0% | 1,072 | 3,068 | +186% | 0 | 0 | — |
case-15 | fail→pass | 10,454 | 7,597 | -27% | 1 | 1 | 0% | 1,785 | 3,909 | +119% | 0 | 0 | — |
case-16 | fail→pass | 11,109 | 1,915 | -83% | 1 | 1 | 0% | 1,704 | 2,899 | +70% | 0 | 0 | — |
case-17 | fail→pass | 8,465 | 3,830 | -55% | 1 | 1 | 0% | 1,228 | 3,410 | +178% | 0 | 0 | — |
case-18 | fail→fail | 9,494 | 4,707 | -50% | 1 | 1 | 0% | 1,622 | 3,281 | +102% | 0 | 0 | — |
case-19 | fail→pass | 8,756 | 2,777 | -68% | 1 | 1 | 0% | 1,527 | 3,135 | +105% | 0 | 0 | — |
case-20 | pass→fail | 7,893 | 5,665 | -28% | 1 | 1 | 0% | 1,405 | 2,954 | +110% | 0 | 0 | — |
case-21 | pass→pass | 7,347 | 4,737 | -36% | 1 | 1 | 0% | 1,233 | 3,373 | +174% | 0 | 0 | — |
case-22 | pass→pass | 11,011 | 10,550 | -4% | 1 | 1 | 0% | 1,806 | 3,914 | +117% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 16 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/3/2026 | +14% |
Other measured skills in the registry, with their headline benchmark lift.