maestro-flow 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +2 -2
- package/.claude/agents/cli-explore-agent.md +1 -1
- package/.claude/agents/team-worker.md +237 -237
- package/.claude/commands/maestro-coordinate.md +65 -65
- package/.claude/commands/maestro-link-coordinate.md +71 -71
- package/.claude/commands/manage-issue-execute.md +73 -73
- package/.claude/commands/quality-business-test.md +110 -0
- package/.claude/skills/team-coordinate/SKILL.md +266 -266
- package/.claude/skills/team-lifecycle-v4/SKILL.md +209 -209
- package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +94 -94
- package/.claude/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -62
- package/.claude/skills/team-lifecycle-v4/roles/planner/role.md +85 -85
- package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +95 -95
- package/.claude/skills/team-quality-assurance/SKILL.md +147 -147
- package/.claude/skills/team-quality-assurance/roles/scout/role.md +75 -75
- package/.claude/skills/team-review/SKILL.md +147 -147
- package/.claude/skills/team-review/roles/reviewer/role.md +68 -68
- package/.claude/skills/team-review/roles/scanner/role.md +79 -79
- package/.claude/skills/team-tech-debt/SKILL.md +128 -128
- package/.claude/skills/team-tech-debt/roles/executor/role.md +76 -76
- package/.claude/skills/team-tech-debt/roles/scanner/role.md +90 -90
- package/.claude/skills/team-tech-debt/roles/validator/role.md +78 -78
- package/.claude/skills/team-testing/SKILL.md +143 -143
- package/.claude/skills/team-testing/roles/executor/role.md +99 -99
- package/.claude/skills/team-testing/roles/generator/role.md +98 -98
- package/.codex/skills/maestro-coordinate/SKILL.md +1 -1
- package/.codex/skills/manage-issue-analyze/SKILL.md +3 -3
- package/.codex/skills/manage-issue-execute/SKILL.md +4 -4
- package/.codex/skills/manage-issue-plan/SKILL.md +2 -2
- package/.codex/skills/quality-business-test/SKILL.md +223 -0
- package/.codex/skills/team-coordinate/SKILL.md +7 -7
- package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -2
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +1 -1
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.codex/skills/team-quality-assurance/SKILL.md +2 -2
- package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -2
- package/.codex/skills/team-review/SKILL.md +2 -2
- package/.codex/skills/team-review/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-review/roles/reviewer/role.md +1 -1
- package/.codex/skills/team-review/roles/scanner/role.md +1 -1
- package/.codex/skills/team-tech-debt/SKILL.md +2 -2
- package/.codex/skills/team-tech-debt/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-tech-debt/roles/executor/role.md +1 -1
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +1 -1
- package/.codex/skills/team-tech-debt/roles/validator/role.md +1 -1
- package/.codex/skills/team-testing/SKILL.md +2 -2
- package/.codex/skills/team-testing/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-testing/roles/executor/role.md +1 -1
- package/.codex/skills/team-testing/roles/generator/role.md +1 -1
- package/README.md +31 -2
- package/README.zh-CN.md +23 -1
- package/chains/_intent-map.json +6 -0
- package/chains/_router.json +14 -0
- package/chains/full-lifecycle.json +15 -0
- package/chains/quality-loop.json +16 -1
- package/chains/singles/business-test.json +26 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +16 -2
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +25 -9
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
- package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +3 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js +78 -61
- package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
- package/dashboard/dist-server/src/agents/cli-history-store.d.ts +14 -1
- package/dashboard/dist-server/src/agents/cli-history-store.js +24 -2
- package/dashboard/dist-server/src/agents/cli-history-store.js.map +1 -1
- package/dashboard/dist-server/src/commands/delegate.js +142 -6
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts +3 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +78 -61
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/agents/cli-history-store.d.ts +14 -1
- package/dist/src/agents/cli-history-store.d.ts.map +1 -1
- package/dist/src/agents/cli-history-store.js +24 -2
- package/dist/src/agents/cli-history-store.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +142 -6
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +15 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +29 -2
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +15 -0
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +67 -0
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/install-ui/BackupConfig.d.ts +6 -4
- package/dist/src/commands/install-ui/BackupConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/BackupConfig.js +39 -12
- package/dist/src/commands/install-ui/BackupConfig.js.map +1 -1
- package/dist/src/commands/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/commands/install-ui/ConfigPanel.js +1 -1
- package/dist/src/commands/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -0
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +5 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts +2 -0
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +30 -5
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +31 -6
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/InstallHub.d.ts +5 -0
- package/dist/src/commands/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallHub.js +24 -0
- package/dist/src/commands/install-ui/InstallHub.js.map +1 -1
- package/dist/src/commands/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallResult.js +1 -1
- package/dist/src/commands/install-ui/InstallResult.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +9 -0
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -0
- package/dist/src/commands/install-ui/StatuslineConfig.js +13 -0
- package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -0
- package/dist/src/commands/install-ui/index.d.ts +1 -1
- package/dist/src/commands/install-ui/index.d.ts.map +1 -1
- package/dist/src/commands/install-ui/types.d.ts +6 -0
- package/dist/src/commands/install-ui/types.d.ts.map +1 -1
- package/dist/src/commands/install-ui/types.js +3 -0
- package/dist/src/commands/install-ui/types.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +6 -1
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/overlay.d.ts.map +1 -1
- package/dist/src/commands/overlay.js +45 -1
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/commands/team.d.ts +10 -0
- package/dist/src/commands/team.d.ts.map +1 -1
- package/dist/src/commands/team.js +436 -42
- package/dist/src/commands/team.js.map +1 -1
- package/dist/src/core/manifest.d.ts.map +1 -1
- package/dist/src/core/manifest.js +58 -0
- package/dist/src/core/manifest.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts +4 -0
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/hooks/delegate-monitor.js +1 -1
- package/dist/src/hooks/delegate-monitor.js.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +17 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts +2 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +19 -2
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/team-monitor.d.ts.map +1 -1
- package/dist/src/hooks/team-monitor.js +17 -0
- package/dist/src/hooks/team-monitor.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +25 -1
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +25 -1
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +22 -0
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.js +9 -9
- package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +11 -2
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/namespace-guard.d.ts +37 -0
- package/dist/src/tools/namespace-guard.d.ts.map +1 -0
- package/dist/src/tools/namespace-guard.js +126 -0
- package/dist/src/tools/namespace-guard.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +17 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +71 -13
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-members.d.ts +16 -0
- package/dist/src/tools/team-members.d.ts.map +1 -1
- package/dist/src/tools/team-members.js +31 -0
- package/dist/src/tools/team-members.js.map +1 -1
- package/package.json +2 -2
- package/templates/business-test-report.json +68 -0
- package/workflows/delegate-usage.md +330 -0
|
@@ -1,209 +1,209 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: team-lifecycle-v4
|
|
3
|
-
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".
|
|
4
|
-
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ccw-tools__team_msg(*)
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Team Lifecycle v4
|
|
8
|
-
|
|
9
|
-
Orchestrate multi-agent software development: specification → planning → implementation → testing → review.
|
|
10
|
-
|
|
11
|
-
## Architecture
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
Skill(skill="team-lifecycle-v4", args="task description")
|
|
15
|
-
|
|
|
16
|
-
SKILL.md (this file) = Router
|
|
17
|
-
|
|
|
18
|
-
+--------------+--------------+
|
|
19
|
-
| |
|
|
20
|
-
no --role flag --role <name>
|
|
21
|
-
| |
|
|
22
|
-
Coordinator Worker
|
|
23
|
-
roles/coordinator/role.md roles/<name>/role.md
|
|
24
|
-
|
|
|
25
|
-
+-- analyze → dispatch → spawn → STOP
|
|
26
|
-
|
|
|
27
|
-
+--------+---+--------+
|
|
28
|
-
v v v
|
|
29
|
-
[team-worker] ... [team-supervisor]
|
|
30
|
-
per-task resident agent
|
|
31
|
-
lifecycle message-driven
|
|
32
|
-
(woken via SendMessage)
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Role Registry
|
|
36
|
-
|
|
37
|
-
| Role | Path | Prefix | Inner Loop |
|
|
38
|
-
|------|------|--------|------------|
|
|
39
|
-
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
|
|
40
|
-
| analyst | [roles/analyst/role.md](roles/analyst/role.md) | RESEARCH-* | false |
|
|
41
|
-
| writer | [roles/writer/role.md](roles/writer/role.md) | DRAFT-* | true |
|
|
42
|
-
| planner | [roles/planner/role.md](roles/planner/role.md) | PLAN-* | true |
|
|
43
|
-
| executor | [roles/executor/role.md](roles/executor/role.md) | IMPL-* | true |
|
|
44
|
-
| tester | [roles/tester/role.md](roles/tester/role.md) | TEST-* | false |
|
|
45
|
-
| reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REVIEW-*, QUALITY-*, IMPROVE-* | false |
|
|
46
|
-
| supervisor | [roles/supervisor/role.md](roles/supervisor/role.md) | CHECKPOINT-* | false |
|
|
47
|
-
|
|
48
|
-
## Role Router
|
|
49
|
-
|
|
50
|
-
Parse `$ARGUMENTS`:
|
|
51
|
-
- Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
|
|
52
|
-
- No `--role` → `@roles/coordinator/role.md`, execute entry router
|
|
53
|
-
|
|
54
|
-
## Shared Constants
|
|
55
|
-
|
|
56
|
-
- **Session prefix**: `TLV4`
|
|
57
|
-
- **Session path**: `.workflow/.team/TLV4-<slug>-<date>/`
|
|
58
|
-
- **CLI tools**: `maestro
|
|
59
|
-
- **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
|
|
60
|
-
|
|
61
|
-
## Worker Spawn Template
|
|
62
|
-
|
|
63
|
-
Coordinator spawns workers using this template:
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
Agent({
|
|
67
|
-
subagent_type: "team-worker",
|
|
68
|
-
description: "Spawn <role> worker",
|
|
69
|
-
team_name: <team-name>,
|
|
70
|
-
name: "<role>",
|
|
71
|
-
run_in_background: true,
|
|
72
|
-
prompt: `## Role Assignment
|
|
73
|
-
role: <role>
|
|
74
|
-
role_spec: <skill_root>/roles/<role>/role.md
|
|
75
|
-
session: <session-folder>
|
|
76
|
-
session_id: <session-id>
|
|
77
|
-
team_name: <team-name>
|
|
78
|
-
requirement: <task-description>
|
|
79
|
-
inner_loop: <true|false>
|
|
80
|
-
|
|
81
|
-
## Progress Milestones
|
|
82
|
-
session_id: <session-id>
|
|
83
|
-
Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
|
|
84
|
-
Report blockers immediately via team_msg type="blocker".
|
|
85
|
-
Report completion via team_msg type="task_complete" after final SendMessage.
|
|
86
|
-
|
|
87
|
-
Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
|
|
88
|
-
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
|
|
89
|
-
})
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Supervisor Spawn Template
|
|
93
|
-
|
|
94
|
-
Supervisor is a **resident agent** (independent from team-worker). Spawned once during session init, woken via SendMessage for each CHECKPOINT task.
|
|
95
|
-
|
|
96
|
-
### Spawn (Phase 2 — once per session)
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
Agent({
|
|
100
|
-
subagent_type: "team-supervisor",
|
|
101
|
-
description: "Spawn resident supervisor",
|
|
102
|
-
team_name: <team-name>,
|
|
103
|
-
name: "supervisor",
|
|
104
|
-
run_in_background: true,
|
|
105
|
-
prompt: `## Role Assignment
|
|
106
|
-
role: supervisor
|
|
107
|
-
role_spec: <skill_root>/roles/supervisor/role.md
|
|
108
|
-
session: <session-folder>
|
|
109
|
-
session_id: <session-id>
|
|
110
|
-
team_name: <team-name>
|
|
111
|
-
requirement: <task-description>
|
|
112
|
-
|
|
113
|
-
## Progress Milestones
|
|
114
|
-
session_id: <session-id>
|
|
115
|
-
Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
|
|
116
|
-
Report blockers immediately via team_msg type="blocker".
|
|
117
|
-
Report completion via team_msg type="task_complete" after final SendMessage.
|
|
118
|
-
|
|
119
|
-
Read role_spec file (@<skill_root>/roles/supervisor/role.md) to load checkpoint definitions.
|
|
120
|
-
Init: load baseline context, report ready, go idle.
|
|
121
|
-
Wake cycle: coordinator sends checkpoint requests via SendMessage.`
|
|
122
|
-
})
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Wake (handleSpawnNext — per CHECKPOINT task)
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
SendMessage({
|
|
129
|
-
type: "message",
|
|
130
|
-
recipient: "supervisor",
|
|
131
|
-
content: `## Checkpoint Request
|
|
132
|
-
task_id: <CHECKPOINT-NNN>
|
|
133
|
-
scope: [<upstream-task-ids>]
|
|
134
|
-
pipeline_progress: <done>/<total> tasks completed`,
|
|
135
|
-
summary: "Checkpoint request: <CHECKPOINT-NNN>"
|
|
136
|
-
})
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Shutdown (handleComplete)
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
SendMessage({
|
|
143
|
-
type: "shutdown_request",
|
|
144
|
-
recipient: "supervisor",
|
|
145
|
-
content: "Pipeline complete, shutting down supervisor"
|
|
146
|
-
})
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## User Commands
|
|
150
|
-
|
|
151
|
-
| Command | Action |
|
|
152
|
-
|---------|--------|
|
|
153
|
-
| `check` / `status` | View execution status graph |
|
|
154
|
-
| `resume` / `continue` | Advance to next step |
|
|
155
|
-
| `revise <TASK-ID> [feedback]` | Revise specific task |
|
|
156
|
-
| `feedback <text>` | Inject feedback for revision |
|
|
157
|
-
| `recheck` | Re-run quality check |
|
|
158
|
-
| `improve [dimension]` | Auto-improve weakest dimension |
|
|
159
|
-
|
|
160
|
-
## Completion Action
|
|
161
|
-
|
|
162
|
-
When pipeline completes, coordinator presents:
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
AskUserQuestion({
|
|
166
|
-
questions: [{
|
|
167
|
-
question: "Pipeline complete. What would you like to do?",
|
|
168
|
-
header: "Completion",
|
|
169
|
-
multiSelect: false,
|
|
170
|
-
options: [
|
|
171
|
-
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
172
|
-
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
173
|
-
{ label: "Export Results", description: "Export deliverables to target directory" }
|
|
174
|
-
]
|
|
175
|
-
}]
|
|
176
|
-
})
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
## Specs Reference
|
|
180
|
-
|
|
181
|
-
- [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
|
|
182
|
-
- [specs/quality-gates.md](specs/quality-gates.md) — Quality gate criteria and scoring
|
|
183
|
-
- [specs/knowledge-transfer.md](specs/knowledge-transfer.md) — Artifact and state transfer protocols
|
|
184
|
-
|
|
185
|
-
## Session Directory
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
.workflow/.team/TLV4-<slug>-<date>/
|
|
189
|
-
├── team-session.json # Session state + role registry
|
|
190
|
-
├── spec/ # Spec phase outputs
|
|
191
|
-
├── plan/ # Implementation plan + TASK-*.json
|
|
192
|
-
├── artifacts/ # All deliverables
|
|
193
|
-
├── wisdom/ # Cross-task knowledge
|
|
194
|
-
├── explorations/ # Shared explore cache
|
|
195
|
-
├── discussions/ # Discuss round records
|
|
196
|
-
└── .msg/ # Team message bus
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
## Error Handling
|
|
200
|
-
|
|
201
|
-
| Scenario | Resolution |
|
|
202
|
-
|----------|------------|
|
|
203
|
-
| Unknown command | Error with available command list |
|
|
204
|
-
| Role not found | Error with role registry |
|
|
205
|
-
| CLI tool fails | Worker fallback to direct implementation |
|
|
206
|
-
| Fast-advance conflict | Coordinator reconciles on next callback |
|
|
207
|
-
| Supervisor crash | Respawn with `recovery: true`, auto-rebuilds from existing reports |
|
|
208
|
-
| Supervisor not ready for CHECKPOINT | Spawn/respawn supervisor, wait for ready, then wake |
|
|
209
|
-
| Completion action fails | Default to Keep Active |
|
|
1
|
+
---
|
|
2
|
+
name: team-lifecycle-v4
|
|
3
|
+
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".
|
|
4
|
+
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ccw-tools__team_msg(*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Team Lifecycle v4
|
|
8
|
+
|
|
9
|
+
Orchestrate multi-agent software development: specification → planning → implementation → testing → review.
|
|
10
|
+
|
|
11
|
+
## Architecture
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Skill(skill="team-lifecycle-v4", args="task description")
|
|
15
|
+
|
|
|
16
|
+
SKILL.md (this file) = Router
|
|
17
|
+
|
|
|
18
|
+
+--------------+--------------+
|
|
19
|
+
| |
|
|
20
|
+
no --role flag --role <name>
|
|
21
|
+
| |
|
|
22
|
+
Coordinator Worker
|
|
23
|
+
roles/coordinator/role.md roles/<name>/role.md
|
|
24
|
+
|
|
|
25
|
+
+-- analyze → dispatch → spawn → STOP
|
|
26
|
+
|
|
|
27
|
+
+--------+---+--------+
|
|
28
|
+
v v v
|
|
29
|
+
[team-worker] ... [team-supervisor]
|
|
30
|
+
per-task resident agent
|
|
31
|
+
lifecycle message-driven
|
|
32
|
+
(woken via SendMessage)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Role Registry
|
|
36
|
+
|
|
37
|
+
| Role | Path | Prefix | Inner Loop |
|
|
38
|
+
|------|------|--------|------------|
|
|
39
|
+
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
|
|
40
|
+
| analyst | [roles/analyst/role.md](roles/analyst/role.md) | RESEARCH-* | false |
|
|
41
|
+
| writer | [roles/writer/role.md](roles/writer/role.md) | DRAFT-* | true |
|
|
42
|
+
| planner | [roles/planner/role.md](roles/planner/role.md) | PLAN-* | true |
|
|
43
|
+
| executor | [roles/executor/role.md](roles/executor/role.md) | IMPL-* | true |
|
|
44
|
+
| tester | [roles/tester/role.md](roles/tester/role.md) | TEST-* | false |
|
|
45
|
+
| reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REVIEW-*, QUALITY-*, IMPROVE-* | false |
|
|
46
|
+
| supervisor | [roles/supervisor/role.md](roles/supervisor/role.md) | CHECKPOINT-* | false |
|
|
47
|
+
|
|
48
|
+
## Role Router
|
|
49
|
+
|
|
50
|
+
Parse `$ARGUMENTS`:
|
|
51
|
+
- Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
|
|
52
|
+
- No `--role` → `@roles/coordinator/role.md`, execute entry router
|
|
53
|
+
|
|
54
|
+
## Shared Constants
|
|
55
|
+
|
|
56
|
+
- **Session prefix**: `TLV4`
|
|
57
|
+
- **Session path**: `.workflow/.team/TLV4-<slug>-<date>/`
|
|
58
|
+
- **CLI tools**: `maestro delegate --mode analysis` (read-only), `maestro delegate --mode write` (modifications)
|
|
59
|
+
- **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
|
|
60
|
+
|
|
61
|
+
## Worker Spawn Template
|
|
62
|
+
|
|
63
|
+
Coordinator spawns workers using this template:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Agent({
|
|
67
|
+
subagent_type: "team-worker",
|
|
68
|
+
description: "Spawn <role> worker",
|
|
69
|
+
team_name: <team-name>,
|
|
70
|
+
name: "<role>",
|
|
71
|
+
run_in_background: true,
|
|
72
|
+
prompt: `## Role Assignment
|
|
73
|
+
role: <role>
|
|
74
|
+
role_spec: <skill_root>/roles/<role>/role.md
|
|
75
|
+
session: <session-folder>
|
|
76
|
+
session_id: <session-id>
|
|
77
|
+
team_name: <team-name>
|
|
78
|
+
requirement: <task-description>
|
|
79
|
+
inner_loop: <true|false>
|
|
80
|
+
|
|
81
|
+
## Progress Milestones
|
|
82
|
+
session_id: <session-id>
|
|
83
|
+
Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
|
|
84
|
+
Report blockers immediately via team_msg type="blocker".
|
|
85
|
+
Report completion via team_msg type="task_complete" after final SendMessage.
|
|
86
|
+
|
|
87
|
+
Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
|
|
88
|
+
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
|
|
89
|
+
})
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Supervisor Spawn Template
|
|
93
|
+
|
|
94
|
+
Supervisor is a **resident agent** (independent from team-worker). Spawned once during session init, woken via SendMessage for each CHECKPOINT task.
|
|
95
|
+
|
|
96
|
+
### Spawn (Phase 2 — once per session)
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Agent({
|
|
100
|
+
subagent_type: "team-supervisor",
|
|
101
|
+
description: "Spawn resident supervisor",
|
|
102
|
+
team_name: <team-name>,
|
|
103
|
+
name: "supervisor",
|
|
104
|
+
run_in_background: true,
|
|
105
|
+
prompt: `## Role Assignment
|
|
106
|
+
role: supervisor
|
|
107
|
+
role_spec: <skill_root>/roles/supervisor/role.md
|
|
108
|
+
session: <session-folder>
|
|
109
|
+
session_id: <session-id>
|
|
110
|
+
team_name: <team-name>
|
|
111
|
+
requirement: <task-description>
|
|
112
|
+
|
|
113
|
+
## Progress Milestones
|
|
114
|
+
session_id: <session-id>
|
|
115
|
+
Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
|
|
116
|
+
Report blockers immediately via team_msg type="blocker".
|
|
117
|
+
Report completion via team_msg type="task_complete" after final SendMessage.
|
|
118
|
+
|
|
119
|
+
Read role_spec file (@<skill_root>/roles/supervisor/role.md) to load checkpoint definitions.
|
|
120
|
+
Init: load baseline context, report ready, go idle.
|
|
121
|
+
Wake cycle: coordinator sends checkpoint requests via SendMessage.`
|
|
122
|
+
})
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Wake (handleSpawnNext — per CHECKPOINT task)
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
SendMessage({
|
|
129
|
+
type: "message",
|
|
130
|
+
recipient: "supervisor",
|
|
131
|
+
content: `## Checkpoint Request
|
|
132
|
+
task_id: <CHECKPOINT-NNN>
|
|
133
|
+
scope: [<upstream-task-ids>]
|
|
134
|
+
pipeline_progress: <done>/<total> tasks completed`,
|
|
135
|
+
summary: "Checkpoint request: <CHECKPOINT-NNN>"
|
|
136
|
+
})
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Shutdown (handleComplete)
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
SendMessage({
|
|
143
|
+
type: "shutdown_request",
|
|
144
|
+
recipient: "supervisor",
|
|
145
|
+
content: "Pipeline complete, shutting down supervisor"
|
|
146
|
+
})
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## User Commands
|
|
150
|
+
|
|
151
|
+
| Command | Action |
|
|
152
|
+
|---------|--------|
|
|
153
|
+
| `check` / `status` | View execution status graph |
|
|
154
|
+
| `resume` / `continue` | Advance to next step |
|
|
155
|
+
| `revise <TASK-ID> [feedback]` | Revise specific task |
|
|
156
|
+
| `feedback <text>` | Inject feedback for revision |
|
|
157
|
+
| `recheck` | Re-run quality check |
|
|
158
|
+
| `improve [dimension]` | Auto-improve weakest dimension |
|
|
159
|
+
|
|
160
|
+
## Completion Action
|
|
161
|
+
|
|
162
|
+
When pipeline completes, coordinator presents:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
AskUserQuestion({
|
|
166
|
+
questions: [{
|
|
167
|
+
question: "Pipeline complete. What would you like to do?",
|
|
168
|
+
header: "Completion",
|
|
169
|
+
multiSelect: false,
|
|
170
|
+
options: [
|
|
171
|
+
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
172
|
+
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
173
|
+
{ label: "Export Results", description: "Export deliverables to target directory" }
|
|
174
|
+
]
|
|
175
|
+
}]
|
|
176
|
+
})
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Specs Reference
|
|
180
|
+
|
|
181
|
+
- [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
|
|
182
|
+
- [specs/quality-gates.md](specs/quality-gates.md) — Quality gate criteria and scoring
|
|
183
|
+
- [specs/knowledge-transfer.md](specs/knowledge-transfer.md) — Artifact and state transfer protocols
|
|
184
|
+
|
|
185
|
+
## Session Directory
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
.workflow/.team/TLV4-<slug>-<date>/
|
|
189
|
+
├── team-session.json # Session state + role registry
|
|
190
|
+
├── spec/ # Spec phase outputs
|
|
191
|
+
├── plan/ # Implementation plan + TASK-*.json
|
|
192
|
+
├── artifacts/ # All deliverables
|
|
193
|
+
├── wisdom/ # Cross-task knowledge
|
|
194
|
+
├── explorations/ # Shared explore cache
|
|
195
|
+
├── discussions/ # Discuss round records
|
|
196
|
+
└── .msg/ # Team message bus
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Error Handling
|
|
200
|
+
|
|
201
|
+
| Scenario | Resolution |
|
|
202
|
+
|----------|------------|
|
|
203
|
+
| Unknown command | Error with available command list |
|
|
204
|
+
| Role not found | Error with role registry |
|
|
205
|
+
| CLI tool fails | Worker fallback to direct implementation |
|
|
206
|
+
| Fast-advance conflict | Coordinator reconciles on next callback |
|
|
207
|
+
| Supervisor crash | Respawn with `recovery: true`, auto-rebuilds from existing reports |
|
|
208
|
+
| Supervisor not ready for CHECKPOINT | Spawn/respawn supervisor, wait for ready, then wake |
|
|
209
|
+
| Completion action fails | Default to Keep Active |
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
---
|
|
2
|
-
role: analyst
|
|
3
|
-
prefix: RESEARCH
|
|
4
|
-
inner_loop: false
|
|
5
|
-
discuss_rounds: [DISCUSS-001]
|
|
6
|
-
message_types:
|
|
7
|
-
success: research_ready
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Analyst
|
|
12
|
-
|
|
13
|
-
Research and codebase exploration for context gathering.
|
|
14
|
-
|
|
15
|
-
## Identity
|
|
16
|
-
- Tag: [analyst] | Prefix: RESEARCH-*
|
|
17
|
-
- Responsibility: Gather structured context from topic and codebase
|
|
18
|
-
|
|
19
|
-
## Boundaries
|
|
20
|
-
### MUST
|
|
21
|
-
- Extract structured seed information from task topic
|
|
22
|
-
- Explore codebase if project detected
|
|
23
|
-
- Package context for downstream roles
|
|
24
|
-
### MUST NOT
|
|
25
|
-
- Implement code or modify files
|
|
26
|
-
- Make architectural decisions
|
|
27
|
-
- Skip codebase exploration when project files exist
|
|
28
|
-
|
|
29
|
-
## Phase 2: Seed Analysis
|
|
30
|
-
|
|
31
|
-
1. Read upstream artifacts via team_msg(operation="get_state")
|
|
32
|
-
2. Extract session folder from task description
|
|
33
|
-
3. Parse topic from task description
|
|
34
|
-
4. If topic references file (@path or .md/.txt) → read it
|
|
35
|
-
5. CLI seed analysis:
|
|
36
|
-
```
|
|
37
|
-
Bash({ command: `maestro
|
|
38
|
-
TASK: • Extract problem statement • Identify target users • Determine domain
|
|
39
|
-
• List constraints • Identify 3-5 exploration dimensions
|
|
40
|
-
TOPIC: <topic-content>
|
|
41
|
-
MODE: analysis
|
|
42
|
-
EXPECTED: JSON with: problem_statement, target_users[], domain, constraints[], exploration_dimensions[]" --tool gemini --mode analysis`, run_in_background: false })
|
|
43
|
-
```
|
|
44
|
-
6. Parse result JSON
|
|
45
|
-
|
|
46
|
-
## Phase 3: Codebase Exploration
|
|
47
|
-
|
|
48
|
-
| Condition | Action |
|
|
49
|
-
|-----------|--------|
|
|
50
|
-
| package.json / Cargo.toml / pyproject.toml / go.mod exists | Explore |
|
|
51
|
-
| No project files | Skip (codebase_context = null) |
|
|
52
|
-
|
|
53
|
-
When project detected:
|
|
54
|
-
```
|
|
55
|
-
Bash({ command: `maestro
|
|
56
|
-
TASK: • Identify tech stack • Map architecture patterns • Document conventions • List integration points
|
|
57
|
-
MODE: analysis
|
|
58
|
-
CONTEXT: @**/*
|
|
59
|
-
EXPECTED: JSON with: tech_stack[], architecture_patterns[], conventions[], integration_points[]" --tool gemini --mode analysis`, run_in_background: false })
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Tech Profile Scan
|
|
63
|
-
|
|
64
|
-
After codebase exploration, scan results for context-aware trigger signals (based on detected codebase characteristics):
|
|
65
|
-
|
|
66
|
-
1. Check imports/dependencies → framework signals (`sql_detected`, `auth_detected`, `ml_detected`, `frontend_framework`)
|
|
67
|
-
2. Check file patterns → infrastructure signals (`devops_detected`, `data_migration`, `realtime_detected`)
|
|
68
|
-
3. Check code patterns → risk signals (`perf_sensitive`, `crypto_usage`, `legacy_patterns`, `test_gap`)
|
|
69
|
-
4. Include `tech_profile` in Phase 5 state_update data:
|
|
70
|
-
```json
|
|
71
|
-
"tech_profile": {
|
|
72
|
-
"signals": ["<detected signals>"],
|
|
73
|
-
"evidence": { "<signal>": ["<file paths>"] },
|
|
74
|
-
"confidence": "high|medium|low"
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Phase 4: Context Packaging
|
|
79
|
-
|
|
80
|
-
1. Write spec-config.json → <session>/spec/
|
|
81
|
-
2. Write discovery-context.json → <session>/spec/
|
|
82
|
-
3. Inline Discuss (DISCUSS-001):
|
|
83
|
-
- Artifact: <session>/spec/discovery-context.json
|
|
84
|
-
- Perspectives: product, risk, coverage
|
|
85
|
-
4. Handle verdict per consensus protocol
|
|
86
|
-
5. Report: complexity, codebase presence, dimensions, discuss verdict, output paths
|
|
87
|
-
|
|
88
|
-
## Error Handling
|
|
89
|
-
|
|
90
|
-
| Scenario | Resolution |
|
|
91
|
-
|----------|------------|
|
|
92
|
-
| CLI failure | Fallback to direct analysis |
|
|
93
|
-
| No project detected | Continue as new project |
|
|
94
|
-
| Topic too vague | Report with clarification questions |
|
|
1
|
+
---
|
|
2
|
+
role: analyst
|
|
3
|
+
prefix: RESEARCH
|
|
4
|
+
inner_loop: false
|
|
5
|
+
discuss_rounds: [DISCUSS-001]
|
|
6
|
+
message_types:
|
|
7
|
+
success: research_ready
|
|
8
|
+
error: error
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Analyst
|
|
12
|
+
|
|
13
|
+
Research and codebase exploration for context gathering.
|
|
14
|
+
|
|
15
|
+
## Identity
|
|
16
|
+
- Tag: [analyst] | Prefix: RESEARCH-*
|
|
17
|
+
- Responsibility: Gather structured context from topic and codebase
|
|
18
|
+
|
|
19
|
+
## Boundaries
|
|
20
|
+
### MUST
|
|
21
|
+
- Extract structured seed information from task topic
|
|
22
|
+
- Explore codebase if project detected
|
|
23
|
+
- Package context for downstream roles
|
|
24
|
+
### MUST NOT
|
|
25
|
+
- Implement code or modify files
|
|
26
|
+
- Make architectural decisions
|
|
27
|
+
- Skip codebase exploration when project files exist
|
|
28
|
+
|
|
29
|
+
## Phase 2: Seed Analysis
|
|
30
|
+
|
|
31
|
+
1. Read upstream artifacts via team_msg(operation="get_state")
|
|
32
|
+
2. Extract session folder from task description
|
|
33
|
+
3. Parse topic from task description
|
|
34
|
+
4. If topic references file (@path or .md/.txt) → read it
|
|
35
|
+
5. CLI seed analysis:
|
|
36
|
+
```
|
|
37
|
+
Bash({ command: `maestro delegate "PURPOSE: Analyze topic, extract structured seed info.
|
|
38
|
+
TASK: • Extract problem statement • Identify target users • Determine domain
|
|
39
|
+
• List constraints • Identify 3-5 exploration dimensions
|
|
40
|
+
TOPIC: <topic-content>
|
|
41
|
+
MODE: analysis
|
|
42
|
+
EXPECTED: JSON with: problem_statement, target_users[], domain, constraints[], exploration_dimensions[]" --tool gemini --mode analysis`, run_in_background: false })
|
|
43
|
+
```
|
|
44
|
+
6. Parse result JSON
|
|
45
|
+
|
|
46
|
+
## Phase 3: Codebase Exploration
|
|
47
|
+
|
|
48
|
+
| Condition | Action |
|
|
49
|
+
|-----------|--------|
|
|
50
|
+
| package.json / Cargo.toml / pyproject.toml / go.mod exists | Explore |
|
|
51
|
+
| No project files | Skip (codebase_context = null) |
|
|
52
|
+
|
|
53
|
+
When project detected:
|
|
54
|
+
```
|
|
55
|
+
Bash({ command: `maestro delegate "PURPOSE: Explore codebase for context
|
|
56
|
+
TASK: • Identify tech stack • Map architecture patterns • Document conventions • List integration points
|
|
57
|
+
MODE: analysis
|
|
58
|
+
CONTEXT: @**/*
|
|
59
|
+
EXPECTED: JSON with: tech_stack[], architecture_patterns[], conventions[], integration_points[]" --tool gemini --mode analysis`, run_in_background: false })
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Tech Profile Scan
|
|
63
|
+
|
|
64
|
+
After codebase exploration, scan results for context-aware trigger signals (based on detected codebase characteristics):
|
|
65
|
+
|
|
66
|
+
1. Check imports/dependencies → framework signals (`sql_detected`, `auth_detected`, `ml_detected`, `frontend_framework`)
|
|
67
|
+
2. Check file patterns → infrastructure signals (`devops_detected`, `data_migration`, `realtime_detected`)
|
|
68
|
+
3. Check code patterns → risk signals (`perf_sensitive`, `crypto_usage`, `legacy_patterns`, `test_gap`)
|
|
69
|
+
4. Include `tech_profile` in Phase 5 state_update data:
|
|
70
|
+
```json
|
|
71
|
+
"tech_profile": {
|
|
72
|
+
"signals": ["<detected signals>"],
|
|
73
|
+
"evidence": { "<signal>": ["<file paths>"] },
|
|
74
|
+
"confidence": "high|medium|low"
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Phase 4: Context Packaging
|
|
79
|
+
|
|
80
|
+
1. Write spec-config.json → <session>/spec/
|
|
81
|
+
2. Write discovery-context.json → <session>/spec/
|
|
82
|
+
3. Inline Discuss (DISCUSS-001):
|
|
83
|
+
- Artifact: <session>/spec/discovery-context.json
|
|
84
|
+
- Perspectives: product, risk, coverage
|
|
85
|
+
4. Handle verdict per consensus protocol
|
|
86
|
+
5. Report: complexity, codebase presence, dimensions, discuss verdict, output paths
|
|
87
|
+
|
|
88
|
+
## Error Handling
|
|
89
|
+
|
|
90
|
+
| Scenario | Resolution |
|
|
91
|
+
|----------|------------|
|
|
92
|
+
| CLI failure | Fallback to direct analysis |
|
|
93
|
+
| No project detected | Continue as new project |
|
|
94
|
+
| Topic too vague | Report with clarification questions |
|