qualia-framework 2.4.0 → 2.4.2

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 (39) hide show
  1. package/bin/collect-metrics.sh +62 -0
  2. package/framework/agents/qualia-phase-researcher.md +6 -3
  3. package/framework/agents/qualia-planner.md +10 -7
  4. package/framework/agents/qualia-research-synthesizer.md +110 -147
  5. package/framework/agents/red-team-qa.md +130 -0
  6. package/framework/hooks/auto-format.sh +9 -1
  7. package/framework/hooks/migration-validate.sh +21 -16
  8. package/framework/hooks/pre-commit.sh +13 -5
  9. package/framework/hooks/pre-deploy-gate.sh +23 -1
  10. package/framework/hooks/retention-cleanup.sh +4 -4
  11. package/framework/hooks/save-session-state.sh +18 -10
  12. package/framework/hooks/session-context-loader.sh +21 -0
  13. package/framework/hooks/skill-announce.sh +2 -0
  14. package/framework/install.ps1 +6 -6
  15. package/framework/install.sh +6 -4
  16. package/framework/qualia-engine/VERSION +1 -1
  17. package/framework/qualia-engine/bin/collect-metrics.sh +71 -0
  18. package/framework/qualia-engine/bin/qualia-tools.js +104 -63
  19. package/framework/qualia-engine/references/continuation-prompt.md +97 -0
  20. package/framework/qualia-engine/references/employee-guide.md +167 -0
  21. package/framework/qualia-engine/templates/lab-notes.md +16 -0
  22. package/framework/qualia-engine/templates/roadmap.md +2 -8
  23. package/framework/qualia-engine/workflows/execute-phase.md +17 -17
  24. package/framework/qualia-engine/workflows/new-project.md +37 -114
  25. package/framework/qualia-engine/workflows/progress.md +63 -28
  26. package/framework/skills/client-handoff/SKILL.md +13 -3
  27. package/framework/skills/deep-research/SKILL.md +34 -71
  28. package/framework/skills/learn/SKILL.md +29 -5
  29. package/framework/skills/qualia/SKILL.md +57 -17
  30. package/framework/skills/qualia-complete-milestone/SKILL.md +29 -7
  31. package/framework/skills/qualia-evolve/SKILL.md +200 -0
  32. package/framework/skills/qualia-execute-phase/SKILL.md +1 -1
  33. package/framework/skills/qualia-guide/SKILL.md +32 -0
  34. package/framework/skills/qualia-help/SKILL.md +62 -60
  35. package/framework/skills/qualia-new-project/SKILL.md +32 -30
  36. package/framework/skills/qualia-report/SKILL.md +217 -0
  37. package/framework/skills/qualia-start/SKILL.md +31 -59
  38. package/framework/skills/qualia-verify-work/SKILL.md +20 -3
  39. package/package.json +1 -1
@@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star
12
12
  **Load progress context:**
13
13
 
14
14
  ```bash
15
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init progress)
15
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init progress)
16
16
  ```
17
17
 
18
18
  Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`.
@@ -22,18 +22,18 @@ If `project_exists` is false (no `.planning/` directory):
22
22
  ```
23
23
  No planning structure found.
24
24
 
25
- Run /qualia:new-project to start a new project.
25
+ Run /qualia-new-project to start a new project.
26
26
  ```
27
27
 
28
28
  Exit.
29
29
 
30
- If missing STATE.md: suggest `/qualia:new-project`.
30
+ If missing STATE.md: suggest `/qualia-new-project`.
31
31
 
32
32
  **If ROADMAP.md missing but PROJECT.md exists:**
33
33
 
34
34
  This means a milestone was completed and archived. Go to **Route F** (between milestones).
35
35
 
36
- If missing both ROADMAP.md and PROJECT.md: suggest `/qualia:new-project`.
36
+ If missing both ROADMAP.md and PROJECT.md: suggest `/qualia-new-project`.
37
37
  </step>
38
38
 
39
39
  <step name="load">
@@ -71,6 +71,7 @@ If missing both ROADMAP.md and PROJECT.md: suggest `/qualia:new-project`.
71
71
  # [Project Name]
72
72
 
73
73
  **Progress:** [████████░░] 8/10 plans complete
74
+ **Overall:** [██████░░░░] ~70% to client-ready {only show if all phases done}
74
75
  **Profile:** [quality/balanced/budget]
75
76
 
76
77
  ## Recent Work
@@ -90,10 +91,10 @@ CONTEXT: [✓ if CONTEXT.md exists | - if not]
90
91
  - [any blockers or concerns from STATE.md]
91
92
 
92
93
  ## Pending Todos
93
- - [count] pending — /qualia:check-todos to review
94
+ - [count] pending — /qualia-check-todos to review
94
95
 
95
96
  ## Active Debug Sessions
96
- - [count] active — /qualia:debug to continue
97
+ - [count] active — /qualia-debug to continue
97
98
  (Only show this section if count > 0)
98
99
 
99
100
  ## What's Next
@@ -152,7 +153,7 @@ Read its `<objective>` section.
152
153
 
153
154
  **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
154
155
 
155
- `/qualia:execute-phase {phase}`
156
+ `/qualia-execute-phase {phase}`
156
157
 
157
158
  <sub>`/clear` first → fresh context window</sub>
158
159
 
@@ -175,7 +176,7 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
175
176
  **Phase {N}: {Name}** — {Goal from ROADMAP.md}
176
177
  <sub>✓ Context gathered, ready to plan</sub>
177
178
 
178
- `/qualia:plan-phase {phase-number}`
179
+ `/qualia-plan-phase {phase-number}`
179
180
 
180
181
  <sub>`/clear` first → fresh context window</sub>
181
182
 
@@ -191,15 +192,15 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
191
192
 
192
193
  **Phase {N}: {Name}** — {Goal from ROADMAP.md}
193
194
 
194
- `/qualia:discuss-phase {phase}` — gather context and clarify approach
195
+ `/qualia-discuss-phase {phase}` — gather context and clarify approach
195
196
 
196
197
  <sub>`/clear` first → fresh context window</sub>
197
198
 
198
199
  ---
199
200
 
200
201
  **Also available:**
201
- - `/qualia:plan-phase {phase}` — skip discussion, plan directly
202
- - `/qualia:list-phase-assumptions {phase}` — see Claude's assumptions
202
+ - `/qualia-plan-phase {phase}` — skip discussion, plan directly
203
+ - `/qualia-list-phase-assumptions {phase}` — see Claude's assumptions
203
204
 
204
205
  ---
205
206
  ```
@@ -217,15 +218,15 @@ UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
217
218
 
218
219
  **{phase}-UAT.md** has {N} gaps requiring fixes.
219
220
 
220
- `/qualia:plan-phase {phase} --gaps`
221
+ `/qualia-plan-phase {phase} --gaps`
221
222
 
222
223
  <sub>`/clear` first → fresh context window</sub>
223
224
 
224
225
  ---
225
226
 
226
227
  **Also available:**
227
- - `/qualia:execute-phase {phase}` — execute phase plans
228
- - `/qualia:verify-work {phase}` — run more UAT testing
228
+ - `/qualia-execute-phase {phase}` — execute phase plans
229
+ - `/qualia-verify-work {phase}` — run more UAT testing
229
230
 
230
231
  ---
231
232
  ```
@@ -264,46 +265,80 @@ Read ROADMAP.md to get the next phase's name and goal.
264
265
 
265
266
  **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
266
267
 
267
- `/qualia:discuss-phase {Z+1}` — gather context and clarify approach
268
+ `/qualia-discuss-phase {Z+1}` — gather context and clarify approach
268
269
 
269
270
  <sub>`/clear` first → fresh context window</sub>
270
271
 
271
272
  ---
272
273
 
273
274
  **Also available:**
274
- - `/qualia:plan-phase {Z+1}` — skip discussion, plan directly
275
- - `/qualia:verify-work {Z}` — user acceptance test before continuing
275
+ - `/qualia-plan-phase {Z+1}` — skip discussion, plan directly
276
+ - `/qualia-verify-work {Z}` — user acceptance test before continuing
276
277
 
277
278
  ---
278
279
  ```
279
280
 
280
281
  ---
281
282
 
282
- **Route D: Milestone complete**
283
+ **Route D: Milestone complete (needs archiving)**
283
284
 
284
285
  ```
285
286
  ---
286
287
 
287
- ## 🎉 Milestone Complete
288
+ ## Milestone phases done!
288
289
 
289
- All {N} phases finished!
290
+ All {N} phases finished. Time to archive.
290
291
 
291
292
  ## ▶ Next Up
292
293
 
293
- **Complete Milestone** — archive and prepare for next
294
+ **Archive Milestone** — then the finish line begins
294
295
 
295
- `/qualia:complete-milestone`
296
+ `/qualia-complete-milestone`
296
297
 
297
298
  <sub>`/clear` first → fresh context window</sub>
298
299
 
299
300
  ---
301
+ ```
300
302
 
301
- **Also available:**
302
- - `/qualia:verify-work` — user acceptance test before completing milestone
303
+ ---
304
+
305
+ **Route G: Finish Line (post-milestone, 70% → 100%)**
306
+
307
+ Check STATE.md for `finish_line` field. If milestone is archived but `finish_line` is not `"complete"`, the project is in the finish line.
308
+
309
+ ```
310
+ ---
311
+
312
+ ## ── FINISH LINE ── Getting Client-Ready
313
+
314
+ Features are built. Now polish, review, and ship.
315
+
316
+ ── Progress to Client-Ready ──────────
317
+ ✓ Build phases complete
318
+ ✓ Milestone audit passed
319
+ ✓ Milestone archived
320
+ {▶ or ✓} Design polish {← you are here | done}
321
+ {▶ or · or ✓} Code review
322
+ {▶ or · or ✓} Pull request
323
+ {· or ✓} Deploy (Fawzi reviews + deploys)
324
+ {· or ✓} Client handoff
325
+
326
+ ## ▶ Next Up
327
+
328
+ {Based on finish_line value in STATE.md:}
329
+ "needs_polish" → `/critique` — then `/polish` then `/harden`
330
+ "needs_review" → `/qualia-review --web` (or `--ai` for AI/voice projects)
331
+ "needs_pr" → `/pr` — create pull request for Fawzi
332
+ "ready_for_deploy" → "Waiting for Fawzi to review PR and deploy."
333
+ "deployed" → `/client-handoff` — prepare delivery document
303
334
 
304
335
  ---
305
336
  ```
306
337
 
338
+ **Skip logic for finish line steps:**
339
+ - If project has NO frontend (AI agent, voice agent, edge functions) → skip design polish, set `finish_line: "needs_review"`
340
+ - If finish_line field doesn't exist but milestone is archived → set `finish_line: "needs_polish"` and show Route G
341
+
307
342
  ---
308
343
 
309
344
  **Route F: Between milestones (ROADMAP.md missing, PROJECT.md exists)**
@@ -323,7 +358,7 @@ Ready to plan the next milestone.
323
358
 
324
359
  **Start Next Milestone** — questioning → research → requirements → roadmap
325
360
 
326
- `/qualia:new-milestone`
361
+ `/qualia-new-milestone`
327
362
 
328
363
  <sub>`/clear` first → fresh context window</sub>
329
364
 
@@ -335,10 +370,10 @@ Ready to plan the next milestone.
335
370
  <step name="edge_cases">
336
371
  **Handle edge cases:**
337
372
 
338
- - Phase complete but next phase not planned → offer `/qualia:plan-phase [next]`
373
+ - Phase complete but next phase not planned → offer `/qualia-plan-phase [next]`
339
374
  - All work complete → offer milestone completion
340
375
  - Blockers present → highlight before offering to continue
341
- - Handoff file exists → mention it, offer `/qualia:resume-work`
376
+ - Handoff file exists → mention it, offer `/qualia-resume-work`
342
377
  </step>
343
378
 
344
379
  </process>
@@ -348,7 +383,7 @@ Ready to plan the next milestone.
348
383
  - [ ] Rich context provided (recent work, decisions, issues)
349
384
  - [ ] Current position clear with visual progress
350
385
  - [ ] What's next clearly explained
351
- - [ ] Smart routing: /qualia:execute-phase if plans exist, /qualia:plan-phase if not
386
+ - [ ] Smart routing: /qualia-execute-phase if plans exist, /qualia-plan-phase if not
352
387
  - [ ] User confirms before any action
353
388
  - [ ] Seamless handoff to appropriate qualia command
354
389
  </success_criteria>
@@ -107,14 +107,24 @@ git add HANDOFF.md
107
107
  git commit -m "docs: add client handoff document"
108
108
  ```
109
109
 
110
- ### Step 5: Route Next Steps
110
+ ### Step 5: Collect Framework Metrics
111
+
112
+ Auto-collect performance metrics for this project (feeds the `/qualia-evolve` optimization loop):
113
+
114
+ ```bash
115
+ bash ~/.claude/qualia-framework/bin/collect-metrics.sh "$(pwd)"
116
+ ```
117
+
118
+ This is silent — no user interaction needed.
119
+
120
+ ### Step 6: Route Next Steps
111
121
 
112
122
  After saving, present options:
113
123
 
114
- > "Handoff document saved. Next steps:"
124
+ > "Handoff document saved. Framework metrics collected. Next steps:"
115
125
  > - "Share `HANDOFF.md` content with the client (email, PDF, or portal)"
116
126
  > - "Run `/qualia-production-check` to verify everything works before handoff"
117
- > - "Run `/ship` to deploy any final changes first"
127
+ > - "Run `/qualia-evolve` to analyze this project and improve the framework for next time"
118
128
 
119
129
  ## Guidelines
120
130
 
@@ -166,82 +166,45 @@ Agent(
166
166
 
167
167
  ## Phase 3: Synthesize Reports
168
168
 
169
- After all agents return, create a unified report:
169
+ After all 6 agents return, **spawn the synthesizer agent** to consolidate findings. Do NOT synthesize inline — this prevents context bloat in the parent.
170
170
 
171
- ```markdown
172
- # Deep Research Report: [Project Name]
171
+ Each agent's report will be in the tool result. Write each one to a temp file, then spawn the synthesizer:
173
172
 
174
- **Generated:** YYYY-MM-DD
175
- **Stack:** [Detected stack]
176
- **Overall Production Readiness:** [Score /100]
177
-
178
- ## Executive Summary
179
- [2-3 paragraph synthesis of all findings]
180
-
181
- ## Critical Issues (Fix Before Production)
182
- 1. [Issue with severity and impact]
183
- 2. ...
184
-
185
- ## High Priority Improvements
186
- 1. [Improvement with effort estimate]
187
- 2. ...
188
-
189
- ## Medium Priority Enhancements
190
- 1. [Enhancement with benefit]
191
- 2. ...
192
-
193
- ## Low Priority / Nice to Have
194
- 1. [Future improvement]
195
- 2. ...
196
-
197
- ---
198
-
199
- ## Detailed Analysis
200
-
201
- ### Frontend Architecture
202
- [Agent 1 findings]
203
-
204
- ### Backend Architecture
205
- [Agent 2 findings]
206
-
207
- ### Database & Data Layer
208
- [Agent 3 findings]
209
-
210
- ### Security & DevOps
211
- [Agent 4 findings]
212
-
213
- ### Performance & Scalability
214
- [Agent 5 findings]
215
-
216
- ### Code Quality & Testing
217
- [Agent 6 findings]
218
-
219
- ---
220
-
221
- ## Implementation Roadmap
222
-
223
- ### Phase 1: Critical Fixes (Week 1)
224
- - [ ] Task 1
225
- - [ ] Task 2
226
-
227
- ### Phase 2: Security Hardening (Week 2)
228
- - [ ] Task 1
229
- - [ ] Task 2
230
-
231
- ### Phase 3: Performance Optimization (Week 3)
232
- - [ ] Task 1
233
- - [ ] Task 2
234
-
235
- ### Phase 4: Code Quality (Ongoing)
236
- - [ ] Task 1
237
- - [ ] Task 2
173
+ ```bash
174
+ # Write each agent's output to a temp file
175
+ # (use the actual tool result content from each agent)
176
+ ```
238
177
 
239
- ---
178
+ Then spawn the synthesizer agent:
240
179
 
241
- ## Resources & References
242
- - [Relevant best practices docs]
243
- - [Framework-specific guides]
244
180
  ```
181
+ Agent(
182
+ subagent_type="qualia-research-synthesizer",
183
+ prompt="
184
+ Synthesize these specialist reports:
185
+ - [path to frontend report]
186
+ - [path to backend report]
187
+ - [path to database report]
188
+ - [path to security report]
189
+ - [path to performance report]
190
+ - [path to code quality report]
191
+
192
+ Downstream consumer: The user needs a prioritized Deep Research Report with:
193
+ - Overall production readiness score (/100)
194
+ - Critical/High/Medium/Low severity findings with file:line references
195
+ - Cross-cutting patterns across all 6 areas
196
+ - Implementation roadmap grouped by week
197
+ - Resources and references
198
+
199
+ Output path: docs/research/[YYYY-MM-DD]-deep-research.md
200
+ (also return the full report in your response)
201
+
202
+ Do NOT commit.
203
+ "
204
+ )
205
+ ```
206
+
207
+ The synthesizer handles deduplication, cross-cutting pattern detection, and severity ranking — producing a single unified report.
245
208
 
246
209
  ## Phase 4: Offer Next Steps
247
210
 
@@ -25,28 +25,52 @@ Does this apply beyond the immediate case?
25
25
  - Other similar situations where this could happen
26
26
  - Related edge cases to watch for
27
27
 
28
- ### 4. Classify
28
+ ### 4. Classify & Route
29
29
  Which category fits best?
30
+
31
+ **If `.planning/` directory exists in the current project**, also check if this is a **project-level lab note** (a failed approach specific to this project's implementation):
32
+ - Is this about a specific approach that was tried and failed?
33
+ - Is this about a library, API, or pattern that didn't work for THIS project?
34
+ - Would knowing this prevent a planner/researcher from repeating the same dead-end?
35
+
36
+ If yes → route to **Lab Notes** (see step 5b below).
37
+
38
+ Otherwise classify as:
30
39
  - **Always Rules** — things to always do
31
40
  - **Never Rules** — things to never do
32
41
  - **Project-Specific Gotchas** — quirks of a specific project
33
42
 
34
- ### 5. Propose Rule
43
+ ### 5a. Propose Rule (Global)
35
44
  Draft rule in this format:
36
45
  ```
37
46
  - [ALWAYS/NEVER] [specific action] [context/when]
38
47
  ```
39
48
 
49
+ ### 5b. Propose Lab Note (Project-Level)
50
+ Draft lab note in this format:
51
+ ```markdown
52
+ ### Phase [N]: [Phase Title]
53
+
54
+ **Tried:** [approach that was attempted]
55
+ **Failed because:** [root cause — be specific]
56
+ **Better approach:** [what actually worked, or what to try next]
57
+ **Date:** [today's date]
58
+ ```
59
+
40
60
  ### 6. Confirm
41
- Ask the user if the rule should be added. Do not save without confirmation.
61
+ Ask the user if the rule/lab note should be added. Do not save without confirmation.
42
62
 
43
63
  ## Output
44
64
 
45
- After user approval, save the rule to **both** locations:
46
-
65
+ **For global rules** — after user approval, save to **both** locations:
47
66
  1. Append to `~/.claude/knowledge/learned-patterns.md` under the appropriate category section
48
67
  2. Add to `~/.claude/CLAUDE.md` under "## Learned Patterns" for immediate loading in every session
49
68
 
69
+ **For project lab notes** — after user approval:
70
+ 1. If `.planning/LAB-NOTES.md` doesn't exist, create it from template at `~/.claude/qualia-framework/templates/lab-notes.md`
71
+ 2. Append the lab note entry to `.planning/LAB-NOTES.md`
72
+ 3. Do NOT add to global learned-patterns.md (these are project-specific dead-ends, not global rules)
73
+
50
74
  ### 7. Staleness Scan (automatic)
51
75
 
52
76
  When /learn is invoked, before adding new rules, scan existing patterns:
@@ -83,8 +83,32 @@ STATE.md exists:
83
83
  "All phases complete! Run /qualia-audit-milestone to verify the milestone."
84
84
  → If no phases remain AND audit exists AND passed:
85
85
  "Milestone audit passed! Run /qualia-complete-milestone to archive and tag."
86
- → If milestone is completed:
87
- "Milestone complete! Run /client-handoff to prepare the client delivery document."
86
+
87
+ ─── FINISH LINE (post-milestone, 70% 100%) ───
88
+
89
+ → If milestone is completed AND no finish_line in STATE.md:
90
+ Set finish_line: "needs_polish" in STATE.md.
91
+ "Milestone archived! Now let's get this client-ready."
92
+ "Features are ~70% of a project. Time for the finish line."
93
+ Route to: /critique (then /polish, then /harden)
94
+
95
+ → If finish_line = "needs_polish":
96
+ "Run /critique to review the design, then /polish and /harden."
97
+ (Skip this step if project has no frontend — set finish_line to "needs_review")
98
+
99
+ → If finish_line = "needs_review":
100
+ "Design polished. Now run /qualia-review --web to audit code quality and security."
101
+
102
+ → If finish_line = "needs_pr":
103
+ "Review passed. Push your branch and create a PR:"
104
+ "Run /pr to create a pull request for Fawzi to review."
105
+
106
+ → If finish_line = "ready_for_deploy":
107
+ "PR created! Fawzi will review and deploy to production."
108
+ "Once deployed, run /client-handoff to prepare the delivery document."
109
+
110
+ → If finish_line = "deployed":
111
+ "Run /client-handoff to prepare the client delivery document."
88
112
 
89
113
  blockers exist?
90
114
  → Show blockers, ask user how to proceed
@@ -111,28 +135,44 @@ Options:
111
135
 
112
136
  ## Output Format
113
137
 
138
+ **During phases (building features):**
114
139
  ```
115
- ## Qualia Status
116
-
117
- **Project:** {project_name from PROJECT.md or directory name}
118
- **Phase:** {N} of {total} - {phase_name}
119
- **Status:** {status_emoji} {status_description}
140
+ Qualia Status
120
141
 
121
- ---
142
+ Project {name}
143
+ Phase {N} of {total} — {phase_name}
144
+ Status {status_description}
122
145
 
123
- **Next:** /qualia-{action} {phase}
146
+ Next /qualia-{action} {phase}
147
+ ```
124
148
 
125
- {If blockers: show them}
126
- {If decision needed: present options}
149
+ **During finish line (70% → 100%):**
150
+ ```
151
+ ◆ Qualia Status
152
+
153
+ Project {name}
154
+ Phases {total}/{total} complete
155
+ Stage FINISH LINE — {step_name}
156
+
157
+ ── Progress to Client-Ready ──────────
158
+ ✓ Build phases complete
159
+ ✓ Milestone audit passed
160
+ ✓ Milestone archived
161
+ ▶ Design polish ← you are here
162
+ · Code review
163
+ · Pull request
164
+ · Deploy (Fawzi)
165
+ · Client handoff
166
+
167
+ Next → /critique
127
168
  ```
128
169
 
129
- ## Status Emojis
170
+ ## Status Markers
130
171
 
131
- - `planning` - Planning phase
132
- - `executing` - Building
133
- - `verifying` - Testing
134
- - `complete` - Done
135
- - `blocked` - Needs input
172
+ - `✓` Done
173
+ - `▶` Current step (you are here)
174
+ - `·` Not yet
175
+ - `✗` Failed / blocked
136
176
 
137
177
  ## Quick Actions
138
178
 
@@ -100,13 +100,35 @@ git commit -m "milestone: complete v{version}"
100
100
  git tag v{version}
101
101
  ```
102
102
 
103
- ### 9. Offer Next Steps
103
+ ### 9. Enter Finish Line
104
104
 
105
- > "Milestone v{version} complete and tagged! Options:"
106
- > - "Prepare client handoff: `/client-handoff`" — generates client-facing deliverable document
107
- > - "Ship to production: `/ship`"
108
- > - "Start next milestone: `/qualia-new-milestone`"
109
- > - "Run final production audit: `/qualia-production-check`"
105
+ Set `finish_line: "needs_polish"` in STATE.md (or `"needs_review"` if the project has no frontend).
106
+
107
+ Then show the finish line checklist:
108
+
109
+ ```
110
+ ◆ Milestone v{version} archived and tagged!
111
+
112
+ Features are ~70% of a project. Time for the finish line.
113
+
114
+ ── Progress to Client-Ready ──────────
115
+ ✓ Build phases complete
116
+ ✓ Milestone audit passed
117
+ ✓ Milestone archived
118
+ ▶ Design polish ← you are here
119
+ · Code review
120
+ · Pull request
121
+ · Deploy (Fawzi reviews + deploys)
122
+ · Client handoff
123
+
124
+ Next → /critique
125
+ ```
126
+
127
+ **For projects without frontend** (AI agents, voice agents, edge functions):
128
+ - Skip design polish step
129
+ - Set `finish_line: "needs_review"` and show `▶ Code review` instead
130
+
131
+ **Do NOT offer `/client-handoff` or `/ship` directly** — the finish line routing in `/qualia` will guide them through each step in order.
110
132
 
111
133
  ---
112
- > Stuck? Type `/qualia-idk` · Lost? Type `/qualia-help`
134
+ > Stuck? Type `/qualia-idk` · Lost? Type `/qualia-help` · Done for today? Type `/qualia-report`