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,258 +1,258 @@
1
- ---
2
- name: team-perf-opt
3
- description: Unified team skill for performance optimization. Coordinator orchestrates pipeline, workers are team-worker agents. Supports single/fan-out/independent parallel modes. Triggers on "team perf-opt".
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(*), mcp__ace-tool__search_context(*)
5
- ---
6
-
7
- # Team Performance Optimization
8
-
9
- Profile application performance, identify bottlenecks, design optimization strategies, implement changes, benchmark improvements, and review code quality.
10
-
11
- ## Architecture
12
-
13
- ```
14
- Skill(skill="team-perf-opt", 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 workers -> STOP
26
- |
27
- +-------+-------+-------+-------+-------+
28
- v v v v v
29
- [profiler] [strategist] [optimizer] [benchmarker] [reviewer]
30
- (team-worker agents)
31
-
32
- Pipeline (Single mode):
33
- PROFILE-001 -> STRATEGY-001 -> IMPL-001 -> BENCH-001 + REVIEW-001 (fix cycle)
34
-
35
- Pipeline (Fan-out mode):
36
- PROFILE-001 -> STRATEGY-001 -> [IMPL-B01..N](parallel) -> BENCH+REVIEW per branch
37
-
38
- Pipeline (Independent mode):
39
- [Pipeline A: PROFILE-A->STRATEGY-A->IMPL-A->BENCH-A+REVIEW-A]
40
- [Pipeline B: PROFILE-B->STRATEGY-B->IMPL-B->BENCH-B+REVIEW-B] (parallel)
41
- ```
42
-
43
- ## Role Registry
44
-
45
- | Role | Path | Prefix | Inner Loop |
46
- |------|------|--------|------------|
47
- | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
48
- | profiler | [roles/profiler/role.md](roles/profiler/role.md) | PROFILE-* | false |
49
- | strategist | [roles/strategist/role.md](roles/strategist/role.md) | STRATEGY-* | false |
50
- | optimizer | [roles/optimizer/role.md](roles/optimizer/role.md) | IMPL-*, FIX-* | true |
51
- | benchmarker | [roles/benchmarker/role.md](roles/benchmarker/role.md) | BENCH-* | false |
52
- | reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REVIEW-*, QUALITY-* | false |
53
-
54
- ## Role Router
55
-
56
- Parse `$ARGUMENTS`:
57
- - Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
58
- - No `--role` → `roles/coordinator/role.md`, execute entry router
59
-
60
- ## Delegation Lock
61
-
62
- **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
63
-
64
- Before calling ANY tool, apply this check:
65
-
66
- | Tool Call | Verdict | Reason |
67
- |-----------|---------|--------|
68
- | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
69
- | `list_agents` | ALLOWED | Agent health check |
70
- | `request_user_input` | ALLOWED | User interaction |
71
- | `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
72
- | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
73
- | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
74
- | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
75
- | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
76
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
77
- | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
78
-
79
- **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
80
-
81
- **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
82
-
83
- ---
84
-
85
- ## Shared Constants
86
-
87
- - **Session prefix**: `PERF-OPT`
88
- - **Session path**: `.workflow/.team/PERF-OPT-<slug>-<date>/`
89
- - **Team name**: `perf-opt`
90
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
91
- - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
92
-
93
- ## Worker Spawn Template
94
-
95
- Coordinator spawns workers using this template:
96
-
97
- ```
98
- spawn_agent({
99
- agent_type: "team_worker",
100
- task_name: "<task-id>",
101
- fork_context: false,
102
- items: [
103
- { type: "text", text: `## Role Assignment
104
- role: <role>
105
- role_spec: <skill_root>/roles/<role>/role.md
106
- session: <session-folder>
107
- session_id: <session-id>
108
- requirement: <task-description>
109
- inner_loop: <true|false>
110
-
111
- Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
112
-
113
- { type: "text", text: `## Task Context
114
- task_id: <task-id>
115
- title: <task-title>
116
- description: <task-description>
117
- pipeline_phase: <pipeline-phase>` },
118
-
119
- { type: "text", text: `## Upstream Context
120
- <prev_context>` }
121
- ]
122
- })
123
- ```
124
-
125
- After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target })` each worker.
126
-
127
- **Inner Loop roles** (optimizer): Set `inner_loop: true`.
128
- **Single-task roles** (profiler, strategist, benchmarker, reviewer): Set `inner_loop: false`.
129
-
130
-
131
- ### Model Selection Guide
132
-
133
- Performance optimization is measurement-driven. Profiler and benchmarker need consistent context for before/after comparison.
134
-
135
- | Role | reasoning_effort | Rationale |
136
- |------|-------------------|-----------|
137
- | profiler | high | Must identify subtle bottlenecks from profiling data |
138
- | strategist | high | Optimization strategy requires understanding tradeoffs |
139
- | optimizer | high | Performance-critical code changes need precision |
140
- | benchmarker | medium | Benchmark execution follows defined measurement plan |
141
- | reviewer | high | Must verify optimizations don't introduce regressions |
142
-
143
- ### Benchmark Context Sharing with fork_context
144
-
145
- For before/after comparison, benchmarker should share context with profiler's baseline:
146
- ```
147
- spawn_agent({
148
- agent_type: "team_worker",
149
- task_name: "BENCH-001",
150
- fork_context: true, // Share context so benchmarker sees profiler's baseline metrics
151
- reasoning_effort: "medium",
152
- items: [...]
153
- })
154
- ```
155
-
156
- ## User Commands
157
-
158
- | Command | Action |
159
- |---------|--------|
160
- | `check` / `status` | Output execution status graph (branch-grouped), no advancement |
161
- | `resume` / `continue` | Check worker states, advance next step |
162
- | `revise <TASK-ID> [feedback]` | Create revision task + cascade downstream (scoped to branch) |
163
- | `feedback <text>` | Analyze feedback impact, create targeted revision chain |
164
- | `recheck` | Re-run quality check |
165
- | `improve [dimension]` | Auto-improve weakest dimension |
166
-
167
- ## Session Directory
168
-
169
- ```
170
- .workflow/.team/PERF-OPT-<slug>-<date>/
171
- +-- session.json # Session metadata + status + parallel_mode
172
- +-- artifacts/
173
- | +-- baseline-metrics.json # Profiler: before-optimization metrics
174
- | +-- bottleneck-report.md # Profiler: ranked bottleneck findings
175
- | +-- optimization-plan.md # Strategist: prioritized optimization plan
176
- | +-- benchmark-results.json # Benchmarker: after-optimization metrics
177
- | +-- review-report.md # Reviewer: code review findings
178
- | +-- branches/B01/... # Fan-out branch artifacts
179
- | +-- pipelines/A/... # Independent pipeline artifacts
180
- +-- explorations/ # Shared explore cache
181
- +-- wisdom/patterns.md # Discovered patterns and conventions
182
- +-- discussions/ # Discussion records
183
- +-- .msg/messages.jsonl # Team message bus
184
- +-- .msg/meta.json # Session metadata
185
- ```
186
-
187
- ## v4 Agent Coordination
188
-
189
- ### Message Semantics
190
-
191
- | Intent | API | Example |
192
- |--------|-----|---------|
193
- | Queue supplementary info (don't interrupt) | `send_message` | Send baseline metrics to running optimizer |
194
- | Assign fix after benchmark regression | `assign_task` | Assign FIX task when benchmark shows regression |
195
- | Check running agents | `list_agents` | Verify agent health during resume |
196
-
197
- ### Agent Health Check
198
-
199
- Use `list_agents({})` in handleResume and handleComplete:
200
-
201
- ```
202
- // Reconcile session state with actual running agents
203
- const running = list_agents({})
204
- // Compare with session.json active tasks
205
- // Reset orphaned tasks (in_progress but agent gone) to pending
206
- ```
207
-
208
- ### Named Agent Targeting
209
-
210
- Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
211
- - `send_message({ target: "IMPL-001", items: [...] })` -- send strategy details to optimizer
212
- - `assign_task({ target: "IMPL-001", items: [...] })` -- assign fix after benchmark regression
213
- - `close_agent({ target: "BENCH-001" })` -- cleanup after benchmarking completes
214
-
215
- ### Baseline-to-Result Pipeline
216
-
217
- Profiler baseline metrics flow through the pipeline and must reach benchmarker for comparison:
218
- 1. PROFILE-001 produces `baseline-metrics.json` in artifacts/
219
- 2. Coordinator includes baseline reference in upstream context for all downstream workers
220
- 3. BENCH-001 reads baseline and compares against post-optimization measurements
221
- 4. If regression detected, coordinator auto-creates FIX task with regression details
222
-
223
- ## Completion Action
224
-
225
- When the pipeline completes:
226
-
227
- ```
228
- request_user_input({
229
- questions: [{
230
- question: "Team pipeline complete. What would you like to do?",
231
- header: "Completion",
232
- multiSelect: false,
233
- options: [
234
- { label: "Archive & Clean (Recommended)", description: "Archive session, clean up tasks and team resources" },
235
- { label: "Keep Active", description: "Keep session active for follow-up work or inspection" },
236
- { label: "Export Results", description: "Export deliverables to a specified location, then clean" }
237
- ]
238
- }]
239
- })
240
- ```
241
-
242
- ## Specs Reference
243
-
244
- - [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
245
- - [specs/team-config.json](specs/team-config.json) — Team configuration
246
-
247
- ## Error Handling
248
-
249
- | Scenario | Resolution |
250
- |----------|------------|
251
- | Unknown --role value | Error with role registry list |
252
- | Role file not found | Error with expected path (roles/{name}/role.md) |
253
- | Profiling tool not available | Fallback to static analysis methods |
254
- | Benchmark regression detected | Auto-create FIX task with regression details |
255
- | Review-fix cycle exceeds 3 iterations | Escalate to user |
256
- | One branch IMPL fails | Mark that branch failed, other branches continue |
257
- | Fast-advance conflict | Coordinator reconciles on next callback |
258
- | Completion action fails | Default to Keep Active |
1
+ ---
2
+ name: team-perf-opt
3
+ description: Unified team skill for performance optimization. Coordinator orchestrates pipeline, workers are team-worker agents. Supports single/fan-out/independent parallel modes. Triggers on "team perf-opt".
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(*), mcp__ace-tool__search_context(*)
5
+ ---
6
+
7
+ # Team Performance Optimization
8
+
9
+ Profile application performance, identify bottlenecks, design optimization strategies, implement changes, benchmark improvements, and review code quality.
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ Skill(skill="team-perf-opt", 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 workers -> STOP
26
+ |
27
+ +-------+-------+-------+-------+-------+
28
+ v v v v v
29
+ [profiler] [strategist] [optimizer] [benchmarker] [reviewer]
30
+ (team-worker agents)
31
+
32
+ Pipeline (Single mode):
33
+ PROFILE-001 -> STRATEGY-001 -> IMPL-001 -> BENCH-001 + REVIEW-001 (fix cycle)
34
+
35
+ Pipeline (Fan-out mode):
36
+ PROFILE-001 -> STRATEGY-001 -> [IMPL-B01..N](parallel) -> BENCH+REVIEW per branch
37
+
38
+ Pipeline (Independent mode):
39
+ [Pipeline A: PROFILE-A->STRATEGY-A->IMPL-A->BENCH-A+REVIEW-A]
40
+ [Pipeline B: PROFILE-B->STRATEGY-B->IMPL-B->BENCH-B+REVIEW-B] (parallel)
41
+ ```
42
+
43
+ ## Role Registry
44
+
45
+ | Role | Path | Prefix | Inner Loop |
46
+ |------|------|--------|------------|
47
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
48
+ | profiler | [roles/profiler/role.md](roles/profiler/role.md) | PROFILE-* | false |
49
+ | strategist | [roles/strategist/role.md](roles/strategist/role.md) | STRATEGY-* | false |
50
+ | optimizer | [roles/optimizer/role.md](roles/optimizer/role.md) | IMPL-*, FIX-* | true |
51
+ | benchmarker | [roles/benchmarker/role.md](roles/benchmarker/role.md) | BENCH-* | false |
52
+ | reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REVIEW-*, QUALITY-* | false |
53
+
54
+ ## Role Router
55
+
56
+ Parse `$ARGUMENTS`:
57
+ - Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
58
+ - No `--role` → `roles/coordinator/role.md`, execute entry router
59
+
60
+ ## Delegation Lock
61
+
62
+ **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
63
+
64
+ Before calling ANY tool, apply this check:
65
+
66
+ | Tool Call | Verdict | Reason |
67
+ |-----------|---------|--------|
68
+ | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
69
+ | `list_agents` | ALLOWED | Agent health check |
70
+ | `request_user_input` | ALLOWED | User interaction |
71
+ | `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
72
+ | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
73
+ | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
74
+ | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
75
+ | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
76
+ | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
77
+ | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
78
+
79
+ **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
80
+
81
+ **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
82
+
83
+ ---
84
+
85
+ ## Shared Constants
86
+
87
+ - **Session prefix**: `PERF-OPT`
88
+ - **Session path**: `.workflow/.team/PERF-OPT-<slug>-<date>/`
89
+ - **Team name**: `perf-opt`
90
+ - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
91
+ - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
92
+
93
+ ## Worker Spawn Template
94
+
95
+ Coordinator spawns workers using this template:
96
+
97
+ ```
98
+ spawn_agent({
99
+ agent_type: "team_worker",
100
+ task_name: "<task-id>",
101
+ fork_context: false,
102
+ items: [
103
+ { type: "text", text: `## Role Assignment
104
+ role: <role>
105
+ role_spec: <skill_root>/roles/<role>/role.md
106
+ session: <session-folder>
107
+ session_id: <session-id>
108
+ requirement: <task-description>
109
+ inner_loop: <true|false>
110
+
111
+ Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
112
+
113
+ { type: "text", text: `## Task Context
114
+ task_id: <task-id>
115
+ title: <task-title>
116
+ description: <task-description>
117
+ pipeline_phase: <pipeline-phase>` },
118
+
119
+ { type: "text", text: `## Upstream Context
120
+ <prev_context>` }
121
+ ]
122
+ })
123
+ ```
124
+
125
+ After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target })` each worker.
126
+
127
+ **Inner Loop roles** (optimizer): Set `inner_loop: true`.
128
+ **Single-task roles** (profiler, strategist, benchmarker, reviewer): Set `inner_loop: false`.
129
+
130
+
131
+ ### Model Selection Guide
132
+
133
+ Performance optimization is measurement-driven. Profiler and benchmarker need consistent context for before/after comparison.
134
+
135
+ | Role | reasoning_effort | Rationale |
136
+ |------|-------------------|-----------|
137
+ | profiler | high | Must identify subtle bottlenecks from profiling data |
138
+ | strategist | high | Optimization strategy requires understanding tradeoffs |
139
+ | optimizer | high | Performance-critical code changes need precision |
140
+ | benchmarker | medium | Benchmark execution follows defined measurement plan |
141
+ | reviewer | high | Must verify optimizations don't introduce regressions |
142
+
143
+ ### Benchmark Context Sharing with fork_context
144
+
145
+ For before/after comparison, benchmarker should share context with profiler's baseline:
146
+ ```
147
+ spawn_agent({
148
+ agent_type: "team_worker",
149
+ task_name: "BENCH-001",
150
+ fork_context: true, // Share context so benchmarker sees profiler's baseline metrics
151
+ reasoning_effort: "medium",
152
+ items: [...]
153
+ })
154
+ ```
155
+
156
+ ## User Commands
157
+
158
+ | Command | Action |
159
+ |---------|--------|
160
+ | `check` / `status` | Output execution status graph (branch-grouped), no advancement |
161
+ | `resume` / `continue` | Check worker states, advance next step |
162
+ | `revise <TASK-ID> [feedback]` | Create revision task + cascade downstream (scoped to branch) |
163
+ | `feedback <text>` | Analyze feedback impact, create targeted revision chain |
164
+ | `recheck` | Re-run quality check |
165
+ | `improve [dimension]` | Auto-improve weakest dimension |
166
+
167
+ ## Session Directory
168
+
169
+ ```
170
+ .workflow/.team/PERF-OPT-<slug>-<date>/
171
+ +-- session.json # Session metadata + status + parallel_mode
172
+ +-- artifacts/
173
+ | +-- baseline-metrics.json # Profiler: before-optimization metrics
174
+ | +-- bottleneck-report.md # Profiler: ranked bottleneck findings
175
+ | +-- optimization-plan.md # Strategist: prioritized optimization plan
176
+ | +-- benchmark-results.json # Benchmarker: after-optimization metrics
177
+ | +-- review-report.md # Reviewer: code review findings
178
+ | +-- branches/B01/... # Fan-out branch artifacts
179
+ | +-- pipelines/A/... # Independent pipeline artifacts
180
+ +-- explorations/ # Shared explore cache
181
+ +-- wisdom/patterns.md # Discovered patterns and conventions
182
+ +-- discussions/ # Discussion records
183
+ +-- .msg/messages.jsonl # Team message bus
184
+ +-- .msg/meta.json # Session metadata
185
+ ```
186
+
187
+ ## v4 Agent Coordination
188
+
189
+ ### Message Semantics
190
+
191
+ | Intent | API | Example |
192
+ |--------|-----|---------|
193
+ | Queue supplementary info (don't interrupt) | `send_message` | Send baseline metrics to running optimizer |
194
+ | Assign fix after benchmark regression | `assign_task` | Assign FIX task when benchmark shows regression |
195
+ | Check running agents | `list_agents` | Verify agent health during resume |
196
+
197
+ ### Agent Health Check
198
+
199
+ Use `list_agents({})` in handleResume and handleComplete:
200
+
201
+ ```
202
+ // Reconcile session state with actual running agents
203
+ const running = list_agents({})
204
+ // Compare with session.json active tasks
205
+ // Reset orphaned tasks (in_progress but agent gone) to pending
206
+ ```
207
+
208
+ ### Named Agent Targeting
209
+
210
+ Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
211
+ - `send_message({ target: "IMPL-001", items: [...] })` -- send strategy details to optimizer
212
+ - `assign_task({ target: "IMPL-001", items: [...] })` -- assign fix after benchmark regression
213
+ - `close_agent({ target: "BENCH-001" })` -- cleanup after benchmarking completes
214
+
215
+ ### Baseline-to-Result Pipeline
216
+
217
+ Profiler baseline metrics flow through the pipeline and must reach benchmarker for comparison:
218
+ 1. PROFILE-001 produces `baseline-metrics.json` in artifacts/
219
+ 2. Coordinator includes baseline reference in upstream context for all downstream workers
220
+ 3. BENCH-001 reads baseline and compares against post-optimization measurements
221
+ 4. If regression detected, coordinator auto-creates FIX task with regression details
222
+
223
+ ## Completion Action
224
+
225
+ When the pipeline completes:
226
+
227
+ ```
228
+ functions.request_user_input({
229
+ questions: [{
230
+ question: "Team pipeline complete. What would you like to do?",
231
+ header: "Completion",
232
+ multiSelect: false,
233
+ options: [
234
+ { label: "Archive & Clean (Recommended)", description: "Archive session, clean up tasks and team resources" },
235
+ { label: "Keep Active", description: "Keep session active for follow-up work or inspection" },
236
+ { label: "Export Results", description: "Export deliverables to a specified location, then clean" }
237
+ ]
238
+ }]
239
+ })
240
+ ```
241
+
242
+ ## Specs Reference
243
+
244
+ - [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
245
+ - [specs/team-config.json](specs/team-config.json) — Team configuration
246
+
247
+ ## Error Handling
248
+
249
+ | Scenario | Resolution |
250
+ |----------|------------|
251
+ | Unknown --role value | Error with role registry list |
252
+ | Role file not found | Error with expected path (roles/{name}/role.md) |
253
+ | Profiling tool not available | Fallback to static analysis methods |
254
+ | Benchmark regression detected | Auto-create FIX task with regression details |
255
+ | Review-fix cycle exceeds 3 iterations | Escalate to user |
256
+ | One branch IMPL fails | Mark that branch failed, other branches continue |
257
+ | Fast-advance conflict | Coordinator reconciles on next callback |
258
+ | Completion action fails | Default to Keep Active |
@@ -18,7 +18,7 @@
18
18
  "type": "orchestrator",
19
19
  "description": "Orchestrates performance optimization pipeline, manages task chains, handles review-fix cycles",
20
20
  "spec_path": "roles/coordinator/role.md",
21
- "tools": ["Task", "TaskCreate", "TaskList", "TaskGet", "TaskUpdate", "TeamCreate", "TeamDelete", "SendMessage", "AskUserQuestion", "Read", "Write", "Bash", "Glob", "Grep"]
21
+ "tools": ["Task", "TaskCreate", "TaskList", "TaskGet", "TaskUpdate", "TeamCreate", "TeamDelete", "SendMessage", "request_user_input", "Read", "Write", "Bash", "Glob", "Grep"]
22
22
  },
23
23
  {
24
24
  "name": "profiler",