maestro-flow 0.5.40 → 0.5.42

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 (101) hide show
  1. package/.agents/skills/maestro-analyze/SKILL.md +0 -42
  2. package/.agents/skills/maestro-blueprint/SKILL.md +0 -22
  3. package/.agents/skills/maestro-brainstorm/SKILL.md +4 -24
  4. package/.agents/skills/maestro-execute/SKILL.md +1 -1
  5. package/.agents/skills/maestro-grill/SKILL.md +0 -16
  6. package/.agents/skills/maestro-milestone-audit/SKILL.md +0 -15
  7. package/.agents/skills/maestro-plan/SKILL.md +5 -62
  8. package/.agents/skills/maestro-roadmap/SKILL.md +0 -8
  9. package/.agents/skills/odyssey-debug/SKILL.md +109 -143
  10. package/.agents/skills/odyssey-improve/SKILL.md +127 -141
  11. package/.agents/skills/odyssey-planex/SKILL.md +140 -231
  12. package/.agents/skills/odyssey-review-test-fix/SKILL.md +136 -90
  13. package/.agents/skills/odyssey-ui/SKILL.md +123 -143
  14. package/.agents/skills/team-adversarial-swarm/workflows/wf-swarm-synthesize.js +248 -248
  15. package/.agents/skills/team-coordinate/specs/role-spec-template.md +197 -198
  16. package/.agents/skills/team-roadmap-dev/SKILL.md +164 -164
  17. package/.agents/skills/team-roadmap-dev/specs/team-config.json +1 -1
  18. package/.agents/skills/team-swarm/roles/analyst/role.md +172 -176
  19. package/.agy/skills/maestro-analyze/SKILL.md +0 -42
  20. package/.agy/skills/maestro-blueprint/SKILL.md +0 -22
  21. package/.agy/skills/maestro-brainstorm/SKILL.md +4 -24
  22. package/.agy/skills/maestro-execute/SKILL.md +1 -1
  23. package/.agy/skills/maestro-grill/SKILL.md +0 -16
  24. package/.agy/skills/maestro-milestone-audit/SKILL.md +0 -15
  25. package/.agy/skills/maestro-plan/SKILL.md +5 -62
  26. package/.agy/skills/maestro-roadmap/SKILL.md +0 -8
  27. package/.agy/skills/odyssey-debug/SKILL.md +109 -143
  28. package/.agy/skills/odyssey-improve/SKILL.md +127 -141
  29. package/.agy/skills/odyssey-planex/SKILL.md +140 -231
  30. package/.agy/skills/odyssey-review-test-fix/SKILL.md +136 -90
  31. package/.agy/skills/odyssey-ui/SKILL.md +123 -143
  32. package/.agy/skills/team-adversarial-swarm/workflows/wf-swarm-synthesize.js +248 -248
  33. package/.agy/skills/team-coordinate/specs/role-spec-template.md +197 -198
  34. package/.agy/skills/team-roadmap-dev/SKILL.md +141 -153
  35. package/.agy/skills/team-roadmap-dev/specs/team-config.json +1 -1
  36. package/.agy/skills/team-swarm/roles/analyst/role.md +172 -176
  37. package/.claude/commands/maestro-analyze.md +0 -42
  38. package/.claude/commands/maestro-blueprint.md +0 -22
  39. package/.claude/commands/maestro-brainstorm.md +4 -24
  40. package/.claude/commands/maestro-execute.md +1 -1
  41. package/.claude/commands/maestro-grill.md +0 -16
  42. package/.claude/commands/maestro-milestone-audit.md +0 -15
  43. package/.claude/commands/maestro-plan.md +5 -62
  44. package/.claude/commands/maestro-roadmap.md +0 -8
  45. package/.claude/commands/odyssey-debug.md +109 -143
  46. package/.claude/commands/odyssey-improve.md +127 -141
  47. package/.claude/commands/odyssey-planex.md +140 -231
  48. package/.claude/commands/odyssey-review-test-fix.md +136 -90
  49. package/.claude/commands/odyssey-ui.md +123 -143
  50. package/.claude/skills/team-adversarial-swarm/workflows/wf-swarm-synthesize.js +248 -248
  51. package/.claude/skills/team-coordinate/specs/role-spec-template.md +197 -198
  52. package/.claude/skills/team-roadmap-dev/SKILL.md +169 -169
  53. package/.claude/skills/team-roadmap-dev/specs/team-config.json +1 -1
  54. package/.claude/skills/team-swarm/roles/analyst/role.md +181 -185
  55. package/.codex/skills/odyssey-debug/SKILL.md +114 -169
  56. package/.codex/skills/odyssey-improve/SKILL.md +144 -188
  57. package/.codex/skills/odyssey-planex/SKILL.md +162 -242
  58. package/.codex/skills/odyssey-review-test-fix/SKILL.md +96 -90
  59. package/.codex/skills/odyssey-ui/SKILL.md +128 -173
  60. package/dashboard/dist-server/src/commands/install-backend.js +31 -16
  61. package/dashboard/dist-server/src/commands/install-backend.js.map +1 -1
  62. package/dashboard/dist-server/src/core/component-defs.js +25 -0
  63. package/dashboard/dist-server/src/core/component-defs.js.map +1 -1
  64. package/dashboard/dist-server/src/tools/spec-loader.js +32 -20
  65. package/dashboard/dist-server/src/tools/spec-loader.js.map +1 -1
  66. package/dashboard/dist-server/src/tools/spec-seeds.d.ts +8 -0
  67. package/dashboard/dist-server/src/tools/spec-seeds.js +114 -0
  68. package/dashboard/dist-server/src/tools/spec-seeds.js.map +1 -1
  69. package/dist/src/commands/install-backend.d.ts.map +1 -1
  70. package/dist/src/commands/install-backend.js +31 -16
  71. package/dist/src/commands/install-backend.js.map +1 -1
  72. package/dist/src/commands/spec.d.ts.map +1 -1
  73. package/dist/src/commands/spec.js +13 -3
  74. package/dist/src/commands/spec.js.map +1 -1
  75. package/dist/src/core/component-defs.d.ts.map +1 -1
  76. package/dist/src/core/component-defs.js +25 -0
  77. package/dist/src/core/component-defs.js.map +1 -1
  78. package/dist/src/tools/spec-init.d.ts +4 -3
  79. package/dist/src/tools/spec-init.d.ts.map +1 -1
  80. package/dist/src/tools/spec-init.js +9 -5
  81. package/dist/src/tools/spec-init.js.map +1 -1
  82. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  83. package/dist/src/tools/spec-loader.js +32 -20
  84. package/dist/src/tools/spec-loader.js.map +1 -1
  85. package/dist/src/tools/spec-seeds.d.ts +8 -0
  86. package/dist/src/tools/spec-seeds.d.ts.map +1 -1
  87. package/dist/src/tools/spec-seeds.js +114 -0
  88. package/dist/src/tools/spec-seeds.js.map +1 -1
  89. package/dist/src/utils/update-notices.js +11 -0
  90. package/dist/src/utils/update-notices.js.map +1 -1
  91. package/package.json +1 -1
  92. package/workflows/agy-instructions.md +147 -161
  93. package/workflows/claude-instructions.md +100 -48
  94. package/workflows/codex-instructions.md +147 -161
  95. package/workflows/execute.md +4 -3
  96. package/workflows/explore-usage.md +41 -81
  97. package/workflows/grill.md +11 -0
  98. package/workflows/milestone-audit.md +8 -0
  99. package/workflows/odyssey-base-codex.md +305 -0
  100. package/workflows/odyssey-base.md +89 -91
  101. package/workflows/plan.md +6 -0
@@ -15,46 +15,42 @@ allowed-tools:
15
15
  <base>@~/.maestro/workflows/odyssey-base.md</base>
16
16
 
17
17
  <purpose>
18
- Deep UI polish cycle: survey → 6-dimension audit → divergent creative exploration →
19
- fix verify generalize discover → persist. Every pixel is a learning opportunity.
18
+ survey → 6-dimension audit → divergent exploration → fix → verify → generalize → discover → persist.
19
+ Exhaustive iteration until all findings addressed or deferred.
20
20
  </purpose>
21
21
 
22
22
  <boundary>
23
- **范围内:** 目标组件/页面的视觉体验优化审查 6 维度 发散探索 修复 泛化到兄弟组件
24
- **范围外:** 后端逻辑 / 数据模型 / API 设计 / 业务规则 → `/odyssey-planex` | 深度 bug 调查 → `/odyssey-debug` | 代码质量审查 → `/odyssey-review-test-fix`
25
- **探索自由度:** 边界内最大自由 — S_DIVERGE 阶段鼓励发散思维,不设创意上限。审查 + 发散可发现任何视觉/交互/可访问性细节。在约束下尽可能完善每个像素。
26
- **Zero-residual principle:** Every finding/idea MUST have a concrete action (fix / issue / decision). "Report and shelve" is not allowed. "Pre-existing design debt" is not a valid skip reason if discovered within scope, it must be addressed.
27
- ⚠️ **Decision gate** — ONLY these qualify as decisions (not fixes):
23
+ **In scope:** Target component/page visual experience optimization audit 6 dimensions, divergent exploration, fix, generalize to sibling components.
24
+ **Out of scope:** Backend/data/API → `/odyssey-planex` | Deep bug investigation → `/odyssey-debug` | Code quality review → `/odyssey-review-test-fix`
25
+
26
+ **Decision gate**ONLY these qualify as decisions:
28
27
  - Brand/style direction requiring human creative judgment
29
28
  - Layout restructuring that changes user flow significantly
30
29
  - Requires new design tokens or breaking component API
31
- ❌ "Unsure how to fix", "Large scope", "Pre-existing issue" are NOT valid decision reasons — either fix it, or explain specifically why it's unfixable
32
30
  </boundary>
33
31
 
34
32
  <context>
35
- $ARGUMENTS — target and optional flags.
33
+ $ARGUMENTS
36
34
 
37
35
  **Target resolution:** Component path → audit component | Page/route → audit page | `staged`/`HEAD` → diff UI changes | Feature area → resolve to components/pages
38
36
 
39
- **Flags:**
40
- | Flag | Effect | Default |
41
- |------|--------|---------|
42
- | `--dimensions <list>` | Comma-separated subset of 6 dimensions | all 6 |
43
- | `--fix-threshold <severity>` | 修复到哪个 severity 为止 | all |
44
- | `--skip-fix` | Audit + diverge only, no code changes | false |
45
- | `--skip-generalize` | Skip S_GENERALIZE and S_DISCOVER | false |
46
- | `--auto` | CLI delegates without confirmation | false |
47
- | `-y` | Auto-confirm all decisions (see appendix) | false |
48
- | `-c` | Resume most recent session | — |
49
- | `--heartbeat` | Enable heartbeat progress reporting | false |
37
+ **Flags:** `--dimensions <list>` dimension subset | `--fix-threshold <severity>` | `--skip-fix` audit+diverge only | `--skip-generalize` skip generalize+discover | `--auto` no delegate confirmation | `-y` auto-confirm | `-c` resume | `--heartbeat` /loop heartbeat
50
38
 
51
- **Session**: `SESSION_DIR = .workflow/scratch/{YYYYMMDD}-ui-odyssey-{slug}/`
39
+ **Session**: `.workflow/scratch/{YYYYMMDD}-ui-odyssey-{slug}/`
40
+ **Output**: `session.json` | `evidence.ndjson` | `understanding.md`
52
41
 
53
- **Output — 3 files:** `session.json` (state + audit/diverge results + patterns + phase_goals) | `evidence.ndjson` (phases: survey, audit, diverge, fix, discovery, decision, self-iteration) | `understanding.md` (8-section narrative)
42
+ **session.json ui-specific fields:**
43
+ ```json
44
+ { "target": "", "dimensions": [],
45
+ "audit_result": { "dimensions_audited": 0, "finding_count": 0, "severity_distribution": {} },
46
+ "diverge_result": { "improvements_proposed": 0, "creative_ideas": 0 },
47
+ "patterns": [], "confirmation": null, "generalization_stats": null }
48
+ ```
54
49
 
55
- **session.json unique fields:** `target`, `dimensions`, `audit_result` {dimensions_audited, finding_count, severity_distribution}, `diverge_result` {improvements_proposed, creative_ideas}, `patterns[]` {id, source_finding, layer, signature, description, risk, fix_template, confidence}, `confirmation` {test_result, cli_review, overall}, `generalization_stats` {patterns_extracted, total_hits, cross_layer_confirmed, regression_risks, by_layer, deepening_triggered}
50
+ **evidence.ndjson phases:** `survey|audit|diverge|fix|discovery|decision|self-iteration`
56
51
 
57
52
  **phase_goals[]:**
53
+
58
54
  | ID | Goal | Phase | skip_when |
59
55
  |----|------|-------|-----------|
60
56
  | G1 | Survey completed | S_SURVEY | — |
@@ -65,89 +61,85 @@ $ARGUMENTS — target and optional flags.
65
61
  | G6 | Discoveries triaged | S_DISCOVER | skip_generalize |
66
62
  | G7 | Learnings persisted | S_RECORD | — |
67
63
 
68
- **understanding.md:** §1 Target & Design Context | §2 Survey | §3 Audit | §4 Diverge | §5 Verify | §6 Generalize | §7 Discover | §8 Learnings
64
+ **understanding.md 8 sections:**
65
+ 1. Target & Design Context ← S_INTAKE | 2. Survey ← S_SURVEY | 3. Audit ← S_AUDIT
66
+ 4. Diverge ← S_DIVERGE | 5. Verify ← S_VERIFY | 6. Generalize ← S_GENERALIZE
67
+ 7. Discover ← S_DISCOVER | 8. Learnings ← S_RECORD
69
68
 
70
- ### Pre-load(可选,缺失不阻塞)
71
- ARCHITECTURE.md | `maestro search "<target>" --json` (top 5) | `maestro load --type spec --category ui` | `maestro load --type spec --category coding` | `maestro search --category ui` → load knowhow | Glob prior sessions
69
+ **Knowledge Persistence categories (section 8):**
72
70
 
73
- ### Knowledge Persistence(S_RECORD 写入 understanding.md §8)
74
- | 分类 | 写入内容 | 后续建议命令 |
75
- |------|---------|-------------|
76
- | 设计 pattern | 组件模式 + 适用场景 + token 引用 | `/spec-add ui "..."` |
77
- | 交互规范 | 状态定义 + 转场规则 + 反馈模式 | `/spec-add ui "..."` |
78
- | 可访问性规则 | WCAG 要求 + 实现方案 | `/spec-add ui "..."` |
79
- | 可复用泛化 pattern | pattern 签名 + 应用范围 | `/spec-add coding "..."` |
71
+ | Category | Content | Follow-up |
72
+ |----------|---------|-----------|
73
+ | Design pattern | Component pattern + applicable scenarios + token references | `/spec-add ui` |
74
+ | Interaction spec | State definitions + transition rules + feedback patterns | `/spec-add ui` |
75
+ | Accessibility rule | WCAG requirement + implementation approach | `/spec-add ui` |
76
+ | Reusable generalization pattern | Pattern signature + application scope | `/spec-add coding` |
80
77
  </context>
81
78
 
79
+ <invariants>
80
+ 1-5 in base. UI-specific:
81
+ 6. **Browser is truth** — verify in real rendering, not just code review
82
+ 7. **Diverge before converge** — explore creatively first, then implement methodically
83
+ </invariants>
84
+
82
85
  <self_iteration>
83
- 适用阶段: S_SURVEY, S_AUDIT, S_DIVERGE, S_GENERALIZE
86
+ Applies to: **S_SURVEY, S_AUDIT, S_DIVERGE, S_GENERALIZE**. Logic in base.
84
87
  </self_iteration>
85
88
 
86
89
  <state_machine>
87
90
 
88
91
  <states>
89
- S_INTAKE Parse target, load design context, resume session PERSIST: session.json + understanding.md §1
90
- S_SURVEY — Visual landscape: design tokens, pattern inventory PERSIST: evidence.ndjson (survey) + understanding.md §2
91
- S_AUDIT — 6-dimension parallel review PERSIST: evidence.ndjson (audit) + understanding.md §3
92
- S_DIVERGE — Divergent creative exploration: polish + delight PERSIST: evidence.ndjson (diverge) + understanding.md §4
93
- S_FIX — Implement improvements (skip if --skip-fix) PERSIST: code changes + evidence.ndjson (fix)
94
- S_VERIFY — Visual verification + test (skip if --skip-fix) PERSIST: session.json.confirmation + understanding.md §5
95
- S_GENERALIZE — Pattern extraction + 4-agent scan (skip if --skip-gen) PERSIST: session.json.patterns + understanding.md §6
96
- S_DISCOVER — Classify hits, create issues (skip if --skip-gen) PERSIST: evidence.ndjson (discovery|decision) + understanding.md §7
97
- S_RECORD — Design knowledge persistence + final report PERSIST: understanding.md §8 + spec entries
92
+ S_INTAKE S_SURVEY S_AUDIT S_DIVERGE S_FIX S_VERIFY → S_GENERALIZE → S_DISCOVER → S_RECORD → END
98
93
  </states>
99
94
 
100
95
  <transitions>
101
- S_INTAKE:
102
- S_INTAKE WHEN -c + session found DO A_RESUME
103
- S_SURVEY WHEN target resolved DO A_INTAKE
104
- → S_INTAKE WHEN no target DO AskUserQuestion
105
-
106
- S_SURVEY S_AUDIT DO A_SURVEY
107
- S_AUDIT → S_DIVERGE DO A_AUDIT
108
-
109
- S_DIVERGE:
110
- S_FIX WHEN !skip_fix AND actionable findings/ideas DO A_DIVERGE
111
- → S_GENERALIZE WHEN (skip_fix OR no actionable) AND !skip_gen DO A_DIVERGE
112
- S_RECORD WHEN (skip_fix OR no actionable) AND skip_gen DO A_DIVERGE
113
-
114
- S_FIX S_VERIFY DO A_FIX
115
- S_VERIFY:
116
- → S_GENERALIZE WHEN verified AND !skip_gen DO A_VERIFY
117
- S_RECORD WHEN verified AND skip_gen DO A_VERIFY
118
- S_FIX WHEN needs_rework DO A_VERIFY
119
-
120
- S_GENERALIZE:
121
- S_DISCOVER WHEN hits found DO A_GENERALIZE
122
- → S_RECORD WHEN no hits DO A_GENERALIZE
123
-
124
- S_DISCOVER S_AUDIT : new component to audit → cross_phase_loops++
125
- S_DISCOVER → S_FIX : fixable sibling, !skip_fix → cross_phase_loops++
126
- S_DISCOVER → S_RECORD : remaining_actionable == 0 OR loops >= max_loops (MUST log each unfixed item)
127
-
128
- S_RECORD → END DO A_RECORD
96
+ S_INTAKE → S_INTAKE : -c + session found → A_RESUME
97
+ S_INTAKE S_SURVEY : target resolved A_INTAKE
98
+ S_INTAKE S_INTAKE : no target AskUserQuestion
99
+
100
+ S_SURVEY → S_AUDIT : complete
101
+ S_AUDIT S_DIVERGE : complete
102
+
103
+ S_DIVERGE → S_FIX : !skip_fix AND actionable findings/ideas
104
+ S_DIVERGE → S_GENERALIZE : (skip_fix OR no actionable) AND !skip_generalize
105
+ S_DIVERGE S_RECORD : (skip_fix OR no actionable) AND skip_generalize
106
+
107
+ S_FIX S_VERIFY : fix implemented
108
+ S_VERIFY → S_GENERALIZE : verified, !skip_generalize
109
+ S_VERIFY S_RECORD : verified, skip_generalize
110
+ S_VERIFY → S_FIX : needs_rework
111
+
112
+ S_GENERALIZE S_DISCOVER : similar code found
113
+ S_GENERALIZE S_RECORD : no similar code
114
+
115
+ S_DISCOVER → S_AUDIT : new component to audit → cross_phase_loops++
116
+ S_DISCOVER S_FIX : fixable sibling, !skip_fix → cross_phase_loops++
117
+ S_DISCOVER → S_RECORD : remaining_actionable == 0 OR loops >= max_loops → log per-item reasons
118
+
119
+ S_RECORD END : complete
129
120
  </transitions>
130
121
 
131
122
  <actions>
132
123
 
133
124
  ### A_INTAKE
134
125
  1. Parse arguments: target, flags, `--dimensions` subset
135
- 2. Generate slug, create `SESSION_DIR`
136
- 3. Pre-load: `maestro search` + Glob prior sessions + ARCHITECTURE.md + spec load ui/coding
137
- 4. Derive `phase_goals[]` from flags (apply `skip_when`)
138
- 5. Write `session.json` + `understanding.md` §1
139
- 6. Emit Goal Prompt (see Appendix)
140
- 📌 `git commit -m "odyssey-ui({slug}): INTAKE — 目标解析"`
126
+ 2. Generate slug, create SESSION_DIR
127
+ 3. `maestro search` + Glob prior sessions + ARCHITECTURE.md + spec load ui/coding
128
+ 4. Derive `phase_goals[]` from flags
129
+ 5. Write `session.json` + `understanding.md` section 1, emit Goal Prompt
130
+
131
+ Commit: `"odyssey-ui({slug}): INTAKE — parse target and load context"`
141
132
 
142
133
  ### A_RESUME
143
- Find latest session via Glob → read `session.json` → display summary → jump to `current_state`.
134
+ Glob latest session → read `session.json` → jump to `current_state`.
144
135
 
145
136
  ### A_SURVEY
146
137
  1. **Design system inventory**: Scan for design tokens, CSS variables, theme imports
147
138
  2. **Current state analysis**: Styling patterns, layout strategy, component hierarchy
148
- 3. **CLI-assisted** (optional): `maestro delegate` with `--role analyze` — survey tokens, spacing, typography, hierarchy, consistency
149
- 4. Append evidence (phase: "survey"). Update §2. Mark G1 done.
150
- 📌 `git commit -m "odyssey-ui({slug}): SURVEY — 视觉调查"`
139
+ 3. **CLI-assisted**: `maestro delegate --role analyze` — survey tokens, spacing, typography, hierarchy, consistency
140
+ 4. Append evidence phase=survey. Update section 2. Mark G1.
141
+
142
+ Commit: `"odyssey-ui({slug}): SURVEY — design token inventory"`
151
143
 
152
144
  ### A_AUDIT
153
145
  Spawn 6 parallel Agents (one per dimension, or `--dimensions` subset):
@@ -162,8 +154,9 @@ Spawn 6 parallel Agents (one per dimension, or `--dimensions` subset):
162
154
  | edge_cases | Long text truncation, empty data, error states, extreme values, i18n, RTL |
163
155
 
164
156
  Each returns `[{title, severity, file, line, description, suggestion, dimension}]`.
165
- Merge → evidence (phase: "audit"). Write `audit_result`. Update §3 (severity matrix). Mark G2 done.
166
- 📌 `git commit -m "odyssey-ui({slug}): AUDIT — 多维审查"`
157
+ Merge → evidence phase=audit. Write `audit_result`. Update section 3 with severity matrix. Mark G2.
158
+
159
+ Commit: `"odyssey-ui({slug}): AUDIT — 6-dimension review"`
167
160
 
168
161
  ### A_DIVERGE
169
162
  Goes beyond defect fixing — "what would make this delightful?"
@@ -174,80 +167,67 @@ Goes beyond defect fixing — "what would make this delightful?"
174
167
 
175
168
  Each returns `[{idea, category (polish|delight), impact, effort, description, inspiration}]`
176
169
 
177
- **Step 2 — CLI-assisted** (optional): `maestro delegate` with `--role analyze` — polish opportunities, micro-interactions, visual rhythm, delight moments
170
+ **Step 2 — CLI-assisted**: `maestro delegate --role analyze` — polish opportunities, micro-interactions, visual rhythm, delight moments
178
171
 
179
172
  **Step 3 — Consolidate**: Merge audit findings + divergent ideas → prioritized list (severity x impact x effort).
180
- Append evidence (phase: "diverge"). Update §4. Mark G3 done.
181
- 📌 `git commit -m "odyssey-ui({slug}): DIVERGE — 发散探索"`
173
+ Append evidence phase=diverge. Update section 4. Mark G3.
174
+
175
+ Commit: `"odyssey-ui({slug}): DIVERGE — creative exploration"`
182
176
 
183
177
  ### A_FIX
184
178
  Skip if `--skip-fix`.
185
- 1. **穷尽修复**: ALL findings/ideas by priority tier (critical→high→medium→low + high-impact ideas). After each tier, re-review — new findings append.
186
- 2. Each fix → evidence (phase: "fix")
187
- 3. **Normal**: AskUserQuestion per-fix. **`-y`**: auto-proceed, record `deferred`.
188
- 📌 `git commit -m "odyssey-ui({slug}): FIX — 优化实现"`
179
+ 1. **Exhaustive fix**: ALL findings/ideas by priority tier (critical high medium low + high-impact ideas). After each tier, re-review — new findings append.
180
+ 2. Each fix → evidence phase=fix
181
+ 3. Normal: AskUserQuestion per-fix | `-y`: auto-proceed, record `deferred`
182
+
183
+ Commit: `"odyssey-ui({slug}): FIX — implement improvements"`
189
184
 
190
185
  ### A_VERIFY
191
186
  1. Run tests (lint, unit, visual regression)
192
- 2. **CLI-assisted**: `maestro delegate` with `--role review` — visual correctness, interaction states, accessibility, responsive
193
- 3. `needs_rework` → S_FIX. `verified` → mark G4 done. Update §5, write `confirmation`.
194
- 📌 `git commit -m "odyssey-ui({slug}): VERIFY — 验证"`
195
-
196
- ### A_GENERALIZE
197
- base A_GENERALIZE 执行。Pattern 来源: audit findings + diverge ideas (severity >= medium OR impact = high)。Mark G5 done.
198
- 📌 `git commit -m "odyssey-ui({slug}): GENERALIZE — 泛化扫描"`
199
-
200
- ### A_DISCOVER
201
- 按 base A_DISCOVER 执行。Mark G6 done.
202
- 📌 `git commit -m "odyssey-ui({slug}): DISCOVER — 发现分类"`
203
-
204
- ### A_RECORD
205
- 1. Finalize §8: 按 Knowledge Persistence 表分类记录,completion summary 列出建议的 `/spec-add` 命令
206
- 2. Pending decisions: **Normal** → AskUserQuestion. **`-y`** → skip, show deferred count
207
- 3. Goal audit: all confirmed → `phase_goals_all_done = true`. **Normal** → AskUserQuestion | **`-y`** → auto accept
208
- 4. Mark G7 done. Emit completion summary:
187
+ 2. `maestro delegate --role review` — visual correctness, interaction states, accessibility, responsive
188
+ 3. `needs_rework` → S_FIX. `verified` → mark G4. Update section 5, write `confirmation`.
189
+
190
+ Commit: `"odyssey-ui({slug}): VERIFY — visual verification"`
191
+
192
+ ### A_GENERALIZE, A_DISCOVER, A_RECORD
193
+ Base shared_actions. UI overrides:
194
+ - **A_GENERALIZE** pattern source: audit findings + diverge ideas (severity >= medium OR impact = high)
195
+ - **A_RECORD** learnings per Knowledge Persistence table
196
+
197
+ **Completion summary:**
209
198
  ```
210
199
  --- UI ODYSSEY COMPLETE ---
211
- Target: {target} | Dimensions: {dimensions_audited}
212
- Findings: {C}C {H}H {M}M {L}L | Diverge: {improvements} polish + {creative} delight
213
- Fix: {fixed_count} applied, verified={yes|skipped}
214
- Patterns: {extracted} ({by_layer}) | Scan hits: {total} ({cross_layer} cross-layer)
215
- Issues: {N} | Decisions: {N} resolved, {M} pending, {K} deferred
216
- Learnings: {N} entries | Self-iter: {N} rounds | Goals: {done}/{total} ({skipped} skipped)
200
+ Target: {target} | Dimensions: {dimensions_audited}
201
+ Findings: {C}C {H}H {M}M {L}L | Diverge: {improvements} polish + {creative} delight
202
+ Fix: {fixed_count} applied, verified={yes|skipped}
203
+ Patterns: {extracted} ({by_layer})
204
+ Scan hits: {total} ({cross_layer} cross-layer)
205
+ Issues: {N} created
206
+ Decisions: {N} resolved, {M} pending, {K} deferred
207
+ Learnings: {N} persisted
208
+ Self-iter: {N} rounds
209
+ Goals: {done}/{total} ({skipped} skipped)
217
210
  ---
218
211
  ```
219
- 📌 `git commit -m "odyssey-ui({slug}): RECORD — 会话总结"`
220
212
 
221
213
  </actions>
222
214
 
223
215
  <appendix>
224
216
 
225
- ### Goal Prompt Template
226
- **⚠️ 仅在 A_INTAKE 完成后显示一次。A_RECORD 完成时禁止重新显示。**
217
+ ### `-y` ui-specific points
227
218
 
228
- ```
229
- 📋 UI Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
230
-
231
- /goal 完成以下目标:
232
- {for each G in phase_goals where status != "skipped":}
233
- - {G.id}: {G.goal} — 完成条件: {G.done_when}
234
- {end for}
235
- 穷尽迭代:直到 audit + diverge findings 均已处理(fix/issue/decision)
236
- 且 phase_goals_all_done=true 才停。修复按 impact×severity 逐轮迭代。
237
- 每轮修复后重审修改区域,新发现追加继续修。
238
- 遇到 phase=decision 的 pending 必须 AskUserQuestion。不允许"只报告不处理"。
239
- ```
240
-
241
- ### `-y` Auto-Confirm (5 decision points)
242
219
  | Decision Point | Normal | `-y` |
243
- |----------------|--------|------|
244
- | A_FIX improvement confirmation | AskUserQuestion | auto-proceed, `deferred` |
245
- | A_DISCOVER hit routing | AskUserQuestion | auto create issue, `deferred` |
246
- | A_DISCOVER ambiguous items | AskUserQuestion | all `deferred` |
247
- | A_RECORD pending decisions | AskUserQuestion | skip, show deferred count |
248
- | A_RECORD goal audit | AskUserQuestion | auto accept |
220
+ |---------------|--------|------|
221
+ | A_FIX improvement confirmation | AskUserQuestion | auto-proceed, deferred |
249
222
 
250
- `deferred` "待决策" in completion summary; recoverable via `-c`.
223
+ ### Goal Prompt convergence rules
224
+
225
+ ```
226
+ Stop when audit + diverge findings all addressed (fix/issue/decision),
227
+ phase_goals_all_done=true. Fix by impact x severity per tier.
228
+ Re-review after each tier — new findings append and continue.
229
+ Pending decisions must AskUserQuestion — no self-resolve.
230
+ ```
251
231
 
252
232
  </appendix>
253
233
 
@@ -267,15 +247,15 @@ Learnings: {N} entries | Self-iter: {N} rounds | Goals: {done}/{total} ({skipped
267
247
  - [ ] Improvements implemented and verified (unless --skip-fix)
268
248
  - [ ] Multi-layer generalization + discoveries classified (unless --skip-generalize)
269
249
  - [ ] Every unfixed finding has individual classification and reason
270
- - [ ] understanding.md §8 finalized; phase_goals G1-G7 tracked; `-y` no blocking prompts
250
+ - [ ] understanding.md section 8 finalized; phase_goals G1-G7 tracked; `-y` no blocking prompts
271
251
  </success_criteria>
272
252
 
273
253
  <next_step_routing>
274
- | Condition | Next step |
275
- |-----------|-----------|
254
+ | Condition | Next |
255
+ |-----------|------|
276
256
  | Finding needs deeper debug | `/odyssey-debug "<finding>"` |
277
- | Issues created from discoveries | `/manage-issue list --source ui-odyssey` |
278
- | Design pattern worth documenting | `/spec-add ui "..."` |
279
- | Want full review of changes | `/odyssey-review-test-fix <changed-files>` |
257
+ | Issues from discoveries | `/manage-issue list --source ui-odyssey` |
258
+ | Design pattern to document | `/spec-add ui "..."` |
259
+ | Full review of changes | `/odyssey-review-test-fix <changed-files>` |
280
260
  | Sibling components to polish | `/odyssey-ui "<sibling>"` |
281
261
  </next_step_routing>