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,534 +0,0 @@
1
- <purpose>
2
- Extract implementation decisions that downstream agents need. Analyze the phase to identify gray areas, let the user choose what to discuss, then deep-dive each selected area until satisfied.
3
-
4
- You are a thinking partner, not an interviewer. The user is the visionary — you are the builder. Your job is to capture decisions that will guide research and planning, not to figure out implementation yourself.
5
- </purpose>
6
-
7
- <downstream_awareness>
8
- **CONTEXT.md feeds into:**
9
-
10
- 1. **qualia-phase-researcher** — Reads CONTEXT.md to know WHAT to research
11
- - "User wants card-based layout" → researcher investigates card component patterns
12
- - "Infinite scroll decided" → researcher looks into virtualization libraries
13
-
14
- 2. **qualia-planner** — Reads CONTEXT.md to know WHAT decisions are locked
15
- - "Pull-to-refresh on mobile" → planner includes that in task specs
16
- - "Claude's Discretion: loading skeleton" → planner can decide approach
17
-
18
- **Your job:** Capture decisions clearly enough that downstream agents can act on them without asking the user again.
19
-
20
- **Not your job:** Figure out HOW to implement. That's what research and planning do with the decisions you capture.
21
- </downstream_awareness>
22
-
23
- <philosophy>
24
- **User = founder/visionary. Claude = builder.**
25
-
26
- The user knows:
27
- - How they imagine it working
28
- - What it should look/feel like
29
- - What's essential vs nice-to-have
30
- - Specific behaviors or references they have in mind
31
-
32
- The user doesn't know (and shouldn't be asked):
33
- - Codebase patterns (researcher reads the code)
34
- - Technical risks (researcher identifies these)
35
- - Implementation approach (planner figures this out)
36
- - Success metrics (inferred from the work)
37
-
38
- Ask about vision and implementation choices. Capture decisions for downstream agents.
39
- </philosophy>
40
-
41
- <scope_guardrail>
42
- **CRITICAL: No scope creep.**
43
-
44
- The phase boundary comes from ROADMAP.md and is FIXED. Discussion clarifies HOW to implement what's scoped, never WHETHER to add new capabilities.
45
-
46
- **Allowed (clarifying ambiguity):**
47
- - "How should posts be displayed?" (layout, density, info shown)
48
- - "What happens on empty state?" (within the feature)
49
- - "Pull to refresh or manual?" (behavior choice)
50
-
51
- **Not allowed (scope creep):**
52
- - "Should we also add comments?" (new capability)
53
- - "What about search/filtering?" (new capability)
54
- - "Maybe include bookmarking?" (new capability)
55
-
56
- **The heuristic:** Does this clarify how we implement what's already in the phase, or does it add a new capability that could be its own phase?
57
-
58
- **When user suggests scope creep:**
59
- ```
60
- "[Feature X] would be a new capability — that's its own phase.
61
- Want me to note it for the roadmap backlog?
62
-
63
- For now, let's focus on [phase domain]."
64
- ```
65
-
66
- Capture the idea in a "Deferred Ideas" section. Don't lose it, don't act on it.
67
- </scope_guardrail>
68
-
69
- <gray_area_identification>
70
- Gray areas are **implementation decisions the user cares about** — things that could go multiple ways and would change the result.
71
-
72
- **How to identify gray areas:**
73
-
74
- 1. **Read the phase goal** from ROADMAP.md
75
- 2. **Understand the domain** — What kind of thing is being built?
76
- - Something users SEE → visual presentation, interactions, states matter
77
- - Something users CALL → interface contracts, responses, errors matter
78
- - Something users RUN → invocation, output, behavior modes matter
79
- - Something users READ → structure, tone, depth, flow matter
80
- - Something being ORGANIZED → criteria, grouping, handling exceptions matter
81
- 3. **Generate phase-specific gray areas** — Not generic categories, but concrete decisions for THIS phase
82
-
83
- **Don't use generic category labels** (UI, UX, Behavior). Generate specific gray areas:
84
-
85
- ```
86
- Phase: "User authentication"
87
- → Session handling, Error responses, Multi-device policy, Recovery flow
88
-
89
- Phase: "Organize photo library"
90
- → Grouping criteria, Duplicate handling, Naming convention, Folder structure
91
-
92
- Phase: "CLI for database backups"
93
- → Output format, Flag design, Progress reporting, Error recovery
94
-
95
- Phase: "API documentation"
96
- → Structure/navigation, Code examples depth, Versioning approach, Interactive elements
97
- ```
98
-
99
- **The key question:** What decisions would change the outcome that the user should weigh in on?
100
-
101
- **Claude handles these (don't ask):**
102
- - Technical implementation details
103
- - Architecture patterns
104
- - Performance optimization
105
- - Scope (roadmap defines this)
106
- </gray_area_identification>
107
-
108
- <process>
109
-
110
- <step name="initialize" priority="first">
111
- Phase number from argument (required).
112
-
113
- ```bash
114
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init phase-op "${PHASE}")
115
- ```
116
-
117
- Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`, `plan_count`, `roadmap_exists`, `planning_exists`.
118
-
119
- **If `phase_found` is false:**
120
- ```
121
- Phase [X] not found in roadmap.
122
-
123
- Use /qualia:progress to see available phases.
124
- ```
125
- Exit workflow.
126
-
127
- **If `phase_found` is true:** Continue to check_existing.
128
- </step>
129
-
130
- <step name="check_existing">
131
- Check if CONTEXT.md already exists using `has_context` from init.
132
-
133
- ```bash
134
- ls ${phase_dir}/*-CONTEXT.md 2>/dev/null
135
- ```
136
-
137
- **If exists:**
138
- Use AskUserQuestion:
139
- - header: "Existing context"
140
- - question: "Phase [X] already has context. What do you want to do?"
141
- - options:
142
- - "Update it" — Review and revise existing context
143
- - "View it" — Show me what's there
144
- - "Skip" — Use existing context as-is
145
-
146
- If "Update": Load existing, continue to analyze_phase
147
- If "View": Display CONTEXT.md, then offer update/skip
148
- If "Skip": Exit workflow
149
-
150
- **If doesn't exist:** Continue to analyze_phase.
151
- </step>
152
-
153
- <step name="analyze_phase">
154
- Analyze the phase to identify gray areas worth discussing.
155
-
156
- **Read the phase description from ROADMAP.md and determine:**
157
-
158
- 1. **Domain boundary** — What capability is this phase delivering? State it clearly.
159
-
160
- 2. **Gray areas by category** — For each relevant category (UI, UX, Behavior, Empty States, Content), identify 1-2 specific ambiguities that would change implementation.
161
-
162
- 3. **Skip assessment** — If no meaningful gray areas exist (pure infrastructure, clear-cut implementation), the phase may not need discussion.
163
-
164
- **Output your analysis internally, then present to user.**
165
-
166
- Example analysis for "Post Feed" phase:
167
- ```
168
- Domain: Displaying posts from followed users
169
- Gray areas:
170
- - UI: Layout style (cards vs timeline vs grid)
171
- - UI: Information density (full posts vs previews)
172
- - Behavior: Loading pattern (infinite scroll vs pagination)
173
- - Empty State: What shows when no posts exist
174
- - Content: What metadata displays (time, author, reactions count)
175
- ```
176
-
177
- **Frontend detection:**
178
-
179
- Determine if this phase involves frontend work by checking:
180
- 1. Phase name/goal contains: UI, frontend, design, component, page, layout, dashboard, form, landing, hero, website, app
181
- 2. Phase requirements reference visual/interactive deliverables
182
- 3. ROADMAP.md phase description mentions user-facing interfaces
183
-
184
- Set `is_frontend_phase = true` if any indicator matches. This flag controls whether the design_consultation step runs.
185
- </step>
186
-
187
- <step name="present_gray_areas">
188
- Present the domain boundary and gray areas to user.
189
-
190
- **First, state the boundary:**
191
- ```
192
- Phase [X]: [Name]
193
- Domain: [What this phase delivers — from your analysis]
194
-
195
- We'll clarify HOW to implement this.
196
- (New capabilities belong in other phases.)
197
- ```
198
-
199
- **Then use AskUserQuestion (multiSelect: true):**
200
- - header: "Discuss"
201
- - question: "Which areas do you want to discuss for [phase name]?"
202
- - options: Generate 3-4 phase-specific gray areas, each formatted as:
203
- - "[Specific area]" (label) — concrete, not generic
204
- - [1-2 questions this covers] (description)
205
-
206
- **Do NOT include a "skip" or "you decide" option.** User ran this command to discuss — give them real choices.
207
-
208
- **Examples by domain:**
209
-
210
- For "Post Feed" (visual feature):
211
- ```
212
- ☐ Layout style — Cards vs list vs timeline? Information density?
213
- ☐ Loading behavior — Infinite scroll or pagination? Pull to refresh?
214
- ☐ Content ordering — Chronological, algorithmic, or user choice?
215
- ☐ Post metadata — What info per post? Timestamps, reactions, author?
216
- ```
217
-
218
- For "Database backup CLI" (command-line tool):
219
- ```
220
- ☐ Output format — JSON, table, or plain text? Verbosity levels?
221
- ☐ Flag design — Short flags, long flags, or both? Required vs optional?
222
- ☐ Progress reporting — Silent, progress bar, or verbose logging?
223
- ☐ Error recovery — Fail fast, retry, or prompt for action?
224
- ```
225
-
226
- For "Organize photo library" (organization task):
227
- ```
228
- ☐ Grouping criteria — By date, location, faces, or events?
229
- ☐ Duplicate handling — Keep best, keep all, or prompt each time?
230
- ☐ Naming convention — Original names, dates, or descriptive?
231
- ☐ Folder structure — Flat, nested by year, or by category?
232
- ```
233
-
234
- Continue to discuss_areas with selected areas.
235
- </step>
236
-
237
- <step name="discuss_areas">
238
- For each selected area, conduct a focused discussion loop.
239
-
240
- **Philosophy: 4 questions, then check.**
241
-
242
- Ask 4 questions per area before offering to continue or move on. Each answer often reveals the next question.
243
-
244
- **For each area:**
245
-
246
- 1. **Announce the area:**
247
- ```
248
- Let's talk about [Area].
249
- ```
250
-
251
- 2. **Ask 4 questions using AskUserQuestion:**
252
- - header: "[Area]"
253
- - question: Specific decision for this area
254
- - options: 2-3 concrete choices (AskUserQuestion adds "Other" automatically)
255
- - Include "You decide" as an option when reasonable — captures Claude discretion
256
-
257
- 3. **After 4 questions, check:**
258
- - header: "[Area]"
259
- - question: "More questions about [area], or move to next?"
260
- - options: "More questions" / "Next area"
261
-
262
- If "More questions" → ask 4 more, then check again
263
- If "Next area" → proceed to next selected area
264
-
265
- 4. **After all areas complete:**
266
- - header: "Done"
267
- - question: "That covers [list areas]. Ready to create context?"
268
- - options: "Create context" / "Revisit an area"
269
-
270
- **Question design:**
271
- - Options should be concrete, not abstract ("Cards" not "Option A")
272
- - Each answer should inform the next question
273
- - If user picks "Other", receive their input, reflect it back, confirm
274
-
275
- **Scope creep handling:**
276
- If user mentions something outside the phase domain:
277
- ```
278
- "[Feature] sounds like a new capability — that belongs in its own phase.
279
- I'll note it as a deferred idea.
280
-
281
- Back to [current area]: [return to current question]"
282
- ```
283
-
284
- Track deferred ideas internally.
285
- </step>
286
-
287
- <step name="write_context">
288
- Create CONTEXT.md capturing decisions made.
289
-
290
- **Find or create phase directory:**
291
-
292
- Use values from init: `phase_dir`, `phase_slug`, `padded_phase`.
293
-
294
- If `phase_dir` is null (phase exists in roadmap but no directory):
295
- ```bash
296
- mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
297
- ```
298
-
299
- **File location:** `${phase_dir}/${padded_phase}-CONTEXT.md`
300
-
301
- **Structure the content by what was discussed:**
302
-
303
- ```markdown
304
- # Phase [X]: [Name] - Context
305
-
306
- **Gathered:** [date]
307
- **Status:** Ready for planning
308
-
309
- <domain>
310
- ## Phase Boundary
311
-
312
- [Clear statement of what this phase delivers — the scope anchor]
313
-
314
- </domain>
315
-
316
- <decisions>
317
- ## Implementation Decisions
318
-
319
- ### [Category 1 that was discussed]
320
- - [Decision or preference captured]
321
- - [Another decision if applicable]
322
-
323
- ### [Category 2 that was discussed]
324
- - [Decision or preference captured]
325
-
326
- ### Claude's Discretion
327
- [Areas where user said "you decide" — note that Claude has flexibility here]
328
-
329
- </decisions>
330
-
331
- <specifics>
332
- ## Specific Ideas
333
-
334
- [Any particular references, examples, or "I want it like X" moments from discussion]
335
-
336
- [If none: "No specific requirements — open to standard approaches"]
337
-
338
- </specifics>
339
-
340
- <deferred>
341
- ## Deferred Ideas
342
-
343
- [Ideas that came up but belong in other phases. Don't lose them.]
344
-
345
- [If none: "None — discussion stayed within phase scope"]
346
-
347
- </deferred>
348
-
349
- ---
350
-
351
- *Phase: XX-name*
352
- *Context gathered: [date]*
353
- ```
354
-
355
- Write file.
356
- </step>
357
-
358
- <step name="design_consultation">
359
- **Only runs if `is_frontend_phase = true`.** If false, skip to confirm_creation.
360
-
361
- **Check for existing DESIGN.md:**
362
-
363
- ```bash
364
- find "$(pwd)" -maxdepth 1 -name "DESIGN.md" -o -path "./.planning/DESIGN.md" 2>/dev/null | head -1
365
- ```
366
-
367
- **If DESIGN.md exists:** Read it, present current decisions, ask if user wants to update for this phase or keep as-is. If updating, proceed with consultation below but pre-fill known decisions.
368
-
369
- **If DESIGN.md does not exist:** Conduct full design consultation.
370
-
371
- **Design Consultation Flow:**
372
-
373
- Use AskUserQuestion for each design dimension. Present concrete options based on frontend-master skill principles.
374
-
375
- **1. Brand Personality & Aesthetic Direction**
376
-
377
- ```
378
- header: "Design Direction"
379
- question: "What aesthetic direction fits this project?"
380
- options:
381
- - "Brutally minimal — stark, purposeful, every element earns its place"
382
- - "Editorial/magazine — strong typography, reading-focused, content-first"
383
- - "Luxury/refined — subtle details, premium feel, sophisticated restraint"
384
- - "Playful/energetic — bold colors, dynamic motion, personality-forward"
385
- - "Other — I have a specific direction in mind"
386
- ```
387
-
388
- **2. Color Palette**
389
-
390
- ```
391
- header: "Color Palette"
392
- question: "What color direction do you want?"
393
- options:
394
- - "Warm palette — earthy tones, terracotta, amber, warm neutrals"
395
- - "Cool palette — ocean blues, slate, cool grays, mint"
396
- - "Bold contrast — strong primary with sharp accents"
397
- - "Muted/sophisticated — desaturated, tinted neutrals, subtle accents"
398
- - "I have specific brand colors"
399
- ```
400
-
401
- If "specific brand colors" selected, ask for hex values via follow-up question.
402
-
403
- **3. Typography**
404
-
405
- ```
406
- header: "Typography"
407
- question: "What typography personality fits?"
408
- options:
409
- - "Modern geometric — clean, structured, contemporary (e.g., Satoshi, General Sans)"
410
- - "Elegant serif — refined, editorial, literary (e.g., Playfair Display, Cormorant)"
411
- - "Humanist — warm, approachable, friendly (e.g., Source Sans, Nunito)"
412
- - "Monospace accent — technical, developer-focused with monospace headings"
413
- - "You decide — pick something distinctive that avoids Inter/Roboto/Arial"
414
- ```
415
-
416
- **4. Motion Approach**
417
-
418
- ```
419
- header: "Motion & Animation"
420
- question: "How much motion should the interface have?"
421
- options:
422
- - "Minimal — subtle state transitions only, no entrance animations"
423
- - "Purposeful — page load choreography + interaction feedback, nothing decorative"
424
- - "Rich — orchestrated entrances, scroll effects, micro-interactions throughout"
425
- - "You decide — match the aesthetic direction"
426
- ```
427
-
428
- **5. Layout Philosophy**
429
-
430
- ```
431
- header: "Layout"
432
- question: "What layout approach?"
433
- options:
434
- - "Content-first — generous whitespace, single column focus, wide margins"
435
- - "Information-dense — compact, multi-column, dashboard-style"
436
- - "Asymmetric — editorial layouts, intentional grid-breaking, visual tension"
437
- - "You decide — match the aesthetic direction"
438
- ```
439
-
440
- **After all 5 dimensions discussed:**
441
-
442
- Generate DESIGN.md using the template from `@/home/qualia/.claude/qualia-framework/templates/DESIGN.md`, populating sections with the user's decisions.
443
-
444
- Write to `.planning/DESIGN.md` in the current project (NOT in the phase directory -- DESIGN.md is project-level).
445
-
446
- Update the `updated_in_phase` frontmatter field to the current phase number.
447
-
448
- ```bash
449
- # Write DESIGN.md to project root's .planning directory
450
- cat > .planning/DESIGN.md << 'DESIGN_EOF'
451
- {populated template content}
452
- DESIGN_EOF
453
- ```
454
-
455
- Announce:
456
- ```
457
- Created: .planning/DESIGN.md
458
-
459
- Design decisions captured:
460
- - Aesthetic: {chosen direction}
461
- - Palette: {chosen palette}
462
- - Typography: {chosen approach}
463
- - Motion: {chosen approach}
464
- - Layout: {chosen approach}
465
-
466
- All design skills (/critique, /polish, /bolder, etc.) will read this file as their authoritative source.
467
- ```
468
- </step>
469
-
470
- <step name="confirm_creation">
471
- Present summary and next steps:
472
-
473
- ```
474
- Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
475
- {If is_frontend_phase and DESIGN.md was created:}
476
- Created: .planning/DESIGN.md (design decisions)
477
-
478
- ## Decisions Captured
479
-
480
- ### [Category]
481
- - [Key decision]
482
-
483
- ### [Category]
484
- - [Key decision]
485
-
486
- [If deferred ideas exist:]
487
- ## Noted for Later
488
- - [Deferred idea] — future phase
489
-
490
- ---
491
-
492
- ## ▶ Next Up
493
-
494
- **Phase ${PHASE}: [Name]** — [Goal from ROADMAP.md]
495
-
496
- `/clear` then `/qualia:plan-phase ${PHASE}`
497
-
498
- ---
499
-
500
- **Also available:**
501
- - `/qualia:plan-phase ${PHASE} --skip-research` — plan without research
502
- - Review/edit CONTEXT.md before continuing
503
-
504
- ---
505
- ```
506
- </step>
507
-
508
- <step name="git_commit">
509
- Commit phase context (uses `commit_docs` from init internally):
510
-
511
- ```bash
512
- node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
513
- ```
514
-
515
- If DESIGN.md was created/updated, include it in the commit:
516
- ```bash
517
- node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md" ".planning/DESIGN.md"
518
- ```
519
-
520
- Confirm: "Committed: docs(${padded_phase}): capture phase context"
521
- </step>
522
-
523
- </process>
524
-
525
- <success_criteria>
526
- - Phase validated against roadmap
527
- - Gray areas identified through intelligent analysis (not generic questions)
528
- - User selected which areas to discuss
529
- - Each selected area explored until user satisfied
530
- - Scope creep redirected to deferred ideas
531
- - CONTEXT.md captures actual decisions, not vague vision
532
- - Deferred ideas preserved for future phases
533
- - User knows next steps
534
- </success_criteria>