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,218 +1,218 @@
1
- ---
2
- name: team-ui-polish
3
- description: Unified team skill for UI polish. Auto-discover and fix UI design issues using Impeccable design standards. Anti-AI-slop detection, color/typography/spacing quality, motion, interaction states, visual hierarchy. Uses team-worker agent architecture. Triggers on "team ui polish", "ui polish", "design polish".
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__ccw-tools__read_file(*), mcp__ccw-tools__write_file(*), mcp__ccw-tools__edit_file(*), mcp__ccw-tools__team_msg(*), mcp__chrome-devtools__evaluate_script(*), mcp__chrome-devtools__take_screenshot(*), mcp__chrome-devtools__navigate_page(*), mcp__chrome-devtools__resize_page(*)
5
- ---
6
-
7
- # Team UI Polish
8
-
9
- Automatic UI quality improvement pipeline: scan -> diagnose -> optimize -> verify. Built on **team-worker agent architecture** -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from `roles/<role>/role.md`.
10
-
11
- ## Architecture
12
-
13
- ```
14
- Skill(skill="team-ui-polish", 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
29
- [team-worker agents, each loads roles/<role>/role.md]
30
- scanner diagnostician optimizer <-> verifier (GC loop)
31
- ```
32
-
33
- ## Role Registry
34
-
35
- | Role | Path | Prefix | Inner Loop |
36
- |------|------|--------|------------|
37
- | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
38
- | scanner | [roles/scanner/role.md](roles/scanner/role.md) | SCAN-* | false |
39
- | diagnostician | [roles/diagnostician/role.md](roles/diagnostician/role.md) | DIAG-* | false |
40
- | optimizer | [roles/optimizer/role.md](roles/optimizer/role.md) | OPT-* | true |
41
- | verifier | [roles/verifier/role.md](roles/verifier/role.md) | VERIFY-* | false |
42
-
43
- ## Role Router
44
-
45
- Parse `$ARGUMENTS`:
46
- - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
47
- - No `--role` -> `roles/coordinator/role.md`, execute entry router
48
-
49
- ## Delegation Lock
50
-
51
- **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
52
-
53
- Before calling ANY tool, apply this check:
54
-
55
- | Tool Call | Verdict | Reason |
56
- |-----------|---------|--------|
57
- | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
58
- | `list_agents` | ALLOWED | Agent health check |
59
- | `request_user_input` | ALLOWED | User interaction |
60
- | `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
61
- | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
62
- | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
63
- | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
64
- | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
65
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
66
- | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
67
-
68
- **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
69
-
70
- **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
71
-
72
- ---
73
-
74
- ## Shared Constants
75
-
76
- - **Session prefix**: `UIP`
77
- - **Session path**: `.workflow/.team/UIP-<slug>-<date>/`
78
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
79
- - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
80
- - **Max GC rounds**: 2
81
-
82
- ## Worker Spawn Template
83
-
84
- Coordinator spawns workers using this template:
85
-
86
- ```
87
- spawn_agent({
88
- agent_type: "team_worker",
89
- task_name: "<task-id>",
90
- fork_context: false,
91
- items: [
92
- { type: "text", text: `## Role Assignment
93
- role: <role>
94
- role_spec: <skill_root>/roles/<role>/role.md
95
- session: <session-folder>
96
- session_id: <session-id>
97
- requirement: <task-description>
98
- inner_loop: <true|false>
99
-
100
- Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
101
-
102
- { type: "text", text: `## Task Context
103
- task_id: <task-id>
104
- title: <task-title>
105
- description: <task-description>
106
- pipeline_phase: <pipeline-phase>` },
107
-
108
- { type: "text", text: `## Upstream Context
109
- <prev_context>` }
110
- ]
111
- })
112
- ```
113
-
114
- After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target })` each worker.
115
-
116
-
117
- ### Model Selection Guide
118
-
119
- UI polish is a sequential pipeline where scan findings drive all downstream work. Scanner and verifier need thorough analysis, optimizer needs creative problem-solving.
120
-
121
- | Role | reasoning_effort | Rationale |
122
- |------|-------------------|-----------|
123
- | scanner | high | Deep 8-dimension audit must catch every issue |
124
- | diagnostician | high | Root cause analysis requires careful classification |
125
- | optimizer | high | Creative fix application following design standards |
126
- | verifier | high | Regression detection must be thorough |
127
-
128
- ### Scan-to-Diagnosis Context Flow
129
-
130
- Scanner findings must reach diagnostician via coordinator's upstream context:
131
- ```
132
- // After SCAN-001 completes, coordinator sends findings to diagnostician
133
- spawn_agent({
134
- agent_type: "team_worker",
135
- task_name: "DIAG-001",
136
- fork_context: false,
137
- items: [
138
- ...,
139
- { type: "text", text: `## Upstream Context
140
- Scan report: <session>/scan/scan-report.md` }
141
- ]
142
- })
143
- ```
144
-
145
- ## User Commands
146
-
147
- | Command | Action |
148
- |---------|--------|
149
- | `check` / `status` | View execution status graph |
150
- | `resume` / `continue` | Advance to next step |
151
-
152
- ## Specs Reference
153
-
154
- - [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
155
- - [specs/team-config.json](specs/team-config.json) -- Team configuration
156
- - [specs/anti-patterns.md](specs/anti-patterns.md) -- AI slop and design anti-pattern catalog
157
- - [specs/design-standards.md](specs/design-standards.md) -- Impeccable positive design standards
158
- - [specs/fix-strategies.md](specs/fix-strategies.md) -- Issue-to-fix mapping
159
- - [specs/scoring-guide.md](specs/scoring-guide.md) -- Scoring rubric
160
-
161
- ## Session Directory
162
-
163
- ```
164
- .workflow/.team/UIP-<slug>-<date>/
165
- +-- .msg/
166
- | +-- messages.jsonl # Team message bus
167
- | +-- meta.json # Pipeline config + GC state
168
- +-- scan/ # Scanner output
169
- | +-- scan-report.md
170
- +-- diagnosis/ # Diagnostician output
171
- | +-- diagnosis-report.md
172
- +-- optimization/ # Optimizer output
173
- | +-- fix-log.md
174
- +-- verification/ # Verifier output
175
- | +-- verify-report.md
176
- +-- evidence/ # Screenshots (before/after)
177
- | +-- *.png
178
- +-- wisdom/ # Cross-task knowledge
179
- ```
180
-
181
- ## v4 Agent Coordination
182
-
183
- ### Message Semantics
184
-
185
- | Intent | API | Example |
186
- |--------|-----|---------|
187
- | Queue supplementary info (don't interrupt) | `send_message` | Send scan findings to running diagnostician |
188
- | Assign fix from verification feedback | `assign_task` | Assign OPT-fix task after verify fails |
189
- | Check running agents | `list_agents` | Verify agent health during resume |
190
-
191
- ### Agent Health Check
192
-
193
- Use `list_agents({})` in handleResume and handleComplete:
194
-
195
- ```
196
- // Reconcile session state with actual running agents
197
- const running = list_agents({})
198
- // Compare with tasks.json active tasks
199
- // Reset orphaned tasks (in_progress but agent gone) to pending
200
- ```
201
-
202
- ### Named Agent Targeting
203
-
204
- Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
205
- - `send_message({ target: "DIAG-001", items: [...] })` -- send additional scan findings to diagnostician
206
- - `assign_task({ target: "OPT-001", items: [...] })` -- assign optimization from diagnosis report
207
- - `close_agent({ target: "VERIFY-001" })` -- cleanup after verification
208
-
209
- ## Error Handling
210
-
211
- | Scenario | Resolution |
212
- |----------|------------|
213
- | Unknown command | Error with available command list |
214
- | Role not found | Error with role registry |
215
- | Session corruption | Attempt recovery, fallback to manual |
216
- | Fast-advance conflict | Coordinator reconciles on next callback |
217
- | Completion action fails | Default to Keep Active |
218
- | GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |
1
+ ---
2
+ name: team-ui-polish
3
+ description: Unified team skill for UI polish. Auto-discover and fix UI design issues using Impeccable design standards. Anti-AI-slop detection, color/typography/spacing quality, motion, interaction states, visual hierarchy. Uses team-worker agent architecture. Triggers on "team ui polish", "ui polish", "design polish".
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__ccw-tools__read_file(*), mcp__ccw-tools__write_file(*), mcp__ccw-tools__edit_file(*), mcp__ccw-tools__team_msg(*), mcp__chrome-devtools__evaluate_script(*), mcp__chrome-devtools__take_screenshot(*), mcp__chrome-devtools__navigate_page(*), mcp__chrome-devtools__resize_page(*)
5
+ ---
6
+
7
+ # Team UI Polish
8
+
9
+ Automatic UI quality improvement pipeline: scan -> diagnose -> optimize -> verify. Built on **team-worker agent architecture** -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from `roles/<role>/role.md`.
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ Skill(skill="team-ui-polish", 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
29
+ [team-worker agents, each loads roles/<role>/role.md]
30
+ scanner diagnostician optimizer <-> verifier (GC loop)
31
+ ```
32
+
33
+ ## Role Registry
34
+
35
+ | Role | Path | Prefix | Inner Loop |
36
+ |------|------|--------|------------|
37
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
38
+ | scanner | [roles/scanner/role.md](roles/scanner/role.md) | SCAN-* | false |
39
+ | diagnostician | [roles/diagnostician/role.md](roles/diagnostician/role.md) | DIAG-* | false |
40
+ | optimizer | [roles/optimizer/role.md](roles/optimizer/role.md) | OPT-* | true |
41
+ | verifier | [roles/verifier/role.md](roles/verifier/role.md) | VERIFY-* | false |
42
+
43
+ ## Role Router
44
+
45
+ Parse `$ARGUMENTS`:
46
+ - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
47
+ - No `--role` -> `roles/coordinator/role.md`, execute entry router
48
+
49
+ ## Delegation Lock
50
+
51
+ **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
52
+
53
+ Before calling ANY tool, apply this check:
54
+
55
+ | Tool Call | Verdict | Reason |
56
+ |-----------|---------|--------|
57
+ | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `assign_task` | ALLOWED | Orchestration |
58
+ | `list_agents` | ALLOWED | Agent health check |
59
+ | `request_user_input` | ALLOWED | User interaction |
60
+ | `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
61
+ | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
62
+ | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
63
+ | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
64
+ | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
65
+ | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
66
+ | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
67
+
68
+ **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
69
+
70
+ **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
71
+
72
+ ---
73
+
74
+ ## Shared Constants
75
+
76
+ - **Session prefix**: `UIP`
77
+ - **Session path**: `.workflow/.team/UIP-<slug>-<date>/`
78
+ - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
79
+ - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
80
+ - **Max GC rounds**: 2
81
+
82
+ ## Worker Spawn Template
83
+
84
+ Coordinator spawns workers using this template:
85
+
86
+ ```
87
+ spawn_agent({
88
+ agent_type: "team_worker",
89
+ task_name: "<task-id>",
90
+ fork_context: false,
91
+ items: [
92
+ { type: "text", text: `## Role Assignment
93
+ role: <role>
94
+ role_spec: <skill_root>/roles/<role>/role.md
95
+ session: <session-folder>
96
+ session_id: <session-id>
97
+ requirement: <task-description>
98
+ inner_loop: <true|false>
99
+
100
+ Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
101
+
102
+ { type: "text", text: `## Task Context
103
+ task_id: <task-id>
104
+ title: <task-title>
105
+ description: <task-description>
106
+ pipeline_phase: <pipeline-phase>` },
107
+
108
+ { type: "text", text: `## Upstream Context
109
+ <prev_context>` }
110
+ ]
111
+ })
112
+ ```
113
+
114
+ After spawning, use `wait_agent({ targets: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ target })` each worker.
115
+
116
+
117
+ ### Model Selection Guide
118
+
119
+ UI polish is a sequential pipeline where scan findings drive all downstream work. Scanner and verifier need thorough analysis, optimizer needs creative problem-solving.
120
+
121
+ | Role | reasoning_effort | Rationale |
122
+ |------|-------------------|-----------|
123
+ | scanner | high | Deep 8-dimension audit must catch every issue |
124
+ | diagnostician | high | Root cause analysis requires careful classification |
125
+ | optimizer | high | Creative fix application following design standards |
126
+ | verifier | high | Regression detection must be thorough |
127
+
128
+ ### Scan-to-Diagnosis Context Flow
129
+
130
+ Scanner findings must reach diagnostician via coordinator's upstream context:
131
+ ```
132
+ // After SCAN-001 completes, coordinator sends findings to diagnostician
133
+ spawn_agent({
134
+ agent_type: "team_worker",
135
+ task_name: "DIAG-001",
136
+ fork_context: false,
137
+ items: [
138
+ ...,
139
+ { type: "text", text: `## Upstream Context
140
+ Scan report: <session>/scan/scan-report.md` }
141
+ ]
142
+ })
143
+ ```
144
+
145
+ ## User Commands
146
+
147
+ | Command | Action |
148
+ |---------|--------|
149
+ | `check` / `status` | View execution status graph |
150
+ | `resume` / `continue` | Advance to next step |
151
+
152
+ ## Specs Reference
153
+
154
+ - [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
155
+ - [specs/team-config.json](specs/team-config.json) -- Team configuration
156
+ - [specs/anti-patterns.md](specs/anti-patterns.md) -- AI slop and design anti-pattern catalog
157
+ - [specs/design-standards.md](specs/design-standards.md) -- Impeccable positive design standards
158
+ - [specs/fix-strategies.md](specs/fix-strategies.md) -- Issue-to-fix mapping
159
+ - [specs/scoring-guide.md](specs/scoring-guide.md) -- Scoring rubric
160
+
161
+ ## Session Directory
162
+
163
+ ```
164
+ .workflow/.team/UIP-<slug>-<date>/
165
+ +-- .msg/
166
+ | +-- messages.jsonl # Team message bus
167
+ | +-- meta.json # Pipeline config + GC state
168
+ +-- scan/ # Scanner output
169
+ | +-- scan-report.md
170
+ +-- diagnosis/ # Diagnostician output
171
+ | +-- diagnosis-report.md
172
+ +-- optimization/ # Optimizer output
173
+ | +-- fix-log.md
174
+ +-- verification/ # Verifier output
175
+ | +-- verify-report.md
176
+ +-- evidence/ # Screenshots (before/after)
177
+ | +-- *.png
178
+ +-- wisdom/ # Cross-task knowledge
179
+ ```
180
+
181
+ ## v4 Agent Coordination
182
+
183
+ ### Message Semantics
184
+
185
+ | Intent | API | Example |
186
+ |--------|-----|---------|
187
+ | Queue supplementary info (don't interrupt) | `send_message` | Send scan findings to running diagnostician |
188
+ | Assign fix from verification feedback | `assign_task` | Assign OPT-fix task after verify fails |
189
+ | Check running agents | `list_agents` | Verify agent health during resume |
190
+
191
+ ### Agent Health Check
192
+
193
+ Use `list_agents({})` in handleResume and handleComplete:
194
+
195
+ ```
196
+ // Reconcile session state with actual running agents
197
+ const running = list_agents({})
198
+ // Compare with tasks.json active tasks
199
+ // Reset orphaned tasks (in_progress but agent gone) to pending
200
+ ```
201
+
202
+ ### Named Agent Targeting
203
+
204
+ Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
205
+ - `send_message({ target: "DIAG-001", items: [...] })` -- send additional scan findings to diagnostician
206
+ - `assign_task({ target: "OPT-001", items: [...] })` -- assign optimization from diagnosis report
207
+ - `close_agent({ target: "VERIFY-001" })` -- cleanup after verification
208
+
209
+ ## Error Handling
210
+
211
+ | Scenario | Resolution |
212
+ |----------|------------|
213
+ | Unknown command | Error with available command list |
214
+ | Role not found | Error with role registry |
215
+ | Session corruption | Attempt recovery, fallback to manual |
216
+ | Fast-advance conflict | Coordinator reconciles on next callback |
217
+ | Completion action fails | Default to Keep Active |
218
+ | GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |