claude-code-workflow 7.2.29 → 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.
Files changed (169) hide show
  1. package/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json +2 -2
  2. package/.ccw/workflows/cli-templates/schemas/task-schema.json +14 -7
  3. package/.claude/agents/action-planning-agent.md +7 -4
  4. package/.claude/agents/cli-explore-agent.md +77 -63
  5. package/.claude/agents/cli-lite-planning-agent.md +11 -10
  6. package/.claude/agents/issue-plan-agent.md +421 -426
  7. package/.claude/commands/workflow/spec/setup.md +1 -1
  8. package/.claude/commands/workflow-skill.md +130 -0
  9. package/.claude/skills/ccw-chain/SKILL.md +92 -0
  10. package/.claude/skills/ccw-chain/chains/ccw-cycle.json +31 -0
  11. package/.claude/skills/ccw-chain/chains/ccw-exploration.json +58 -0
  12. package/.claude/skills/ccw-chain/chains/ccw-issue.json +44 -0
  13. package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +71 -0
  14. package/.claude/skills/ccw-chain/chains/ccw-main.json +65 -0
  15. package/.claude/skills/ccw-chain/chains/ccw-standard.json +51 -0
  16. package/.claude/skills/ccw-chain/chains/ccw-team.json +15 -0
  17. package/.claude/skills/ccw-chain/chains/ccw-with-file.json +47 -0
  18. package/.claude/skills/ccw-chain/specs/auto-mode.md +47 -0
  19. package/.claude/skills/chain-loader/SKILL.md +78 -0
  20. package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -0
  21. package/.claude/skills/chain-loader/phases/02-design-graph.md +73 -0
  22. package/.claude/skills/chain-loader/phases/03-generate-validate.md +75 -0
  23. package/.claude/skills/chain-loader/specs/chain-schema.md +126 -0
  24. package/.claude/skills/chain-loader/specs/design-patterns.md +99 -0
  25. package/.claude/skills/chain-loader/templates/chain-json.md +63 -0
  26. package/.claude/skills/review-cycle/phases/review-module.md +764 -764
  27. package/.claude/skills/review-cycle/phases/review-session.md +775 -775
  28. package/.claude/skills/workflow-multi-cli-plan/SKILL.md +2 -2
  29. package/.claude/skills/workflow-plan/SKILL.md +1 -0
  30. package/.claude/skills/workflow-plan/phases/01-session-discovery.md +19 -2
  31. package/.claude/skills/workflow-plan/phases/02-context-gathering.md +2 -2
  32. package/.claude/skills/workflow-plan/phases/03-conflict-resolution.md +422 -422
  33. package/.claude/skills/workflow-plan/phases/04-task-generation.md +9 -1
  34. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +395 -395
  35. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +407 -407
  36. package/.claude/skills/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -426
  37. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +493 -493
  38. package/.codex/skills/analyze-with-file/SKILL.md +383 -134
  39. package/.codex/skills/brainstorm/SKILL.md +3 -3
  40. package/.codex/skills/brainstorm-with-file/SKILL.md +208 -88
  41. package/.codex/skills/clean/SKILL.md +1 -1
  42. package/.codex/skills/csv-wave-pipeline/SKILL.md +2 -2
  43. package/.codex/skills/investigate/orchestrator.md +24 -0
  44. package/.codex/skills/issue-discover/SKILL.md +374 -361
  45. package/.codex/skills/issue-discover/phases/01-issue-new.md +1 -1
  46. package/.codex/skills/issue-discover/phases/02-discover.md +2 -2
  47. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +1 -1
  48. package/.codex/skills/issue-discover/phases/04-quick-execute.md +2 -2
  49. package/.codex/skills/parallel-dev-cycle/SKILL.md +44 -37
  50. package/.codex/skills/project-documentation-workflow/SKILL.md +1 -1
  51. package/.codex/skills/review-cycle/SKILL.md +31 -12
  52. package/.codex/skills/roadmap-with-file/SKILL.md +141 -133
  53. package/.codex/skills/security-audit/orchestrator.md +29 -0
  54. package/.codex/skills/session-sync/SKILL.md +1 -1
  55. package/.codex/skills/ship/orchestrator.md +24 -0
  56. package/.codex/skills/spec-add/SKILL.md +5 -5
  57. package/.codex/skills/spec-generator/SKILL.md +33 -2
  58. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +3 -3
  59. package/.codex/skills/spec-generator/phases/01-discovery.md +1 -1
  60. package/.codex/skills/spec-generator/phases/02-product-brief.md +1 -1
  61. package/.codex/skills/spec-generator/phases/03-requirements.md +1 -1
  62. package/.codex/skills/spec-generator/phases/04-architecture.md +1 -1
  63. package/.codex/skills/spec-generator/phases/05-epics-stories.md +1 -1
  64. package/.codex/skills/spec-generator/phases/06-readiness-check.md +1 -1
  65. package/.codex/skills/spec-generator/phases/07-issue-export.md +1 -1
  66. package/.codex/skills/spec-setup/SKILL.md +669 -669
  67. package/.codex/skills/team-arch-opt/specs/team-config.json +1 -1
  68. package/.codex/skills/team-brainstorm/SKILL.md +259 -259
  69. package/.codex/skills/team-coordinate/SKILL.md +359 -359
  70. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +1 -1
  71. package/.codex/skills/team-designer/SKILL.md +27 -1
  72. package/.codex/skills/team-designer/phases/01-requirements-analysis.md +2 -2
  73. package/.codex/skills/team-designer/phases/02-scaffold-generation.md +1 -1
  74. package/.codex/skills/team-designer/phases/04-validation.md +1 -1
  75. package/.codex/skills/team-executor/SKILL.md +218 -218
  76. package/.codex/skills/team-frontend/SKILL.md +227 -227
  77. package/.codex/skills/team-frontend-debug/SKILL.md +278 -278
  78. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +2 -2
  79. package/.codex/skills/team-interactive-craft/SKILL.md +220 -220
  80. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -209
  81. package/.codex/skills/team-issue/SKILL.md +269 -269
  82. package/.codex/skills/team-issue/roles/coordinator/role.md +1 -1
  83. package/.codex/skills/team-lifecycle-v4/SKILL.md +305 -305
  84. package/.codex/skills/team-motion-design/SKILL.md +222 -222
  85. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -210
  86. package/.codex/skills/team-perf-opt/SKILL.md +258 -258
  87. package/.codex/skills/team-perf-opt/specs/team-config.json +1 -1
  88. package/.codex/skills/team-planex/SKILL.md +216 -216
  89. package/.codex/skills/team-quality-assurance/SKILL.md +229 -229
  90. package/.codex/skills/team-review/SKILL.md +227 -227
  91. package/.codex/skills/team-roadmap-dev/SKILL.md +238 -238
  92. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +5 -5
  93. package/.codex/skills/team-tech-debt/SKILL.md +206 -206
  94. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
  95. package/.codex/skills/team-testing/SKILL.md +237 -237
  96. package/.codex/skills/team-ui-polish/SKILL.md +218 -218
  97. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -213
  98. package/.codex/skills/team-uidesign/SKILL.md +219 -219
  99. package/.codex/skills/team-uidesign/roles/coordinator/role.md +2 -2
  100. package/.codex/skills/team-ultra-analyze/SKILL.md +260 -260
  101. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +1 -1
  102. package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +1 -1
  103. package/.codex/skills/team-ux-improve/SKILL.md +227 -227
  104. package/.codex/skills/team-ux-improve/roles/coordinator/role.md +1 -1
  105. package/.codex/skills/team-ux-improve/specs/team-config.json +1 -1
  106. package/.codex/skills/team-visual-a11y/SKILL.md +319 -319
  107. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -213
  108. package/.codex/skills/workflow-execute/SKILL.md +5 -5
  109. package/.codex/skills/workflow-lite-planex/SKILL.md +3 -3
  110. package/.codex/skills/workflow-plan/SKILL.md +3 -3
  111. package/.codex/skills/workflow-tdd-plan/SKILL.md +4 -4
  112. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +403 -402
  113. package/README.md +14 -0
  114. package/ccw/dist/cli.d.ts.map +1 -1
  115. package/ccw/dist/cli.js +16 -0
  116. package/ccw/dist/cli.js.map +1 -1
  117. package/ccw/dist/commands/chain-loader.d.ts +2 -0
  118. package/ccw/dist/commands/chain-loader.d.ts.map +1 -0
  119. package/ccw/dist/commands/chain-loader.js +11 -0
  120. package/ccw/dist/commands/chain-loader.js.map +1 -0
  121. package/ccw/dist/commands/install.d.ts.map +1 -1
  122. package/ccw/dist/commands/install.js +52 -1
  123. package/ccw/dist/commands/install.js.map +1 -1
  124. package/ccw/dist/commands/launcher.d.ts +2 -0
  125. package/ccw/dist/commands/launcher.d.ts.map +1 -0
  126. package/ccw/dist/commands/launcher.js +434 -0
  127. package/ccw/dist/commands/launcher.js.map +1 -0
  128. package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
  129. package/ccw/dist/core/routes/litellm-api-routes.js +0 -23
  130. package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
  131. package/ccw/dist/tools/chain-loader.d.ts +10 -0
  132. package/ccw/dist/tools/chain-loader.d.ts.map +1 -0
  133. package/ccw/dist/tools/chain-loader.js +1054 -0
  134. package/ccw/dist/tools/chain-loader.js.map +1 -0
  135. package/ccw/dist/tools/index.d.ts.map +1 -1
  136. package/ccw/dist/tools/index.js +2 -0
  137. package/ccw/dist/tools/index.js.map +1 -1
  138. package/ccw/dist/tools/json-builder.js +20 -0
  139. package/ccw/dist/tools/json-builder.js.map +1 -1
  140. package/ccw/dist/tools/skill-context-loader.d.ts.map +1 -1
  141. package/ccw/dist/tools/skill-context-loader.js +12 -26
  142. package/ccw/dist/tools/skill-context-loader.js.map +1 -1
  143. package/ccw/dist/types/chain-types.d.ts +112 -0
  144. package/ccw/dist/types/chain-types.d.ts.map +1 -0
  145. package/ccw/dist/types/chain-types.js +5 -0
  146. package/ccw/dist/types/chain-types.js.map +1 -0
  147. package/ccw/dist/utils/chain-visualizer.d.ts +13 -0
  148. package/ccw/dist/utils/chain-visualizer.d.ts.map +1 -0
  149. package/ccw/dist/utils/chain-visualizer.js +164 -0
  150. package/ccw/dist/utils/chain-visualizer.js.map +1 -0
  151. package/ccw/scripts/prepublish-clean.mjs +0 -1
  152. package/package.json +1 -3
  153. package/.claude/commands/cli/cli-init.md +0 -441
  154. package/.claude/commands/cli/codex-review.md +0 -361
  155. package/.claude/commands/flow-create.md +0 -663
  156. package/.claude/skills/team-edict.zip +0 -0
  157. package/ccw-litellm/README.md +0 -180
  158. package/ccw-litellm/pyproject.toml +0 -35
  159. package/ccw-litellm/src/ccw_litellm/__init__.py +0 -47
  160. package/ccw-litellm/src/ccw_litellm/cli.py +0 -108
  161. package/ccw-litellm/src/ccw_litellm/clients/__init__.py +0 -12
  162. package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +0 -270
  163. package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +0 -198
  164. package/ccw-litellm/src/ccw_litellm/config/__init__.py +0 -22
  165. package/ccw-litellm/src/ccw_litellm/config/loader.py +0 -343
  166. package/ccw-litellm/src/ccw_litellm/config/models.py +0 -162
  167. package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +0 -14
  168. package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +0 -52
  169. package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +0 -45
@@ -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 |