qualia-framework 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +50 -0
  2. package/bin/cli.js +519 -0
  3. package/framework/agents/architecture-strategist.md +53 -0
  4. package/framework/agents/backend-agent.md +150 -0
  5. package/framework/agents/code-simplicity-reviewer.md +86 -0
  6. package/framework/agents/frontend-agent.md +111 -0
  7. package/framework/agents/kieran-typescript-reviewer.md +96 -0
  8. package/framework/agents/performance-oracle.md +111 -0
  9. package/framework/agents/qualia-codebase-mapper.md +760 -0
  10. package/framework/agents/qualia-debugger.md +1203 -0
  11. package/framework/agents/qualia-executor.md +881 -0
  12. package/framework/agents/qualia-integration-checker.md +423 -0
  13. package/framework/agents/qualia-phase-researcher.md +453 -0
  14. package/framework/agents/qualia-plan-checker.md +699 -0
  15. package/framework/agents/qualia-planner.md +1241 -0
  16. package/framework/agents/qualia-project-researcher.md +602 -0
  17. package/framework/agents/qualia-research-synthesizer.md +236 -0
  18. package/framework/agents/qualia-roadmapper.md +605 -0
  19. package/framework/agents/qualia-verifier.md +685 -0
  20. package/framework/agents/team-orchestrator.md +228 -0
  21. package/framework/agents/teams/full-stack-team.md +48 -0
  22. package/framework/agents/teams/optimize-team.md +53 -0
  23. package/framework/agents/teams/review-team.md +62 -0
  24. package/framework/agents/teams/ship-team.md +86 -0
  25. package/framework/agents/test-agent.md +182 -0
  26. package/framework/askpass.sh +2 -0
  27. package/framework/commands/design.md +53 -0
  28. package/framework/commands/quick-db.md +22 -0
  29. package/framework/config/retention.json +35 -0
  30. package/framework/core/PRINCIPLES.md +77 -0
  31. package/framework/hooks/auto-format.sh +45 -0
  32. package/framework/hooks/block-env-edit.sh +42 -0
  33. package/framework/hooks/branch-guard.sh +46 -0
  34. package/framework/hooks/confirm-delete.sh +56 -0
  35. package/framework/hooks/migration-validate.sh +68 -0
  36. package/framework/hooks/notification-speak.sh +15 -0
  37. package/framework/hooks/pre-commit.sh +80 -0
  38. package/framework/hooks/pre-compact.sh +55 -0
  39. package/framework/hooks/pre-deploy-gate.sh +151 -0
  40. package/framework/hooks/qualia-colors.sh +32 -0
  41. package/framework/hooks/retention-cleanup.sh +43 -0
  42. package/framework/hooks/save-session-state.sh +153 -0
  43. package/framework/hooks/session-context-loader.sh +28 -0
  44. package/framework/hooks/session-learn.sh +30 -0
  45. package/framework/knowledge/claudecode-bible.md +1384 -0
  46. package/framework/knowledge/client-prefs.md +22 -0
  47. package/framework/knowledge/common-fixes.md +25 -0
  48. package/framework/knowledge/deployment-map.md +35 -0
  49. package/framework/knowledge/email-signature.html +1 -0
  50. package/framework/knowledge/employees.md +8 -0
  51. package/framework/knowledge/learned-patterns.md +51 -0
  52. package/framework/knowledge/optimization-research-2026.md +137 -0
  53. package/framework/knowledge/qualia-context.md +67 -0
  54. package/framework/knowledge/supabase-patterns.md +50 -0
  55. package/framework/knowledge/voice-agent-patterns.md +46 -0
  56. package/framework/qualia-engine/VERSION +1 -0
  57. package/framework/qualia-engine/bin/qualia-tools.js +2160 -0
  58. package/framework/qualia-engine/bin/qualia-tools.test.js +1054 -0
  59. package/framework/qualia-engine/references/checkpoints.md +775 -0
  60. package/framework/qualia-engine/references/continuation-format.md +249 -0
  61. package/framework/qualia-engine/references/decimal-phase-calculation.md +65 -0
  62. package/framework/qualia-engine/references/design-quality.md +56 -0
  63. package/framework/qualia-engine/references/git-integration.md +254 -0
  64. package/framework/qualia-engine/references/git-planning-commit.md +50 -0
  65. package/framework/qualia-engine/references/model-profile-resolution.md +32 -0
  66. package/framework/qualia-engine/references/model-profiles.md +73 -0
  67. package/framework/qualia-engine/references/phase-argument-parsing.md +61 -0
  68. package/framework/qualia-engine/references/planning-config.md +195 -0
  69. package/framework/qualia-engine/references/questioning.md +141 -0
  70. package/framework/qualia-engine/references/tdd.md +263 -0
  71. package/framework/qualia-engine/references/ui-brand.md +160 -0
  72. package/framework/qualia-engine/references/verification-patterns.md +612 -0
  73. package/framework/qualia-engine/templates/DEBUG.md +159 -0
  74. package/framework/qualia-engine/templates/DESIGN.md +81 -0
  75. package/framework/qualia-engine/templates/UAT.md +247 -0
  76. package/framework/qualia-engine/templates/codebase/architecture.md +255 -0
  77. package/framework/qualia-engine/templates/codebase/concerns.md +310 -0
  78. package/framework/qualia-engine/templates/codebase/conventions.md +307 -0
  79. package/framework/qualia-engine/templates/codebase/integrations.md +280 -0
  80. package/framework/qualia-engine/templates/codebase/stack.md +186 -0
  81. package/framework/qualia-engine/templates/codebase/structure.md +285 -0
  82. package/framework/qualia-engine/templates/codebase/testing.md +480 -0
  83. package/framework/qualia-engine/templates/config.json +35 -0
  84. package/framework/qualia-engine/templates/context.md +283 -0
  85. package/framework/qualia-engine/templates/continue-here.md +78 -0
  86. package/framework/qualia-engine/templates/debug-subagent-prompt.md +91 -0
  87. package/framework/qualia-engine/templates/discovery.md +146 -0
  88. package/framework/qualia-engine/templates/milestone-archive.md +123 -0
  89. package/framework/qualia-engine/templates/milestone.md +115 -0
  90. package/framework/qualia-engine/templates/phase-prompt.md +567 -0
  91. package/framework/qualia-engine/templates/planner-subagent-prompt.md +117 -0
  92. package/framework/qualia-engine/templates/project.md +184 -0
  93. package/framework/qualia-engine/templates/projects/ai-agent.md +156 -0
  94. package/framework/qualia-engine/templates/projects/mobile-app.md +181 -0
  95. package/framework/qualia-engine/templates/projects/voice-agent.md +134 -0
  96. package/framework/qualia-engine/templates/projects/website.md +137 -0
  97. package/framework/qualia-engine/templates/requirements.md +231 -0
  98. package/framework/qualia-engine/templates/research-project/ARCHITECTURE.md +204 -0
  99. package/framework/qualia-engine/templates/research-project/FEATURES.md +147 -0
  100. package/framework/qualia-engine/templates/research-project/PITFALLS.md +200 -0
  101. package/framework/qualia-engine/templates/research-project/STACK.md +120 -0
  102. package/framework/qualia-engine/templates/research-project/SUMMARY.md +170 -0
  103. package/framework/qualia-engine/templates/research.md +552 -0
  104. package/framework/qualia-engine/templates/roadmap.md +202 -0
  105. package/framework/qualia-engine/templates/state.md +176 -0
  106. package/framework/qualia-engine/templates/summary-complex.md +59 -0
  107. package/framework/qualia-engine/templates/summary-minimal.md +41 -0
  108. package/framework/qualia-engine/templates/summary-standard.md +48 -0
  109. package/framework/qualia-engine/templates/summary.md +246 -0
  110. package/framework/qualia-engine/templates/user-setup.md +311 -0
  111. package/framework/qualia-engine/templates/verification-report.md +322 -0
  112. package/framework/qualia-engine/workflows/add-phase.md +179 -0
  113. package/framework/qualia-engine/workflows/add-todo.md +157 -0
  114. package/framework/qualia-engine/workflows/audit-milestone.md +241 -0
  115. package/framework/qualia-engine/workflows/check-todos.md +176 -0
  116. package/framework/qualia-engine/workflows/complete-milestone.md +858 -0
  117. package/framework/qualia-engine/workflows/diagnose-issues.md +219 -0
  118. package/framework/qualia-engine/workflows/discovery-phase.md +289 -0
  119. package/framework/qualia-engine/workflows/discuss-phase.md +534 -0
  120. package/framework/qualia-engine/workflows/execute-phase.md +559 -0
  121. package/framework/qualia-engine/workflows/execute-plan.md +438 -0
  122. package/framework/qualia-engine/workflows/help.md +470 -0
  123. package/framework/qualia-engine/workflows/insert-phase.md +220 -0
  124. package/framework/qualia-engine/workflows/list-phase-assumptions.md +178 -0
  125. package/framework/qualia-engine/workflows/map-codebase.md +327 -0
  126. package/framework/qualia-engine/workflows/new-milestone.md +363 -0
  127. package/framework/qualia-engine/workflows/new-project.md +1037 -0
  128. package/framework/qualia-engine/workflows/pause-work.md +122 -0
  129. package/framework/qualia-engine/workflows/plan-milestone-gaps.md +256 -0
  130. package/framework/qualia-engine/workflows/plan-phase.md +422 -0
  131. package/framework/qualia-engine/workflows/progress.md +354 -0
  132. package/framework/qualia-engine/workflows/quick.md +252 -0
  133. package/framework/qualia-engine/workflows/remove-phase.md +326 -0
  134. package/framework/qualia-engine/workflows/research-phase.md +74 -0
  135. package/framework/qualia-engine/workflows/resume-project.md +306 -0
  136. package/framework/qualia-engine/workflows/set-profile.md +80 -0
  137. package/framework/qualia-engine/workflows/settings.md +145 -0
  138. package/framework/qualia-engine/workflows/transition.md +556 -0
  139. package/framework/qualia-engine/workflows/update.md +197 -0
  140. package/framework/qualia-engine/workflows/verify-phase.md +195 -0
  141. package/framework/qualia-engine/workflows/verify-work.md +625 -0
  142. package/framework/rules/context7.md +11 -0
  143. package/framework/rules/deployment.md +29 -0
  144. package/framework/rules/frontend.md +33 -0
  145. package/framework/rules/security.md +12 -0
  146. package/framework/rules/speed.md +20 -0
  147. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  148. package/framework/scripts/apply-retention.sh +120 -0
  149. package/framework/scripts/bootstrap-pop-os.sh +354 -0
  150. package/framework/scripts/claude-voice +13 -0
  151. package/framework/scripts/cleanup.sh +131 -0
  152. package/framework/scripts/cowork-mode.sh +141 -0
  153. package/framework/scripts/generate-project-claude-md.sh +153 -0
  154. package/framework/scripts/load-test-webhook.js +172 -0
  155. package/framework/scripts/say.py +236 -0
  156. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +167 -0
  157. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +216 -0
  158. package/framework/scripts/speak.py +55 -0
  159. package/framework/scripts/speak.sh +18 -0
  160. package/framework/scripts/status.sh +138 -0
  161. package/framework/scripts/sync-to-framework.sh +65 -0
  162. package/framework/scripts/voice-hotkey.py +227 -0
  163. package/framework/scripts/voice-input.sh +51 -0
  164. package/framework/skills/animate/SKILL.md +202 -0
  165. package/framework/skills/bolder/SKILL.md +144 -0
  166. package/framework/skills/browser-qa/SKILL.md +536 -0
  167. package/framework/skills/clarify/SKILL.md +179 -0
  168. package/framework/skills/colorize/SKILL.md +170 -0
  169. package/framework/skills/critique/SKILL.md +126 -0
  170. package/framework/skills/deep-research/SKILL.md +271 -0
  171. package/framework/skills/delight/SKILL.md +329 -0
  172. package/framework/skills/deploy/SKILL.md +261 -0
  173. package/framework/skills/deploy-verify/SKILL.md +377 -0
  174. package/framework/skills/deploy-verify/scripts/canary-check.sh +206 -0
  175. package/framework/skills/deploy-verify/scripts/check-console-errors.js +147 -0
  176. package/framework/skills/deploy-verify/scripts/check-cwv.js +139 -0
  177. package/framework/skills/deploy-verify/scripts/project-detect.sh +84 -0
  178. package/framework/skills/deploy-verify/scripts/verify.sh +548 -0
  179. package/framework/skills/design-quieter/SKILL.md +130 -0
  180. package/framework/skills/distill/SKILL.md +149 -0
  181. package/framework/skills/docs-lookup/SKILL.md +78 -0
  182. package/framework/skills/fcm-notifications/SKILL.md +125 -0
  183. package/framework/skills/financial-ledger/SKILL.md +1039 -0
  184. package/framework/skills/frontend-master/NOTICE.md +4 -0
  185. package/framework/skills/frontend-master/SKILL.md +127 -0
  186. package/framework/skills/frontend-master/reference/color-and-contrast.md +132 -0
  187. package/framework/skills/frontend-master/reference/interaction-design.md +123 -0
  188. package/framework/skills/frontend-master/reference/motion-design.md +99 -0
  189. package/framework/skills/frontend-master/reference/responsive-design.md +114 -0
  190. package/framework/skills/frontend-master/reference/spatial-design.md +100 -0
  191. package/framework/skills/frontend-master/reference/typography.md +131 -0
  192. package/framework/skills/frontend-master/reference/ux-writing.md +107 -0
  193. package/framework/skills/harden/SKILL.md +357 -0
  194. package/framework/skills/i18n-rtl/SKILL.md +752 -0
  195. package/framework/skills/learn/SKILL.md +71 -0
  196. package/framework/skills/memory/SKILL.md +50 -0
  197. package/framework/skills/mobile-expo/SKILL.md +864 -0
  198. package/framework/skills/mobile-expo/references/store-checklist.md +550 -0
  199. package/framework/skills/nestjs-backend/README.md +73 -0
  200. package/framework/skills/nestjs-backend/SKILL.md +446 -0
  201. package/framework/skills/nestjs-backend/references/templates.md +1173 -0
  202. package/framework/skills/normalize/SKILL.md +79 -0
  203. package/framework/skills/onboard/SKILL.md +242 -0
  204. package/framework/skills/polish/SKILL.md +209 -0
  205. package/framework/skills/pr/SKILL.md +66 -0
  206. package/framework/skills/qualia/SKILL.md +153 -0
  207. package/framework/skills/qualia-add-todo/SKILL.md +68 -0
  208. package/framework/skills/qualia-audit-milestone/SKILL.md +92 -0
  209. package/framework/skills/qualia-check-todos/SKILL.md +55 -0
  210. package/framework/skills/qualia-complete-milestone/SKILL.md +108 -0
  211. package/framework/skills/qualia-debug/SKILL.md +149 -0
  212. package/framework/skills/qualia-design/SKILL.md +203 -0
  213. package/framework/skills/qualia-discuss-phase/SKILL.md +72 -0
  214. package/framework/skills/qualia-execute-phase/SKILL.md +86 -0
  215. package/framework/skills/qualia-help/SKILL.md +67 -0
  216. package/framework/skills/qualia-idk/SKILL.md +352 -0
  217. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +67 -0
  218. package/framework/skills/qualia-new-milestone/SKILL.md +72 -0
  219. package/framework/skills/qualia-new-project/SKILL.md +92 -0
  220. package/framework/skills/qualia-optimize/SKILL.md +417 -0
  221. package/framework/skills/qualia-pause-work/SKILL.md +96 -0
  222. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +57 -0
  223. package/framework/skills/qualia-plan-phase/SKILL.md +101 -0
  224. package/framework/skills/qualia-progress/SKILL.md +53 -0
  225. package/framework/skills/qualia-quick/SKILL.md +89 -0
  226. package/framework/skills/qualia-research-phase/SKILL.md +88 -0
  227. package/framework/skills/qualia-resume-work/SKILL.md +62 -0
  228. package/framework/skills/qualia-review/SKILL.md +263 -0
  229. package/framework/skills/qualia-start/SKILL.md +182 -0
  230. package/framework/skills/qualia-verify-work/SKILL.md +105 -0
  231. package/framework/skills/qualia-workflow/SKILL.md +130 -0
  232. package/framework/skills/rag/SKILL.md +750 -0
  233. package/framework/skills/responsive/SKILL.md +231 -0
  234. package/framework/skills/retro/SKILL.md +284 -0
  235. package/framework/skills/sakani-conventions/SKILL.md +136 -0
  236. package/framework/skills/sakani-conventions/evals/evals.json +23 -0
  237. package/framework/skills/sakani-conventions/references/entities.md +365 -0
  238. package/framework/skills/sakani-conventions/references/error-codes.md +95 -0
  239. package/framework/skills/seo-master/SKILL.md +490 -0
  240. package/framework/skills/seo-master/references/checklist.md +199 -0
  241. package/framework/skills/seo-master/references/structured-data.md +609 -0
  242. package/framework/skills/ship/SKILL.md +202 -0
  243. package/framework/skills/stack-researcher/SKILL.md +215 -0
  244. package/framework/skills/status/SKILL.md +154 -0
  245. package/framework/skills/status/scripts/health-check.sh +562 -0
  246. package/framework/skills/subscription-payments/SKILL.md +250 -0
  247. package/framework/skills/supabase/SKILL.md +973 -0
  248. package/framework/skills/supabase/references/templates.md +159 -0
  249. package/framework/skills/team/SKILL.md +67 -0
  250. package/framework/skills/test-runner/SKILL.md +202 -0
  251. package/framework/skills/voice-agent/SKILL.md +407 -0
  252. package/framework/skills/zoho-workflow/SKILL.md +51 -0
  253. package/framework/statusline-command.sh +117 -0
  254. package/package.json +24 -0
  255. package/profiles/fawzi.json +16 -0
  256. package/profiles/hasan.json +16 -0
  257. package/profiles/moayad.json +16 -0
  258. package/templates/CLAUDE-owner.md +52 -0
  259. package/templates/CLAUDE.md.hbs +58 -0
  260. package/templates/env.claude.template +12 -0
  261. package/templates/settings.json +141 -0
@@ -0,0 +1,858 @@
1
+ <purpose>
2
+
3
+ Mark a shipped version (v1.0, v1.1, v2.0) as complete. Creates historical record in MILESTONES.md, performs full PROJECT.md evolution review, reorganizes ROADMAP.md with milestone groupings, and tags the release in git.
4
+
5
+ </purpose>
6
+
7
+ <required_reading>
8
+
9
+ 1. templates/milestone.md
10
+ 2. templates/milestone-archive.md
11
+ 3. `.planning/ROADMAP.md`
12
+ 4. `.planning/REQUIREMENTS.md`
13
+ 5. `.planning/PROJECT.md`
14
+
15
+ </required_reading>
16
+
17
+ <archival_behavior>
18
+
19
+ When a milestone completes:
20
+
21
+ 1. Extract full milestone details to `.planning/milestones/v[X.Y]-ROADMAP.md`
22
+ 2. Archive requirements to `.planning/milestones/v[X.Y]-REQUIREMENTS.md`
23
+ 3. Update ROADMAP.md — replace milestone details with one-line summary
24
+ 4. Delete REQUIREMENTS.md (fresh one for next milestone)
25
+ 5. Perform full PROJECT.md evolution review
26
+ 6. Offer to create next milestone inline
27
+
28
+ **Context Efficiency:** Archives keep ROADMAP.md constant-size and REQUIREMENTS.md milestone-scoped.
29
+
30
+ **ROADMAP archive** uses `templates/milestone-archive.md` — includes milestone header (status, phases, date), full phase details, milestone summary (decisions, issues, tech debt).
31
+
32
+ **REQUIREMENTS archive** contains all requirements marked complete with outcomes, traceability table with final status, notes on changed requirements.
33
+
34
+ </archival_behavior>
35
+
36
+ <process>
37
+
38
+ <step name="verify_readiness">
39
+
40
+ Check milestone completion:
41
+
42
+ ```bash
43
+ cat .planning/ROADMAP.md
44
+ ls .planning/phases/*/SUMMARY.md 2>/dev/null | wc -l
45
+ ```
46
+
47
+ Verify:
48
+ - Which phases belong to this milestone?
49
+ - All phases complete (all plans have summaries)?
50
+ - Work tested/validated?
51
+ - Ready to ship/tag?
52
+
53
+ Present:
54
+
55
+ ```
56
+ Milestone: [Name, e.g., "v1.0 MVP"]
57
+
58
+ Includes:
59
+ - Phase 1: Foundation (2/2 plans complete)
60
+ - Phase 2: Authentication (2/2 plans complete)
61
+ - Phase 3: Core Features (3/3 plans complete)
62
+ - Phase 4: Polish (1/1 plan complete)
63
+
64
+ Total: 4 phases, 8 plans, all complete
65
+ ```
66
+
67
+ <config-check>
68
+
69
+ ```bash
70
+ cat .planning/config.json 2>/dev/null
71
+ ```
72
+
73
+ </config-check>
74
+
75
+ <if mode="yolo">
76
+
77
+ ```
78
+ ⚡ Auto-approved: Milestone scope verification
79
+ [Show breakdown summary without prompting]
80
+ Proceeding to stats gathering...
81
+ ```
82
+
83
+ Proceed to gather_stats.
84
+
85
+ </if>
86
+
87
+ <if mode="interactive" OR="custom with gates.confirm_milestone_scope true">
88
+
89
+ ```
90
+ Ready to mark this milestone as shipped?
91
+ (yes / wait / adjust scope)
92
+ ```
93
+
94
+ Wait for confirmation.
95
+ - "adjust scope": Ask which phases to include.
96
+ - "wait": Stop, user returns when ready.
97
+
98
+ </if>
99
+
100
+ </step>
101
+
102
+ <step name="gather_stats">
103
+
104
+ Calculate milestone statistics:
105
+
106
+ ```bash
107
+ git log --oneline --grep="feat(" | head -20
108
+ git diff --stat FIRST_COMMIT..LAST_COMMIT | tail -1
109
+ find . -name "*.swift" -o -name "*.ts" -o -name "*.py" | xargs wc -l 2>/dev/null
110
+ git log --format="%ai" FIRST_COMMIT | tail -1
111
+ git log --format="%ai" LAST_COMMIT | head -1
112
+ ```
113
+
114
+ Present:
115
+
116
+ ```
117
+ Milestone Stats:
118
+ - Phases: [X-Y]
119
+ - Plans: [Z] total
120
+ - Tasks: [N] total (from phase summaries)
121
+ - Files modified: [M]
122
+ - Lines of code: [LOC] [language]
123
+ - Timeline: [Days] days ([Start] → [End])
124
+ - Git range: feat(XX-XX) → feat(YY-YY)
125
+ ```
126
+
127
+ </step>
128
+
129
+ <step name="extract_accomplishments">
130
+
131
+ Extract one-liners from SUMMARY.md files using summary-extract:
132
+
133
+ ```bash
134
+ # For each phase in milestone, extract one-liner
135
+ for summary in .planning/phases/*-*/*-SUMMARY.md; do
136
+ node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js summary-extract "$summary" --fields one_liner | jq -r '.one_liner'
137
+ done
138
+ ```
139
+
140
+ Extract 4-6 key accomplishments. Present:
141
+
142
+ ```
143
+ Key accomplishments for this milestone:
144
+ 1. [Achievement from phase 1]
145
+ 2. [Achievement from phase 2]
146
+ 3. [Achievement from phase 3]
147
+ 4. [Achievement from phase 4]
148
+ 5. [Achievement from phase 5]
149
+ ```
150
+
151
+ </step>
152
+
153
+ <step name="create_milestone_entry">
154
+
155
+ Create or update `.planning/MILESTONES.md`.
156
+
157
+ If file doesn't exist, create with project name header. If exists, prepend new entry (reverse chronological).
158
+
159
+ Use template from `templates/milestone.md`:
160
+
161
+ ```markdown
162
+ ## v[Version] [Name] (Shipped: YYYY-MM-DD)
163
+
164
+ **Delivered:** [One sentence from user]
165
+
166
+ **Phases completed:** [X-Y] ([Z] plans total)
167
+
168
+ **Key accomplishments:**
169
+
170
+ - [List from previous step]
171
+
172
+ **Stats:**
173
+
174
+ - [Files] files created/modified
175
+ - [LOC] lines of [language]
176
+ - [Phases] phases, [Plans] plans, [Tasks] tasks
177
+ - [Days] days from [start] to ship
178
+
179
+ **Git range:** `feat(XX-XX)` → `feat(YY-YY)`
180
+
181
+ **What's next:** [Ask user: what's the next goal?]
182
+
183
+ ---
184
+ ```
185
+
186
+ </step>
187
+
188
+ <step name="evolve_project_full_review">
189
+
190
+ Full PROJECT.md evolution review at milestone completion.
191
+
192
+ Read all phase summaries:
193
+
194
+ ```bash
195
+ cat .planning/phases/*-*/*-SUMMARY.md
196
+ ```
197
+
198
+ **Full review checklist:**
199
+
200
+ 1. **"What This Is" accuracy:**
201
+ - Compare current description to what was built
202
+ - Update if product has meaningfully changed
203
+
204
+ 2. **Core Value check:**
205
+ - Still the right priority? Did shipping reveal a different core value?
206
+ - Update if the ONE thing has shifted
207
+
208
+ 3. **Requirements audit:**
209
+
210
+ **Validated section:**
211
+ - All Active requirements shipped this milestone → Move to Validated
212
+ - Format: `- ✓ [Requirement] — v[X.Y]`
213
+
214
+ **Active section:**
215
+ - Remove requirements moved to Validated
216
+ - Add new requirements for next milestone
217
+ - Keep unaddressed requirements
218
+
219
+ **Out of Scope audit:**
220
+ - Review each item — reasoning still valid?
221
+ - Remove irrelevant items
222
+ - Add requirements invalidated during milestone
223
+
224
+ 4. **Context update:**
225
+ - Current codebase state (LOC, tech stack)
226
+ - User feedback themes (if any)
227
+ - Known issues or technical debt
228
+
229
+ 5. **Key Decisions audit:**
230
+ - Extract all decisions from milestone phase summaries
231
+ - Add to Key Decisions table with outcomes
232
+ - Mark ✓ Good, ⚠️ Revisit, or — Pending
233
+
234
+ 6. **Constraints check:**
235
+ - Any constraints changed during development? Update as needed
236
+
237
+ Update PROJECT.md inline. Update "Last updated" footer:
238
+
239
+ ```markdown
240
+ ---
241
+ *Last updated: [date] after v[X.Y] milestone*
242
+ ```
243
+
244
+ **Example full evolution (v1.0 → v1.1 prep):**
245
+
246
+ Before:
247
+
248
+ ```markdown
249
+ ## What This Is
250
+
251
+ A real-time collaborative whiteboard for remote teams.
252
+
253
+ ## Core Value
254
+
255
+ Real-time sync that feels instant.
256
+
257
+ ## Requirements
258
+
259
+ ### Validated
260
+
261
+ (None yet — ship to validate)
262
+
263
+ ### Active
264
+
265
+ - [ ] Canvas drawing tools
266
+ - [ ] Real-time sync < 500ms
267
+ - [ ] User authentication
268
+ - [ ] Export to PNG
269
+
270
+ ### Out of Scope
271
+
272
+ - Mobile app — web-first approach
273
+ - Video chat — use external tools
274
+ ```
275
+
276
+ After v1.0:
277
+
278
+ ```markdown
279
+ ## What This Is
280
+
281
+ A real-time collaborative whiteboard for remote teams with instant sync and drawing tools.
282
+
283
+ ## Core Value
284
+
285
+ Real-time sync that feels instant.
286
+
287
+ ## Requirements
288
+
289
+ ### Validated
290
+
291
+ - ✓ Canvas drawing tools — v1.0
292
+ - ✓ Real-time sync < 500ms — v1.0 (achieved 200ms avg)
293
+ - ✓ User authentication — v1.0
294
+
295
+ ### Active
296
+
297
+ - [ ] Export to PNG
298
+ - [ ] Undo/redo history
299
+ - [ ] Shape tools (rectangles, circles)
300
+
301
+ ### Out of Scope
302
+
303
+ - Mobile app — web-first approach, PWA works well
304
+ - Video chat — use external tools
305
+ - Offline mode — real-time is core value
306
+
307
+ ## Context
308
+
309
+ Shipped v1.0 with 2,400 LOC TypeScript.
310
+ Tech stack: Next.js, Supabase, Canvas API.
311
+ Initial user testing showed demand for shape tools.
312
+ ```
313
+
314
+ **Step complete when:**
315
+
316
+ - [ ] "What This Is" reviewed and updated if needed
317
+ - [ ] Core Value verified as still correct
318
+ - [ ] All shipped requirements moved to Validated
319
+ - [ ] New requirements added to Active for next milestone
320
+ - [ ] Out of Scope reasoning audited
321
+ - [ ] Context updated with current state
322
+ - [ ] All milestone decisions added to Key Decisions
323
+ - [ ] "Last updated" footer reflects milestone completion
324
+
325
+ </step>
326
+
327
+ <step name="reorganize_roadmap">
328
+
329
+ Update `.planning/ROADMAP.md` — group completed milestone phases:
330
+
331
+ ```markdown
332
+ # Roadmap: [Project Name]
333
+
334
+ ## Milestones
335
+
336
+ - ✅ **v1.0 MVP** — Phases 1-4 (shipped YYYY-MM-DD)
337
+ - 🚧 **v1.1 Security** — Phases 5-6 (in progress)
338
+ - 📋 **v2.0 Redesign** — Phases 7-10 (planned)
339
+
340
+ ## Phases
341
+
342
+ <details>
343
+ <summary>✅ v1.0 MVP (Phases 1-4) — SHIPPED YYYY-MM-DD</summary>
344
+
345
+ - [x] Phase 1: Foundation (2/2 plans) — completed YYYY-MM-DD
346
+ - [x] Phase 2: Authentication (2/2 plans) — completed YYYY-MM-DD
347
+ - [x] Phase 3: Core Features (3/3 plans) — completed YYYY-MM-DD
348
+ - [x] Phase 4: Polish (1/1 plan) — completed YYYY-MM-DD
349
+
350
+ </details>
351
+
352
+ ### 🚧 v[Next] [Name] (In Progress / Planned)
353
+
354
+ - [ ] Phase 5: [Name] ([N] plans)
355
+ - [ ] Phase 6: [Name] ([N] plans)
356
+
357
+ ## Progress
358
+
359
+ | Phase | Milestone | Plans Complete | Status | Completed |
360
+ | ----------------- | --------- | -------------- | ----------- | ---------- |
361
+ | 1. Foundation | v1.0 | 2/2 | Complete | YYYY-MM-DD |
362
+ | 2. Authentication | v1.0 | 2/2 | Complete | YYYY-MM-DD |
363
+ | 3. Core Features | v1.0 | 3/3 | Complete | YYYY-MM-DD |
364
+ | 4. Polish | v1.0 | 1/1 | Complete | YYYY-MM-DD |
365
+ | 5. Security Audit | v1.1 | 0/1 | Not started | - |
366
+ | 6. Hardening | v1.1 | 0/2 | Not started | - |
367
+ ```
368
+
369
+ </step>
370
+
371
+ <step name="archive_milestone">
372
+
373
+ Extract completed milestone details to archive.
374
+
375
+ 1. Create `.planning/milestones/v[X.Y]-ROADMAP.md`
376
+ 2. Read `/home/qualia/.claude/qualia-engine/templates/milestone-archive.md` template
377
+ 3. Extract from ROADMAP.md: all phases in milestone (by number range), full phase details, plan lists with checkmarks
378
+ 4. Extract from PROJECT.md: key decisions, validated requirements
379
+ 5. Fill template placeholders: {{VERSION}}, {{MILESTONE_NAME}}, {{DATE}}, {{PHASE_START}}, {{PHASE_END}}, {{TOTAL_PLANS}}, {{MILESTONE_DESCRIPTION}}, {{PHASES_SECTION}}, {{DECISIONS_FROM_PROJECT}}, {{ISSUES_RESOLVED_DURING_MILESTONE}}
380
+ 6. Write to `.planning/milestones/v[X.Y]-ROADMAP.md`
381
+ 7. Delete ROADMAP.md:
382
+ ```bash
383
+ rm .planning/ROADMAP.md
384
+ ```
385
+ 8. Verify:
386
+ ```bash
387
+ ls .planning/milestones/v[X.Y]-ROADMAP.md
388
+ ```
389
+ 9. Confirm:
390
+ ```
391
+ ✅ v[X.Y] roadmap archived to milestones/v[X.Y]-ROADMAP.md
392
+ ✅ ROADMAP.md deleted (fresh one for next milestone)
393
+ ```
394
+
395
+ **Note:** Phase directories (`.planning/phases/`) are NOT deleted — they accumulate across milestones as raw execution history. Phase numbering continues (v1.0 phases 1-4, v1.1 phases 5-8, etc.).
396
+
397
+ </step>
398
+
399
+ <step name="archive_requirements">
400
+
401
+ Archive requirements for next milestone.
402
+
403
+ 1. Read REQUIREMENTS.md:
404
+ ```bash
405
+ cat .planning/REQUIREMENTS.md
406
+ ```
407
+
408
+ 2. Create `.planning/milestones/v[X.Y]-REQUIREMENTS.md`
409
+
410
+ 3. Transform: mark all requirements `[x]` complete, add outcome notes, update traceability table to "Complete", add milestone summary (total shipped, scope changes, drops)
411
+
412
+ 4. Write archive with header:
413
+ ```markdown
414
+ # Requirements Archive: v[X.Y] [Milestone Name]
415
+
416
+ **Archived:** [DATE]
417
+ **Status:** ✅ SHIPPED
418
+
419
+ For current requirements, see `.planning/REQUIREMENTS.md`.
420
+
421
+ ---
422
+
423
+ [Full REQUIREMENTS.md content with checkboxes marked complete]
424
+
425
+ ---
426
+
427
+ ## Milestone Summary
428
+
429
+ **Shipped:** [X] of [Y] requirements
430
+ **Adjusted:** [list any that changed]
431
+ **Dropped:** [list any removed and why]
432
+
433
+ ---
434
+ *Archived: [DATE] as part of v[X.Y] milestone completion*
435
+ ```
436
+
437
+ 5. Delete original:
438
+ ```bash
439
+ rm .planning/REQUIREMENTS.md
440
+ ```
441
+
442
+ 6. Confirm:
443
+ ```
444
+ ✅ Requirements archived to milestones/v[X.Y]-REQUIREMENTS.md
445
+ ✅ REQUIREMENTS.md deleted (fresh one for next milestone)
446
+ ```
447
+
448
+ **Note:** Next milestone starts with `/qualia:new-milestone` which includes requirements definition. PROJECT.md's Validated section carries cumulative record across milestones.
449
+
450
+ </step>
451
+
452
+ <step name="generate_changelog">
453
+
454
+ Generate or update CHANGELOG.md at project root.
455
+
456
+ ```bash
457
+ [ -f CHANGELOG.md ] && echo "EXISTS" || echo "NEW"
458
+ ```
459
+
460
+ **New entry format:**
461
+ ```markdown
462
+ ## [v{VERSION}] — YYYY-MM-DD
463
+
464
+ ### What Shipped
465
+ - {accomplishment 1 — from extract_accomplishments}
466
+ - {accomplishment 2}
467
+ - {accomplishment 3}
468
+ - {accomplishment 4}
469
+
470
+ ### By Phase
471
+ - Phase {X}: {one-liner from SUMMARY.md}
472
+ - Phase {Y}: {one-liner}
473
+
474
+ ### Stats
475
+ {phases} phases, {plans} plans, {files} files changed, {days} days
476
+ ```
477
+
478
+ **Sources:** Reuse `accomplishments[]` from extract_accomplishments step and phase one-liners from gather_stats.
479
+
480
+ **If CHANGELOG.md exists:** Prepend new entry (newest first). Keep all previous entries.
481
+ **If new:** Create with `# Changelog\n\n` header then the entry.
482
+
483
+ Include CHANGELOG.md in the final git commit file list.
484
+
485
+ </step>
486
+
487
+ <step name="archive_audit">
488
+
489
+ Move audit file to archive (if exists). Use init context or check directly:
490
+
491
+ ```bash
492
+ # Check if audit file exists
493
+ [ -f ".planning/v[X.Y]-MILESTONE-AUDIT.md" ] && mv .planning/v[X.Y]-MILESTONE-AUDIT.md .planning/milestones/
494
+ ```
495
+
496
+ Confirm: `✅ Audit archived to milestones/v[X.Y]-MILESTONE-AUDIT.md`
497
+
498
+ Skip silently if no audit file — audit is optional.
499
+
500
+ </step>
501
+
502
+ <step name="archive_and_reset_state">
503
+
504
+ Archive current STATE.md decisions into the milestone archive, then reset for the next milestone.
505
+ This prevents STATE.md from growing unbounded across milestones.
506
+
507
+ **1. Archive STATE.md to milestone directory:**
508
+
509
+ ```bash
510
+ cp .planning/STATE.md .planning/milestones/v[X.Y]-STATE.md
511
+ ```
512
+
513
+ Confirm: `✅ STATE.md archived to milestones/v[X.Y]-STATE.md`
514
+
515
+ **2. Reset STATE.md to a clean template:**
516
+
517
+ Preserve the project header and position section but clear accumulated decisions, blockers, and quick tasks.
518
+
519
+ Write a fresh STATE.md:
520
+
521
+ ```markdown
522
+ # State: [Project Name]
523
+
524
+ ## Project Reference
525
+
526
+ See: .planning/PROJECT.md (updated [today])
527
+
528
+ **Core value:** [Current core value from PROJECT.md]
529
+ **Current focus:** Planning next milestone
530
+
531
+ ## Current Position
532
+
533
+ Phase: [Next phase number] of [Total] (Not started)
534
+ Plan: Not started
535
+ Status: Ready to plan
536
+ Last activity: [today] — v[X.Y] milestone complete, STATE.md reset
537
+
538
+ Progress: [updated progress bar]
539
+
540
+ ## Accumulated Context
541
+
542
+ ### Key Decisions
543
+ | # | Decision | Rationale | Date |
544
+ |---|----------|-----------|------|
545
+ | | | | |
546
+
547
+ ### Blockers/Concerns
548
+ (None — fresh milestone)
549
+
550
+ ### Quick Tasks Completed
551
+
552
+ | # | Description | Date | Commit | Directory |
553
+ |---|-------------|------|--------|-----------|
554
+ ```
555
+
556
+ Note: The full decision history is preserved in:
557
+ - `.planning/milestones/v[X.Y]-STATE.md` (raw archive)
558
+ - `.planning/PROJECT.md` Key Decisions table (curated)
559
+
560
+ </step>
561
+
562
+ <step name="update_state">
563
+
564
+ Update STATE.md for milestone completion.
565
+
566
+ **Project Reference:**
567
+
568
+ ```markdown
569
+ ## Project Reference
570
+
571
+ See: .planning/PROJECT.md (updated [today])
572
+
573
+ **Core value:** [Current core value from PROJECT.md]
574
+ **Current focus:** [Next milestone or "Planning next milestone"]
575
+ ```
576
+
577
+ **Current Position:**
578
+
579
+ ```markdown
580
+ Phase: [Next phase] of [Total] ([Phase name])
581
+ Plan: Not started
582
+ Status: Ready to plan
583
+ Last activity: [today] — v[X.Y] milestone complete
584
+
585
+ Progress: [updated progress bar]
586
+ ```
587
+
588
+ **Accumulated Context:**
589
+ - Clear decisions summary (full log in PROJECT.md)
590
+ - Clear resolved blockers
591
+ - Keep open blockers for next milestone
592
+
593
+ </step>
594
+
595
+ <step name="handle_branches">
596
+
597
+ Check branching strategy and offer merge options.
598
+
599
+ Use `init milestone-op` for context, or load config directly:
600
+
601
+ ```bash
602
+ INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init execute-phase "1")
603
+ ```
604
+
605
+ Extract `branching_strategy`, `phase_branch_template`, `milestone_branch_template` from init JSON.
606
+
607
+ **If "none":** Skip to git_tag.
608
+
609
+ **For "phase" strategy:**
610
+
611
+ ```bash
612
+ BRANCH_PREFIX=$(echo "$PHASE_BRANCH_TEMPLATE" | sed 's/{.*//')
613
+ PHASE_BRANCHES=$(git branch --list "${BRANCH_PREFIX}*" 2>/dev/null | sed 's/^\*//' | tr -d ' ')
614
+ ```
615
+
616
+ **For "milestone" strategy:**
617
+
618
+ ```bash
619
+ BRANCH_PREFIX=$(echo "$MILESTONE_BRANCH_TEMPLATE" | sed 's/{.*//')
620
+ MILESTONE_BRANCH=$(git branch --list "${BRANCH_PREFIX}*" 2>/dev/null | sed 's/^\*//' | tr -d ' ' | head -1)
621
+ ```
622
+
623
+ **If no branches found:** Skip to git_tag.
624
+
625
+ **If branches exist:**
626
+
627
+ ```
628
+ ## Git Branches Detected
629
+
630
+ Branching strategy: {phase/milestone}
631
+ Branches: {list}
632
+
633
+ Options:
634
+ 1. **Merge to main** — Merge branch(es) to main
635
+ 2. **Delete without merging** — Already merged or not needed
636
+ 3. **Keep branches** — Leave for manual handling
637
+ ```
638
+
639
+ AskUserQuestion with options: Squash merge (Recommended), Merge with history, Delete without merging, Keep branches.
640
+
641
+ **Squash merge:**
642
+
643
+ ```bash
644
+ CURRENT_BRANCH=$(git branch --show-current)
645
+ git checkout main
646
+
647
+ if [ "$BRANCHING_STRATEGY" = "phase" ]; then
648
+ for branch in $PHASE_BRANCHES; do
649
+ git merge --squash "$branch"
650
+ git commit -m "feat: $branch for v[X.Y]"
651
+ done
652
+ fi
653
+
654
+ if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
655
+ git merge --squash "$MILESTONE_BRANCH"
656
+ git commit -m "feat: $MILESTONE_BRANCH for v[X.Y]"
657
+ fi
658
+
659
+ git checkout "$CURRENT_BRANCH"
660
+ ```
661
+
662
+ **Merge with history:**
663
+
664
+ ```bash
665
+ CURRENT_BRANCH=$(git branch --show-current)
666
+ git checkout main
667
+
668
+ if [ "$BRANCHING_STRATEGY" = "phase" ]; then
669
+ for branch in $PHASE_BRANCHES; do
670
+ git merge --no-ff "$branch" -m "Merge branch '$branch' for v[X.Y]"
671
+ done
672
+ fi
673
+
674
+ if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
675
+ git merge --no-ff "$MILESTONE_BRANCH" -m "Merge branch '$MILESTONE_BRANCH' for v[X.Y]"
676
+ fi
677
+
678
+ git checkout "$CURRENT_BRANCH"
679
+ ```
680
+
681
+ **Delete without merging:**
682
+
683
+ ```bash
684
+ if [ "$BRANCHING_STRATEGY" = "phase" ]; then
685
+ for branch in $PHASE_BRANCHES; do
686
+ git branch -d "$branch" 2>/dev/null || git branch -D "$branch"
687
+ done
688
+ fi
689
+
690
+ if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
691
+ git branch -d "$MILESTONE_BRANCH" 2>/dev/null || git branch -D "$MILESTONE_BRANCH"
692
+ fi
693
+ ```
694
+
695
+ **Keep branches:** Report "Branches preserved for manual handling"
696
+
697
+ </step>
698
+
699
+ <step name="production_deploy">
700
+
701
+ **Deploy the milestone to production before tagging.**
702
+
703
+ This ensures the git tag marks code that's actually live — not just code that's done locally.
704
+
705
+ ```
706
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
707
+ Qualia ► PRODUCTION DEPLOY
708
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
709
+ ```
710
+
711
+ **Detect project type from PROJECT.md/package.json:**
712
+
713
+ | Project Type | Deploy Command |
714
+ |-------------|----------------|
715
+ | Next.js / Vercel | `/ship-website` |
716
+ | AI Agent | `/ship-agent` |
717
+ | Voice Agent | `/ship-voice` |
718
+ | Mobile App (Expo) | `eas build` + `eas submit` |
719
+ | Generic | `/ship` |
720
+
721
+ Use AskUserQuestion:
722
+ - header: "Deploy"
723
+ - question: "Deploy v{version} to production now?"
724
+ - options:
725
+ - "Deploy now (Recommended)" — Run the full ship pipeline (quality gates → preview → production → verify)
726
+ - "Already deployed" — I deployed manually, just tag and archive
727
+ - "Skip deploy" — Tag and archive without deploying (e.g., staging only)
728
+
729
+ **If "Deploy now":**
730
+
731
+ Run the appropriate `/ship-*` command. This handles:
732
+ - Quality gates (tsc, eslint, build)
733
+ - Preview deploy + verification
734
+ - Production deploy
735
+ - Post-deploy verification (HTTP 200, auth, latency, console errors)
736
+ - Supabase migration safety (if applicable)
737
+
738
+ **If deploy fails:** Stop milestone completion. Fix the issue, re-run `/ship-*`, then resume with `/qualia:complete-milestone`.
739
+
740
+ **If "Already deployed" or "Skip deploy":** Continue to git_tag.
741
+
742
+ </step>
743
+
744
+ <step name="git_tag">
745
+
746
+ Create git tag:
747
+
748
+ ```bash
749
+ git tag -a v[X.Y] -m "$(cat <<'EOF'
750
+ v[X.Y] [Name]
751
+
752
+ Delivered: [One sentence]
753
+
754
+ Key accomplishments:
755
+ - [Item 1]
756
+ - [Item 2]
757
+ - [Item 3]
758
+
759
+ See .planning/MILESTONES.md for full details.
760
+ EOF
761
+ )"
762
+ ```
763
+
764
+ Confirm: "Tagged: v[X.Y]"
765
+
766
+ Ask: "Push tag to remote? (y/n)"
767
+
768
+ If yes:
769
+ ```bash
770
+ git push origin v[X.Y]
771
+ ```
772
+
773
+ </step>
774
+
775
+ <step name="git_commit_milestone">
776
+
777
+ Commit milestone completion.
778
+
779
+ ```bash
780
+ node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md
781
+ ```
782
+ ```
783
+
784
+ Confirm: "Committed: chore: complete v[X.Y] milestone"
785
+
786
+ </step>
787
+
788
+ <step name="offer_next">
789
+
790
+ ```
791
+ ✅ Milestone v[X.Y] [Name] complete
792
+
793
+ Shipped:
794
+ - [N] phases ([M] plans, [P] tasks)
795
+ - [One sentence of what shipped]
796
+
797
+ Archived:
798
+ - milestones/v[X.Y]-ROADMAP.md
799
+ - milestones/v[X.Y]-REQUIREMENTS.md
800
+
801
+ Summary: .planning/MILESTONES.md
802
+ Tag: v[X.Y]
803
+
804
+ ---
805
+
806
+ ## ▶ Next Up
807
+
808
+ **Start Next Milestone** — questioning → research → requirements → roadmap
809
+
810
+ `/clear` then `/qualia:new-milestone`
811
+
812
+ ---
813
+ ```
814
+
815
+ </step>
816
+
817
+ </process>
818
+
819
+ <milestone_naming>
820
+
821
+ **Version conventions:**
822
+ - **v1.0** — Initial MVP
823
+ - **v1.1, v1.2** — Minor updates, new features, fixes
824
+ - **v2.0, v3.0** — Major rewrites, breaking changes, new direction
825
+
826
+ **Names:** Short 1-2 words (v1.0 MVP, v1.1 Security, v1.2 Performance, v2.0 Redesign).
827
+
828
+ </milestone_naming>
829
+
830
+ <what_qualifies>
831
+
832
+ **Create milestones for:** Initial release, public releases, major feature sets shipped, before archiving planning.
833
+
834
+ **Don't create milestones for:** Every phase completion (too granular), work in progress, internal dev iterations (unless truly shipped).
835
+
836
+ Heuristic: "Is this deployed/usable/shipped?" If yes → milestone. If no → keep working.
837
+
838
+ </what_qualifies>
839
+
840
+ <success_criteria>
841
+
842
+ Milestone completion is successful when:
843
+
844
+ - [ ] MILESTONES.md entry created with stats and accomplishments
845
+ - [ ] PROJECT.md full evolution review completed
846
+ - [ ] All shipped requirements moved to Validated in PROJECT.md
847
+ - [ ] Key Decisions updated with outcomes
848
+ - [ ] ROADMAP.md reorganized with milestone grouping
849
+ - [ ] Roadmap archive created (milestones/v[X.Y]-ROADMAP.md)
850
+ - [ ] Requirements archive created (milestones/v[X.Y]-REQUIREMENTS.md)
851
+ - [ ] REQUIREMENTS.md deleted (fresh for next milestone)
852
+ - [ ] STATE.md archived to milestones/v[X.Y]-STATE.md
853
+ - [ ] STATE.md reset to clean template for next milestone
854
+ - [ ] Git tag created (v[X.Y])
855
+ - [ ] Milestone commit made (includes archive files and deletion)
856
+ - [ ] User knows next step (/qualia:new-milestone)
857
+
858
+ </success_criteria>