maestro-flow 0.3.49 → 0.4.1

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 (30) hide show
  1. package/.claude/agents/impeccable-agent.md +2 -2
  2. package/.claude/commands/maestro-analyze.md +2 -2
  3. package/.claude/commands/maestro-brainstorm.md +1 -1
  4. package/.claude/commands/maestro-impeccable.md +231 -111
  5. package/.claude/commands/maestro-roadmap.md +1 -1
  6. package/.claude/commands/maestro.md +3 -3
  7. package/.claude/skills/maestro-help/index/catalog.json +1 -1
  8. package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
  9. package/.codex/skills/maestro/SKILL.md +70 -28
  10. package/.codex/skills/maestro-brainstorm/SKILL.md +1 -1
  11. package/.codex/skills/maestro-help/catalog.json +1 -1
  12. package/.codex/skills/maestro-impeccable/SKILL.md +231 -117
  13. package/.codex/skills/maestro-roadmap/SKILL.md +1 -1
  14. package/chains/singles/ui-design.json +3 -3
  15. package/chains/ui-craft-build.json +2 -2
  16. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
  17. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  18. package/package.json +1 -1
  19. package/templates/workflows/specs/node-catalog.md +1 -1
  20. package/workflows/impeccable/design.md +12 -12
  21. package/workflows/impeccable/explore.md +5 -5
  22. package/workflows/maestro-chain-execute.md +2 -2
  23. package/workflows/maestro.codex.md +3 -3
  24. package/workflows/maestro.md +107 -117
  25. package/workflows/plan.md +1 -1
  26. package/workflows/ui-design.md +1 -1
  27. package/workflows/ui-style.md +1 -1
  28. package/.claude/commands/maestro-ui-craft.md +0 -416
  29. package/.claude/skills/maestro-impeccable/SKILL.md +0 -171
  30. package/.codex/skills/maestro-ui-craft/SKILL.md +0 -386
@@ -1,386 +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: Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
- ---
7
- <purpose>
8
- Orchestrate maestro-impeccable skill commands via intelligent intent routing + quality gate auto-iteration.
9
- Chain: Build → Evaluate → Auto-Refine → Re-evaluate → Verify.
10
-
11
- Core innovation: critique/audit scores drive automatic command selection and iteration loops.
12
- maestro-impeccable has 24 commands across 6 categories -- this command chains them into automated pipelines
13
- with quality gates that loop until design quality meets the threshold.
14
-
15
- Includes integrated design-explore: delegates to `impeccable explore` for multi-variant design system generation,
16
- HTML prototype rendering for visual comparison, and automatic bridge to DESIGN.md format.
17
-
18
- Prerequisite: maestro-impeccable skill available (auto-discovered by harness).
19
-
20
- Session: `.workflow/.maestro/ui-craft-{YYYYMMDD-HHmmss}/status.json`
21
- </purpose>
22
-
23
- <invariants>
24
- 1. **Session before execution** -- status.json created before any chain step runs
25
- 2. **All steps via Skill** -- every impeccable command dispatched through `$maestro-impeccable`
26
- 3. **Gate scores drive loops** -- refine loop auto-selects commands from P0/P1 findings, never from hardcoded lists
27
- 4. **Interactive gates respected** -- teach, shape, craft retain their user gates; never suppress
28
- </invariants>
29
-
30
- <context>
31
- $ARGUMENTS -- intent description or target path, with optional flags.
32
-
33
- **Keywords:** `continue`/`next` → resume previous session
34
-
35
- **Usage:**
36
-
37
- ```bash
38
- $maestro-ui-craft "create a landing page"
39
- $maestro-ui-craft "improve the dashboard" --chain improve
40
- $maestro-ui-craft "add animations" --chain enhance --enhance animate
41
- $maestro-ui-craft "production ready" --chain harden
42
- $maestro-ui-craft -c # resume previous session
43
- $maestro-ui-craft -y "create pricing page --chain build"
44
- ```
45
-
46
- **Flags:**
47
- - `--chain <type>` -- Force chain type: build, improve, enhance, harden, live
48
- - `--enhance <cmd>` -- Specific enhance command (animate|colorize|typeset|layout|delight|overdrive|bolder)
49
- - `--threshold <score>` -- Critique pass threshold (default: 26/40). Audit threshold auto-computed as threshold*0.5
50
- - `--max-loops <n>` -- Maximum quality gate iterations (default: 3)
51
- - `-c` / `--continue` -- Resume previous ui-craft session
52
- - `-y` -- Auto mode: auto-select at ambiguous routing, skip confirmations where maestro-impeccable allows
53
- - `--skip-design-explore` / `--skip-design` -- Skip design-explore (prototype comparison) and bridge (use existing DESIGN.md or full shape interview)
54
- - `--styles <N>` -- Number of design system variants to generate (2-5, default 3). Only used in build chain design step
55
- - `--stack <stack>` -- Tech stack for supplementary guidelines (default: html-tailwind). Passed to ui-search
56
- </context>
57
-
58
- <chains>
59
-
60
- ### Chain Definitions
61
-
62
- | Chain | Sequence | Gate Condition |
63
- |-------|----------|----------------|
64
- | **build** | teach? → **design_explore?** → shape → craft → **critique** → [refine loop] → audit → polish | critique >= threshold AND P0 == 0 |
65
- | **improve** | **critique** → [refine loop] → polish → audit | critique >= threshold AND P0 == 0 |
66
- | **enhance** | {cmd} → **critique** → polish (if needed) | critique >= threshold |
67
- | **harden** | harden → **audit** → polish | audit >= threshold*0.5 |
68
- | **live** | live | -- (interactive, no gate) |
69
-
70
- - `teach?` -- conditional: only if PRODUCT.md missing/placeholder
71
- - `design_explore?` -- conditional: only if DESIGN.md missing AND `--skip-design-explore` not set. Delegates to `impeccable explore` which handles variant generation, prototype rendering, visual comparison, user selection/mix, AND bridge to DESIGN.md internally
72
- - `[refine loop]` -- quality gate loop: extract suggested commands from critique → execute → re-critique
73
-
74
- ### Intent → Chain Routing
75
-
76
- | Intent Pattern | Chain |
77
- |---------------|-------|
78
- | create, build, new, landing, feature, page | build |
79
- | design, style, theme, visual, design system | build |
80
- | improve, fix, iterate, better, optimize | improve |
81
- | animate, color, type, bold, delight, enhance | enhance |
82
- | production, harden, ship, edge case, i18n | harden |
83
- | live, browser, variant | live |
84
-
85
- Explicit `--chain` overrides routing. Ambiguous + no `-y` → `request_user_input`.
86
-
87
- </chains>
88
-
89
- <state_machine>
90
-
91
- <states>
92
- S_PARSE -- parse args, intent classification, chain selection PERSIST: --
93
- S_RESUME -- scan existing ui-craft sessions, resume execution PERSIST: --
94
- S_SETUP -- load context, check PRODUCT.md PERSIST: --
95
- S_CREATE -- create session + status.json PERSIST: session (full)
96
- S_DESIGN_EXPLORE -- delegate to impeccable explore: multi-variant generation, prototype comparison, selection/mix, auto bridge to DESIGN.md PERSIST: explore_completed, design_md_path
97
- S_CHAIN -- execute chain steps in sequence PERSIST: step progress, executed commands
98
- S_GATE -- quality gate: parse scores, decide PERSIST: scores, loop count
99
- S_REFINE -- execute auto-selected refine commands PERSIST: refine commands, loop state
100
- S_REPORT -- final report + trend PERSIST: final scores, status
101
- </states>
102
-
103
- <transitions>
104
-
105
- S_PARSE:
106
- → S_RESUME WHEN: -c / --continue flag OR keyword "continue"/"next"
107
- → S_SETUP WHEN: chain selected (explicit or routed)
108
- → S_PARSE WHEN: ambiguous AND not -y DO: request_user_input
109
- → END WHEN: no intent AND no target → E002
110
-
111
- S_RESUME:
112
- → S_CHAIN WHEN: session found DO: A_LOCATE_SESSION
113
- → END WHEN: no session found → E005
114
-
115
- S_SETUP:
116
- → S_CREATE DO: A_LOAD_CONTEXT
117
-
118
- S_CREATE:
119
- → S_CHAIN DO: A_CREATE_SESSION
120
-
121
- S_CHAIN:
122
- → S_DESIGN_EXPLORE WHEN: current step is 'design_explore' AND DESIGN.md missing AND --skip-design-explore not set AND --skip-design not set
123
- → S_GATE WHEN: current step is gate command (critique/audit)
124
- → S_CHAIN WHEN: step is design_explore but skip conditions met → advance
125
- → S_CHAIN WHEN: step is normal command → execute → advance
126
- → S_REPORT WHEN: all steps complete
127
-
128
- S_DESIGN_EXPLORE:
129
- → S_CHAIN WHEN: explore completed (DESIGN.md produced) → advance to shape
130
- → S_CHAIN WHEN: explore failed → W004 → advance to shape (full interview fallback)
131
-
132
- S_GATE:
133
- → S_CHAIN WHEN: PASS (score >= threshold AND P0 == 0) → advance
134
- → S_REFINE WHEN: FAIL (score < threshold OR P0 > 0)
135
- → S_CHAIN WHEN: max loops exceeded → W002 → force advance
136
-
137
- S_REFINE:
138
- → S_GATE DO: execute auto-selected commands → re-run gate command
139
- GUARD: loop_count < max_loops
140
-
141
- S_REPORT:
142
- → END DO: A_FINAL_REPORT
143
-
144
- </transitions>
145
-
146
- <actions>
147
-
148
- ### A_LOCATE_SESSION
149
-
150
- 1. Scan `.workflow/.maestro/ui-craft-*/status.json`, filter `status == "running"`, sort DESC
151
- 2. Take most recent; load into context as current session
152
- 3. Resume from `current_step` position
153
-
154
- ### A_LOAD_CONTEXT
155
-
156
- 1. Trigger impeccable context loading: `$maestro-impeccable teach`
157
- - Impeccable's own setup auto-discovers and loads PRODUCT.md / DESIGN.md from `.workflow/impeccable/`
158
- - If PRODUCT.md missing/placeholder, impeccable teach handles the interview
159
- 2. If teach was not in the chain but PRODUCT.md is missing:
160
- - Prepend `teach` to chain start
161
- - Announce: W001
162
- 3. Context is now loaded for subsequent commands
163
-
164
- ### A_CREATE_SESSION
165
-
166
- 1. Read `.workflow/state.json` for project context (phase, milestone)
167
- 2. Create `.workflow/.maestro/ui-craft-{YYYYMMDD-HHmmss}/status.json`:
168
- ```json
169
- { "session_id": "ui-craft-{ts}", "source": "ui-craft", "intent": "...",
170
- "chain_type": "build|improve|enhance|harden|live", "target": "...",
171
- "auto_mode": false, "threshold": 26, "max_loops": 3,
172
- "steps": [{ "index": 0, "command": "shape", "status": "pending" }],
173
- "gate_history": [], "loop_count": 0,
174
- "current_step": 0, "status": "running",
175
- "created_at": "ISO-8601", "updated_at": "ISO-8601" }
176
- ```
177
- 3. Write status.json before executing any step
178
-
179
- ### A_DESIGN_EXPLORE
180
-
181
- Delegate to impeccable explore as a black-box command. The explore command internally handles:
182
- variant generation, prototype rendering, visual comparison, user review, mix protocol, rejected variant harvest, bridge to DESIGN.md, and spec registration.
183
-
184
- 1. Execute: `$maestro-impeccable explore --styles {styles_count}`
185
- 2. On completion: verify `.workflow/impeccable/DESIGN.md` exists
186
- 3. Update status.json: `explore_completed: true`, `design_md_path`
187
-
188
- ### A_FINAL_REPORT
189
-
190
- 1. Read critique trend if available (impeccable's critique persists snapshots automatically)
191
- 2. Update status.json with `status: "completed"` and final scores
192
- 3. Present summary table with scores, iterations, commands executed
193
-
194
- </actions>
195
-
196
- </state_machine>
197
-
198
- <execution>
199
-
200
- ## 1. Parse & Route
201
-
202
- 1. If `-c` / `--continue` or keyword "continue"/"next" → S_RESUME
203
- 2. If `--chain` present → use directly
204
- 3. Otherwise → match $ARGUMENTS against intent patterns
205
- 4. If `--enhance` present → chain = enhance, cmd = --enhance value
206
- 5. For enhance chain without `--enhance` → infer from intent
207
- 6. Ambiguous + no `-y` → `request_user_input`:
208
- ```json
209
- { "questions": [{ "id": "chain_select", "header": "Chain", "question": "Which workflow?", "options": [
210
- { "label": "Build (Recommended)", "description": "New UI from scratch: shape → craft → critique → refine → audit" },
211
- { "label": "Improve", "description": "Iterate existing: critique → refine → polish → audit" },
212
- { "label": "Enhance", "description": "Targeted improvement: specific command → critique → polish" },
213
- { "label": "Harden", "description": "Production-ready: harden → audit → polish" }
214
- ]}] }
215
- ```
216
-
217
- ## 2. Setup Context
218
-
219
- 1. If chain starts with `teach` → execute it first, maestro-impeccable handles context loading internally
220
- 2. Otherwise → invoke `$maestro-impeccable` with no args to trigger setup (context + register)
221
- 3. If maestro-impeccable reports PRODUCT.md missing → prepend teach, execute, then resume
222
-
223
- ## 3. Create Session
224
-
225
- Write `.workflow/.maestro/ui-craft-{ts}/status.json` with chain steps before any execution.
226
-
227
- ## 4. Execute Chain
228
-
229
- For each step in chain, sequentially:
230
-
231
- ```
232
- Step {n}/{total}: $maestro-impeccable {command} {target}
233
- ```
234
-
235
- After each step: update status.json `current_step` and step `status`.
236
-
237
- **Step-specific logic:**
238
-
239
- ### 4a. Design-explore step (build chain only)
240
-
241
- When current step is `design_explore`:
242
-
243
- 1. Check if `.workflow/impeccable/DESIGN.md` already exists → skip, advance to shape
244
- 2. Check if `--skip-design-explore` or `--skip-design` is set → skip, advance to shape
245
- 3. Otherwise → execute A_DESIGN_EXPLORE:
246
- - `$maestro-impeccable explore --styles {styles_count}`
247
- - explore handles everything internally: variant generation, prototype rendering, visual comparison, user selection/mix, bridge to DESIGN.md, spec registration
248
- 4. On completion → verify DESIGN.md exists, advance to shape
249
- 5. On failure → W004, advance to shape (full interview fallback, no DESIGN.md)
250
-
251
- ### 4c. Normal steps
252
-
253
- - `teach`, `shape`, `craft` are interactive -- do NOT suppress their user gates
254
- - After `teach` completes → re-run context loader for fresh PRODUCT.md
255
- - After `craft` completes → the build exists, ready for evaluation
256
- - Gate steps (critique/audit) → transition to quality gate logic (Section 5)
257
-
258
- ## 5. Quality Gate
259
-
260
- When chain reaches a gate step (critique or audit):
261
-
262
- ### 5a. Execute Gate Command
263
-
264
- ```
265
- $maestro-impeccable critique {target}
266
- ```
267
- or
268
- ```
269
- $maestro-impeccable audit {target}
270
- ```
271
-
272
- ### 5b. Parse Score
273
-
274
- From critique output, extract:
275
- - **score**: Nielsen's total (N/40) -- from "**Total** | | **N/40**" row
276
- - **P0_count**: count of `[P0]` tagged findings
277
- - **P1_count**: count of `[P1]` tagged findings
278
- - **suggested_commands**: list of "$maestro-impeccable <cmd>" from "Suggested command" fields
279
-
280
- From audit output, extract:
281
- - **score**: dimension total (N/20) -- from "**Total** | | **N/20**" row
282
- - **P0_count**: count of `[P0]` findings
283
-
284
- ### 5c. Evaluate
285
-
286
- ```
287
- critique_pass = (score >= threshold) AND (P0_count == 0)
288
- audit_pass = (score >= threshold * 0.5) AND (P0_count == 0)
289
- ```
290
-
291
- ### 5d. On PASS
292
-
293
- → advance to next chain step
294
-
295
- ### 5e. On FAIL
296
-
297
- 1. Collect suggested commands from P0/P1 findings
298
- 2. If no suggestions found → use fallback mapping (see quality_gate_routing)
299
- 3. De-duplicate, cap at 3 commands per iteration
300
- 4. Sort: P0-suggested first
301
- 5. Execute each: `$maestro-impeccable {cmd} {target}`
302
- 6. Re-run gate command (critique/audit)
303
- 7. Increment loop_count
304
- 8. Append to status.json `gate_history`
305
-
306
- ### 5f. On Max Loops Exceeded
307
-
308
- → force advance to next chain step with warning
309
-
310
- ## 6. Final Report
311
-
312
- Present summary: chain type, critique score with trend, audit score, loop count, commands executed, pass/partial status.
313
-
314
- Update status.json: `status: "completed"`, `final_scores`, `completed_at`.
315
-
316
- If issues remain → suggest: "Run `$maestro-ui-craft --chain improve {target}` to continue iteration."
317
-
318
- </execution>
319
-
320
- <quality_gate_routing>
321
-
322
- ### Finding → Command Fallback Mapping
323
-
324
- When critique/audit findings lack explicit "Suggested command", map by category:
325
-
326
- | Finding Category | Command |
327
- |-----------------|---------|
328
- | Visual hierarchy, layout, spacing, alignment | layout |
329
- | Color, contrast, palette, monochromatic | colorize |
330
- | Typography, font, readability, hierarchy | typeset |
331
- | Animation, motion, transitions, micro-interaction | animate |
332
- | Copy, labels, error messages, UX writing | clarify |
333
- | Responsive, mobile, breakpoints, touch targets | adapt |
334
- | Performance, loading, speed, bundle, jank | optimize |
335
- | Complexity, overload, clutter, cognitive load | distill |
336
- | Bland, safe, generic, lacks personality | bolder |
337
- | Aggressive, overwhelming, loud, overstimulating | quieter |
338
- | Onboarding, empty state, first-run, activation | onboard |
339
- | Edge cases, i18n, error handling, overflow | harden |
340
- | Personality, memorability, joy, delight | delight |
341
-
342
- ### Commands Never Auto-Selected
343
-
344
- | Command | Reason |
345
- |---------|--------|
346
- | teach | Project setup (run in S_SETUP only) |
347
- | shape | Requires user interview |
348
- | craft | Full build with multiple gates |
349
- | live | Interactive browser mode |
350
- | document | Generates DESIGN.md (setup) |
351
- | extract | Design system extraction (setup) |
352
- | overdrive | Requires explicit user vision |
353
- | critique | Gate command, not a fix |
354
- | audit | Gate command, not a fix |
355
- | explore | Design system exploration (setup, has own user interaction) |
356
-
357
- </quality_gate_routing>
358
-
359
- <error_codes>
360
- | Code | Severity | Description |
361
- |------|----------|-------------|
362
- | E001 | error | maestro-impeccable skill not found |
363
- | E002 | error | No intent or target specified |
364
- | E003 | error | Invalid --chain type |
365
- | E004 | error | Invalid --enhance command |
366
- | E005 | error | Resume session not found |
367
- | W001 | warning | PRODUCT.md missing, prepending teach to chain |
368
- | W002 | warning | Max quality gate loops exceeded, forcing continue |
369
- | W003 | warning | Could not parse score from critique/audit output |
370
- | E006 | error | Python 3 not available for design system generation |
371
- | E007 | error | ui-search scripts not found at expected path |
372
- | W004 | warning | Design system generation failed, skipping design+bridge |
373
- | W005 | warning | Bridge transformation failed, continuing without DESIGN.md |
374
- | W008 | warning | Node.js not available for prototype rendering, falling back to text-only variant comparison |
375
- </error_codes>
376
-
377
- <success_criteria>
378
- - [ ] Intent classified and chain type selected
379
- - [ ] Context loaded (PRODUCT.md present or taught)
380
- - [ ] Session dir created with status.json before execution
381
- - [ ] All chain steps executed via $maestro-impeccable
382
- - [ ] Quality gate evaluated with parsed scores
383
- - [ ] Refine loop executed when gate failed (if applicable)
384
- - [ ] Gate history and scores persisted to status.json
385
- - [ ] Final report with scores and trend presented
386
- </success_criteria>