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,625 +0,0 @@
1
- <purpose>
2
- Validate built features through conversational testing with persistent state. Creates UAT.md that tracks test progress, survives /clear, and feeds gaps into /qualia:plan-phase --gaps.
3
-
4
- User tests, Claude records. One test at a time. Plain text responses.
5
- </purpose>
6
-
7
- <philosophy>
8
- **Show expected, ask if reality matches.**
9
-
10
- Claude presents what SHOULD happen. User confirms or describes what's different.
11
- - "yes" / "y" / "next" / empty → pass
12
- - Anything else → logged as issue, severity inferred
13
-
14
- No Pass/Fail buttons. No severity questions. Just: "Here's what should happen. Does it?"
15
- </philosophy>
16
-
17
- <template>
18
- @/home/qualia/.claude/qualia-framework/templates/UAT.md
19
- </template>
20
-
21
- <process>
22
-
23
- <step name="initialize" priority="first">
24
- If $ARGUMENTS contains a phase number, load context:
25
-
26
- ```bash
27
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init verify-work "${PHASE_ARG}")
28
- ```
29
-
30
- Parse JSON for: `planner_model`, `checker_model`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `has_verification`.
31
- </step>
32
-
33
- <step name="check_active_session">
34
- **First: Check for active UAT sessions**
35
-
36
- ```bash
37
- find .planning/phases -name "*-UAT.md" -type f 2>/dev/null | head -5
38
- ```
39
-
40
- **If active sessions exist AND no $ARGUMENTS provided:**
41
-
42
- Read each file's frontmatter (status, phase) and Current Test section.
43
-
44
- Display inline:
45
-
46
- ```
47
- ## Active UAT Sessions
48
-
49
- | # | Phase | Status | Current Test | Progress |
50
- |---|-------|--------|--------------|----------|
51
- | 1 | 04-comments | testing | 3. Reply to Comment | 2/6 |
52
- | 2 | 05-auth | testing | 1. Login Form | 0/4 |
53
-
54
- Reply with a number to resume, or provide a phase number to start new.
55
- ```
56
-
57
- Wait for user response.
58
-
59
- - If user replies with number (1, 2) → Load that file, go to `resume_from_file`
60
- - If user replies with phase number → Treat as new session, go to `create_uat_file`
61
-
62
- **If active sessions exist AND $ARGUMENTS provided:**
63
-
64
- Check if session exists for that phase. If yes, offer to resume or restart.
65
- If no, continue to `create_uat_file`.
66
-
67
- **If no active sessions AND no $ARGUMENTS:**
68
-
69
- ```
70
- No active UAT sessions.
71
-
72
- Provide a phase number to start testing (e.g., /qualia:verify-work 4)
73
- ```
74
-
75
- **If no active sessions AND $ARGUMENTS provided:**
76
-
77
- Continue to `create_uat_file`.
78
- </step>
79
-
80
- <step name="run_automated_tests">
81
- **Run automated tests before manual UAT:**
82
-
83
- Follow the canonical test detection and execution from `~/.claude/skills/test-runner/SKILL.md` (Run Tests section).
84
-
85
- **If tests fail:**
86
-
87
- Present to user:
88
- ```
89
- ⚠ {N} automated test(s) failed. These should be fixed before manual UAT.
90
-
91
- Failed tests:
92
- {list}
93
-
94
- Options:
95
- 1. Fix tests first (recommended) — exit and fix, then re-run /qualia:verify-work
96
- 2. Continue to manual UAT anyway — test failures will be noted in UAT.md
97
- ```
98
-
99
- Use AskUserQuestion with those 2 options.
100
-
101
- If "Fix tests first": Exit with guidance.
102
- If "Continue": Note failures in UAT.md header and proceed to find_summaries.
103
-
104
- **If no test infrastructure detected:**
105
-
106
- Skip silently — proceed to find_summaries.
107
- </step>
108
-
109
- <step name="find_summaries">
110
- **Find what to test:**
111
-
112
- Use `phase_dir` from init (or run init if not already done).
113
-
114
- ```bash
115
- ls "$phase_dir"/*-SUMMARY.md 2>/dev/null
116
- ```
117
-
118
- Read each SUMMARY.md to extract testable deliverables.
119
- </step>
120
-
121
- <step name="extract_tests">
122
- **Extract testable deliverables from SUMMARY.md:**
123
-
124
- Parse for:
125
- 1. **Accomplishments** - Features/functionality added
126
- 2. **User-facing changes** - UI, workflows, interactions
127
-
128
- Focus on USER-OBSERVABLE outcomes, not implementation details.
129
-
130
- For each deliverable, create a test:
131
- - name: Brief test name
132
- - expected: What the user should see/experience (specific, observable)
133
-
134
- Examples:
135
- - Accomplishment: "Added comment threading with infinite nesting"
136
- → Test: "Reply to a Comment"
137
- → Expected: "Clicking Reply opens inline composer below comment. Submitting shows reply nested under parent with visual indentation."
138
-
139
- Skip internal/non-observable items (refactors, type changes, etc.).
140
- </step>
141
-
142
- <step name="create_uat_file">
143
- **Create UAT file with all tests:**
144
-
145
- ```bash
146
- mkdir -p "$PHASE_DIR"
147
- ```
148
-
149
- Build test list from extracted deliverables.
150
-
151
- Create file:
152
-
153
- ```markdown
154
- ---
155
- status: testing
156
- phase: XX-name
157
- source: [list of SUMMARY.md files]
158
- started: [ISO timestamp]
159
- updated: [ISO timestamp]
160
- ---
161
-
162
- ## Current Test
163
- <!-- OVERWRITE each test - shows where we are -->
164
-
165
- number: 1
166
- name: [first test name]
167
- expected: |
168
- [what user should observe]
169
- awaiting: user response
170
-
171
- ## Tests
172
-
173
- ### 1. [Test Name]
174
- expected: [observable behavior]
175
- result: [pending]
176
-
177
- ### 2. [Test Name]
178
- expected: [observable behavior]
179
- result: [pending]
180
-
181
- ...
182
-
183
- ## Summary
184
-
185
- total: [N]
186
- passed: 0
187
- issues: 0
188
- pending: [N]
189
- skipped: 0
190
-
191
- ## Gaps
192
-
193
- [none yet]
194
- ```
195
-
196
- Write to `.planning/phases/XX-name/{phase}-UAT.md`
197
-
198
- Proceed to `present_test`.
199
- </step>
200
-
201
- <step name="present_test">
202
- **Present current test to user:**
203
-
204
- Read Current Test section from UAT file.
205
-
206
- Display using checkpoint box format:
207
-
208
- ```
209
- ╔══════════════════════════════════════════════════════════════╗
210
- ║ CHECKPOINT: Verification Required ║
211
- ╚══════════════════════════════════════════════════════════════╝
212
-
213
- **Test {number}: {name}**
214
-
215
- {expected}
216
-
217
- ──────────────────────────────────────────────────────────────
218
- → Type "pass" or describe what's wrong
219
- ──────────────────────────────────────────────────────────────
220
- ```
221
-
222
- Wait for user response (plain text, no AskUserQuestion).
223
- </step>
224
-
225
- <step name="process_response">
226
- **Process user response and update file:**
227
-
228
- **If response indicates pass:**
229
- - Empty response, "yes", "y", "ok", "pass", "next", "approved", "✓"
230
-
231
- Update Tests section:
232
- ```
233
- ### {N}. {name}
234
- expected: {expected}
235
- result: pass
236
- ```
237
-
238
- **If response indicates skip:**
239
- - "skip", "can't test", "n/a"
240
-
241
- Update Tests section:
242
- ```
243
- ### {N}. {name}
244
- expected: {expected}
245
- result: skipped
246
- reason: [user's reason if provided]
247
- ```
248
-
249
- **If response is anything else:**
250
- - Treat as issue description
251
-
252
- Infer severity from description:
253
- - Contains: crash, error, exception, fails, broken, unusable → blocker
254
- - Contains: doesn't work, wrong, missing, can't → major
255
- - Contains: slow, weird, off, minor, small → minor
256
- - Contains: color, font, spacing, alignment, visual → cosmetic
257
- - Default if unclear: major
258
-
259
- Update Tests section:
260
- ```
261
- ### {N}. {name}
262
- expected: {expected}
263
- result: issue
264
- reported: "{verbatim user response}"
265
- severity: {inferred}
266
- ```
267
-
268
- Append to Gaps section (structured YAML for plan-phase --gaps):
269
- ```yaml
270
- - truth: "{expected behavior from test}"
271
- status: failed
272
- reason: "User reported: {verbatim user response}"
273
- severity: {inferred}
274
- test: {N}
275
- artifacts: [] # Filled by diagnosis
276
- missing: [] # Filled by diagnosis
277
- ```
278
-
279
- **After any response:**
280
-
281
- Update Summary counts.
282
- Update frontmatter.updated timestamp.
283
-
284
- If more tests remain → Update Current Test, go to `present_test`
285
- If no more tests → Go to `complete_session`
286
- </step>
287
-
288
- <step name="resume_from_file">
289
- **Resume testing from UAT file:**
290
-
291
- Read the full UAT file.
292
-
293
- Find first test with `result: [pending]`.
294
-
295
- Announce:
296
- ```
297
- Resuming: Phase {phase} UAT
298
- Progress: {passed + issues + skipped}/{total}
299
- Issues found so far: {issues count}
300
-
301
- Continuing from Test {N}...
302
- ```
303
-
304
- Update Current Test section with the pending test.
305
- Proceed to `present_test`.
306
- </step>
307
-
308
- <step name="complete_session">
309
- **Complete testing and commit:**
310
-
311
- Update frontmatter:
312
- - status: complete
313
- - updated: [now]
314
-
315
- Clear Current Test section:
316
- ```
317
- ## Current Test
318
-
319
- [testing complete]
320
- ```
321
-
322
- Commit the UAT file:
323
- ```bash
324
- node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "test({phase}): complete UAT - {passed} passed, {issues} issues" --files ".planning/phases/XX-name/{phase}-UAT.md"
325
- ```
326
-
327
- Present summary:
328
- ```
329
- ## UAT Complete: Phase {phase}
330
-
331
- | Result | Count |
332
- |--------|-------|
333
- | Passed | {N} |
334
- | Issues | {N} |
335
- | Skipped| {N} |
336
-
337
- [If issues > 0:]
338
- ### Issues Found
339
-
340
- [List from Issues section]
341
- ```
342
-
343
- **If issues > 0:** Proceed to `diagnose_issues`
344
-
345
- **If issues == 0:**
346
-
347
- **Frontend design quality check:**
348
-
349
- Detect if this phase includes frontend work:
350
- ```bash
351
- # Check phase PLAN.md files for frontend signals
352
- grep -rlE '\.(tsx|css|scss)|components/|app/page|app/layout|Tailwind|className' "$PHASE_DIR"/*-PLAN.md 2>/dev/null && echo "HAS_FRONTEND=true" || echo "HAS_FRONTEND=false"
353
- ```
354
-
355
- Also check if phase name/objective contains: UI, frontend, design, component, page, layout, dashboard, form, landing, hero.
356
-
357
- **If HAS_FRONTEND=true AND issues == 0:**
358
-
359
- ```
360
- All tests passed. This phase includes frontend work.
361
-
362
- ### Design Quality (recommended before moving on)
363
-
364
- 1. `/critique` — Design director review (catches AI slop, visual hierarchy issues)
365
- 2. `/polish` — Detail pass (spacing, alignment, consistency)
366
- 3. `/harden` — Edge cases, overflow, i18n robustness
367
-
368
- Skip? Just run the next command directly. Otherwise run `/critique` now.
369
- ```
370
-
371
- **If HAS_FRONTEND=false:**
372
- ```
373
- All tests passed. Ready to continue.
374
-
375
- - `/clear` then `/qualia:plan-phase {next}` — Plan next phase
376
- - `/clear` then `/qualia:execute-phase {next}` — Execute next phase
377
- ```
378
- </step>
379
-
380
- <step name="diagnose_issues">
381
- **Diagnose root causes before planning fixes:**
382
-
383
- ```
384
- ---
385
-
386
- {N} issues found. Diagnosing root causes...
387
-
388
- Spawning parallel debug agents to investigate each issue.
389
- ```
390
-
391
- - Load diagnose-issues workflow
392
- - Follow @/home/qualia/.claude/qualia-framework/workflows/diagnose-issues.md
393
- - Spawn parallel debug agents for each issue
394
- - Collect root causes
395
- - Update UAT.md with root causes
396
- - Proceed to `plan_gap_closure`
397
-
398
- Diagnosis runs automatically - no user prompt. Parallel agents investigate simultaneously, so overhead is minimal and fixes are more accurate.
399
- </step>
400
-
401
- <step name="plan_gap_closure">
402
- **Auto-plan fixes from diagnosed gaps:**
403
-
404
- Display:
405
- ```
406
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
407
- Qualia ► PLANNING FIXES
408
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
409
-
410
- ◆ Spawning planner for gap closure...
411
- ```
412
-
413
- Spawn qualia-planner in --gaps mode:
414
-
415
- ```
416
- Task(
417
- prompt="""
418
- <planning_context>
419
-
420
- **Phase:** {phase_number}
421
- **Mode:** gap_closure
422
-
423
- **UAT with diagnoses:**
424
- @.planning/phases/{phase_dir}/{phase}-UAT.md
425
-
426
- **Project State:**
427
- @.planning/STATE.md
428
-
429
- **Roadmap:**
430
- @.planning/ROADMAP.md
431
-
432
- </planning_context>
433
-
434
- <downstream_consumer>
435
- Output consumed by /qualia:execute-phase
436
- Plans must be executable prompts.
437
- </downstream_consumer>
438
- """,
439
- subagent_type="qualia-planner",
440
- model="{planner_model}",
441
- description="Plan gap fixes for Phase {phase}"
442
- )
443
- ```
444
-
445
- On return:
446
- - **PLANNING COMPLETE:** Proceed to `verify_gap_plans`
447
- - **PLANNING INCONCLUSIVE:** Report and offer manual intervention
448
- </step>
449
-
450
- <step name="verify_gap_plans">
451
- **Verify fix plans with checker:**
452
-
453
- Display:
454
- ```
455
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
456
- Qualia ► VERIFYING FIX PLANS
457
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
458
-
459
- ◆ Spawning plan checker...
460
- ```
461
-
462
- Initialize: `iteration_count = 1`
463
-
464
- Spawn qualia-plan-checker:
465
-
466
- ```
467
- Task(
468
- prompt="""
469
- <verification_context>
470
-
471
- **Phase:** {phase_number}
472
- **Phase Goal:** Close diagnosed gaps from UAT
473
-
474
- **Plans to verify:**
475
- @.planning/phases/{phase_dir}/*-PLAN.md
476
-
477
- </verification_context>
478
-
479
- <expected_output>
480
- Return one of:
481
- - ## VERIFICATION PASSED — all checks pass
482
- - ## ISSUES FOUND — structured issue list
483
- </expected_output>
484
- """,
485
- subagent_type="qualia-plan-checker",
486
- model="{checker_model}",
487
- description="Verify Phase {phase} fix plans"
488
- )
489
- ```
490
-
491
- On return:
492
- - **VERIFICATION PASSED:** Proceed to `present_ready`
493
- - **ISSUES FOUND:** Proceed to `revision_loop`
494
- </step>
495
-
496
- <step name="revision_loop">
497
- **Iterate planner ↔ checker until plans pass (max 3):**
498
-
499
- **If iteration_count < 3:**
500
-
501
- Display: `Sending back to planner for revision... (iteration {N}/3)`
502
-
503
- Spawn qualia-planner with revision context:
504
-
505
- ```
506
- Task(
507
- prompt="""
508
- <revision_context>
509
-
510
- **Phase:** {phase_number}
511
- **Mode:** revision
512
-
513
- **Existing plans:**
514
- @.planning/phases/{phase_dir}/*-PLAN.md
515
-
516
- **Checker issues:**
517
- {structured_issues_from_checker}
518
-
519
- </revision_context>
520
-
521
- <instructions>
522
- Read existing PLAN.md files. Make targeted updates to address checker issues.
523
- Do NOT replan from scratch unless issues are fundamental.
524
- </instructions>
525
- """,
526
- subagent_type="qualia-planner",
527
- model="{planner_model}",
528
- description="Revise Phase {phase} plans"
529
- )
530
- ```
531
-
532
- After planner returns → spawn checker again (verify_gap_plans logic)
533
- Increment iteration_count
534
-
535
- **If iteration_count >= 3:**
536
-
537
- Display: `Max iterations reached. {N} issues remain.`
538
-
539
- Offer options:
540
- 1. Force proceed (execute despite issues)
541
- 2. Provide guidance (user gives direction, retry)
542
- 3. Abandon (exit, user runs /qualia:plan-phase manually)
543
-
544
- Wait for user response.
545
- </step>
546
-
547
- <step name="present_ready">
548
- **Present completion and next steps:**
549
-
550
- ```
551
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
552
- Qualia ► FIXES READY ✓
553
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
554
-
555
- **Phase {X}: {Name}** — {N} gap(s) diagnosed, {M} fix plan(s) created
556
-
557
- | Gap | Root Cause | Fix Plan |
558
- |-----|------------|----------|
559
- | {truth 1} | {root_cause} | {phase}-04 |
560
- | {truth 2} | {root_cause} | {phase}-04 |
561
-
562
- Plans verified and ready for execution.
563
-
564
- ───────────────────────────────────────────────────────────────
565
-
566
- ## ▶ Next Up
567
-
568
- **Execute fixes** — run fix plans
569
-
570
- `/clear` then `/qualia:execute-phase {phase} --gaps-only`
571
-
572
- ───────────────────────────────────────────────────────────────
573
- ```
574
- </step>
575
-
576
- </process>
577
-
578
- <update_rules>
579
- **Batched writes for efficiency:**
580
-
581
- Keep results in memory. Write to file only when:
582
- 1. **Issue found** — Preserve the problem immediately
583
- 2. **Session complete** — Final write before commit
584
- 3. **Checkpoint** — Every 5 passed tests (safety net)
585
-
586
- | Section | Rule | When Written |
587
- |---------|------|--------------|
588
- | Frontmatter.status | OVERWRITE | Start, complete |
589
- | Frontmatter.updated | OVERWRITE | On any file write |
590
- | Current Test | OVERWRITE | On any file write |
591
- | Tests.{N}.result | OVERWRITE | On any file write |
592
- | Summary | OVERWRITE | On any file write |
593
- | Gaps | APPEND | When issue found |
594
-
595
- On context reset: File shows last checkpoint. Resume from there.
596
- </update_rules>
597
-
598
- <severity_inference>
599
- **Infer severity from user's natural language:**
600
-
601
- | User says | Infer |
602
- |-----------|-------|
603
- | "crashes", "error", "exception", "fails completely" | blocker |
604
- | "doesn't work", "nothing happens", "wrong behavior" | major |
605
- | "works but...", "slow", "weird", "minor issue" | minor |
606
- | "color", "spacing", "alignment", "looks off" | cosmetic |
607
-
608
- Default to **major** if unclear. User can correct if needed.
609
-
610
- **Never ask "how severe is this?"** - just infer and move on.
611
- </severity_inference>
612
-
613
- <success_criteria>
614
- - [ ] UAT file created with all tests from SUMMARY.md
615
- - [ ] Tests presented one at a time with expected behavior
616
- - [ ] User responses processed as pass/issue/skip
617
- - [ ] Severity inferred from description (never asked)
618
- - [ ] Batched writes: on issue, every 5 passes, or completion
619
- - [ ] Committed on completion
620
- - [ ] If issues: parallel debug agents diagnose root causes
621
- - [ ] If issues: qualia-planner creates fix plans (gap_closure mode)
622
- - [ ] If issues: qualia-plan-checker verifies fix plans
623
- - [ ] If issues: revision loop until plans pass (max 3 iterations)
624
- - [ ] Ready for `/qualia:execute-phase --gaps-only` when complete
625
- </success_criteria>
@@ -1,14 +0,0 @@
1
- ---
2
- alwaysApply: true
3
- ---
4
-
5
- Use Context7 MCP to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service -- even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs.
6
-
7
- Do not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts.
8
-
9
- ## Steps
10
-
11
- 1. Always start with `resolve-library-id` using the library name and the user's question, unless the user provides an exact library ID in `/org/project` format
12
- 2. Pick the best match (ID format: `/org/project`) by: exact name match, description relevance, code snippet count, source reputation (High/Medium preferred), and benchmark score (higher is better). If results don't look right, try alternate names or queries (e.g., "next.js" not "nextjs", or rephrase the question). Use version-specific IDs when the user mentions a version
13
- 3. `query-docs` with the selected library ID and the user's full question (not single words)
14
- 4. Answer using the fetched docs
@@ -1,33 +0,0 @@
1
- ---
2
- globs: ["*.tsx", "*.jsx", "*.css", "*.scss", "tailwind.config.*"]
3
- ---
4
-
5
- # Frontend Aesthetics
6
-
7
- - Distinctive fonts (not Inter/Arial)
8
- - Cohesive color palette with sharp accents
9
- - CSS transitions, staggered animations
10
- - Layered backgrounds, subtle gradients
11
- - Avoid: card grids, generic heroes, blue-purple gradients
12
- - Full-width layouts — no hardcoded 1200px/1280px caps. Use fluid widths that fill the viewport with sensible padding.
13
-
14
- Note: Qualia agents MUST follow these rules when building any frontend component. These are Fawzi's brand standards, not suggestions.
15
-
16
- ## Impeccable Design Skills (global)
17
- Use these `/commands` for design refinement on any frontend work:
18
- - `/polish` — Final detail pass before shipping (spacing, alignment, consistency)
19
- - `/bolder` — Amplify safe/boring designs to be more striking
20
- - `/design-quieter` — Tone down overly aggressive designs
21
- - `/animate` — Add purposeful micro-interactions and motion
22
- - `/colorize` — Inject strategic color into monochrome UIs
23
- - `/clarify` — Fix unclear UX copy, labels, error messages
24
- - `/critique` — Design director-level review (run before shipping)
25
- - `/distill` — Strip unnecessary complexity
26
- - `/delight` — Add memorable touches and personality
27
- - `/harden` — Edge cases, overflow, i18n robustness
28
- - `/onboard` — First-time user experience flows
29
- - `/normalize` — Align with project design system
30
- - `/responsive` — Cross-device responsive adaptation
31
-
32
- ### Recommended workflow
33
- 1. Build feature → 2. `/critique` → 3. `/polish` → 4. `/harden` → ship
@@ -1,23 +0,0 @@
1
- ---
2
- alwaysApply: true
3
- ---
4
-
5
- # Speed Rules (MANDATORY)
6
-
7
- **NEVER use Task(Explore) or Task(general-purpose) for simple file lookups or code searches.** Use direct tools instead:
8
- - **Glob** for finding files by name/pattern
9
- - **Grep** for searching code content
10
- - **Read** for reading specific files
11
- - Only use Task(Explore) when you genuinely need 5+ rounds of deep codebase archaeology
12
-
13
- **NEVER spawn subagents when direct tools work.** Subagents are slow — a direct Glob or Grep returns in seconds.
14
-
15
- **Bias toward action, not exploration.** If Fawzi asks you to fix something and you know the project structure, just do it.
16
-
17
- **Use shortcuts:**
18
- - `/ship` — Full deploy pipeline (quality gates → commit → deploy → verify)
19
- - `/status` — Quick project health check
20
- - `/qualia-review` — Deep security + quality audit
21
- - `/memory` — View/manage persistent rules
22
- - `/learn` — Save a lesson from a mistake
23
- - `/qualia-pause-work` — Save context before /clear