maestro-flow-one 0.2.7 → 0.2.8

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.
@@ -79,7 +79,7 @@ Phase 4: Output context.md for downstream plan --gaps
79
79
  **Next-step routing on completion:**
80
80
 
81
81
  Phase/Milestone scope:
82
- - Go recommendation, UI work needed → `/maestro-ui-craft --chain build {target}`
82
+ - Go recommendation, UI work needed → `/maestro-impeccable --chain build {target}`
83
83
  - Go recommendation, ready to plan → `/maestro-plan` or `/maestro-plan {phase}`
84
84
  - No-Go recommendation → revisit requirements or `/maestro-brainstorm {topic}`
85
85
 
@@ -129,5 +129,5 @@ Both modes (full + quick):
129
129
  - [ ] Scope creep redirected to Deferred section
130
130
  - [ ] Deferred items auto-created as issues (if any)
131
131
  - [ ] Artifact registered in state.json with correct scope/milestone/phase
132
- - [ ] Next step routed (ui-craft/plan for Go, brainstorm for No-Go)
132
+ - [ ] Next step routed (impeccable/plan for Go, brainstorm for No-Go)
133
133
  </success_criteria>
@@ -69,7 +69,7 @@ Auto mode:
69
69
  - Project initialized, quick roadmap → Skill({ skill: "maestro-roadmap", args: "--from-brainstorm {session_id}" })
70
70
  - Need deeper analysis first → Skill({ skill: "maestro-analyze", args: "{topic}" })
71
71
  - `html-prototypes/` produced with 2+ files and user wants to browse → load `~/.maestro/workflows/brainstorm-visualize.md` and launch visualizer server (optional, user-triggered)
72
- - DESIGN.md established during Step 3.5 → suggest: "Run `/maestro-ui-craft <feature-description> --chain build` to build with the established design system"
72
+ - DESIGN.md established during Step 3.5 → suggest: "Run `/maestro-impeccable <feature-description> --chain build` to build with the established design system"
73
73
 
74
74
  Single role mode:
75
75
  - More roles needed → Skill({ skill: "maestro-brainstorm", args: "{next_role} --session {session_id}" })
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: maestro-impeccable
3
- description: Production-grade UI design with knowhow accumulation — 24 commands + integrated design search for build, evaluate, refine, enhance, fix
4
- argument-hint: "<command> [target] [--skip-harvest] [-y] | search <query> [-d <domain>] [--design-system]"
3
+ description: Production-grade UI design with knowhow accumulation — 24 commands + chain orchestration with quality gates + integrated design search
4
+ argument-hint: "<command|intent> [target] [--chain build|improve|enhance|harden|live] [--enhance <cmd>] [--threshold <score>] [--max-loops <n>] [--skip-harvest] [--skip-design-explore] [--skip-design] [--styles <N>] [--stack <stack>] [-y] [-c]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Write
@@ -9,69 +9,252 @@ allowed-tools:
9
9
  - Bash
10
10
  - Glob
11
11
  - Grep
12
+ - Agent
12
13
  - Skill
13
14
  - AskUserQuestion
15
+ - TodoWrite
14
16
  ---
15
17
  <purpose>
16
- Replaces impeccable as the primary UI design entry point. 24 commands covering the full design lifecycle:
18
+ Production-grade UI design system with two execution modes:
19
+
20
+ **Direct Mode** — Execute any of 24 sub-commands for the full design lifecycle:
17
21
  Build (craft, shape, teach, document, extract, explore), Evaluate (critique, audit), Refine (polish, bolder, quieter, distill, harden, onboard),
18
22
  Enhance (animate, colorize, typeset, layout, delight, overdrive), Fix (clarify, adapt, optimize), Iterate (live).
19
23
 
20
- Core innovation over impeccable: after each command execution, automatically harvests design decisions
21
- into `.workflow/knowhow/` (DCS-, AST-, TIP-, REF-) for cross-session accumulation. Other maestro commands
22
- consume this via `category: coding` auto-injection and keyword matching.
24
+ **Chain Mode** Orchestrate sub-commands via intelligent intent routing + quality gate auto-iteration.
25
+ 5 chains: build, improve, enhance, harden, live. Critique/audit scores drive automatic command selection and iteration loops.
26
+
27
+ Includes integrated design-explore (multi-variant design system generation via BM25 engine, HTML prototype rendering, interactive user review)
28
+ and `search` CLI subcommand for querying UI/UX design knowledge base (BM25 + 30+ CSV data files).
23
29
 
24
- Includes integrated `search` CLI subcommand for querying the UI/UX design knowledge base
25
- (BM25 search engine + 30+ CSV data files covering styles, colors, typography, UX guidelines, charts, stacks).
26
- Search is invoked directly via `maestro impeccable search`, not through the Skill dispatch.
30
+ After each command, automatically harvests design decisions into `.workflow/knowhow/` (DCS-, AST-, TIP-, REF-) for cross-session accumulation.
31
+
32
+ Session (chain mode): `.workflow/.maestro/ui-craft-{YYYYMMDD-HHmmss}/status.json`
27
33
  </purpose>
28
34
 
29
35
  <deferred_reading>
30
36
  - [impeccable harvest workflow](~/.maestro/workflows/impeccable.md) — read after command execution for harvest logic
37
+ - [design stage workflow](~/.maestro/workflows/impeccable/design.md) — read when S_DESIGN_EXPLORE state entered
38
+ - [sub-command workflow](~/.maestro/workflows/impeccable/{command}.md) — read when dispatching a sub-command
31
39
  </deferred_reading>
32
40
 
33
- <context>
34
- $ARGUMENTS sub-command + target + optional flags.
41
+ <sub_commands>
42
+ All sub-command workflows reside under `~/.maestro/workflows/impeccable/`:
43
+
44
+ | Category | Command | Workflow File |
45
+ |----------|---------|---------------|
46
+ | Build | craft | `workflows/impeccable/craft.md` |
47
+ | Build | shape | `workflows/impeccable/shape.md` |
48
+ | Build | teach | `workflows/impeccable/teach.md` |
49
+ | Build | document | `workflows/impeccable/document.md` |
50
+ | Build | extract | `workflows/impeccable/extract.md` |
51
+ | Build | explore | `workflows/impeccable/explore.md` |
52
+ | Evaluate | critique | `workflows/impeccable/critique.md` |
53
+ | Evaluate | audit | `workflows/impeccable/audit.md` |
54
+ | Refine | polish | `workflows/impeccable/polish.md` |
55
+ | Refine | bolder | `workflows/impeccable/bolder.md` |
56
+ | Refine | quieter | `workflows/impeccable/quieter.md` |
57
+ | Refine | distill | `workflows/impeccable/distill.md` |
58
+ | Refine | harden | `workflows/impeccable/harden.md` |
59
+ | Refine | onboard | `workflows/impeccable/onboard.md` |
60
+ | Enhance | animate | `workflows/impeccable/animate.md` |
61
+ | Enhance | colorize | `workflows/impeccable/colorize.md` |
62
+ | Enhance | typeset | `workflows/impeccable/typeset.md` |
63
+ | Enhance | layout | `workflows/impeccable/layout.md` |
64
+ | Enhance | delight | `workflows/impeccable/delight.md` |
65
+ | Enhance | overdrive | `workflows/impeccable/overdrive.md` |
66
+ | Fix | clarify | `workflows/impeccable/clarify.md` |
67
+ | Fix | adapt | `workflows/impeccable/adapt.md` |
68
+ | Fix | optimize | `workflows/impeccable/optimize.md` |
69
+ | Iterate | live | `workflows/impeccable/live.md` |
70
+
71
+ **Reference workflows** (loaded by context, not as sub-commands):
72
+ `brand.md`, `product.md`, `design.md`, `codex.md`, `heuristics-scoring.md`, `cognitive-load.md`,
73
+ `color-and-contrast.md`, `interaction-design.md`, `motion-design.md`, `personas.md`,
74
+ `responsive-design.md`, `spatial-design.md`, `typography.md`, `ux-writing.md`
75
+
76
+ **Search engine**: `workflows/impeccable/ui-search/` — BM25 search engine + CSV knowledge files
77
+ </sub_commands>
35
78
 
36
- **Sub-commands** (24):
79
+ <context>
80
+ $ARGUMENTS — sub-command, intent text, or special keywords, with optional flags.
37
81
 
38
- | Category | Commands |
39
- |----------|----------|
40
- | Build | craft, shape, teach, document, extract, explore |
41
- | Evaluate | critique, audit |
42
- | Refine | polish, bolder, quieter, distill, harden, onboard |
43
- | Enhance | animate, colorize, typeset, layout, delight, overdrive |
44
- | Fix | clarify, adapt, optimize |
45
- | Iterate | live |
82
+ **Keywords:** `continue`/`next` resume previous chain session
46
83
 
47
- **Flags:**
84
+ **Flags (direct mode):**
48
85
  - `--skip-harvest` — Execute command without knowhow capture
49
86
  - `-y` — Auto-confirm where the skill allows
50
87
 
51
- **Harvest behavior**: After command completion, the harvest workflow extracts design decisions
52
- and writes knowhow entries. DCS-/AST- types also get spec index entries for discoverability.
53
- `live` command is exempt (too ephemeral). Use `--skip-harvest` to suppress.
88
+ **Flags (chain mode):**
89
+ - `--chain <type>` Force chain type: build, improve, enhance, harden, live
90
+ - `--enhance <cmd>` Specific enhance command (animate|colorize|typeset|layout|delight|overdrive|bolder)
91
+ - `--threshold <score>` — Critique pass threshold (default: 26/40). Audit threshold auto-computed as threshold×0.5
92
+ - `--max-loops <n>` — Maximum quality gate iterations (default: 3)
93
+ - `-c` / `--continue` — Resume previous chain session
94
+ - `--skip-design-explore` / `--skip-design` — Skip design-explore and bridge
95
+ - `--styles <N>` — Number of design system variants (2-5, default 3). Build chain only
96
+ - `--stack <stack>` — Tech stack for supplementary guidelines (default: html-tailwind)
54
97
  </context>
55
98
 
56
- <execution>
99
+ <invariants>
100
+ 1. **Session before chain execution** — status.json created before any chain step runs
101
+ 2. **All chain steps via Skill** — every sub-command dispatched through `Skill({ skill: "maestro-impeccable" })`
102
+ 3. **Gate scores drive loops** — refine loop auto-selects commands from P0/P1 findings, never from hardcoded lists
103
+ 4. **Interactive gates respected** — teach, shape, craft retain their user gates; never suppress
104
+ 5. **Harvest after direct mode** — knowhow capture runs after every direct-mode command (unless --skip-harvest or live)
105
+ </invariants>
57
106
 
58
- ## 1. Route
107
+ <chains>
59
108
 
60
- If first argument is `search` → direct CLI dispatch (no Skill, no harvest):
109
+ ### Chain Definitions
61
110
 
62
- ```bash
63
- maestro impeccable search "<query>" [options]
64
- ```
111
+ | Chain | Sequence | Gate Condition |
112
+ |-------|----------|----------------|
113
+ | **build** | teach? → **design_explore?** → shape → craft → **critique** → [refine loop] → audit → polish | critique ≥ threshold AND P0 == 0 |
114
+ | **improve** | **critique** → [refine loop] → polish → audit | critique ≥ threshold AND P0 == 0 |
115
+ | **enhance** | {cmd} → **critique** → polish (if needed) | critique ≥ threshold |
116
+ | **harden** | harden → **audit** → polish | audit ≥ threshold×0.5 |
117
+ | **live** | live | — (interactive, no gate) |
65
118
 
66
- Options: `-d <domain>`, `-s <stack>`, `-n <max>`, `--design-system`, `-p <name>`, `-f <fmt>`, `--persist`, `--page <page>`, `-o <dir>`
119
+ - `teach?` conditional: only if PRODUCT.md missing/placeholder
120
+ - `design_explore?` — conditional: only if DESIGN.md missing AND `--skip-design-explore` not set. Delegates to explore which handles variant generation, prototype rendering, visual comparison, user selection/mix, AND bridge to DESIGN.md internally
121
+ - `[refine loop]` — quality gate loop: extract suggested commands from critique → execute → re-critique
67
122
 
68
- Domains: style, color, chart, landing, product, ux, typography, icons, react, web, google-fonts.
69
- Stacks: react, nextjs, vue, svelte, astro, swiftui, react-native, flutter, html-tailwind, shadcn, + more.
123
+ ### Intent Chain Routing
70
124
 
71
- Search uses `workflows/impeccable/ui-search/search.py` (BM25 engine + 30+ CSV knowledge files).
72
- Output goes to stdout. No Skill invocation, no harvest. Return after output.
125
+ | Intent Pattern | Chain |
126
+ |---------------|-------|
127
+ | 新建, create, build, new, 从零, landing, feature, page | build |
128
+ | 设计, design, 风格, style, 设计系统, design system, 视觉, theme | build |
129
+ | 改进, improve, fix, 优化, iterate, better, 迭代 | improve |
130
+ | 动画, 颜色, 排版, animate, color, type, bold, delight, enhance | enhance |
131
+ | 生产, production, harden, 上线, ship, edge case, i18n | harden |
132
+ | 实时, live, browser, 浏览器, variant | live |
133
+
134
+ Explicit `--chain` overrides routing. Ambiguous + no `-y` → AskUserQuestion.
135
+
136
+ </chains>
137
+
138
+ <state_machine>
139
+
140
+ <states>
141
+ S_PARSE — 解析参数、模式检测、意图分类 PERSIST: —
142
+ S_RESUME — 扫描已有 chain session、恢复执行 PERSIST: —
143
+ S_SETUP — 加载 context、检查 PRODUCT.md PERSIST: —
144
+ S_CREATE — 创建 session + status.json PERSIST: session (全量)
145
+ S_DESIGN_EXPLORE — 委托 explore:多变体生成、原型对比、选型/混搭、自动 bridge 到 DESIGN.md PERSIST: explore_completed, design_md_path
146
+ S_CHAIN — 按序执行 chain 步骤 PERSIST: step progress, executed commands
147
+ S_GATE — 质量门控:解析评分、决策 PERSIST: scores, loop count
148
+ S_REFINE — 执行自动选取的 refine 命令 PERSIST: refine commands, loop state
149
+ S_REPORT — 最终报告 + 趋势 PERSIST: final scores, status
150
+ </states>
151
+
152
+ <transitions>
153
+
154
+ S_PARSE:
155
+ → S_RESUME WHEN: -c / --continue flag OR keyword "continue"/"next"
156
+ → S_SETUP WHEN: chain mode detected (--chain flag or intent classified)
157
+ → S_PARSE WHEN: chain mode, ambiguous AND not -y DO: AskUserQuestion
158
+ → END WHEN: direct mode → execute sub-command directly (see Direct Mode execution)
159
+ → END WHEN: search mode → CLI dispatch
160
+ → END WHEN: direct mode, no arguments → show command menu with categories
161
+ → END WHEN: chain mode, no intent AND no target → E002
162
+
163
+ S_RESUME:
164
+ → S_CHAIN WHEN: session found DO: A_LOCATE_SESSION
165
+ → END WHEN: no session found → E005
166
+
167
+ S_SETUP:
168
+ → S_CREATE DO: A_LOAD_CONTEXT
169
+
170
+ S_CREATE:
171
+ → S_CHAIN DO: A_CREATE_SESSION
172
+
173
+ S_CHAIN:
174
+ → S_DESIGN_EXPLORE WHEN: current step is 'design_explore' AND DESIGN.md missing AND --skip-design-explore not set AND --skip-design not set
175
+ → S_GATE WHEN: current step is gate command (critique/audit)
176
+ → S_CHAIN WHEN: step is design_explore but skip conditions met → advance
177
+ → S_CHAIN WHEN: step is normal command → execute → advance
178
+ → S_REPORT WHEN: all steps complete
179
+
180
+ S_DESIGN_EXPLORE:
181
+ → S_CHAIN WHEN: explore completed (DESIGN.md produced) → advance to shape
182
+ → S_CHAIN WHEN: explore failed → W004 → advance to shape (full interview fallback)
183
+
184
+ S_GATE:
185
+ → S_CHAIN WHEN: PASS (score ≥ threshold AND P0 == 0) → advance to next step
186
+ → S_REFINE WHEN: FAIL (score < threshold OR P0 > 0)
187
+ → S_CHAIN WHEN: max loops exceeded → W002 → force advance
73
188
 
74
- ## 2. Invoke Skill (all other sub-commands)
189
+ S_REFINE:
190
+ → S_GATE DO: execute auto-selected commands → re-run gate command
191
+ GUARD: loop_count < max_loops
192
+
193
+ S_REPORT:
194
+ → END DO: A_FINAL_REPORT
195
+
196
+ </transitions>
197
+
198
+ <actions>
199
+
200
+ ### A_LOCATE_SESSION
201
+
202
+ 1. Scan `.workflow/.maestro/ui-craft-*/status.json`, filter `status == "running"`, sort DESC
203
+ 2. Take most recent; load into context as current session
204
+ 3. Resume from `current_step` position
205
+
206
+ ### A_LOAD_CONTEXT
207
+
208
+ 1. If chain starts with `teach` → execute it first, impeccable handles context loading internally
209
+ 2. Otherwise → trigger context loading (spec load --category ui, with load-context fallback)
210
+ 3. If PRODUCT.md missing/placeholder → prepend teach, execute, then resume
211
+
212
+ ### A_CREATE_SESSION
213
+
214
+ 1. Read `.workflow/state.json` for project context (phase, milestone)
215
+ 2. Create `.workflow/.maestro/ui-craft-{YYYYMMDD-HHmmss}/status.json`:
216
+ ```json
217
+ { "session_id": "ui-craft-{ts}", "source": "maestro-impeccable", "intent": "...",
218
+ "chain_type": "build|improve|enhance|harden|live", "target": "...",
219
+ "auto_mode": false, "threshold": 26, "max_loops": 3,
220
+ "steps": [{ "index": 0, "command": "shape", "status": "pending" }],
221
+ "gate_history": [], "loop_count": 0,
222
+ "current_step": 0, "status": "running",
223
+ "created_at": "ISO-8601", "updated_at": "ISO-8601" }
224
+ ```
225
+ 3. Write status.json before executing any step
226
+
227
+ ### A_DESIGN_EXPLORE
228
+
229
+ 1. Execute: `Skill({ skill: "maestro-impeccable", args: "explore --styles {styles_count}" })`
230
+ 2. explore handles internally: variant generation, prototype rendering, visual comparison, user selection/mix, bridge to DESIGN.md, spec registration
231
+ 3. On completion: verify `.workflow/impeccable/DESIGN.md` exists
232
+ 4. Update status.json: `explore_completed: true`, `design_md_path`
233
+
234
+ ### A_FINAL_REPORT
235
+
236
+ 1. Read critique trend if available
237
+ 2. Update status.json with `status: "completed"` and final scores
238
+ 3. Present summary table with scores, iterations, commands executed
239
+
240
+ </actions>
241
+
242
+ </state_machine>
243
+
244
+ <execution>
245
+
246
+ ## 1. Mode Detection
247
+
248
+ 1. If first argument is `search` → **Search Mode** (Section 6)
249
+ 2. If first argument matches one of the 24 sub-commands → **Direct Mode** (Section 2)
250
+ 3. If `--chain` flag present → **Chain Mode** (Section 3)
251
+ 4. If `-c` / `--continue` or keyword "continue"/"next" → **Resume** (S_RESUME)
252
+ 5. If intent text (doesn't match a sub-command) → classify intent → **Chain Mode** (Section 3)
253
+ 6. No arguments → show command menu with categories
254
+
255
+ ## 2. Direct Mode
256
+
257
+ ### 2a. Invoke Skill
75
258
 
76
259
  ```
77
260
  Skill({ skill: "maestro-impeccable", args: "$ARGUMENTS" })
@@ -80,7 +263,7 @@ Skill({ skill: "maestro-impeccable", args: "$ARGUMENTS" })
80
263
  The skill handles: context loading (spec load --category ui, with load-context fallback), register detection (brand/product),
81
264
  reference file loading, and command execution.
82
265
 
83
- ## 3. Harvest
266
+ ### 2b. Harvest
84
267
 
85
268
  After the skill completes, read `~/.maestro/workflows/impeccable.md` and follow the harvest workflow.
86
269
 
@@ -89,13 +272,10 @@ Skip harvest if:
89
272
  - Sub-command is `live` (interactive, no harvestable output)
90
273
  - Sub-command is unrecognized
91
274
 
92
- ## 4. Post-Execution Routing
275
+ ### 2c. Post-Execution Routing
93
276
 
94
- After harvest (or skip), determine whether this command was invoked as part of a larger pipeline by checking conversation context (e.g., brainstorm Step 3.5, ui-craft chain step).
95
-
96
- **Pipeline context detected** (called via Skill from brainstorm, ui-craft, etc.):
97
- - Report command result (output, scores, artifacts produced) and **stop**
98
- - Do NOT suggest next-step commands — the calling flow owns what happens next
277
+ **Pipeline context detected** (called via Skill from brainstorm, maestro, etc.):
278
+ - Report command result and **stop** — the calling flow owns what happens next
99
279
 
100
280
  **Standalone invocation** (user directly ran `/maestro-impeccable`):
101
281
  - Show next-step suggestions based on what was executed:
@@ -106,21 +286,186 @@ After harvest (or skip), determine whether this command was invoked as part of a
106
286
  - `critique`/`audit` → suggest commands from findings
107
287
  - Enhancement/fix commands → suggest `critique` to re-evaluate
108
288
 
289
+ ## 3. Chain Mode
290
+
291
+ Follow the state machine (S_PARSE → S_SETUP → S_CREATE → S_CHAIN → S_GATE → S_REFINE → S_REPORT).
292
+
293
+ ### 3a. Parse & Route
294
+
295
+ 1. If `--chain` present → use directly
296
+ 2. Otherwise → match $ARGUMENTS against intent patterns
297
+ 3. If `--enhance` present → chain = enhance, cmd = --enhance value
298
+ 4. For enhance chain without `--enhance` → infer from intent ("动画" → animate, "颜色" → colorize, etc.)
299
+ 5. Ambiguous + no `-y` → ask user to pick chain
300
+
301
+ Create TodoWrite with chain steps.
302
+
303
+ ### 3b. Execute Chain
304
+
305
+ For each step in chain, sequentially:
306
+
307
+ ```
308
+ ▸ Step {n}/{total}: /maestro-impeccable {command} {target}
309
+ ```
310
+
311
+ Execute via: `Skill({ skill: "maestro-impeccable", args: "{command} {target}" })`
312
+
313
+ After each step: update status.json `current_step` and step `status`.
314
+
315
+ **Step-specific logic:**
316
+
317
+ - **design_explore** (build chain only): check DESIGN.md exists → skip if yes; check --skip-design-explore → skip if set; otherwise execute `Skill({ skill: "maestro-impeccable", args: "explore --styles {styles_count}" })`; verify DESIGN.md on completion
318
+ - **teach, shape, craft** are interactive — do NOT suppress their user gates
319
+ - Gate steps (critique/audit) → transition to quality gate logic (Section 4)
320
+
321
+ ## 4. Quality Gate
322
+
323
+ ### 4a. Execute Gate Command
324
+
325
+ ```
326
+ Skill({ skill: "maestro-impeccable", args: "critique {target}" })
327
+ ```
328
+ or
329
+ ```
330
+ Skill({ skill: "maestro-impeccable", args: "audit {target}" })
331
+ ```
332
+
333
+ ### 4b. Parse Score
334
+
335
+ From critique output, extract:
336
+ - **score**: Nielsen's total — from `"**Total** | | **N/40**"` row
337
+ - **P0_count**: count of `[P0]` tagged findings
338
+ - **P1_count**: count of `[P1]` tagged findings
339
+ - **suggested_commands**: list of `/maestro-impeccable <cmd>` from "Suggested command" fields
340
+
341
+ From audit output, extract:
342
+ - **score**: dimension total — from `"**Total** | | **N/20**"` row
343
+ - **P0_count**: count of `[P0]` findings
344
+
345
+ ### 4c. Evaluate
346
+
347
+ ```
348
+ critique_pass = (score >= threshold) AND (P0_count == 0)
349
+ audit_pass = (score >= threshold * 0.5) AND (P0_count == 0)
350
+ ```
351
+
352
+ ### 4d. On PASS → advance to next chain step
353
+
354
+ ### 4e. On FAIL
355
+
356
+ 1. Collect suggested commands from P0/P1 findings
357
+ 2. If no suggestions → use fallback mapping (see quality_gate_routing)
358
+ 3. De-duplicate, cap at 3 commands per iteration
359
+ 4. Sort: P0-suggested first
360
+ 5. Execute each: `Skill({ skill: "maestro-impeccable", args: "{cmd} {target}" })`
361
+ 6. Re-run gate command
362
+ 7. Increment loop_count, append to status.json `gate_history`
363
+
364
+ ### 4f. On Max Loops Exceeded → W002, force advance
365
+
366
+ ## 5. Final Report (chain mode)
367
+
368
+ ```
369
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
370
+ Chain complete: {chain_type}
371
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
372
+
373
+ Critique : {score}/40 (trend: {trend_line})
374
+ Audit : {score}/20
375
+ Loops : {total_iterations}
376
+ Commands : {executed_command_list}
377
+
378
+ Status : {PASS | PARTIAL — N issues remain}
379
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
380
+ ```
381
+
382
+ If issues remain → suggest: "Run `/maestro-impeccable --chain improve {target}` to continue iteration."
383
+
384
+ ## 6. Search CLI
385
+
386
+ Direct CLI dispatch (no Skill, no harvest):
387
+
388
+ ```bash
389
+ maestro impeccable search "<query>" [options]
390
+ ```
391
+
392
+ Options: `-d <domain>`, `-s <stack>`, `-n <max>`, `--design-system`, `-p <name>`, `-f <fmt>`, `--persist`, `--page <page>`, `-o <dir>`
393
+
394
+ Domains: style, color, chart, landing, product, ux, typography, icons, react, web, google-fonts.
395
+ Stacks: react, nextjs, vue, svelte, astro, swiftui, react-native, flutter, html-tailwind, shadcn, + more.
396
+
397
+ Search uses `workflows/impeccable/ui-search/search.py` (BM25 engine + 30+ CSV knowledge files).
398
+
109
399
  </execution>
110
400
 
401
+ <quality_gate_routing>
402
+
403
+ ### Finding → Command Fallback Mapping
404
+
405
+ When critique/audit findings lack explicit "Suggested command", map by category:
406
+
407
+ | Finding Category | Command |
408
+ |-----------------|---------|
409
+ | Visual hierarchy, layout, spacing, alignment | layout |
410
+ | Color, contrast, palette, monochromatic | colorize |
411
+ | Typography, font, readability, hierarchy | typeset |
412
+ | Animation, motion, transitions, micro-interaction | animate |
413
+ | Copy, labels, error messages, UX writing | clarify |
414
+ | Responsive, mobile, breakpoints, touch targets | adapt |
415
+ | Performance, loading, speed, bundle, jank | optimize |
416
+ | Complexity, overload, clutter, cognitive load | distill |
417
+ | Bland, safe, generic, lacks personality | bolder |
418
+ | Aggressive, overwhelming, loud, overstimulating | quieter |
419
+ | Onboarding, empty state, first-run, activation | onboard |
420
+ | Edge cases, i18n, error handling, overflow | harden |
421
+ | Personality, memorability, joy, delight | delight |
422
+
423
+ ### Commands Never Auto-Selected
424
+
425
+ | Command | Reason |
426
+ |---------|--------|
427
+ | teach | Project setup (run in S_SETUP only) |
428
+ | shape | Requires user interview |
429
+ | craft | Full build with multiple gates |
430
+ | live | Interactive browser mode |
431
+ | document | Generates DESIGN.md (setup) |
432
+ | extract | Design system extraction (setup) |
433
+ | overdrive | Requires explicit user vision |
434
+ | critique | Gate command, not a fix |
435
+ | audit | Gate command, not a fix |
436
+
437
+ </quality_gate_routing>
438
+
111
439
  <error_codes>
112
440
  | Code | Severity | Description |
113
441
  |------|----------|-------------|
114
- | E001 | error | Invalid sub-command (not in 24 valid commands) |
442
+ | E001 | error | Invalid sub-command (not in 24 valid commands) or impeccable skill not available |
115
443
  | E002 | error | No intent or target specified |
116
- | W001 | warning | Harvest failed design knowledge not captured (command still succeeded) |
117
- | W002 | warning | PRODUCT.md missing skill will auto-trigger teach |
444
+ | E003 | error | Invalid --chain type |
445
+ | E004 | error | Invalid --enhance command |
446
+ | E005 | error | Resume session not found |
447
+ | E006 | error | Python 3 not available for design system generation |
448
+ | E007 | error | ui-search scripts not found at expected path |
449
+ | W001 | warning | PRODUCT.md missing, prepending teach to chain |
450
+ | W002 | warning | Max quality gate loops exceeded, forcing continue |
451
+ | W003 | warning | Could not parse score from critique/audit output |
452
+ | W004 | warning | Design system generation failed, falling back to shape full interview |
453
+ | W005 | warning | Bridge transformation failed, continuing without DESIGN.md |
454
+ | W006 | warning | Harvest failed — design knowledge not captured (command still succeeded) |
455
+ | W007 | warning | PRODUCT.md missing — skill will auto-trigger teach |
456
+ | W008 | warning | Node.js not available for prototype rendering, falling back to text-only |
118
457
  </error_codes>
119
458
 
120
459
  <success_criteria>
121
- - [ ] Sub-command recognized and routed to maestro-impeccable skill
122
- - [ ] Skill executed with context (spec load --category ui or load-context fallback, register identified)
123
- - [ ] Design changes applied to target files
460
+ - [ ] Mode detected correctly (direct / chain / search / resume)
461
+ - [ ] Sub-command recognized and routed (direct mode)
462
+ - [ ] Intent classified and chain type selected (chain mode)
463
+ - [ ] Context loaded (PRODUCT.md present or taught)
464
+ - [ ] Session dir created with status.json before chain execution
465
+ - [ ] All chain steps executed via Skill("maestro-impeccable", ...)
466
+ - [ ] Quality gate evaluated with parsed scores
467
+ - [ ] Refine loop executed when gate failed (if applicable)
468
+ - [ ] Gate history and scores persisted to status.json
124
469
  - [ ] Knowhow entry created in .workflow/knowhow/ (unless --skip-harvest or live)
125
- - [ ] Spec index entry created for DCS-/AST- types
470
+ - [ ] Progress tracked via TodoWrite throughout (chain mode)
126
471
  </success_criteria>
@@ -104,7 +104,7 @@ Follow `~/.maestro/workflows/spec-generate.md` completely.
104
104
  |-----------|-----------|
105
105
  | Roadmap approved, need analysis | /maestro-analyze 1 |
106
106
  | Simple project, ready to plan | /maestro-plan 1 |
107
- | Need UI design first | /maestro-ui-craft --chain build |
107
+ | Need UI design first | /maestro-impeccable --chain build |
108
108
  | View project dashboard | /manage-status |
109
109
  | Need project setup (full mode) | /maestro-init |
110
110
  </execution>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro-flow-one",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "All Maestro workflow commands as a single Claude Code skill — intent routing, decision gates, minimal closed-loop chains",
5
5
  "bin": {
6
6
  "maestro-flow": "bin/maestro-flow.js"
@@ -1,416 +0,0 @@
1
- ---
2
- name: maestro-ui-craft
3
- description: Chain maestro-impeccable commands with intelligent routing and quality gate loops for automated UI production
4
- argument-hint: "<intent|target> [--chain build|improve|enhance|harden|live] [--enhance <cmd>] [--threshold <score>] [--max-loops <n>] [--skip-design-explore] [--skip-design] [--styles <N>] [--stack <stack>] [-y] [-c]"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Edit
9
- - Bash
10
- - Glob
11
- - Grep
12
- - Agent
13
- - Skill
14
- - AskUserQuestion
15
- - TodoWrite
16
- ---
17
- <purpose>
18
- Orchestrate maestro-impeccable skill commands via intelligent intent routing + quality gate auto-iteration.
19
- Chain: Build → Evaluate → Auto-Refine → Re-evaluate → Verify.
20
-
21
- Core innovation: critique/audit scores drive automatic command selection and iteration loops.
22
- Impeccable has 23 commands across 6 categories — this command chains them into automated pipelines
23
- with quality gates that loop until design quality meets the threshold.
24
-
25
- Includes integrated design-explore: multi-variant design system generation (via ui-search BM25 engine + CSV knowledge base),
26
- HTML prototype rendering for visual comparison, interactive user review with mix support,
27
- and automatic bridge to impeccable's DESIGN.md format. Replaces the former maestro-ui-design command.
28
-
29
- Prerequisite: maestro-impeccable skill available (auto-discovered by harness).
30
-
31
- Session: `.workflow/.maestro/ui-craft-{YYYYMMDD-HHmmss}/status.json`
32
- </purpose>
33
-
34
- <deferred_reading>
35
- - [impeccable harvest workflow](~/.maestro/workflows/impeccable.md) — read after command execution for harvest logic
36
- - [design stage workflow](~/.maestro/workflows/impeccable/design.md) — read when S_DESIGN_EXPLORE or S_BRIDGE state entered
37
- </deferred_reading>
38
-
39
- <invariants>
40
- 1. **Session before execution** — status.json created before any chain step runs
41
- 2. **All steps via Skill** — every impeccable command dispatched through `Skill({ skill: "maestro-impeccable" })`
42
- 3. **Gate scores drive loops** — refine loop auto-selects commands from P0/P1 findings, never from hardcoded lists
43
- 4. **Interactive gates respected** — teach, shape, craft retain their user gates; never suppress
44
- </invariants>
45
-
46
- <context>
47
- $ARGUMENTS — intent description or target path, with optional flags.
48
-
49
- **Keywords:** `continue`/`next` → resume previous session
50
-
51
- **Flags:**
52
- - `--chain <type>` — Force chain type: build, improve, enhance, harden, live
53
- - `--enhance <cmd>` — Specific enhance command for enhance chain (animate|colorize|typeset|layout|delight|overdrive|bolder)
54
- - `--threshold <score>` — Critique pass threshold (default: 26/40). Audit threshold auto-computed as threshold×0.5
55
- - `--max-loops <n>` — Maximum quality gate iterations (default: 3)
56
- - `-c` / `--continue` — Resume previous ui-craft session
57
- - `-y` — Auto mode: auto-select at ambiguous routing, skip confirmations where impeccable allows
58
- - `--skip-design-explore` / `--skip-design` — Skip design-explore (prototype comparison) and bridge (use existing DESIGN.md or full shape interview)
59
- - `--styles <N>` — Number of design system variants to generate and compare (2-5, default 3). Only used in build chain design-explore step
60
- - `--stack <stack>` — Tech stack for supplementary guidelines (default: html-tailwind). Passed to ui-search
61
- </context>
62
-
63
- <chains>
64
-
65
- ### Chain Definitions
66
-
67
- | Chain | Sequence | Gate Condition |
68
- |-------|----------|----------------|
69
- | **build** | teach? → **design_explore?** → shape → craft → **critique** → [refine loop] → audit → polish | critique ≥ threshold AND P0 == 0 |
70
- | **improve** | **critique** → [refine loop] → polish → audit | critique ≥ threshold AND P0 == 0 |
71
- | **enhance** | {cmd} → **critique** → polish (if needed) | critique ≥ threshold |
72
- | **harden** | harden → **audit** → polish | audit ≥ threshold×0.5 |
73
- | **live** | live | — (interactive, no gate) |
74
-
75
- - `teach?` — conditional: only if PRODUCT.md missing/placeholder
76
- - `design_explore?` — conditional: only if DESIGN.md missing AND `--skip-design-explore` not set. Delegates to `Skill("maestro-impeccable", "explore")` which handles variant generation, prototype rendering, visual comparison, user selection/mix, AND bridge to DESIGN.md internally
77
- - `[refine loop]` — quality gate loop: extract suggested commands from critique → execute → re-critique
78
-
79
- ### Intent → Chain Routing
80
-
81
- | Intent Pattern | Chain |
82
- |---------------|-------|
83
- | 新建, create, build, new, 从零, landing, feature, page | build |
84
- | 设计, design, 风格, style, 设计系统, design system, 视觉, theme | build |
85
- | 改进, improve, fix, 优化, iterate, better, 迭代 | improve |
86
- | 动画, 颜色, 排版, animate, color, type, bold, delight, enhance | enhance |
87
- | 生产, production, harden, 上线, ship, edge case, i18n | harden |
88
- | 实时, live, browser, 浏览器, variant | live |
89
-
90
- Explicit `--chain` overrides routing. Ambiguous + no `-y` → AskUserQuestion.
91
-
92
- </chains>
93
-
94
- <state_machine>
95
-
96
- <states>
97
- S_PARSE — 解析参数、意图分类、chain 选择 PERSIST: —
98
- S_RESUME — 扫描已有 ui-craft session、恢复执行 PERSIST: —
99
- S_SETUP — 加载 context、检查 PRODUCT.md PERSIST: —
100
- S_CREATE — 创建 session + status.json PERSIST: session (全量)
101
- S_DESIGN_EXPLORE — 委托 impeccable explore:多变体生成、原型对比、选型/混搭、自动 bridge 到 DESIGN.md PERSIST: explore_completed, design_md_path
102
- S_CHAIN — 按序执行 chain 步骤 PERSIST: step progress, executed commands
103
- S_GATE — 质量门控:解析评分、决策 PERSIST: scores, loop count
104
- S_REFINE — 执行自动选取的 refine 命令 PERSIST: refine commands, loop state
105
- S_REPORT — 最终报告 + 趋势 PERSIST: final scores, status
106
- </states>
107
-
108
- <transitions>
109
-
110
- S_PARSE:
111
- → S_RESUME WHEN: -c / --continue flag OR keyword "continue"/"next"
112
- → S_SETUP WHEN: chain selected (explicit or routed)
113
- → S_PARSE WHEN: ambiguous AND not -y DO: AskUserQuestion
114
- → END WHEN: no intent AND no target → E002
115
-
116
- S_RESUME:
117
- → S_CHAIN WHEN: session found DO: A_LOCATE_SESSION
118
- → S_FALLBACK WHEN: no session found → E005
119
-
120
- S_SETUP:
121
- → S_CREATE DO: A_LOAD_CONTEXT
122
-
123
- S_CREATE:
124
- → S_CHAIN DO: A_CREATE_SESSION
125
-
126
- S_CHAIN:
127
- → S_DESIGN_EXPLORE WHEN: current step is 'design_explore' AND DESIGN.md missing AND --skip-design-explore not set AND --skip-design not set
128
- → S_GATE WHEN: current step is gate command (critique/audit)
129
- → S_CHAIN WHEN: step is design_explore but skip conditions met → advance
130
- → S_CHAIN WHEN: step is normal command → execute → advance
131
- → S_REPORT WHEN: all steps complete
132
-
133
- S_DESIGN_EXPLORE:
134
- → S_CHAIN WHEN: explore completed (DESIGN.md produced) → advance to shape
135
- → S_CHAIN WHEN: explore failed → W004 → advance to shape (full interview fallback)
136
-
137
- S_GATE:
138
- → S_CHAIN WHEN: PASS (score ≥ threshold AND P0 == 0) → advance to next step
139
- → S_REFINE WHEN: FAIL (score < threshold OR P0 > 0)
140
- → S_CHAIN WHEN: max loops exceeded → W002 → force advance
141
-
142
- S_REFINE:
143
- → S_GATE DO: execute auto-selected commands → re-run gate command
144
- GUARD: loop_count < max_loops
145
-
146
- S_REPORT:
147
- → END DO: A_FINAL_REPORT
148
-
149
- </transitions>
150
-
151
- <actions>
152
-
153
- ### A_LOCATE_SESSION
154
-
155
- 1. Scan `.workflow/.maestro/ui-craft-*/status.json`, filter `status == "running"`, sort DESC
156
- 2. Take most recent; load into context as current session
157
- 3. Resume from `current_step` position
158
-
159
- ### A_LOAD_CONTEXT
160
-
161
- 1. Trigger impeccable context loading by invoking: `Skill({ skill: "maestro-impeccable", args: "teach" })`
162
- - Impeccable's own setup will auto-discover and load PRODUCT.md / DESIGN.md
163
- - If PRODUCT.md missing/placeholder, impeccable teach handles the interview
164
- 2. If teach was not in the chain but PRODUCT.md is missing:
165
- - Prepend `teach` to chain start
166
- - Announce: W001
167
- 3. Context is now in conversation for subsequent commands
168
-
169
- ### A_CREATE_SESSION
170
-
171
- 1. Read `.workflow/state.json` for project context (phase, milestone)
172
- 2. Create `.workflow/.maestro/ui-craft-{YYYYMMDD-HHmmss}/status.json`:
173
- ```json
174
- { "session_id": "ui-craft-{ts}", "source": "ui-craft", "intent": "...",
175
- "chain_type": "build|improve|enhance|harden|live", "target": "...",
176
- "auto_mode": false, "threshold": 26, "max_loops": 3,
177
- "steps": [{ "index": 0, "command": "shape", "status": "pending" }],
178
- "gate_history": [], "loop_count": 0,
179
- "current_step": 0, "status": "running",
180
- "created_at": "ISO-8601", "updated_at": "ISO-8601" }
181
- ```
182
- 3. Write status.json before executing any step
183
-
184
- ### A_DESIGN_EXPLORE
185
-
186
- Delegate to impeccable explore as a black-box command. The explore command internally handles:
187
- variant generation, prototype rendering, visual comparison, user review, mix protocol, rejected variant harvest, bridge to DESIGN.md, and spec registration.
188
-
189
- 1. Execute: `Skill({ skill: "maestro-impeccable", args: "explore --styles {styles_count}" })`
190
- 2. On completion: verify `.workflow/impeccable/DESIGN.md` exists
191
- 3. Update status.json: `explore_completed: true`, `design_md_path`
192
-
193
- ### A_FINAL_REPORT
194
-
195
- 1. Read critique trend if available (impeccable's critique persists snapshots automatically)
196
- 2. Update status.json with `status: "completed"` and final scores
197
- 3. Present summary table with scores, iterations, commands executed
198
-
199
- </actions>
200
-
201
- </state_machine>
202
-
203
- <execution>
204
-
205
- ## 1. Parse & Route
206
-
207
- 1. If `-c` / `--continue` or keyword "continue"/"next" → S_RESUME
208
- 2. If `--chain` present → use directly
209
- 3. Otherwise → match $ARGUMENTS against intent patterns
210
- 4. If `--enhance` present → chain = enhance, cmd = --enhance value
211
- 5. For enhance chain without `--enhance` → infer from intent ("动画" → animate, "颜色" → colorize, etc.)
212
- 6. Ambiguous + no `-y` → ask user to pick chain
213
-
214
- Create TodoWrite with chain steps.
215
-
216
- ## 2. Setup Context
217
-
218
- 1. If chain starts with `teach` → execute it first, impeccable handles context loading internally
219
- 2. Otherwise → invoke `Skill({ skill: "maestro-impeccable" })` with no args to trigger setup (context + register)
220
- 3. If impeccable reports PRODUCT.md missing → prepend teach, execute, then resume
221
-
222
- ## 3. Create Session
223
-
224
- Write `.workflow/.maestro/ui-craft-{ts}/status.json` with chain steps before any execution.
225
-
226
- ## 4. Execute Chain
227
-
228
- For each step in chain, sequentially:
229
-
230
- ```
231
- ▸ Step {n}/{total}: /maestro-impeccable {command} {target}
232
- ```
233
-
234
- Execute via: `Skill({ skill: "maestro-impeccable", args: "{command} {target}" })`
235
-
236
- After each step: update status.json `current_step` and step `status`.
237
-
238
- **Step-specific logic:**
239
-
240
- ### 4a. Design-explore step (build chain only)
241
-
242
- When current step is `design_explore`:
243
-
244
- 1. Check if `.workflow/impeccable/DESIGN.md` already exists → skip, advance to shape
245
- 2. Check if `--skip-design-explore` or `--skip-design` is set → skip, advance to shape
246
- 3. Otherwise → execute A_DESIGN_EXPLORE:
247
- - `Skill({ skill: "maestro-impeccable", args: "explore --styles {styles_count}" })`
248
- - explore handles everything internally: variant generation, prototype rendering, visual comparison, user selection/mix, bridge to DESIGN.md, spec registration
249
- 4. On completion → verify DESIGN.md exists, advance to shape
250
- 5. On failure → W004, advance to shape (full interview fallback, no DESIGN.md)
251
-
252
- ### 4c. Normal steps
253
-
254
- - `teach`, `shape`, `craft` are interactive — do NOT suppress their user gates
255
- - After `teach` completes → re-run context loader for fresh PRODUCT.md
256
- - After `craft` completes → the build exists, ready for evaluation
257
- - Gate steps (critique/audit) → transition to quality gate logic (Section 5)
258
-
259
- ## 5. Quality Gate
260
-
261
- When chain reaches a gate step (critique or audit):
262
-
263
- ### 5a. Execute Gate Command
264
-
265
- ```
266
- Skill({ skill: "maestro-impeccable", args: "critique {target}" })
267
- ```
268
- or
269
- ```
270
- Skill({ skill: "maestro-impeccable", args: "audit {target}" })
271
- ```
272
-
273
- ### 5b. Parse Score
274
-
275
- From critique output, extract:
276
- - **score**: Nielsen's total (N/40) — from "**Total** | | **N/40**" row
277
- - **P0_count**: count of `[P0]` tagged findings
278
- - **P1_count**: count of `[P1]` tagged findings
279
- - **suggested_commands**: list of "/maestro-impeccable <cmd>" from "Suggested command" fields
280
-
281
- From audit output, extract:
282
- - **score**: dimension total (N/20) — from "**Total** | | **N/20**" row
283
- - **P0_count**: count of `[P0]` findings
284
-
285
- ### 5c. Evaluate
286
-
287
- ```
288
- critique_pass = (score >= threshold) AND (P0_count == 0)
289
- audit_pass = (score >= threshold * 0.5) AND (P0_count == 0)
290
- ```
291
-
292
- ### 5d. On PASS
293
-
294
- ```
295
- ✓ Gate passed: {score}/{max} (P0: 0)
296
- ```
297
- → advance to next chain step
298
-
299
- ### 5e. On FAIL
300
-
301
- ```
302
- ⟳ Loop {n}/{max_loops}: {score}/{max}, P0={count}
303
- Running: {command_list}
304
- ```
305
-
306
- 1. Collect suggested commands from P0/P1 findings
307
- 2. If no suggestions found → use fallback mapping (see quality_gate_routing)
308
- 3. De-duplicate, cap at 3 commands per iteration
309
- 4. Sort: P0-suggested first
310
- 5. Execute each: `Skill({ skill: "maestro-impeccable", args: "{cmd} {target}" })`
311
- - Pass issue context: the specific findings that triggered this command are already in conversation
312
- 6. Re-run gate command (critique/audit)
313
- 7. Increment loop_count
314
- 8. Append to status.json `gate_history`
315
-
316
- ### 5f. On Max Loops Exceeded
317
-
318
- ```
319
- ⚠ Max iterations ({max_loops}) reached. Score: {score}/{max}, P0: {count}
320
- Continuing chain with remaining issues.
321
- ```
322
- → force advance to next chain step
323
-
324
- ## 6. Final Report
325
-
326
- ```
327
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
328
- Chain complete: {chain_type}
329
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
330
-
331
- Critique : {score}/40 (trend: {trend_line})
332
- Audit : {score}/20
333
- Loops : {total_iterations}
334
- Commands : {executed_command_list}
335
-
336
- Status : {PASS | PARTIAL — N issues remain}
337
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
338
- ```
339
-
340
- Update status.json: `status: "completed"`, `final_scores`, `completed_at`.
341
-
342
- If issues remain → suggest: "Run `/maestro-ui-craft --chain improve {target}` to continue iteration."
343
-
344
- </execution>
345
-
346
- <quality_gate_routing>
347
-
348
- ### Finding → Command Fallback Mapping
349
-
350
- When critique/audit findings lack explicit "Suggested command", map by category:
351
-
352
- | Finding Category | Command |
353
- |-----------------|---------|
354
- | Visual hierarchy, layout, spacing, alignment | layout |
355
- | Color, contrast, palette, monochromatic | colorize |
356
- | Typography, font, readability, hierarchy | typeset |
357
- | Animation, motion, transitions, micro-interaction | animate |
358
- | Copy, labels, error messages, UX writing | clarify |
359
- | Responsive, mobile, breakpoints, touch targets | adapt |
360
- | Performance, loading, speed, bundle, jank | optimize |
361
- | Complexity, overload, clutter, cognitive load | distill |
362
- | Bland, safe, generic, lacks personality | bolder |
363
- | Aggressive, overwhelming, loud, overstimulating | quieter |
364
- | Onboarding, empty state, first-run, activation | onboard |
365
- | Edge cases, i18n, error handling, overflow | harden |
366
- | Personality, memorability, joy, delight | delight |
367
-
368
- ### Commands Never Auto-Selected
369
-
370
- These are structural/interactive — never picked by the refine loop:
371
-
372
- | Command | Reason |
373
- |---------|--------|
374
- | teach | Project setup (run in S_SETUP only) |
375
- | shape | Requires user interview |
376
- | craft | Full build with multiple gates |
377
- | live | Interactive browser mode |
378
- | document | Generates DESIGN.md (setup) |
379
- | extract | Design system extraction (setup) |
380
- | overdrive | Requires explicit user vision |
381
- | critique | Gate command, not a fix |
382
- | audit | Gate command, not a fix |
383
- | design | Design system generation (setup) |
384
- | bridge | Format bridging (setup) |
385
-
386
- </quality_gate_routing>
387
-
388
- <error_codes>
389
- | Code | Severity | Description |
390
- |------|----------|-------------|
391
- | E001 | error | Impeccable skill not found in project |
392
- | E002 | error | No intent or target specified |
393
- | E003 | error | Invalid --chain type |
394
- | E004 | error | Invalid --enhance command |
395
- | E005 | error | Resume session not found |
396
- | W001 | warning | PRODUCT.md missing, prepending teach to chain |
397
- | W002 | warning | Max quality gate loops exceeded, forcing continue |
398
- | W003 | warning | Could not parse score from critique/audit output |
399
- | E006 | error | Python 3 not available for design system generation |
400
- | E007 | error | ui-search scripts not found at expected path |
401
- | W004 | warning | Design system generation failed, skipping design+bridge, falling back to shape full interview |
402
- | W005 | warning | Bridge transformation failed, continuing without DESIGN.md |
403
- | W008 | warning | Node.js not available for prototype rendering, falling back to text-only variant comparison |
404
- </error_codes>
405
-
406
- <success_criteria>
407
- - [ ] Intent classified and chain type selected
408
- - [ ] Context loaded (PRODUCT.md present or taught)
409
- - [ ] Session dir created with status.json before execution
410
- - [ ] All chain steps executed via Skill("maestro-impeccable", ...)
411
- - [ ] Quality gate evaluated with parsed scores
412
- - [ ] Refine loop executed when gate failed (if applicable)
413
- - [ ] Gate history and scores persisted to status.json
414
- - [ ] Final report with scores and trend presented
415
- - [ ] Progress tracked via TodoWrite throughout
416
- </success_criteria>