| name | team-lifecycle-v4 |
| description | Full lifecycle team skill — plan, develop, test, review in one coordinated session. Role-based architecture with coordinator-driven beat model. Triggers on "team lifecycle v4". |
| allowed-tools | teammate Read Write Edit Bash Glob Grep observe maestro |
| disable-model-invocation | true |
| session-mode | none |
<teammate_contract>
background: false is the default. Use foreground dispatch whenever the result determines the current answer or next action.
- Use
background: true only for independent work. If this turn must consume a background result, call observe exactly once with action: "wait" and a bounded timeout before continuing; never continue independently while the result is pending.
- Otherwise end the turn and wait for the automatic
teammate-complete notification. Do not rely on SendMessage, team_msg, or hook callbacks as completion signals.
- Never silently ignore an unfinished dispatch.
</teammate_contract>
<required_reading>
~/.maestro/workflows/run-mode-lite.md
</required_reading>
Team Lifecycle v4
Orchestrate multi-agent software development: specification → planning → implementation → testing → review.
Architecture
Skill(skill="team-lifecycle-v4", 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 → STOP
|
+--------+---+--------+
v v v
[team-worker] ... [team-supervisor]
per-task resident agent
lifecycle message-driven
(woken via SendMessage)
Role Registry
Role Router
Parse $ARGUMENTS:
- Has
--role <name> → Read roles/<name>/role.md, execute Phase 2-4
- No
--role → @roles/coordinator/role.md, execute entry router
Shared Constants
- Session prefix:
TLV4
- Session path:
{run_dir}/work/team/
- CLI tools:
teammate({ agent: "general", taskType: "analysis" }) (read-only), teammate({ agent: "general", taskType: "development" }) (modifications)
- Message bus:
mcp__maestro__team_msg(session_id=<run-id>, ...)
Worker Spawn Template
Coordinator spawns workers using this template:
teammate({ agent: "team-worker", tasks: [{ taskType: "<task_type>", name: "<role>", prompt: `## Role Assignment
role: <role>
role_spec: <skill_root>/roles/<role>/role.md
session: {run_dir}/work/team
session_id: <run-id>
team_name: <team-name>
requirement: <task-description>
inner_loop: <true|false>
run_dir: <run-dir from team-session.json run.run_dir>
## 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 SendMessage.
Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`, description: "Spawn <role> worker" }], background: true })
Supervisor Spawn Template
Supervisor is a resident agent (independent from team-worker). Spawned once during session init, woken via SendMessage for each CHECKPOINT task.
Spawn (Phase 2 — once per session)
teammate({ agent: "team-supervisor", tasks: [{ taskType: "<task_type>", name: "supervisor", prompt: `## Role Assignment
role: supervisor
role_spec: <skill_root>/roles/supervisor/role.md
session: {run_dir}/work/team
session_id: <run-id>
team_name: <team-name>
requirement: <task-description>
run_dir: <run-dir from team-session.json run.run_dir>
## 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 SendMessage.
Read role_spec file (@<skill_root>/roles/supervisor/role.md) to load checkpoint definitions.
Init: load baseline context, report ready, go idle.
Wake cycle: coordinator sends checkpoint requests via SendMessage.`, description: "Spawn resident supervisor" }], background: true })
Wake (handleSpawnNext — per CHECKPOINT task)
SendMessage({
type: "message",
recipient: "supervisor",
content: `## Checkpoint Request
task_id: <CHECKPOINT-NNN>
scope: [<upstream-task-ids>]
pipeline_progress: <done>/<total> tasks completed`,
summary: "Checkpoint request: <CHECKPOINT-NNN>"
})
Shutdown (handleComplete)
SendMessage({
type: "shutdown_request",
recipient: "supervisor",
content: "Pipeline complete, shutting down supervisor"
})
User Commands
| Command | Action |
|---|
check / status | View execution status graph |
resume / continue | Advance to next step |
revise <TASK-ID> [feedback] | Revise specific task |
feedback <text> | Inject feedback for revision |
recheck | Re-run quality check |
improve [dimension] | Auto-improve weakest dimension |
Completion Action
When pipeline completes, coordinator presents:
ask user ({
questions: [{
question: "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" }
]
}]
})
Specs Reference
Session Directory
{run_dir}/
├── outputs/
│ ├── spec/ # Spec phase outputs
│ └── plan/ # Implementation plan + TASK-*.json
├── evidence/
│ └── discussions/ # Discuss round records
├── report.md # Human-readable synthesis + handoff
└── work/team/ # Team coordination (non-artifact)
├── team-session.json # Session state + role registry
├── wisdom/ # Cross-task knowledge
├── explorations/ # Shared explore cache
└── .msg/ # Team message bus
Error Handling
| Scenario | Resolution |
|---|
| Unknown command | Error with available command list |
| Role not found | Error with role registry |
| CLI tool fails | Worker fallback to direct implementation |
| Fast-advance conflict | Coordinator reconciles on next callback |
| Supervisor crash | Respawn with recovery: true, auto-rebuilds from existing reports |
| Supervisor not ready for CHECKPOINT | Spawn/respawn supervisor, wait for ready, then wake |
| Completion action fails | Default to Keep Active |