claude-code-workflow 7.2.30 → 7.3.0
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/commands/workflow-skill.md +130 -0
- package/.claude/skills/ccw-chain/SKILL.md +44 -71
- package/.claude/skills/ccw-chain/chains/ccw-cycle.json +13 -3
- package/.claude/skills/ccw-chain/chains/ccw-exploration.json +33 -22
- package/.claude/skills/ccw-chain/chains/ccw-issue.json +23 -12
- package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +23 -9
- package/.claude/skills/ccw-chain/chains/ccw-main.json +15 -2
- package/.claude/skills/ccw-chain/chains/ccw-standard.json +28 -16
- package/.claude/skills/ccw-chain/chains/ccw-team.json +7 -2
- package/.claude/skills/ccw-chain/chains/ccw-with-file.json +25 -9
- package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -53
- package/.claude/skills/chain-loader/specs/chain-schema.md +30 -3
- package/.claude/skills/chain-loader/templates/chain-json.md +63 -63
- package/.claude/skills/workflow-plan/SKILL.md +1 -0
- package/.claude/skills/workflow-plan/phases/01-session-discovery.md +19 -2
- package/.claude/skills/workflow-plan/phases/02-context-gathering.md +2 -2
- package/.claude/skills/workflow-plan/phases/04-task-generation.md +9 -1
- package/.codex/skills/analyze-with-file/SKILL.md +383 -134
- package/.codex/skills/brainstorm/SKILL.md +3 -3
- package/.codex/skills/brainstorm-with-file/SKILL.md +208 -88
- package/.codex/skills/clean/SKILL.md +1 -1
- package/.codex/skills/csv-wave-pipeline/SKILL.md +2 -2
- package/.codex/skills/investigate/orchestrator.md +24 -0
- package/.codex/skills/issue-discover/SKILL.md +374 -361
- package/.codex/skills/issue-discover/phases/01-issue-new.md +1 -1
- package/.codex/skills/issue-discover/phases/02-discover.md +2 -2
- package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +1 -1
- package/.codex/skills/issue-discover/phases/04-quick-execute.md +2 -2
- package/.codex/skills/parallel-dev-cycle/SKILL.md +44 -37
- package/.codex/skills/project-documentation-workflow/SKILL.md +1 -1
- package/.codex/skills/review-cycle/SKILL.md +31 -12
- package/.codex/skills/roadmap-with-file/SKILL.md +141 -133
- package/.codex/skills/security-audit/orchestrator.md +29 -0
- package/.codex/skills/session-sync/SKILL.md +1 -1
- package/.codex/skills/ship/orchestrator.md +24 -0
- package/.codex/skills/spec-add/SKILL.md +5 -5
- package/.codex/skills/spec-generator/SKILL.md +33 -2
- package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +3 -3
- package/.codex/skills/spec-generator/phases/01-discovery.md +1 -1
- package/.codex/skills/spec-generator/phases/02-product-brief.md +1 -1
- package/.codex/skills/spec-generator/phases/03-requirements.md +1 -1
- package/.codex/skills/spec-generator/phases/04-architecture.md +1 -1
- package/.codex/skills/spec-generator/phases/05-epics-stories.md +1 -1
- package/.codex/skills/spec-generator/phases/06-readiness-check.md +1 -1
- package/.codex/skills/spec-generator/phases/07-issue-export.md +1 -1
- package/.codex/skills/spec-setup/SKILL.md +669 -669
- package/.codex/skills/team-arch-opt/specs/team-config.json +1 -1
- package/.codex/skills/team-brainstorm/SKILL.md +259 -259
- package/.codex/skills/team-coordinate/SKILL.md +359 -359
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-designer/SKILL.md +27 -1
- package/.codex/skills/team-designer/phases/01-requirements-analysis.md +2 -2
- package/.codex/skills/team-designer/phases/02-scaffold-generation.md +1 -1
- package/.codex/skills/team-designer/phases/04-validation.md +1 -1
- package/.codex/skills/team-executor/SKILL.md +218 -218
- package/.codex/skills/team-frontend/SKILL.md +227 -227
- package/.codex/skills/team-frontend-debug/SKILL.md +278 -278
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +2 -2
- package/.codex/skills/team-interactive-craft/SKILL.md +220 -220
- package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -209
- package/.codex/skills/team-issue/SKILL.md +269 -269
- package/.codex/skills/team-issue/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/SKILL.md +305 -305
- package/.codex/skills/team-motion-design/SKILL.md +222 -222
- package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -210
- package/.codex/skills/team-perf-opt/SKILL.md +258 -258
- package/.codex/skills/team-perf-opt/specs/team-config.json +1 -1
- package/.codex/skills/team-planex/SKILL.md +216 -216
- package/.codex/skills/team-quality-assurance/SKILL.md +229 -229
- package/.codex/skills/team-review/SKILL.md +227 -227
- package/.codex/skills/team-roadmap-dev/SKILL.md +238 -238
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +5 -5
- package/.codex/skills/team-tech-debt/SKILL.md +206 -206
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-testing/SKILL.md +237 -237
- package/.codex/skills/team-ui-polish/SKILL.md +218 -218
- package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -213
- package/.codex/skills/team-uidesign/SKILL.md +219 -219
- package/.codex/skills/team-uidesign/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-ultra-analyze/SKILL.md +260 -260
- package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-ux-improve/SKILL.md +227 -227
- package/.codex/skills/team-ux-improve/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-ux-improve/specs/team-config.json +1 -1
- package/.codex/skills/team-visual-a11y/SKILL.md +319 -319
- package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -213
- package/.codex/skills/workflow-execute/SKILL.md +5 -5
- package/.codex/skills/workflow-lite-planex/SKILL.md +3 -3
- package/.codex/skills/workflow-plan/SKILL.md +3 -3
- package/.codex/skills/workflow-tdd-plan/SKILL.md +4 -4
- package/.codex/skills/workflow-test-fix-cycle/SKILL.md +403 -402
- package/ccw/dist/cli.d.ts.map +1 -1
- package/ccw/dist/cli.js +16 -0
- package/ccw/dist/cli.js.map +1 -1
- package/ccw/dist/commands/chain-loader.d.ts +2 -0
- package/ccw/dist/commands/chain-loader.d.ts.map +1 -0
- package/ccw/dist/commands/chain-loader.js +11 -0
- package/ccw/dist/commands/chain-loader.js.map +1 -0
- package/ccw/dist/commands/install.d.ts.map +1 -1
- package/ccw/dist/commands/install.js +52 -1
- package/ccw/dist/commands/install.js.map +1 -1
- package/ccw/dist/commands/launcher.d.ts +2 -0
- package/ccw/dist/commands/launcher.d.ts.map +1 -0
- package/ccw/dist/commands/launcher.js +434 -0
- package/ccw/dist/commands/launcher.js.map +1 -0
- package/ccw/dist/tools/chain-loader.d.ts.map +1 -1
- package/ccw/dist/tools/chain-loader.js +457 -45
- package/ccw/dist/tools/chain-loader.js.map +1 -1
- package/ccw/dist/tools/skill-context-loader.d.ts.map +1 -1
- package/ccw/dist/tools/skill-context-loader.js +12 -26
- package/ccw/dist/tools/skill-context-loader.js.map +1 -1
- package/ccw/dist/types/chain-types.d.ts +41 -1
- package/ccw/dist/types/chain-types.d.ts.map +1 -1
- package/ccw/dist/utils/chain-visualizer.d.ts +13 -0
- package/ccw/dist/utils/chain-visualizer.d.ts.map +1 -0
- package/ccw/dist/utils/chain-visualizer.js +164 -0
- package/ccw/dist/utils/chain-visualizer.js.map +1 -0
- package/package.json +1 -1
- package/.claude/commands/cli/cli-init.md +0 -441
- package/.claude/commands/cli/codex-review.md +0 -361
- package/.claude/commands/flow-create.md +0 -663
- package/.claude/skills/ccw-chain/phases/analyze-with-file.md +0 -788
- package/.claude/skills/ccw-chain/phases/brainstorm/SKILL.md +0 -408
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/01-mode-routing.md +0 -207
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/02-artifacts.md +0 -567
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/03-role-analysis.md +0 -748
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/04-synthesis.md +0 -827
- package/.claude/skills/ccw-chain/phases/brainstorm-with-file.md +0 -482
- package/.claude/skills/ccw-chain/phases/collaborative-plan-with-file.md +0 -639
- package/.claude/skills/ccw-chain/phases/debug-with-file.md +0 -656
- package/.claude/skills/ccw-chain/phases/integration-test-cycle.md +0 -936
- package/.claude/skills/ccw-chain/phases/issue-convert-to-plan.md +0 -720
- package/.claude/skills/ccw-chain/phases/issue-discover.md +0 -483
- package/.claude/skills/ccw-chain/phases/issue-execute.md +0 -629
- package/.claude/skills/ccw-chain/phases/issue-from-brainstorm.md +0 -382
- package/.claude/skills/ccw-chain/phases/issue-plan.md +0 -343
- package/.claude/skills/ccw-chain/phases/issue-queue.md +0 -464
- package/.claude/skills/ccw-chain/phases/refactor-cycle.md +0 -852
- package/.claude/skills/ccw-chain/phases/review-cycle/SKILL.md +0 -132
- package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-fix.md +0 -760
- package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-module.md +0 -764
- package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-session.md +0 -775
- package/.claude/skills/ccw-chain/phases/roadmap-with-file.md +0 -544
- package/.claude/skills/ccw-chain/phases/spec-generator/SKILL.md +0 -338
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-5-requirement-clarification.md +0 -404
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-discovery.md +0 -257
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/02-product-brief.md +0 -274
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/03-requirements.md +0 -184
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/04-architecture.md +0 -248
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/05-epics-stories.md +0 -178
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-5-auto-fix.md +0 -144
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-readiness-check.md +0 -480
- package/.claude/skills/ccw-chain/phases/team-planex.md +0 -123
- package/.claude/skills/ccw-chain/phases/ui-design-explore-auto.md +0 -678
- package/.claude/skills/ccw-chain/phases/unified-execute-with-file.md +0 -870
- package/.claude/skills/ccw-chain/phases/workflow-execute/SKILL.md +0 -625
- package/.claude/skills/ccw-chain/phases/workflow-execute/phases/06-review.md +0 -215
- package/.claude/skills/ccw-chain/phases/workflow-lite-plan.md +0 -616
- package/.claude/skills/ccw-chain/phases/workflow-multi-cli-plan.md +0 -424
- package/.claude/skills/ccw-chain/phases/workflow-plan/SKILL.md +0 -466
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/01-session-discovery.md +0 -99
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/02-context-gathering.md +0 -338
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/03-conflict-resolution.md +0 -422
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/04-task-generation.md +0 -440
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/05-plan-verify.md +0 -395
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/06-replan.md +0 -594
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/SKILL.md +0 -527
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/01-session-discovery.md +0 -57
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/02-context-gathering.md +0 -407
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/03-test-coverage-analysis.md +0 -172
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/04-conflict-resolution.md +0 -426
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/05-tdd-task-generation.md +0 -473
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/06-tdd-structure-validation.md +0 -189
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/07-tdd-verify.md +0 -635
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/SKILL.md +0 -482
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/01-session-start.md +0 -60
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/02-test-context-gather.md +0 -493
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/03-test-concept-enhanced.md +0 -150
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/04-test-task-generate.md +0 -346
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/05-test-cycle-execute.md +0 -538
- package/.claude/skills/ccw-chain/specs/intent-patterns.md +0 -60
- package/.claude/skills/team-edict.zip +0 -0
|
@@ -1,359 +1,359 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: team-coordinate
|
|
3
|
-
description: 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 ".
|
|
4
|
-
allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), assign_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Team Coordinate
|
|
8
|
-
|
|
9
|
-
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.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## Architecture
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
+---------------------------------------------------+
|
|
16
|
-
| Skill(skill="team-coordinate") |
|
|
17
|
-
| args="task description" |
|
|
18
|
-
+-------------------+-------------------------------+
|
|
19
|
-
|
|
|
20
|
-
Orchestration Mode (auto -> coordinator)
|
|
21
|
-
|
|
|
22
|
-
Coordinator (built-in)
|
|
23
|
-
Phase 0-5 orchestration
|
|
24
|
-
|
|
|
25
|
-
+-------+-------+-------+-------+
|
|
26
|
-
v v v v v
|
|
27
|
-
[team-worker agents, each loaded with a dynamic role-spec]
|
|
28
|
-
(roles generated at runtime from task analysis)
|
|
29
|
-
|
|
30
|
-
CLI Tools (callable by any worker):
|
|
31
|
-
ccw cli --mode analysis - analysis and exploration
|
|
32
|
-
ccw cli --mode write - code generation and modification
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Delegation Lock
|
|
36
|
-
|
|
37
|
-
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
38
|
-
|
|
39
|
-
Before calling ANY tool, apply this check:
|
|
40
|
-
|
|
41
|
-
| Tool Call | Verdict | Reason |
|
|
42
|
-
|-----------|---------|--------|
|
|
43
|
-
| `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
|
|
44
|
-
| `list_agents` | ALLOWED | Agent health check |
|
|
45
|
-
| `request_user_input` | ALLOWED | User interaction |
|
|
46
|
-
| `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
|
|
47
|
-
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
48
|
-
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
49
|
-
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
50
|
-
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
51
|
-
| `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
|
|
52
|
-
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
53
|
-
|
|
54
|
-
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
55
|
-
|
|
56
|
-
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent. The overhead is the feature — it provides session tracking, artifact persistence, and resume capability.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Shared Constants
|
|
61
|
-
|
|
62
|
-
| Constant | Value |
|
|
63
|
-
|----------|-------|
|
|
64
|
-
| Session prefix | `TC` |
|
|
65
|
-
| Session path | `.workflow/.team/TC-<slug>-<date>/` |
|
|
66
|
-
| Worker agent | `team-worker` |
|
|
67
|
-
| Message bus | `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)` |
|
|
68
|
-
| CLI analysis | `ccw cli --mode analysis` |
|
|
69
|
-
| CLI write | `ccw cli --mode write` |
|
|
70
|
-
| Max roles | 5 |
|
|
71
|
-
|
|
72
|
-
## Role Router
|
|
73
|
-
|
|
74
|
-
This skill is **coordinator-only**. Workers do NOT invoke this skill -- they are spawned as `team-worker` agents directly.
|
|
75
|
-
|
|
76
|
-
### Input Parsing
|
|
77
|
-
|
|
78
|
-
Parse `$ARGUMENTS`. No `--role` needed -- always routes to coordinator.
|
|
79
|
-
|
|
80
|
-
### Role Registry
|
|
81
|
-
|
|
82
|
-
Only coordinator is statically registered. All other roles are dynamic, stored as role-specs in session.
|
|
83
|
-
|
|
84
|
-
| Role | File | Type |
|
|
85
|
-
|------|------|------|
|
|
86
|
-
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | built-in orchestrator |
|
|
87
|
-
| (dynamic) | `<session>/role-specs/<role-name>.md` | runtime-generated role-spec |
|
|
88
|
-
|
|
89
|
-
### CLI Tool Usage
|
|
90
|
-
|
|
91
|
-
Workers can use CLI tools for analysis and code operations:
|
|
92
|
-
|
|
93
|
-
| Tool | Purpose |
|
|
94
|
-
|------|---------|
|
|
95
|
-
| ccw cli --mode analysis | Analysis, exploration, pattern discovery |
|
|
96
|
-
| ccw cli --mode write | Code generation, modification, refactoring |
|
|
97
|
-
|
|
98
|
-
### Dispatch
|
|
99
|
-
|
|
100
|
-
Always route to coordinator. Coordinator reads `roles/coordinator/role.md` and executes its phases.
|
|
101
|
-
|
|
102
|
-
### Orchestration Mode
|
|
103
|
-
|
|
104
|
-
User just provides task description.
|
|
105
|
-
|
|
106
|
-
**Invocation**: `Skill(skill="team-coordinate", args="task description")`
|
|
107
|
-
|
|
108
|
-
**Lifecycle**:
|
|
109
|
-
```
|
|
110
|
-
User provides task description
|
|
111
|
-
-> coordinator Phase 1: task analysis (detect capabilities, build dependency graph)
|
|
112
|
-
-> coordinator Phase 2: generate role-specs + initialize session
|
|
113
|
-
-> coordinator Phase 3: create task chain from dependency graph
|
|
114
|
-
-> coordinator Phase 4: spawn first batch workers (background) -> STOP
|
|
115
|
-
-> Worker executes -> callback -> coordinator advances next step
|
|
116
|
-
-> Loop until pipeline complete -> Phase 5 report + completion action
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**User Commands** (wake paused coordinator):
|
|
120
|
-
|
|
121
|
-
| Command | Action |
|
|
122
|
-
|---------|--------|
|
|
123
|
-
| `check` / `status` | Output execution status graph, no advancement |
|
|
124
|
-
| `resume` / `continue` | Check worker states, advance next step |
|
|
125
|
-
| `revise <TASK-ID> [feedback]` | Revise specific task with optional feedback |
|
|
126
|
-
| `feedback <text>` | Inject feedback into active pipeline |
|
|
127
|
-
| `improve [dimension]` | Auto-improve weakest quality dimension |
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Coordinator Spawn Template
|
|
132
|
-
|
|
133
|
-
### v2 Worker Spawn (all roles)
|
|
134
|
-
|
|
135
|
-
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
spawn_agent({
|
|
139
|
-
agent_type: "team_worker",
|
|
140
|
-
task_name: "<task-id>",
|
|
141
|
-
fork_context: false,
|
|
142
|
-
items: [
|
|
143
|
-
{ type: "text", text: `## Role Assignment
|
|
144
|
-
role: <role>
|
|
145
|
-
role_spec: <session-folder>/role-specs/<role>.md
|
|
146
|
-
session: <session-folder>
|
|
147
|
-
session_id: <session-id>
|
|
148
|
-
requirement: <task-description>
|
|
149
|
-
inner_loop: <true|false>
|
|
150
|
-
|
|
151
|
-
Read role_spec file to load Phase 2-4 domain instructions.` },
|
|
152
|
-
|
|
153
|
-
{ type: "text", text: `## Task Context
|
|
154
|
-
task_id: <task-id>
|
|
155
|
-
title: <task-title>
|
|
156
|
-
description: <task-description>
|
|
157
|
-
pipeline_phase: <pipeline-phase>` },
|
|
158
|
-
|
|
159
|
-
{ type: "text", text: `## Upstream Context
|
|
160
|
-
<prev_context>` }
|
|
161
|
-
]
|
|
162
|
-
})
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target: <name> })` each worker.
|
|
166
|
-
|
|
167
|
-
**Inner Loop roles** (role has 2+ serial same-prefix tasks): Set `inner_loop: true`. The team-worker agent handles the loop internally.
|
|
168
|
-
|
|
169
|
-
**Single-task roles**: Set `inner_loop: false`.
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
### Model Selection Guide
|
|
175
|
-
|
|
176
|
-
Roles are **dynamically generated** at runtime. Select model/reasoning_effort based on the generated role's `responsibility_type`:
|
|
177
|
-
|
|
178
|
-
| responsibility_type | model | reasoning_effort | Rationale |
|
|
179
|
-
|---------------------|-------|-------------------|-----------|
|
|
180
|
-
| exploration | (default) | medium | Read-heavy, less reasoning needed |
|
|
181
|
-
| analysis | (default) | high | Deep analysis requires full reasoning |
|
|
182
|
-
| implementation | (default) | high | Code generation needs precision |
|
|
183
|
-
| synthesis | (default) | medium | Aggregation over generation |
|
|
184
|
-
| review | (default) | high | Quality assessment needs deep reasoning |
|
|
185
|
-
|
|
186
|
-
Map each generated role's `responsibility_type` (from `team-session.json#roles`) to the table above.
|
|
187
|
-
|
|
188
|
-
Override model/reasoning_effort in spawn_agent when cost optimization is needed:
|
|
189
|
-
```
|
|
190
|
-
spawn_agent({
|
|
191
|
-
agent_type: "team_worker",
|
|
192
|
-
task_name: "<task-id>",
|
|
193
|
-
fork_context: false,
|
|
194
|
-
model: "<model-override>",
|
|
195
|
-
reasoning_effort: "<effort-level>",
|
|
196
|
-
items: [...]
|
|
197
|
-
})
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## v4 Agent Coordination
|
|
201
|
-
|
|
202
|
-
### Message Semantics
|
|
203
|
-
|
|
204
|
-
| Intent | API | Example |
|
|
205
|
-
|--------|-----|---------|
|
|
206
|
-
| Queue supplementary info (don't interrupt) | `send_message` | Send upstream task findings to a running downstream worker |
|
|
207
|
-
| Not used in this skill | `assign_task` | No resident agents -- all workers are one-shot |
|
|
208
|
-
| Check running agents | `list_agents` | Verify agent health during resume |
|
|
209
|
-
|
|
210
|
-
**Note**: Since roles are dynamically generated, the coordinator must resolve task prefixes and role names from `team-session.json#roles` at runtime. There are no hardcoded role-specific examples.
|
|
211
|
-
|
|
212
|
-
### fork_context Strategy
|
|
213
|
-
|
|
214
|
-
`fork_context: false` is the default. Consider `fork_context: true` only when:
|
|
215
|
-
- Runtime analysis reveals the task requires deep familiarity with the full conversation context
|
|
216
|
-
- The dynamically-generated role-spec indicates the worker needs project-wide understanding
|
|
217
|
-
- The coordinator has already accumulated significant context about the codebase
|
|
218
|
-
|
|
219
|
-
This decision should be made per-task during Phase 4 based on the role's `responsibility_type`.
|
|
220
|
-
|
|
221
|
-
### Agent Health Check
|
|
222
|
-
|
|
223
|
-
Use `list_agents({})` in handleResume and handleComplete:
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
// Reconcile session state with actual running agents
|
|
227
|
-
const running = list_agents({})
|
|
228
|
-
// Compare with team-session.json active_workers
|
|
229
|
-
// Reset orphaned tasks (in_progress but agent gone) to pending
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### Named Agent Targeting
|
|
233
|
-
|
|
234
|
-
Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
|
|
235
|
-
- `send_message({ target: "<TASK-ID>", items: [...] })` -- queue upstream context without interrupting
|
|
236
|
-
- `close_agent({ target: "<TASK-ID>" })` -- cleanup by name
|
|
237
|
-
|
|
238
|
-
## Completion Action
|
|
239
|
-
|
|
240
|
-
When pipeline completes (all tasks done), coordinator presents an interactive choice:
|
|
241
|
-
|
|
242
|
-
```
|
|
243
|
-
request_user_input({
|
|
244
|
-
questions: [{
|
|
245
|
-
question: "Team pipeline complete. What would you like to do?",
|
|
246
|
-
header: "Completion",
|
|
247
|
-
multiSelect: false,
|
|
248
|
-
options: [
|
|
249
|
-
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
250
|
-
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
251
|
-
{ label: "Export Results", description: "Export deliverables to target directory, then clean" }
|
|
252
|
-
]
|
|
253
|
-
}]
|
|
254
|
-
})
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Action Handlers
|
|
258
|
-
|
|
259
|
-
| Choice | Steps |
|
|
260
|
-
|--------|-------|
|
|
261
|
-
| Archive & Clean | Update session status="completed" -> output final summary with artifact paths |
|
|
262
|
-
| Keep Active | Update session status="paused" -> output: "Resume with: Skill(skill='team-coordinate', args='resume')" |
|
|
263
|
-
| Export Results | request_user_input(target path) -> copy artifacts to target -> Archive & Clean |
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## Specs Reference
|
|
268
|
-
|
|
269
|
-
| Spec | Purpose |
|
|
270
|
-
|------|---------|
|
|
271
|
-
| [specs/pipelines.md](specs/pipelines.md) | Dynamic pipeline model, task naming, dependency graph |
|
|
272
|
-
| [specs/role-spec-template.md](specs/role-spec-template.md) | Template for dynamic role-spec generation |
|
|
273
|
-
| [specs/quality-gates.md](specs/quality-gates.md) | Quality thresholds and scoring dimensions |
|
|
274
|
-
| [specs/knowledge-transfer.md](specs/knowledge-transfer.md) | Context transfer protocols between roles |
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Session Directory
|
|
279
|
-
|
|
280
|
-
```
|
|
281
|
-
.workflow/.team/TC-<slug>-<date>/
|
|
282
|
-
+-- team-session.json # Session state + dynamic role registry
|
|
283
|
-
+-- task-analysis.json # Phase 1 output: capabilities, dependency graph
|
|
284
|
-
+-- role-specs/ # Dynamic role-spec definitions (generated Phase 2)
|
|
285
|
-
| +-- <role-1>.md # Lightweight: frontmatter + Phase 2-4 only
|
|
286
|
-
| +-- <role-2>.md
|
|
287
|
-
+-- artifacts/ # All MD deliverables from workers
|
|
288
|
-
| +-- <artifact>.md
|
|
289
|
-
+-- .msg/ # Team message bus + state
|
|
290
|
-
| +-- messages.jsonl # Message log
|
|
291
|
-
| +-- meta.json # Session metadata + cross-role state
|
|
292
|
-
+-- wisdom/ # Cross-task knowledge
|
|
293
|
-
| +-- learnings.md
|
|
294
|
-
| +-- decisions.md
|
|
295
|
-
| +-- issues.md
|
|
296
|
-
+-- explorations/ # Shared explore cache
|
|
297
|
-
| +-- cache-index.json
|
|
298
|
-
| +-- explore-<angle>.json
|
|
299
|
-
+-- discussions/ # Inline discuss records
|
|
300
|
-
| +-- <round>.md
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
### team-session.json Schema
|
|
304
|
-
|
|
305
|
-
```json
|
|
306
|
-
{
|
|
307
|
-
"session_id": "TC-<slug>-<date>",
|
|
308
|
-
"task_description": "<original user input>",
|
|
309
|
-
"status": "active | paused | completed",
|
|
310
|
-
"team_name": "<team-name>",
|
|
311
|
-
"roles": [
|
|
312
|
-
{
|
|
313
|
-
"name": "<role-name>",
|
|
314
|
-
"prefix": "<PREFIX>",
|
|
315
|
-
"responsibility_type": "<type>",
|
|
316
|
-
"inner_loop": false,
|
|
317
|
-
"role_spec": "role-specs/<role-name>.md"
|
|
318
|
-
}
|
|
319
|
-
],
|
|
320
|
-
"pipeline": {
|
|
321
|
-
"dependency_graph": {},
|
|
322
|
-
"tasks_total": 0,
|
|
323
|
-
"tasks_completed": 0
|
|
324
|
-
},
|
|
325
|
-
"active_workers": [],
|
|
326
|
-
"completed_tasks": [],
|
|
327
|
-
"completion_action": "interactive",
|
|
328
|
-
"created_at": "<timestamp>"
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
## Session Resume
|
|
335
|
-
|
|
336
|
-
Coordinator supports `resume` / `continue` for interrupted sessions:
|
|
337
|
-
|
|
338
|
-
1. Scan `.workflow/.team/TC-*/team-session.json` for active/paused sessions
|
|
339
|
-
2. Multiple matches -> request_user_input for selection
|
|
340
|
-
3. Audit task states -> reconcile session state <-> task status
|
|
341
|
-
4. Reset in_progress -> pending (interrupted tasks)
|
|
342
|
-
5. Rebuild team and spawn needed workers only
|
|
343
|
-
6. Create missing tasks, set dependencies
|
|
344
|
-
7. Kick first executable task -> Phase 4 coordination loop
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## Error Handling
|
|
349
|
-
|
|
350
|
-
| Scenario | Resolution |
|
|
351
|
-
|----------|------------|
|
|
352
|
-
| Unknown command | Error with available command list |
|
|
353
|
-
| Dynamic role-spec not found | Error, coordinator may need to regenerate |
|
|
354
|
-
| Command file not found | Fallback to inline execution |
|
|
355
|
-
| CLI tool fails | Worker proceeds with direct implementation, logs warning |
|
|
356
|
-
| Explore cache corrupt | Clear cache, re-explore |
|
|
357
|
-
| Fast-advance spawns wrong task | Coordinator reconciles on next callback |
|
|
358
|
-
| capability_gap reported | Coordinator generates new role-spec via handleAdapt |
|
|
359
|
-
| Completion action fails | Default to Keep Active, log warning |
|
|
1
|
+
---
|
|
2
|
+
name: team-coordinate
|
|
3
|
+
description: 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 ".
|
|
4
|
+
allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), assign_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Team Coordinate
|
|
8
|
+
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Architecture
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
+---------------------------------------------------+
|
|
16
|
+
| Skill(skill="team-coordinate") |
|
|
17
|
+
| args="task description" |
|
|
18
|
+
+-------------------+-------------------------------+
|
|
19
|
+
|
|
|
20
|
+
Orchestration Mode (auto -> coordinator)
|
|
21
|
+
|
|
|
22
|
+
Coordinator (built-in)
|
|
23
|
+
Phase 0-5 orchestration
|
|
24
|
+
|
|
|
25
|
+
+-------+-------+-------+-------+
|
|
26
|
+
v v v v v
|
|
27
|
+
[team-worker agents, each loaded with a dynamic role-spec]
|
|
28
|
+
(roles generated at runtime from task analysis)
|
|
29
|
+
|
|
30
|
+
CLI Tools (callable by any worker):
|
|
31
|
+
ccw cli --mode analysis - analysis and exploration
|
|
32
|
+
ccw cli --mode write - code generation and modification
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Delegation Lock
|
|
36
|
+
|
|
37
|
+
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
38
|
+
|
|
39
|
+
Before calling ANY tool, apply this check:
|
|
40
|
+
|
|
41
|
+
| Tool Call | Verdict | Reason |
|
|
42
|
+
|-----------|---------|--------|
|
|
43
|
+
| `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
|
|
44
|
+
| `list_agents` | ALLOWED | Agent health check |
|
|
45
|
+
| `request_user_input` | ALLOWED | User interaction |
|
|
46
|
+
| `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
|
|
47
|
+
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
48
|
+
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
49
|
+
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
50
|
+
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
51
|
+
| `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
|
|
52
|
+
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
53
|
+
|
|
54
|
+
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
55
|
+
|
|
56
|
+
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent. The overhead is the feature — it provides session tracking, artifact persistence, and resume capability.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Shared Constants
|
|
61
|
+
|
|
62
|
+
| Constant | Value |
|
|
63
|
+
|----------|-------|
|
|
64
|
+
| Session prefix | `TC` |
|
|
65
|
+
| Session path | `.workflow/.team/TC-<slug>-<date>/` |
|
|
66
|
+
| Worker agent | `team-worker` |
|
|
67
|
+
| Message bus | `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)` |
|
|
68
|
+
| CLI analysis | `ccw cli --mode analysis` |
|
|
69
|
+
| CLI write | `ccw cli --mode write` |
|
|
70
|
+
| Max roles | 5 |
|
|
71
|
+
|
|
72
|
+
## Role Router
|
|
73
|
+
|
|
74
|
+
This skill is **coordinator-only**. Workers do NOT invoke this skill -- they are spawned as `team-worker` agents directly.
|
|
75
|
+
|
|
76
|
+
### Input Parsing
|
|
77
|
+
|
|
78
|
+
Parse `$ARGUMENTS`. No `--role` needed -- always routes to coordinator.
|
|
79
|
+
|
|
80
|
+
### Role Registry
|
|
81
|
+
|
|
82
|
+
Only coordinator is statically registered. All other roles are dynamic, stored as role-specs in session.
|
|
83
|
+
|
|
84
|
+
| Role | File | Type |
|
|
85
|
+
|------|------|------|
|
|
86
|
+
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | built-in orchestrator |
|
|
87
|
+
| (dynamic) | `<session>/role-specs/<role-name>.md` | runtime-generated role-spec |
|
|
88
|
+
|
|
89
|
+
### CLI Tool Usage
|
|
90
|
+
|
|
91
|
+
Workers can use CLI tools for analysis and code operations:
|
|
92
|
+
|
|
93
|
+
| Tool | Purpose |
|
|
94
|
+
|------|---------|
|
|
95
|
+
| ccw cli --mode analysis | Analysis, exploration, pattern discovery |
|
|
96
|
+
| ccw cli --mode write | Code generation, modification, refactoring |
|
|
97
|
+
|
|
98
|
+
### Dispatch
|
|
99
|
+
|
|
100
|
+
Always route to coordinator. Coordinator reads `roles/coordinator/role.md` and executes its phases.
|
|
101
|
+
|
|
102
|
+
### Orchestration Mode
|
|
103
|
+
|
|
104
|
+
User just provides task description.
|
|
105
|
+
|
|
106
|
+
**Invocation**: `Skill(skill="team-coordinate", args="task description")`
|
|
107
|
+
|
|
108
|
+
**Lifecycle**:
|
|
109
|
+
```
|
|
110
|
+
User provides task description
|
|
111
|
+
-> coordinator Phase 1: task analysis (detect capabilities, build dependency graph)
|
|
112
|
+
-> coordinator Phase 2: generate role-specs + initialize session
|
|
113
|
+
-> coordinator Phase 3: create task chain from dependency graph
|
|
114
|
+
-> coordinator Phase 4: spawn first batch workers (background) -> STOP
|
|
115
|
+
-> Worker executes -> callback -> coordinator advances next step
|
|
116
|
+
-> Loop until pipeline complete -> Phase 5 report + completion action
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**User Commands** (wake paused coordinator):
|
|
120
|
+
|
|
121
|
+
| Command | Action |
|
|
122
|
+
|---------|--------|
|
|
123
|
+
| `check` / `status` | Output execution status graph, no advancement |
|
|
124
|
+
| `resume` / `continue` | Check worker states, advance next step |
|
|
125
|
+
| `revise <TASK-ID> [feedback]` | Revise specific task with optional feedback |
|
|
126
|
+
| `feedback <text>` | Inject feedback into active pipeline |
|
|
127
|
+
| `improve [dimension]` | Auto-improve weakest quality dimension |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Coordinator Spawn Template
|
|
132
|
+
|
|
133
|
+
### v2 Worker Spawn (all roles)
|
|
134
|
+
|
|
135
|
+
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
spawn_agent({
|
|
139
|
+
agent_type: "team_worker",
|
|
140
|
+
task_name: "<task-id>",
|
|
141
|
+
fork_context: false,
|
|
142
|
+
items: [
|
|
143
|
+
{ type: "text", text: `## Role Assignment
|
|
144
|
+
role: <role>
|
|
145
|
+
role_spec: <session-folder>/role-specs/<role>.md
|
|
146
|
+
session: <session-folder>
|
|
147
|
+
session_id: <session-id>
|
|
148
|
+
requirement: <task-description>
|
|
149
|
+
inner_loop: <true|false>
|
|
150
|
+
|
|
151
|
+
Read role_spec file to load Phase 2-4 domain instructions.` },
|
|
152
|
+
|
|
153
|
+
{ type: "text", text: `## Task Context
|
|
154
|
+
task_id: <task-id>
|
|
155
|
+
title: <task-title>
|
|
156
|
+
description: <task-description>
|
|
157
|
+
pipeline_phase: <pipeline-phase>` },
|
|
158
|
+
|
|
159
|
+
{ type: "text", text: `## Upstream Context
|
|
160
|
+
<prev_context>` }
|
|
161
|
+
]
|
|
162
|
+
})
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target: <name> })` each worker.
|
|
166
|
+
|
|
167
|
+
**Inner Loop roles** (role has 2+ serial same-prefix tasks): Set `inner_loop: true`. The team-worker agent handles the loop internally.
|
|
168
|
+
|
|
169
|
+
**Single-task roles**: Set `inner_loop: false`.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
### Model Selection Guide
|
|
175
|
+
|
|
176
|
+
Roles are **dynamically generated** at runtime. Select model/reasoning_effort based on the generated role's `responsibility_type`:
|
|
177
|
+
|
|
178
|
+
| responsibility_type | model | reasoning_effort | Rationale |
|
|
179
|
+
|---------------------|-------|-------------------|-----------|
|
|
180
|
+
| exploration | (default) | medium | Read-heavy, less reasoning needed |
|
|
181
|
+
| analysis | (default) | high | Deep analysis requires full reasoning |
|
|
182
|
+
| implementation | (default) | high | Code generation needs precision |
|
|
183
|
+
| synthesis | (default) | medium | Aggregation over generation |
|
|
184
|
+
| review | (default) | high | Quality assessment needs deep reasoning |
|
|
185
|
+
|
|
186
|
+
Map each generated role's `responsibility_type` (from `team-session.json#roles`) to the table above.
|
|
187
|
+
|
|
188
|
+
Override model/reasoning_effort in spawn_agent when cost optimization is needed:
|
|
189
|
+
```
|
|
190
|
+
spawn_agent({
|
|
191
|
+
agent_type: "team_worker",
|
|
192
|
+
task_name: "<task-id>",
|
|
193
|
+
fork_context: false,
|
|
194
|
+
model: "<model-override>",
|
|
195
|
+
reasoning_effort: "<effort-level>",
|
|
196
|
+
items: [...]
|
|
197
|
+
})
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## v4 Agent Coordination
|
|
201
|
+
|
|
202
|
+
### Message Semantics
|
|
203
|
+
|
|
204
|
+
| Intent | API | Example |
|
|
205
|
+
|--------|-----|---------|
|
|
206
|
+
| Queue supplementary info (don't interrupt) | `send_message` | Send upstream task findings to a running downstream worker |
|
|
207
|
+
| Not used in this skill | `assign_task` | No resident agents -- all workers are one-shot |
|
|
208
|
+
| Check running agents | `list_agents` | Verify agent health during resume |
|
|
209
|
+
|
|
210
|
+
**Note**: Since roles are dynamically generated, the coordinator must resolve task prefixes and role names from `team-session.json#roles` at runtime. There are no hardcoded role-specific examples.
|
|
211
|
+
|
|
212
|
+
### fork_context Strategy
|
|
213
|
+
|
|
214
|
+
`fork_context: false` is the default. Consider `fork_context: true` only when:
|
|
215
|
+
- Runtime analysis reveals the task requires deep familiarity with the full conversation context
|
|
216
|
+
- The dynamically-generated role-spec indicates the worker needs project-wide understanding
|
|
217
|
+
- The coordinator has already accumulated significant context about the codebase
|
|
218
|
+
|
|
219
|
+
This decision should be made per-task during Phase 4 based on the role's `responsibility_type`.
|
|
220
|
+
|
|
221
|
+
### Agent Health Check
|
|
222
|
+
|
|
223
|
+
Use `list_agents({})` in handleResume and handleComplete:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
// Reconcile session state with actual running agents
|
|
227
|
+
const running = list_agents({})
|
|
228
|
+
// Compare with team-session.json active_workers
|
|
229
|
+
// Reset orphaned tasks (in_progress but agent gone) to pending
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Named Agent Targeting
|
|
233
|
+
|
|
234
|
+
Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
|
|
235
|
+
- `send_message({ target: "<TASK-ID>", items: [...] })` -- queue upstream context without interrupting
|
|
236
|
+
- `close_agent({ target: "<TASK-ID>" })` -- cleanup by name
|
|
237
|
+
|
|
238
|
+
## Completion Action
|
|
239
|
+
|
|
240
|
+
When pipeline completes (all tasks done), coordinator presents an interactive choice:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
functions.request_user_input({
|
|
244
|
+
questions: [{
|
|
245
|
+
question: "Team pipeline complete. What would you like to do?",
|
|
246
|
+
header: "Completion",
|
|
247
|
+
multiSelect: false,
|
|
248
|
+
options: [
|
|
249
|
+
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
250
|
+
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
251
|
+
{ label: "Export Results", description: "Export deliverables to target directory, then clean" }
|
|
252
|
+
]
|
|
253
|
+
}]
|
|
254
|
+
})
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Action Handlers
|
|
258
|
+
|
|
259
|
+
| Choice | Steps |
|
|
260
|
+
|--------|-------|
|
|
261
|
+
| Archive & Clean | Update session status="completed" -> output final summary with artifact paths |
|
|
262
|
+
| Keep Active | Update session status="paused" -> output: "Resume with: Skill(skill='team-coordinate', args='resume')" |
|
|
263
|
+
| Export Results | functions.request_user_input(target path) -> copy artifacts to target -> Archive & Clean |
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Specs Reference
|
|
268
|
+
|
|
269
|
+
| Spec | Purpose |
|
|
270
|
+
|------|---------|
|
|
271
|
+
| [specs/pipelines.md](specs/pipelines.md) | Dynamic pipeline model, task naming, dependency graph |
|
|
272
|
+
| [specs/role-spec-template.md](specs/role-spec-template.md) | Template for dynamic role-spec generation |
|
|
273
|
+
| [specs/quality-gates.md](specs/quality-gates.md) | Quality thresholds and scoring dimensions |
|
|
274
|
+
| [specs/knowledge-transfer.md](specs/knowledge-transfer.md) | Context transfer protocols between roles |
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Session Directory
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
.workflow/.team/TC-<slug>-<date>/
|
|
282
|
+
+-- team-session.json # Session state + dynamic role registry
|
|
283
|
+
+-- task-analysis.json # Phase 1 output: capabilities, dependency graph
|
|
284
|
+
+-- role-specs/ # Dynamic role-spec definitions (generated Phase 2)
|
|
285
|
+
| +-- <role-1>.md # Lightweight: frontmatter + Phase 2-4 only
|
|
286
|
+
| +-- <role-2>.md
|
|
287
|
+
+-- artifacts/ # All MD deliverables from workers
|
|
288
|
+
| +-- <artifact>.md
|
|
289
|
+
+-- .msg/ # Team message bus + state
|
|
290
|
+
| +-- messages.jsonl # Message log
|
|
291
|
+
| +-- meta.json # Session metadata + cross-role state
|
|
292
|
+
+-- wisdom/ # Cross-task knowledge
|
|
293
|
+
| +-- learnings.md
|
|
294
|
+
| +-- decisions.md
|
|
295
|
+
| +-- issues.md
|
|
296
|
+
+-- explorations/ # Shared explore cache
|
|
297
|
+
| +-- cache-index.json
|
|
298
|
+
| +-- explore-<angle>.json
|
|
299
|
+
+-- discussions/ # Inline discuss records
|
|
300
|
+
| +-- <round>.md
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### team-session.json Schema
|
|
304
|
+
|
|
305
|
+
```json
|
|
306
|
+
{
|
|
307
|
+
"session_id": "TC-<slug>-<date>",
|
|
308
|
+
"task_description": "<original user input>",
|
|
309
|
+
"status": "active | paused | completed",
|
|
310
|
+
"team_name": "<team-name>",
|
|
311
|
+
"roles": [
|
|
312
|
+
{
|
|
313
|
+
"name": "<role-name>",
|
|
314
|
+
"prefix": "<PREFIX>",
|
|
315
|
+
"responsibility_type": "<type>",
|
|
316
|
+
"inner_loop": false,
|
|
317
|
+
"role_spec": "role-specs/<role-name>.md"
|
|
318
|
+
}
|
|
319
|
+
],
|
|
320
|
+
"pipeline": {
|
|
321
|
+
"dependency_graph": {},
|
|
322
|
+
"tasks_total": 0,
|
|
323
|
+
"tasks_completed": 0
|
|
324
|
+
},
|
|
325
|
+
"active_workers": [],
|
|
326
|
+
"completed_tasks": [],
|
|
327
|
+
"completion_action": "interactive",
|
|
328
|
+
"created_at": "<timestamp>"
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Session Resume
|
|
335
|
+
|
|
336
|
+
Coordinator supports `resume` / `continue` for interrupted sessions:
|
|
337
|
+
|
|
338
|
+
1. Scan `.workflow/.team/TC-*/team-session.json` for active/paused sessions
|
|
339
|
+
2. Multiple matches -> request_user_input for selection
|
|
340
|
+
3. Audit task states -> reconcile session state <-> task status
|
|
341
|
+
4. Reset in_progress -> pending (interrupted tasks)
|
|
342
|
+
5. Rebuild team and spawn needed workers only
|
|
343
|
+
6. Create missing tasks, set dependencies
|
|
344
|
+
7. Kick first executable task -> Phase 4 coordination loop
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Error Handling
|
|
349
|
+
|
|
350
|
+
| Scenario | Resolution |
|
|
351
|
+
|----------|------------|
|
|
352
|
+
| Unknown command | Error with available command list |
|
|
353
|
+
| Dynamic role-spec not found | Error, coordinator may need to regenerate |
|
|
354
|
+
| Command file not found | Fallback to inline execution |
|
|
355
|
+
| CLI tool fails | Worker proceeds with direct implementation, logs warning |
|
|
356
|
+
| Explore cache corrupt | Clear cache, re-explore |
|
|
357
|
+
| Fast-advance spawns wrong task | Coordinator reconciles on next callback |
|
|
358
|
+
| capability_gap reported | Coordinator generates new role-spec via handleAdapt |
|
|
359
|
+
| Completion action fails | Default to Keep Active, log warning |
|