qualia-framework 2.6.0 → 3.2.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 (321) hide show
  1. package/CLAUDE.md +64 -0
  2. package/README.md +103 -30
  3. package/agents/builder.md +110 -0
  4. package/agents/planner.md +134 -0
  5. package/agents/qa-browser.md +186 -0
  6. package/agents/verifier.md +221 -0
  7. package/bin/cli.js +336 -531
  8. package/bin/install.js +570 -0
  9. package/bin/qualia-ui.js +299 -0
  10. package/bin/state.js +630 -0
  11. package/bin/statusline.js +252 -0
  12. package/guide.md +63 -0
  13. package/hooks/auto-update.js +139 -0
  14. package/hooks/branch-guard.js +47 -0
  15. package/hooks/migration-guard.js +60 -0
  16. package/hooks/pre-compact.js +32 -0
  17. package/hooks/pre-deploy-gate.js +110 -0
  18. package/hooks/pre-push.js +33 -0
  19. package/hooks/session-start.js +170 -0
  20. package/package.json +29 -20
  21. package/rules/design-reference.md +179 -0
  22. package/rules/frontend.md +126 -0
  23. package/skills/qualia/SKILL.md +87 -0
  24. package/skills/qualia-build/SKILL.md +97 -0
  25. package/skills/qualia-debug/SKILL.md +87 -0
  26. package/skills/qualia-design/SKILL.md +93 -0
  27. package/skills/qualia-handoff/SKILL.md +66 -0
  28. package/skills/qualia-idk/SKILL.md +8 -0
  29. package/skills/qualia-learn/SKILL.md +88 -0
  30. package/skills/qualia-new/SKILL.md +323 -0
  31. package/{framework/skills → skills}/qualia-optimize/SKILL.md +1 -1
  32. package/skills/qualia-pause/SKILL.md +63 -0
  33. package/skills/qualia-plan/SKILL.md +101 -0
  34. package/skills/qualia-polish/SKILL.md +157 -0
  35. package/skills/qualia-quick/SKILL.md +37 -0
  36. package/skills/qualia-report/SKILL.md +105 -0
  37. package/skills/qualia-resume/SKILL.md +49 -0
  38. package/skills/qualia-review/SKILL.md +76 -0
  39. package/skills/qualia-ship/SKILL.md +90 -0
  40. package/skills/qualia-skill-new/SKILL.md +167 -0
  41. package/skills/qualia-task/SKILL.md +91 -0
  42. package/skills/qualia-verify/SKILL.md +113 -0
  43. package/templates/DESIGN.md +137 -0
  44. package/templates/plan.md +28 -0
  45. package/templates/project.md +22 -0
  46. package/templates/state.md +27 -0
  47. package/templates/tracking.json +20 -0
  48. package/tests/bin.test.sh +673 -0
  49. package/tests/hooks.test.sh +315 -0
  50. package/tests/state.test.sh +535 -0
  51. package/tests/statusline.test.sh +243 -0
  52. package/bin/collect-metrics.sh +0 -62
  53. package/framework/.claudeignore +0 -51
  54. package/framework/CLAUDE.md +0 -51
  55. package/framework/MCP_SETUP.md +0 -229
  56. package/framework/agents/architecture-strategist.md +0 -53
  57. package/framework/agents/backend-agent.md +0 -150
  58. package/framework/agents/code-simplicity-reviewer.md +0 -86
  59. package/framework/agents/frontend-agent.md +0 -111
  60. package/framework/agents/kieran-typescript-reviewer.md +0 -96
  61. package/framework/agents/performance-oracle.md +0 -111
  62. package/framework/agents/qualia-codebase-mapper.md +0 -761
  63. package/framework/agents/qualia-debugger.md +0 -1204
  64. package/framework/agents/qualia-executor.md +0 -882
  65. package/framework/agents/qualia-integration-checker.md +0 -424
  66. package/framework/agents/qualia-phase-researcher.md +0 -457
  67. package/framework/agents/qualia-plan-checker.md +0 -700
  68. package/framework/agents/qualia-planner.md +0 -1245
  69. package/framework/agents/qualia-project-researcher.md +0 -603
  70. package/framework/agents/qualia-research-synthesizer.md +0 -200
  71. package/framework/agents/qualia-roadmapper.md +0 -606
  72. package/framework/agents/qualia-verifier.md +0 -686
  73. package/framework/agents/red-team-qa.md +0 -130
  74. package/framework/agents/security-auditor.md +0 -72
  75. package/framework/agents/team-orchestrator.md +0 -229
  76. package/framework/agents/teams/framework-audit-team.md +0 -66
  77. package/framework/agents/teams/full-stack-team.md +0 -48
  78. package/framework/agents/teams/optimize-team.md +0 -53
  79. package/framework/agents/teams/review-team.md +0 -70
  80. package/framework/agents/teams/ship-team.md +0 -86
  81. package/framework/agents/test-agent.md +0 -182
  82. package/framework/hooks/auto-format.sh +0 -54
  83. package/framework/hooks/block-env-edit.sh +0 -42
  84. package/framework/hooks/branch-guard.sh +0 -43
  85. package/framework/hooks/confirm-delete.sh +0 -59
  86. package/framework/hooks/migration-validate.sh +0 -77
  87. package/framework/hooks/notification-speak.sh +0 -16
  88. package/framework/hooks/pre-commit.sh +0 -100
  89. package/framework/hooks/pre-compact.sh +0 -56
  90. package/framework/hooks/pre-deploy-gate.sh +0 -160
  91. package/framework/hooks/qualia-colors.sh +0 -32
  92. package/framework/hooks/retention-cleanup.sh +0 -62
  93. package/framework/hooks/save-session-state.sh +0 -185
  94. package/framework/hooks/session-context-loader.sh +0 -96
  95. package/framework/hooks/session-learn.sh +0 -32
  96. package/framework/hooks/skill-announce.sh +0 -123
  97. package/framework/hooks/tool-error-announce.sh +0 -27
  98. package/framework/install.ps1 +0 -323
  99. package/framework/install.sh +0 -313
  100. package/framework/qualia-framework/VERSION +0 -1
  101. package/framework/qualia-framework/assets/qualia-logo.png +0 -0
  102. package/framework/qualia-framework/bin/collect-metrics.sh +0 -67
  103. package/framework/qualia-framework/bin/generate-report-docx.py +0 -429
  104. package/framework/qualia-framework/bin/qualia-tools.js +0 -2201
  105. package/framework/qualia-framework/bin/qualia-tools.test.js +0 -1054
  106. package/framework/qualia-framework/references/checkpoints.md +0 -775
  107. package/framework/qualia-framework/references/completion-checklists.md +0 -359
  108. package/framework/qualia-framework/references/continuation-format.md +0 -249
  109. package/framework/qualia-framework/references/continuation-prompt.md +0 -97
  110. package/framework/qualia-framework/references/decimal-phase-calculation.md +0 -65
  111. package/framework/qualia-framework/references/design-quality.md +0 -56
  112. package/framework/qualia-framework/references/employee-guide.md +0 -167
  113. package/framework/qualia-framework/references/git-integration.md +0 -254
  114. package/framework/qualia-framework/references/git-planning-commit.md +0 -50
  115. package/framework/qualia-framework/references/model-profile-resolution.md +0 -32
  116. package/framework/qualia-framework/references/model-profiles.md +0 -73
  117. package/framework/qualia-framework/references/phase-argument-parsing.md +0 -61
  118. package/framework/qualia-framework/references/planning-config.md +0 -195
  119. package/framework/qualia-framework/references/questioning.md +0 -141
  120. package/framework/qualia-framework/references/tdd.md +0 -263
  121. package/framework/qualia-framework/references/ui-brand.md +0 -160
  122. package/framework/qualia-framework/references/verification-patterns.md +0 -612
  123. package/framework/qualia-framework/templates/DEBUG.md +0 -159
  124. package/framework/qualia-framework/templates/DESIGN.md +0 -81
  125. package/framework/qualia-framework/templates/UAT.md +0 -247
  126. package/framework/qualia-framework/templates/codebase/architecture.md +0 -255
  127. package/framework/qualia-framework/templates/codebase/concerns.md +0 -310
  128. package/framework/qualia-framework/templates/codebase/conventions.md +0 -307
  129. package/framework/qualia-framework/templates/codebase/integrations.md +0 -280
  130. package/framework/qualia-framework/templates/codebase/stack.md +0 -186
  131. package/framework/qualia-framework/templates/codebase/structure.md +0 -285
  132. package/framework/qualia-framework/templates/codebase/testing.md +0 -480
  133. package/framework/qualia-framework/templates/config.json +0 -35
  134. package/framework/qualia-framework/templates/context.md +0 -283
  135. package/framework/qualia-framework/templates/continue-here.md +0 -78
  136. package/framework/qualia-framework/templates/debug-subagent-prompt.md +0 -91
  137. package/framework/qualia-framework/templates/discovery.md +0 -146
  138. package/framework/qualia-framework/templates/lab-notes.md +0 -16
  139. package/framework/qualia-framework/templates/milestone-archive.md +0 -123
  140. package/framework/qualia-framework/templates/milestone.md +0 -115
  141. package/framework/qualia-framework/templates/phase-prompt.md +0 -567
  142. package/framework/qualia-framework/templates/planner-subagent-prompt.md +0 -117
  143. package/framework/qualia-framework/templates/project.md +0 -184
  144. package/framework/qualia-framework/templates/projects/ai-agent.md +0 -156
  145. package/framework/qualia-framework/templates/projects/mobile-app.md +0 -181
  146. package/framework/qualia-framework/templates/projects/voice-agent.md +0 -134
  147. package/framework/qualia-framework/templates/projects/website.md +0 -137
  148. package/framework/qualia-framework/templates/requirements.md +0 -231
  149. package/framework/qualia-framework/templates/research-project/ARCHITECTURE.md +0 -204
  150. package/framework/qualia-framework/templates/research-project/FEATURES.md +0 -147
  151. package/framework/qualia-framework/templates/research-project/PITFALLS.md +0 -200
  152. package/framework/qualia-framework/templates/research-project/STACK.md +0 -120
  153. package/framework/qualia-framework/templates/research-project/SUMMARY.md +0 -170
  154. package/framework/qualia-framework/templates/research.md +0 -552
  155. package/framework/qualia-framework/templates/roadmap.md +0 -206
  156. package/framework/qualia-framework/templates/state.md +0 -179
  157. package/framework/qualia-framework/templates/summary-complex.md +0 -59
  158. package/framework/qualia-framework/templates/summary-minimal.md +0 -41
  159. package/framework/qualia-framework/templates/summary-standard.md +0 -48
  160. package/framework/qualia-framework/templates/summary.md +0 -246
  161. package/framework/qualia-framework/templates/user-setup.md +0 -311
  162. package/framework/qualia-framework/templates/verification-report.md +0 -322
  163. package/framework/qualia-framework/workflows/add-phase.md +0 -179
  164. package/framework/qualia-framework/workflows/add-todo.md +0 -157
  165. package/framework/qualia-framework/workflows/audit-milestone.md +0 -241
  166. package/framework/qualia-framework/workflows/check-todos.md +0 -176
  167. package/framework/qualia-framework/workflows/complete-milestone.md +0 -858
  168. package/framework/qualia-framework/workflows/diagnose-issues.md +0 -219
  169. package/framework/qualia-framework/workflows/discovery-phase.md +0 -289
  170. package/framework/qualia-framework/workflows/discuss-phase.md +0 -534
  171. package/framework/qualia-framework/workflows/execute-phase.md +0 -559
  172. package/framework/qualia-framework/workflows/execute-plan.md +0 -438
  173. package/framework/qualia-framework/workflows/help.md +0 -470
  174. package/framework/qualia-framework/workflows/insert-phase.md +0 -220
  175. package/framework/qualia-framework/workflows/list-phase-assumptions.md +0 -178
  176. package/framework/qualia-framework/workflows/map-codebase.md +0 -327
  177. package/framework/qualia-framework/workflows/new-milestone.md +0 -363
  178. package/framework/qualia-framework/workflows/new-project.md +0 -982
  179. package/framework/qualia-framework/workflows/pause-work.md +0 -122
  180. package/framework/qualia-framework/workflows/plan-milestone-gaps.md +0 -256
  181. package/framework/qualia-framework/workflows/plan-phase.md +0 -422
  182. package/framework/qualia-framework/workflows/progress.md +0 -389
  183. package/framework/qualia-framework/workflows/quick.md +0 -252
  184. package/framework/qualia-framework/workflows/remove-phase.md +0 -326
  185. package/framework/qualia-framework/workflows/research-phase.md +0 -74
  186. package/framework/qualia-framework/workflows/resume-project.md +0 -306
  187. package/framework/qualia-framework/workflows/set-profile.md +0 -80
  188. package/framework/qualia-framework/workflows/settings.md +0 -145
  189. package/framework/qualia-framework/workflows/transition.md +0 -556
  190. package/framework/qualia-framework/workflows/update.md +0 -197
  191. package/framework/qualia-framework/workflows/verify-phase.md +0 -195
  192. package/framework/qualia-framework/workflows/verify-work.md +0 -625
  193. package/framework/rules/context7.md +0 -14
  194. package/framework/rules/frontend.md +0 -33
  195. package/framework/rules/speed.md +0 -23
  196. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  197. package/framework/scripts/apply-retention.sh +0 -120
  198. package/framework/scripts/bootstrap-pop-os.sh +0 -354
  199. package/framework/scripts/claude-voice +0 -13
  200. package/framework/scripts/cleanup.sh +0 -131
  201. package/framework/scripts/cowork-mode.sh +0 -141
  202. package/framework/scripts/generate-project-claude-md.sh +0 -153
  203. package/framework/scripts/load-test-webhook.js +0 -172
  204. package/framework/scripts/say.py +0 -236
  205. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +0 -167
  206. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +0 -216
  207. package/framework/scripts/speak.py +0 -55
  208. package/framework/scripts/speak.sh +0 -18
  209. package/framework/scripts/status.sh +0 -138
  210. package/framework/scripts/sync-to-framework.sh +0 -65
  211. package/framework/scripts/voice-hotkey.py +0 -227
  212. package/framework/scripts/voice-input.sh +0 -51
  213. package/framework/skills/animate/SKILL.md +0 -202
  214. package/framework/skills/bolder/SKILL.md +0 -144
  215. package/framework/skills/browser-qa/SKILL.md +0 -536
  216. package/framework/skills/clarify/SKILL.md +0 -179
  217. package/framework/skills/client-handoff/SKILL.md +0 -135
  218. package/framework/skills/collab-onboard/SKILL.md +0 -111
  219. package/framework/skills/colorize/SKILL.md +0 -170
  220. package/framework/skills/critique/SKILL.md +0 -126
  221. package/framework/skills/deep-research/SKILL.md +0 -240
  222. package/framework/skills/delight/SKILL.md +0 -329
  223. package/framework/skills/deploy/SKILL.md +0 -261
  224. package/framework/skills/deploy-verify/SKILL.md +0 -377
  225. package/framework/skills/deploy-verify/scripts/canary-check.sh +0 -206
  226. package/framework/skills/deploy-verify/scripts/check-console-errors.js +0 -147
  227. package/framework/skills/deploy-verify/scripts/check-cwv.js +0 -139
  228. package/framework/skills/deploy-verify/scripts/project-detect.sh +0 -84
  229. package/framework/skills/deploy-verify/scripts/verify.sh +0 -548
  230. package/framework/skills/design-quieter/SKILL.md +0 -130
  231. package/framework/skills/distill/SKILL.md +0 -149
  232. package/framework/skills/docs-lookup/SKILL.md +0 -79
  233. package/framework/skills/fcm-notifications/SKILL.md +0 -125
  234. package/framework/skills/financial-ledger/SKILL.md +0 -1039
  235. package/framework/skills/frontend-master/NOTICE.md +0 -4
  236. package/framework/skills/frontend-master/SKILL.md +0 -127
  237. package/framework/skills/frontend-master/reference/color-and-contrast.md +0 -132
  238. package/framework/skills/frontend-master/reference/interaction-design.md +0 -123
  239. package/framework/skills/frontend-master/reference/motion-design.md +0 -99
  240. package/framework/skills/frontend-master/reference/responsive-design.md +0 -114
  241. package/framework/skills/frontend-master/reference/spatial-design.md +0 -100
  242. package/framework/skills/frontend-master/reference/typography.md +0 -131
  243. package/framework/skills/frontend-master/reference/ux-writing.md +0 -107
  244. package/framework/skills/harden/SKILL.md +0 -357
  245. package/framework/skills/i18n-rtl/SKILL.md +0 -752
  246. package/framework/skills/learn/SKILL.md +0 -95
  247. package/framework/skills/memory/SKILL.md +0 -50
  248. package/framework/skills/mobile-expo/SKILL.md +0 -977
  249. package/framework/skills/mobile-expo/references/store-checklist.md +0 -550
  250. package/framework/skills/nestjs-backend/README.md +0 -73
  251. package/framework/skills/nestjs-backend/SKILL.md +0 -446
  252. package/framework/skills/nestjs-backend/references/templates.md +0 -1173
  253. package/framework/skills/normalize/SKILL.md +0 -79
  254. package/framework/skills/onboard/SKILL.md +0 -242
  255. package/framework/skills/openrouter-agent/SKILL.md +0 -922
  256. package/framework/skills/polish/SKILL.md +0 -209
  257. package/framework/skills/pr/SKILL.md +0 -66
  258. package/framework/skills/qualia/SKILL.md +0 -199
  259. package/framework/skills/qualia-add-todo/SKILL.md +0 -68
  260. package/framework/skills/qualia-audit-milestone/SKILL.md +0 -95
  261. package/framework/skills/qualia-check-todos/SKILL.md +0 -55
  262. package/framework/skills/qualia-complete-milestone/SKILL.md +0 -134
  263. package/framework/skills/qualia-debug/SKILL.md +0 -149
  264. package/framework/skills/qualia-design/SKILL.md +0 -203
  265. package/framework/skills/qualia-discuss-phase/SKILL.md +0 -72
  266. package/framework/skills/qualia-evolve/SKILL.md +0 -200
  267. package/framework/skills/qualia-execute-phase/SKILL.md +0 -89
  268. package/framework/skills/qualia-framework-audit/SKILL.md +0 -604
  269. package/framework/skills/qualia-guide/SKILL.md +0 -32
  270. package/framework/skills/qualia-help/SKILL.md +0 -114
  271. package/framework/skills/qualia-idk/SKILL.md +0 -352
  272. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +0 -67
  273. package/framework/skills/qualia-new-milestone/SKILL.md +0 -72
  274. package/framework/skills/qualia-new-project/SKILL.md +0 -232
  275. package/framework/skills/qualia-pause-work/SKILL.md +0 -96
  276. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +0 -57
  277. package/framework/skills/qualia-plan-phase/SKILL.md +0 -104
  278. package/framework/skills/qualia-production-check/SKILL.md +0 -0
  279. package/framework/skills/qualia-progress/SKILL.md +0 -53
  280. package/framework/skills/qualia-quick/SKILL.md +0 -89
  281. package/framework/skills/qualia-report/SKILL.md +0 -166
  282. package/framework/skills/qualia-research-phase/SKILL.md +0 -88
  283. package/framework/skills/qualia-resume-work/SKILL.md +0 -62
  284. package/framework/skills/qualia-review/SKILL.md +0 -263
  285. package/framework/skills/qualia-start/SKILL.md +0 -161
  286. package/framework/skills/qualia-verify-work/SKILL.md +0 -132
  287. package/framework/skills/rag/SKILL.md +0 -750
  288. package/framework/skills/responsive/SKILL.md +0 -231
  289. package/framework/skills/retro/SKILL.md +0 -284
  290. package/framework/skills/sakani-conventions/SKILL.md +0 -136
  291. package/framework/skills/sakani-conventions/evals/evals.json +0 -23
  292. package/framework/skills/sakani-conventions/references/entities.md +0 -365
  293. package/framework/skills/sakani-conventions/references/error-codes.md +0 -95
  294. package/framework/skills/seo-master/SKILL.md +0 -490
  295. package/framework/skills/seo-master/references/checklist.md +0 -199
  296. package/framework/skills/seo-master/references/structured-data.md +0 -609
  297. package/framework/skills/ship/SKILL.md +0 -239
  298. package/framework/skills/stack-researcher/SKILL.md +0 -215
  299. package/framework/skills/status/SKILL.md +0 -154
  300. package/framework/skills/status/scripts/health-check.sh +0 -562
  301. package/framework/skills/subscription-payments/SKILL.md +0 -250
  302. package/framework/skills/supabase/SKILL.md +0 -973
  303. package/framework/skills/supabase/references/templates.md +0 -159
  304. package/framework/skills/team/SKILL.md +0 -67
  305. package/framework/skills/test-runner/SKILL.md +0 -202
  306. package/framework/skills/voice-agent/SKILL.md +0 -1312
  307. package/framework/skills/zoho-workflow/SKILL.md +0 -51
  308. package/framework/statusline-command.sh +0 -117
  309. package/framework/teams/default/inboxes/plan-04.json +0 -9
  310. package/framework/teams/review-team.md +0 -75
  311. package/framework/teams/ship-team.md +0 -86
  312. package/profiles/fawzi.json +0 -16
  313. package/profiles/hasan.json +0 -16
  314. package/profiles/moayad.json +0 -16
  315. package/templates/CLAUDE-owner.md +0 -52
  316. package/templates/CLAUDE.md.hbs +0 -58
  317. package/templates/env.claude.template +0 -12
  318. package/templates/settings.json +0 -172
  319. package/uninstall.sh +0 -90
  320. /package/{framework/rules → rules}/deployment.md +0 -0
  321. /package/{framework/rules → rules}/security.md +0 -0
@@ -1,322 +0,0 @@
1
- # Verification Report Template
2
-
3
- Template for `.planning/phases/XX-name/{phase}-VERIFICATION.md` — phase goal verification results.
4
-
5
- ---
6
-
7
- ## File Template
8
-
9
- ```markdown
10
- ---
11
- phase: XX-name
12
- verified: YYYY-MM-DDTHH:MM:SSZ
13
- status: passed | gaps_found | human_needed
14
- score: N/M must-haves verified
15
- ---
16
-
17
- # Phase {X}: {Name} Verification Report
18
-
19
- **Phase Goal:** {goal from ROADMAP.md}
20
- **Verified:** {timestamp}
21
- **Status:** {passed | gaps_found | human_needed}
22
-
23
- ## Goal Achievement
24
-
25
- ### Observable Truths
26
-
27
- | # | Truth | Status | Evidence |
28
- |---|-------|--------|----------|
29
- | 1 | {truth from must_haves} | ✓ VERIFIED | {what confirmed it} |
30
- | 2 | {truth from must_haves} | ✗ FAILED | {what's wrong} |
31
- | 3 | {truth from must_haves} | ? UNCERTAIN | {why can't verify} |
32
-
33
- **Score:** {N}/{M} truths verified
34
-
35
- ### Required Artifacts
36
-
37
- | Artifact | Expected | Status | Details |
38
- |----------|----------|--------|---------|
39
- | `src/components/Chat.tsx` | Message list component | ✓ EXISTS + SUBSTANTIVE | Exports ChatList, renders Message[], no stubs |
40
- | `src/app/api/chat/route.ts` | Message CRUD | ✗ STUB | File exists but POST returns placeholder |
41
- | `prisma/schema.prisma` | Message model | ✓ EXISTS + SUBSTANTIVE | Model defined with all fields |
42
-
43
- **Artifacts:** {N}/{M} verified
44
-
45
- ### Key Link Verification
46
-
47
- | From | To | Via | Status | Details |
48
- |------|----|----|--------|---------|
49
- | Chat.tsx | /api/chat | fetch in useEffect | ✓ WIRED | Line 23: `fetch('/api/chat')` with response handling |
50
- | ChatInput | /api/chat POST | onSubmit handler | ✗ NOT WIRED | onSubmit only calls console.log |
51
- | /api/chat POST | database | prisma.message.create | ✗ NOT WIRED | Returns hardcoded response, no DB call |
52
-
53
- **Wiring:** {N}/{M} connections verified
54
-
55
- ## Requirements Coverage
56
-
57
- | Requirement | Status | Blocking Issue |
58
- |-------------|--------|----------------|
59
- | {REQ-01}: {description} | ✓ SATISFIED | - |
60
- | {REQ-02}: {description} | ✗ BLOCKED | API route is stub |
61
- | {REQ-03}: {description} | ? NEEDS HUMAN | Can't verify WebSocket programmatically |
62
-
63
- **Coverage:** {N}/{M} requirements satisfied
64
-
65
- ## Anti-Patterns Found
66
-
67
- | File | Line | Pattern | Severity | Impact |
68
- |------|------|---------|----------|--------|
69
- | src/app/api/chat/route.ts | 12 | `// TODO: implement` | ⚠️ Warning | Indicates incomplete |
70
- | src/components/Chat.tsx | 45 | `return <div>Placeholder</div>` | 🛑 Blocker | Renders no content |
71
- | src/hooks/useChat.ts | - | File missing | 🛑 Blocker | Expected hook doesn't exist |
72
-
73
- **Anti-patterns:** {N} found ({blockers} blockers, {warnings} warnings)
74
-
75
- ## Human Verification Required
76
-
77
- {If no human verification needed:}
78
- None — all verifiable items checked programmatically.
79
-
80
- {If human verification needed:}
81
-
82
- ### 1. {Test Name}
83
- **Test:** {What to do}
84
- **Expected:** {What should happen}
85
- **Why human:** {Why can't verify programmatically}
86
-
87
- ### 2. {Test Name}
88
- **Test:** {What to do}
89
- **Expected:** {What should happen}
90
- **Why human:** {Why can't verify programmatically}
91
-
92
- ## Gaps Summary
93
-
94
- {If no gaps:}
95
- **No gaps found.** Phase goal achieved. Ready to proceed.
96
-
97
- {If gaps found:}
98
-
99
- ### Critical Gaps (Block Progress)
100
-
101
- 1. **{Gap name}**
102
- - Missing: {what's missing}
103
- - Impact: {why this blocks the goal}
104
- - Fix: {what needs to happen}
105
-
106
- 2. **{Gap name}**
107
- - Missing: {what's missing}
108
- - Impact: {why this blocks the goal}
109
- - Fix: {what needs to happen}
110
-
111
- ### Non-Critical Gaps (Can Defer)
112
-
113
- 1. **{Gap name}**
114
- - Issue: {what's wrong}
115
- - Impact: {limited impact because...}
116
- - Recommendation: {fix now or defer}
117
-
118
- ## Recommended Fix Plans
119
-
120
- {If gaps found, generate fix plan recommendations:}
121
-
122
- ### {phase}-{next}-PLAN.md: {Fix Name}
123
-
124
- **Objective:** {What this fixes}
125
-
126
- **Tasks:**
127
- 1. {Task to fix gap 1}
128
- 2. {Task to fix gap 2}
129
- 3. {Verification task}
130
-
131
- **Estimated scope:** {Small / Medium}
132
-
133
- ---
134
-
135
- ### {phase}-{next+1}-PLAN.md: {Fix Name}
136
-
137
- **Objective:** {What this fixes}
138
-
139
- **Tasks:**
140
- 1. {Task}
141
- 2. {Task}
142
-
143
- **Estimated scope:** {Small / Medium}
144
-
145
- ---
146
-
147
- ## Verification Metadata
148
-
149
- **Verification approach:** Goal-backward (derived from phase goal)
150
- **Must-haves source:** {PLAN.md frontmatter | derived from ROADMAP.md goal}
151
- **Automated checks:** {N} passed, {M} failed
152
- **Human checks required:** {N}
153
- **Total verification time:** {duration}
154
-
155
- ---
156
- *Verified: {timestamp}*
157
- *Verifier: Claude (subagent)*
158
- ```
159
-
160
- ---
161
-
162
- ## Guidelines
163
-
164
- **Status values:**
165
- - `passed` — All must-haves verified, no blockers
166
- - `gaps_found` — One or more critical gaps found
167
- - `human_needed` — Automated checks pass but human verification required
168
-
169
- **Evidence types:**
170
- - For EXISTS: "File at path, exports X"
171
- - For SUBSTANTIVE: "N lines, has patterns X, Y, Z"
172
- - For WIRED: "Line N: code that connects A to B"
173
- - For FAILED: "Missing because X" or "Stub because Y"
174
-
175
- **Severity levels:**
176
- - 🛑 Blocker: Prevents goal achievement, must fix
177
- - ⚠️ Warning: Indicates incomplete but doesn't block
178
- - ℹ️ Info: Notable but not problematic
179
-
180
- **Fix plan generation:**
181
- - Only generate if gaps_found
182
- - Group related fixes into single plans
183
- - Keep to 2-3 tasks per plan
184
- - Include verification task in each plan
185
-
186
- ---
187
-
188
- ## Example
189
-
190
- ```markdown
191
- ---
192
- phase: 03-chat
193
- verified: 2025-01-15T14:30:00Z
194
- status: gaps_found
195
- score: 2/5 must-haves verified
196
- ---
197
-
198
- # Phase 3: Chat Interface Verification Report
199
-
200
- **Phase Goal:** Working chat interface where users can send and receive messages
201
- **Verified:** 2025-01-15T14:30:00Z
202
- **Status:** gaps_found
203
-
204
- ## Goal Achievement
205
-
206
- ### Observable Truths
207
-
208
- | # | Truth | Status | Evidence |
209
- |---|-------|--------|----------|
210
- | 1 | User can see existing messages | ✗ FAILED | Component renders placeholder, not message data |
211
- | 2 | User can type a message | ✓ VERIFIED | Input field exists with onChange handler |
212
- | 3 | User can send a message | ✗ FAILED | onSubmit handler is console.log only |
213
- | 4 | Sent message appears in list | ✗ FAILED | No state update after send |
214
- | 5 | Messages persist across refresh | ? UNCERTAIN | Can't verify - send doesn't work |
215
-
216
- **Score:** 1/5 truths verified
217
-
218
- ### Required Artifacts
219
-
220
- | Artifact | Expected | Status | Details |
221
- |----------|----------|--------|---------|
222
- | `src/components/Chat.tsx` | Message list component | ✗ STUB | Returns `<div>Chat will be here</div>` |
223
- | `src/components/ChatInput.tsx` | Message input | ✓ EXISTS + SUBSTANTIVE | Form with input, submit button, handlers |
224
- | `src/app/api/chat/route.ts` | Message CRUD | ✗ STUB | GET returns [], POST returns { ok: true } |
225
- | `prisma/schema.prisma` | Message model | ✓ EXISTS + SUBSTANTIVE | Message model with id, content, userId, createdAt |
226
-
227
- **Artifacts:** 2/4 verified
228
-
229
- ### Key Link Verification
230
-
231
- | From | To | Via | Status | Details |
232
- |------|----|----|--------|---------|
233
- | Chat.tsx | /api/chat GET | fetch | ✗ NOT WIRED | No fetch call in component |
234
- | ChatInput | /api/chat POST | onSubmit | ✗ NOT WIRED | Handler only logs, doesn't fetch |
235
- | /api/chat GET | database | prisma.message.findMany | ✗ NOT WIRED | Returns hardcoded [] |
236
- | /api/chat POST | database | prisma.message.create | ✗ NOT WIRED | Returns { ok: true }, no DB call |
237
-
238
- **Wiring:** 0/4 connections verified
239
-
240
- ## Requirements Coverage
241
-
242
- | Requirement | Status | Blocking Issue |
243
- |-------------|--------|----------------|
244
- | CHAT-01: User can send message | ✗ BLOCKED | API POST is stub |
245
- | CHAT-02: User can view messages | ✗ BLOCKED | Component is placeholder |
246
- | CHAT-03: Messages persist | ✗ BLOCKED | No database integration |
247
-
248
- **Coverage:** 0/3 requirements satisfied
249
-
250
- ## Anti-Patterns Found
251
-
252
- | File | Line | Pattern | Severity | Impact |
253
- |------|------|---------|----------|--------|
254
- | src/components/Chat.tsx | 8 | `<div>Chat will be here</div>` | 🛑 Blocker | No actual content |
255
- | src/app/api/chat/route.ts | 5 | `return Response.json([])` | 🛑 Blocker | Hardcoded empty |
256
- | src/app/api/chat/route.ts | 12 | `// TODO: save to database` | ⚠️ Warning | Incomplete |
257
-
258
- **Anti-patterns:** 3 found (2 blockers, 1 warning)
259
-
260
- ## Human Verification Required
261
-
262
- None needed until automated gaps are fixed.
263
-
264
- ## Gaps Summary
265
-
266
- ### Critical Gaps (Block Progress)
267
-
268
- 1. **Chat component is placeholder**
269
- - Missing: Actual message list rendering
270
- - Impact: Users see "Chat will be here" instead of messages
271
- - Fix: Implement Chat.tsx to fetch and render messages
272
-
273
- 2. **API routes are stubs**
274
- - Missing: Database integration in GET and POST
275
- - Impact: No data persistence, no real functionality
276
- - Fix: Wire prisma calls in route handlers
277
-
278
- 3. **No wiring between frontend and backend**
279
- - Missing: fetch calls in components
280
- - Impact: Even if API worked, UI wouldn't call it
281
- - Fix: Add useEffect fetch in Chat, onSubmit fetch in ChatInput
282
-
283
- ## Recommended Fix Plans
284
-
285
- ### 03-04-PLAN.md: Implement Chat API
286
-
287
- **Objective:** Wire API routes to database
288
-
289
- **Tasks:**
290
- 1. Implement GET /api/chat with prisma.message.findMany
291
- 2. Implement POST /api/chat with prisma.message.create
292
- 3. Verify: API returns real data, POST creates records
293
-
294
- **Estimated scope:** Small
295
-
296
- ---
297
-
298
- ### 03-05-PLAN.md: Implement Chat UI
299
-
300
- **Objective:** Wire Chat component to API
301
-
302
- **Tasks:**
303
- 1. Implement Chat.tsx with useEffect fetch and message rendering
304
- 2. Wire ChatInput onSubmit to POST /api/chat
305
- 3. Verify: Messages display, new messages appear after send
306
-
307
- **Estimated scope:** Small
308
-
309
- ---
310
-
311
- ## Verification Metadata
312
-
313
- **Verification approach:** Goal-backward (derived from phase goal)
314
- **Must-haves source:** 03-01-PLAN.md frontmatter
315
- **Automated checks:** 2 passed, 8 failed
316
- **Human checks required:** 0 (blocked by automated failures)
317
- **Total verification time:** 2 min
318
-
319
- ---
320
- *Verified: 2025-01-15T14:30:00Z*
321
- *Verifier: Claude (subagent)*
322
- ```
@@ -1,179 +0,0 @@
1
- <purpose>
2
- Add a new integer phase to the end of the current milestone in the roadmap. Automatically calculates next phase number, creates phase directory, and updates roadmap structure.
3
- </purpose>
4
-
5
- <required_reading>
6
- Read all files referenced by the invoking prompt's execution_context before starting.
7
- </required_reading>
8
-
9
- <process>
10
-
11
- <step name="parse_arguments">
12
- Parse the command arguments:
13
- - All arguments become the phase description
14
- - Example: `/qualia:add-phase Add authentication` → description = "Add authentication"
15
- - Example: `/qualia:add-phase Fix critical performance issues` → description = "Fix critical performance issues"
16
-
17
- If no arguments provided:
18
-
19
- ```
20
- ERROR: Phase description required
21
- Usage: /qualia:add-phase <description>
22
- Example: /qualia:add-phase Add authentication system
23
- ```
24
-
25
- Exit.
26
- </step>
27
-
28
- <step name="init_context">
29
- Load phase operation context:
30
-
31
- ```bash
32
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init phase-op "0")
33
- ```
34
-
35
- Check `roadmap_exists` from init JSON. If false:
36
- ```
37
- ERROR: No roadmap found (.planning/ROADMAP.md)
38
- Run /qualia:new-project to initialize.
39
- ```
40
- Exit.
41
-
42
- Read roadmap content for parsing.
43
- </step>
44
-
45
- <step name="find_current_milestone">
46
- Parse the roadmap to find the current milestone section:
47
-
48
- 1. Locate the "## Current Milestone:" heading
49
- 2. Extract milestone name and version
50
- 3. Identify all phases under this milestone (before next "---" separator or next milestone heading)
51
- 4. Parse existing phase numbers (including decimals if present)
52
-
53
- Example structure:
54
-
55
- ```
56
- ## Current Milestone: v1.0 Foundation
57
-
58
- ### Phase 4: Focused Command System
59
- ### Phase 5: Path Routing & Validation
60
- ### Phase 6: Documentation & Distribution
61
- ```
62
- </step>
63
-
64
- <step name="calculate_next_phase">
65
- Find the highest integer phase number in the current milestone:
66
-
67
- 1. Extract all phase numbers from phase headings (### Phase N:)
68
- 2. Filter to integer phases only (ignore decimals like 4.1, 4.2)
69
- 3. Find the maximum integer value
70
- 4. Add 1 to get the next phase number
71
-
72
- Example: If phases are 4, 5, 5.1, 6 → next is 7
73
-
74
- Format as two-digit: `printf "%02d" $next_phase`
75
- </step>
76
-
77
- <step name="generate_slug">
78
- Convert the phase description to a kebab-case slug.
79
-
80
- Use `init phase-op` which provides `phase_slug` computed from phase name, or call:
81
- ```bash
82
- slug=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js generate-slug "$description" --raw)
83
- ```
84
-
85
- Phase directory name: `{two-digit-phase}-{slug}`
86
- Example: `07-add-authentication`
87
- </step>
88
-
89
- <step name="create_phase_directory">
90
- Create the phase directory structure:
91
-
92
- ```bash
93
- phase_dir=".planning/phases/${phase_num}-${slug}"
94
- mkdir -p "$phase_dir"
95
- ```
96
-
97
- Confirm: "Created directory: $phase_dir"
98
- </step>
99
-
100
- <step name="update_roadmap">
101
- Add the new phase entry to the roadmap:
102
-
103
- 1. Find the insertion point (after last phase in current milestone, before "---" separator)
104
- 2. Insert new phase heading:
105
-
106
- ```
107
- ### Phase {N}: {Description}
108
-
109
- **Goal:** [To be planned]
110
- **Depends on:** Phase {N-1}
111
- **Plans:** 0 plans
112
-
113
- Plans:
114
- - [ ] TBD (run /qualia:plan-phase {N} to break down)
115
-
116
- **Details:**
117
- [To be added during planning]
118
- ```
119
-
120
- 3. Write updated roadmap back to file
121
-
122
- Preserve all other content exactly (formatting, spacing, other phases).
123
- </step>
124
-
125
- <step name="update_project_state">
126
- Update STATE.md to reflect the new phase:
127
-
128
- 1. Read `.planning/STATE.md`
129
- 2. Under "## Current Position" → "**Next Phase:**" add reference to new phase
130
- 3. Under "## Accumulated Context" → "### Roadmap Evolution" add entry:
131
- ```
132
- - Phase {N} added: {description}
133
- ```
134
-
135
- If "Roadmap Evolution" section doesn't exist, create it.
136
- </step>
137
-
138
- <step name="completion">
139
- Present completion summary:
140
-
141
- ```
142
- Phase {N} added to current milestone:
143
- - Description: {description}
144
- - Directory: .planning/phases/{phase-num}-{slug}/
145
- - Status: Not planned yet
146
-
147
- Roadmap updated: .planning/ROADMAP.md
148
- Project state updated: .planning/STATE.md
149
-
150
- ---
151
-
152
- ## ▶ Next Up
153
-
154
- **Phase {N}: {description}**
155
-
156
- `/qualia:plan-phase {N}`
157
-
158
- <sub>`/clear` first → fresh context window</sub>
159
-
160
- ---
161
-
162
- **Also available:**
163
- - `/qualia:add-phase <description>` — add another phase
164
- - Review roadmap
165
-
166
- ---
167
- ```
168
- </step>
169
-
170
- </process>
171
-
172
- <success_criteria>
173
- - [ ] Phase directory created: `.planning/phases/{NN}-{slug}/`
174
- - [ ] Roadmap updated with new phase entry
175
- - [ ] STATE.md updated with roadmap evolution note
176
- - [ ] New phase appears at end of current milestone
177
- - [ ] Next phase number calculated correctly (ignoring decimals)
178
- - [ ] User informed of next steps
179
- </success_criteria>
@@ -1,157 +0,0 @@
1
- <purpose>
2
- Capture an idea, task, or issue that surfaces during a Qualia session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
3
- </purpose>
4
-
5
- <required_reading>
6
- Read all files referenced by the invoking prompt's execution_context before starting.
7
- </required_reading>
8
-
9
- <process>
10
-
11
- <step name="init_context">
12
- Load todo context:
13
-
14
- ```bash
15
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init todos)
16
- ```
17
-
18
- Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
19
-
20
- Ensure directories exist:
21
- ```bash
22
- mkdir -p .planning/todos/pending .planning/todos/done
23
- ```
24
-
25
- Note existing areas from the todos array for consistency in infer_area step.
26
- </step>
27
-
28
- <step name="extract_content">
29
- **With arguments:** Use as the title/focus.
30
- - `/qualia:add-todo Add auth token refresh` → title = "Add auth token refresh"
31
-
32
- **Without arguments:** Analyze recent conversation to extract:
33
- - The specific problem, idea, or task discussed
34
- - Relevant file paths mentioned
35
- - Technical details (error messages, line numbers, constraints)
36
-
37
- Formulate:
38
- - `title`: 3-10 word descriptive title (action verb preferred)
39
- - `problem`: What's wrong or why this is needed
40
- - `solution`: Approach hints or "TBD" if just an idea
41
- - `files`: Relevant paths with line numbers from conversation
42
- </step>
43
-
44
- <step name="infer_area">
45
- Infer area from file paths:
46
-
47
- | Path pattern | Area |
48
- |--------------|------|
49
- | `src/api/*`, `api/*` | `api` |
50
- | `src/components/*`, `src/ui/*` | `ui` |
51
- | `src/auth/*`, `auth/*` | `auth` |
52
- | `src/db/*`, `database/*` | `database` |
53
- | `tests/*`, `__tests__/*` | `testing` |
54
- | `docs/*` | `docs` |
55
- | `.planning/*` | `planning` |
56
- | `scripts/*`, `bin/*` | `tooling` |
57
- | No files or unclear | `general` |
58
-
59
- Use existing area from step 2 if similar match exists.
60
- </step>
61
-
62
- <step name="check_duplicates">
63
- ```bash
64
- # Search for key words from title in existing todos
65
- grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
66
- ```
67
-
68
- If potential duplicate found:
69
- 1. Read the existing todo
70
- 2. Compare scope
71
-
72
- If overlapping, use AskUserQuestion:
73
- - header: "Duplicate?"
74
- - question: "Similar todo exists: [title]. What would you like to do?"
75
- - options:
76
- - "Skip" — keep existing todo
77
- - "Replace" — update existing with new context
78
- - "Add anyway" — create as separate todo
79
- </step>
80
-
81
- <step name="create_file">
82
- Use values from init context: `timestamp` and `date` are already available.
83
-
84
- Generate slug for the title:
85
- ```bash
86
- slug=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js generate-slug "$title" --raw)
87
- ```
88
-
89
- Write to `.planning/todos/pending/${date}-${slug}.md`:
90
-
91
- ```markdown
92
- ---
93
- created: [timestamp]
94
- title: [title]
95
- area: [area]
96
- files:
97
- - [file:lines]
98
- ---
99
-
100
- ## Problem
101
-
102
- [problem description - enough context for future Claude to understand weeks later]
103
-
104
- ## Solution
105
-
106
- [approach hints or "TBD"]
107
- ```
108
- </step>
109
-
110
- <step name="update_state">
111
- If `.planning/STATE.md` exists:
112
-
113
- 1. Use `todo_count` from init context (or re-run `init todos` if count changed)
114
- 2. Update "### Pending Todos" under "## Accumulated Context"
115
- </step>
116
-
117
- <step name="git_commit">
118
- Commit the todo and any updated state:
119
-
120
- ```bash
121
- node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
122
- ```
123
-
124
- Tool respects `commit_docs` config and gitignore automatically.
125
-
126
- Confirm: "Committed: docs: capture todo - [title]"
127
- </step>
128
-
129
- <step name="confirm">
130
- ```
131
- Todo saved: .planning/todos/pending/[filename]
132
-
133
- [title]
134
- Area: [area]
135
- Files: [count] referenced
136
-
137
- ---
138
-
139
- Would you like to:
140
-
141
- 1. Continue with current work
142
- 2. Add another todo
143
- 3. View all todos (/qualia:check-todos)
144
- ```
145
- </step>
146
-
147
- </process>
148
-
149
- <success_criteria>
150
- - [ ] Directory structure exists
151
- - [ ] Todo file created with valid frontmatter
152
- - [ ] Problem section has enough context for future Claude
153
- - [ ] No duplicates (checked and resolved)
154
- - [ ] Area consistent with existing todos
155
- - [ ] STATE.md updated if exists
156
- - [ ] Todo and state committed to git
157
- </success_criteria>