qualia-framework 2.6.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/CLAUDE.md +63 -0
  2. package/README.md +108 -30
  3. package/agents/builder.md +110 -0
  4. package/agents/planner.md +186 -0
  5. package/agents/qa-browser.md +186 -0
  6. package/agents/verifier.md +369 -0
  7. package/bin/cli.js +691 -492
  8. package/bin/install.js +622 -0
  9. package/bin/qualia-ui.js +284 -0
  10. package/bin/state.js +824 -0
  11. package/bin/statusline.js +252 -0
  12. package/docs/erp-contract.md +161 -0
  13. package/guide.md +63 -0
  14. package/hooks/auto-update.js +117 -0
  15. package/hooks/block-env-edit.js +52 -0
  16. package/hooks/branch-guard.js +68 -0
  17. package/hooks/migration-guard.js +83 -0
  18. package/hooks/pre-compact.js +52 -0
  19. package/hooks/pre-deploy-gate.js +149 -0
  20. package/hooks/pre-push.js +53 -0
  21. package/hooks/session-start.js +126 -0
  22. package/package.json +30 -20
  23. package/rules/design-reference.md +179 -0
  24. package/rules/frontend.md +126 -0
  25. package/rules/infrastructure.md +87 -0
  26. package/skills/qualia/SKILL.md +88 -0
  27. package/skills/qualia-build/SKILL.md +115 -0
  28. package/skills/qualia-debug/SKILL.md +87 -0
  29. package/skills/qualia-design/SKILL.md +99 -0
  30. package/skills/qualia-handoff/SKILL.md +66 -0
  31. package/skills/qualia-help/SKILL.md +60 -0
  32. package/skills/qualia-idk/SKILL.md +8 -0
  33. package/skills/qualia-learn/SKILL.md +111 -0
  34. package/skills/qualia-new/SKILL.md +323 -0
  35. package/skills/qualia-pause/SKILL.md +63 -0
  36. package/skills/qualia-plan/SKILL.md +101 -0
  37. package/skills/qualia-polish/SKILL.md +207 -0
  38. package/skills/qualia-quick/SKILL.md +37 -0
  39. package/skills/qualia-report/SKILL.md +114 -0
  40. package/skills/qualia-resume/SKILL.md +49 -0
  41. package/skills/qualia-review/SKILL.md +161 -0
  42. package/skills/qualia-ship/SKILL.md +90 -0
  43. package/skills/qualia-skill-new/SKILL.md +167 -0
  44. package/skills/qualia-task/SKILL.md +91 -0
  45. package/skills/qualia-test/SKILL.md +134 -0
  46. package/skills/qualia-verify/SKILL.md +113 -0
  47. package/templates/DESIGN.md +475 -0
  48. package/templates/help.html +476 -0
  49. package/templates/plan.md +42 -0
  50. package/templates/project.md +22 -0
  51. package/templates/state.md +27 -0
  52. package/templates/tracking.json +20 -0
  53. package/tests/bin.test.sh +687 -0
  54. package/tests/hooks.test.sh +384 -0
  55. package/tests/runner.js +1956 -0
  56. package/tests/state.test.sh +713 -0
  57. package/tests/statusline.test.sh +243 -0
  58. package/bin/collect-metrics.sh +0 -62
  59. package/framework/.claudeignore +0 -51
  60. package/framework/CLAUDE.md +0 -51
  61. package/framework/MCP_SETUP.md +0 -229
  62. package/framework/agents/architecture-strategist.md +0 -53
  63. package/framework/agents/backend-agent.md +0 -150
  64. package/framework/agents/code-simplicity-reviewer.md +0 -86
  65. package/framework/agents/frontend-agent.md +0 -111
  66. package/framework/agents/kieran-typescript-reviewer.md +0 -96
  67. package/framework/agents/performance-oracle.md +0 -111
  68. package/framework/agents/qualia-codebase-mapper.md +0 -761
  69. package/framework/agents/qualia-debugger.md +0 -1204
  70. package/framework/agents/qualia-executor.md +0 -882
  71. package/framework/agents/qualia-integration-checker.md +0 -424
  72. package/framework/agents/qualia-phase-researcher.md +0 -457
  73. package/framework/agents/qualia-plan-checker.md +0 -700
  74. package/framework/agents/qualia-planner.md +0 -1245
  75. package/framework/agents/qualia-project-researcher.md +0 -603
  76. package/framework/agents/qualia-research-synthesizer.md +0 -200
  77. package/framework/agents/qualia-roadmapper.md +0 -606
  78. package/framework/agents/qualia-verifier.md +0 -686
  79. package/framework/agents/red-team-qa.md +0 -130
  80. package/framework/agents/security-auditor.md +0 -72
  81. package/framework/agents/team-orchestrator.md +0 -229
  82. package/framework/agents/teams/framework-audit-team.md +0 -66
  83. package/framework/agents/teams/full-stack-team.md +0 -48
  84. package/framework/agents/teams/optimize-team.md +0 -53
  85. package/framework/agents/teams/review-team.md +0 -70
  86. package/framework/agents/teams/ship-team.md +0 -86
  87. package/framework/agents/test-agent.md +0 -182
  88. package/framework/hooks/auto-format.sh +0 -54
  89. package/framework/hooks/block-env-edit.sh +0 -42
  90. package/framework/hooks/branch-guard.sh +0 -43
  91. package/framework/hooks/confirm-delete.sh +0 -59
  92. package/framework/hooks/migration-validate.sh +0 -77
  93. package/framework/hooks/notification-speak.sh +0 -16
  94. package/framework/hooks/pre-commit.sh +0 -100
  95. package/framework/hooks/pre-compact.sh +0 -56
  96. package/framework/hooks/pre-deploy-gate.sh +0 -160
  97. package/framework/hooks/qualia-colors.sh +0 -32
  98. package/framework/hooks/retention-cleanup.sh +0 -62
  99. package/framework/hooks/save-session-state.sh +0 -185
  100. package/framework/hooks/session-context-loader.sh +0 -96
  101. package/framework/hooks/session-learn.sh +0 -32
  102. package/framework/hooks/skill-announce.sh +0 -123
  103. package/framework/hooks/tool-error-announce.sh +0 -27
  104. package/framework/install.ps1 +0 -323
  105. package/framework/install.sh +0 -313
  106. package/framework/qualia-framework/VERSION +0 -1
  107. package/framework/qualia-framework/assets/qualia-logo.png +0 -0
  108. package/framework/qualia-framework/bin/collect-metrics.sh +0 -67
  109. package/framework/qualia-framework/bin/generate-report-docx.py +0 -429
  110. package/framework/qualia-framework/bin/qualia-tools.js +0 -2201
  111. package/framework/qualia-framework/bin/qualia-tools.test.js +0 -1054
  112. package/framework/qualia-framework/references/checkpoints.md +0 -775
  113. package/framework/qualia-framework/references/completion-checklists.md +0 -359
  114. package/framework/qualia-framework/references/continuation-format.md +0 -249
  115. package/framework/qualia-framework/references/continuation-prompt.md +0 -97
  116. package/framework/qualia-framework/references/decimal-phase-calculation.md +0 -65
  117. package/framework/qualia-framework/references/design-quality.md +0 -56
  118. package/framework/qualia-framework/references/employee-guide.md +0 -167
  119. package/framework/qualia-framework/references/git-integration.md +0 -254
  120. package/framework/qualia-framework/references/git-planning-commit.md +0 -50
  121. package/framework/qualia-framework/references/model-profile-resolution.md +0 -32
  122. package/framework/qualia-framework/references/model-profiles.md +0 -73
  123. package/framework/qualia-framework/references/phase-argument-parsing.md +0 -61
  124. package/framework/qualia-framework/references/planning-config.md +0 -195
  125. package/framework/qualia-framework/references/questioning.md +0 -141
  126. package/framework/qualia-framework/references/tdd.md +0 -263
  127. package/framework/qualia-framework/references/ui-brand.md +0 -160
  128. package/framework/qualia-framework/references/verification-patterns.md +0 -612
  129. package/framework/qualia-framework/templates/DEBUG.md +0 -159
  130. package/framework/qualia-framework/templates/DESIGN.md +0 -81
  131. package/framework/qualia-framework/templates/UAT.md +0 -247
  132. package/framework/qualia-framework/templates/codebase/architecture.md +0 -255
  133. package/framework/qualia-framework/templates/codebase/concerns.md +0 -310
  134. package/framework/qualia-framework/templates/codebase/conventions.md +0 -307
  135. package/framework/qualia-framework/templates/codebase/integrations.md +0 -280
  136. package/framework/qualia-framework/templates/codebase/stack.md +0 -186
  137. package/framework/qualia-framework/templates/codebase/structure.md +0 -285
  138. package/framework/qualia-framework/templates/codebase/testing.md +0 -480
  139. package/framework/qualia-framework/templates/config.json +0 -35
  140. package/framework/qualia-framework/templates/context.md +0 -283
  141. package/framework/qualia-framework/templates/continue-here.md +0 -78
  142. package/framework/qualia-framework/templates/debug-subagent-prompt.md +0 -91
  143. package/framework/qualia-framework/templates/discovery.md +0 -146
  144. package/framework/qualia-framework/templates/lab-notes.md +0 -16
  145. package/framework/qualia-framework/templates/milestone-archive.md +0 -123
  146. package/framework/qualia-framework/templates/milestone.md +0 -115
  147. package/framework/qualia-framework/templates/phase-prompt.md +0 -567
  148. package/framework/qualia-framework/templates/planner-subagent-prompt.md +0 -117
  149. package/framework/qualia-framework/templates/project.md +0 -184
  150. package/framework/qualia-framework/templates/projects/ai-agent.md +0 -156
  151. package/framework/qualia-framework/templates/projects/mobile-app.md +0 -181
  152. package/framework/qualia-framework/templates/projects/voice-agent.md +0 -134
  153. package/framework/qualia-framework/templates/projects/website.md +0 -137
  154. package/framework/qualia-framework/templates/requirements.md +0 -231
  155. package/framework/qualia-framework/templates/research-project/ARCHITECTURE.md +0 -204
  156. package/framework/qualia-framework/templates/research-project/FEATURES.md +0 -147
  157. package/framework/qualia-framework/templates/research-project/PITFALLS.md +0 -200
  158. package/framework/qualia-framework/templates/research-project/STACK.md +0 -120
  159. package/framework/qualia-framework/templates/research-project/SUMMARY.md +0 -170
  160. package/framework/qualia-framework/templates/research.md +0 -552
  161. package/framework/qualia-framework/templates/roadmap.md +0 -206
  162. package/framework/qualia-framework/templates/state.md +0 -179
  163. package/framework/qualia-framework/templates/summary-complex.md +0 -59
  164. package/framework/qualia-framework/templates/summary-minimal.md +0 -41
  165. package/framework/qualia-framework/templates/summary-standard.md +0 -48
  166. package/framework/qualia-framework/templates/summary.md +0 -246
  167. package/framework/qualia-framework/templates/user-setup.md +0 -311
  168. package/framework/qualia-framework/templates/verification-report.md +0 -322
  169. package/framework/qualia-framework/workflows/add-phase.md +0 -179
  170. package/framework/qualia-framework/workflows/add-todo.md +0 -157
  171. package/framework/qualia-framework/workflows/audit-milestone.md +0 -241
  172. package/framework/qualia-framework/workflows/check-todos.md +0 -176
  173. package/framework/qualia-framework/workflows/complete-milestone.md +0 -858
  174. package/framework/qualia-framework/workflows/diagnose-issues.md +0 -219
  175. package/framework/qualia-framework/workflows/discovery-phase.md +0 -289
  176. package/framework/qualia-framework/workflows/discuss-phase.md +0 -534
  177. package/framework/qualia-framework/workflows/execute-phase.md +0 -559
  178. package/framework/qualia-framework/workflows/execute-plan.md +0 -438
  179. package/framework/qualia-framework/workflows/help.md +0 -470
  180. package/framework/qualia-framework/workflows/insert-phase.md +0 -220
  181. package/framework/qualia-framework/workflows/list-phase-assumptions.md +0 -178
  182. package/framework/qualia-framework/workflows/map-codebase.md +0 -327
  183. package/framework/qualia-framework/workflows/new-milestone.md +0 -363
  184. package/framework/qualia-framework/workflows/new-project.md +0 -982
  185. package/framework/qualia-framework/workflows/pause-work.md +0 -122
  186. package/framework/qualia-framework/workflows/plan-milestone-gaps.md +0 -256
  187. package/framework/qualia-framework/workflows/plan-phase.md +0 -422
  188. package/framework/qualia-framework/workflows/progress.md +0 -389
  189. package/framework/qualia-framework/workflows/quick.md +0 -252
  190. package/framework/qualia-framework/workflows/remove-phase.md +0 -326
  191. package/framework/qualia-framework/workflows/research-phase.md +0 -74
  192. package/framework/qualia-framework/workflows/resume-project.md +0 -306
  193. package/framework/qualia-framework/workflows/set-profile.md +0 -80
  194. package/framework/qualia-framework/workflows/settings.md +0 -145
  195. package/framework/qualia-framework/workflows/transition.md +0 -556
  196. package/framework/qualia-framework/workflows/update.md +0 -197
  197. package/framework/qualia-framework/workflows/verify-phase.md +0 -195
  198. package/framework/qualia-framework/workflows/verify-work.md +0 -625
  199. package/framework/rules/context7.md +0 -14
  200. package/framework/rules/frontend.md +0 -33
  201. package/framework/rules/speed.md +0 -23
  202. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  203. package/framework/scripts/apply-retention.sh +0 -120
  204. package/framework/scripts/bootstrap-pop-os.sh +0 -354
  205. package/framework/scripts/claude-voice +0 -13
  206. package/framework/scripts/cleanup.sh +0 -131
  207. package/framework/scripts/cowork-mode.sh +0 -141
  208. package/framework/scripts/generate-project-claude-md.sh +0 -153
  209. package/framework/scripts/load-test-webhook.js +0 -172
  210. package/framework/scripts/say.py +0 -236
  211. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +0 -167
  212. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +0 -216
  213. package/framework/scripts/speak.py +0 -55
  214. package/framework/scripts/speak.sh +0 -18
  215. package/framework/scripts/status.sh +0 -138
  216. package/framework/scripts/sync-to-framework.sh +0 -65
  217. package/framework/scripts/voice-hotkey.py +0 -227
  218. package/framework/scripts/voice-input.sh +0 -51
  219. package/framework/skills/animate/SKILL.md +0 -202
  220. package/framework/skills/bolder/SKILL.md +0 -144
  221. package/framework/skills/browser-qa/SKILL.md +0 -536
  222. package/framework/skills/clarify/SKILL.md +0 -179
  223. package/framework/skills/client-handoff/SKILL.md +0 -135
  224. package/framework/skills/collab-onboard/SKILL.md +0 -111
  225. package/framework/skills/colorize/SKILL.md +0 -170
  226. package/framework/skills/critique/SKILL.md +0 -126
  227. package/framework/skills/deep-research/SKILL.md +0 -240
  228. package/framework/skills/delight/SKILL.md +0 -329
  229. package/framework/skills/deploy/SKILL.md +0 -261
  230. package/framework/skills/deploy-verify/SKILL.md +0 -377
  231. package/framework/skills/deploy-verify/scripts/canary-check.sh +0 -206
  232. package/framework/skills/deploy-verify/scripts/check-console-errors.js +0 -147
  233. package/framework/skills/deploy-verify/scripts/check-cwv.js +0 -139
  234. package/framework/skills/deploy-verify/scripts/project-detect.sh +0 -84
  235. package/framework/skills/deploy-verify/scripts/verify.sh +0 -548
  236. package/framework/skills/design-quieter/SKILL.md +0 -130
  237. package/framework/skills/distill/SKILL.md +0 -149
  238. package/framework/skills/docs-lookup/SKILL.md +0 -79
  239. package/framework/skills/fcm-notifications/SKILL.md +0 -125
  240. package/framework/skills/financial-ledger/SKILL.md +0 -1039
  241. package/framework/skills/frontend-master/NOTICE.md +0 -4
  242. package/framework/skills/frontend-master/SKILL.md +0 -127
  243. package/framework/skills/frontend-master/reference/color-and-contrast.md +0 -132
  244. package/framework/skills/frontend-master/reference/interaction-design.md +0 -123
  245. package/framework/skills/frontend-master/reference/motion-design.md +0 -99
  246. package/framework/skills/frontend-master/reference/responsive-design.md +0 -114
  247. package/framework/skills/frontend-master/reference/spatial-design.md +0 -100
  248. package/framework/skills/frontend-master/reference/typography.md +0 -131
  249. package/framework/skills/frontend-master/reference/ux-writing.md +0 -107
  250. package/framework/skills/harden/SKILL.md +0 -357
  251. package/framework/skills/i18n-rtl/SKILL.md +0 -752
  252. package/framework/skills/learn/SKILL.md +0 -95
  253. package/framework/skills/memory/SKILL.md +0 -50
  254. package/framework/skills/mobile-expo/SKILL.md +0 -977
  255. package/framework/skills/mobile-expo/references/store-checklist.md +0 -550
  256. package/framework/skills/nestjs-backend/README.md +0 -73
  257. package/framework/skills/nestjs-backend/SKILL.md +0 -446
  258. package/framework/skills/nestjs-backend/references/templates.md +0 -1173
  259. package/framework/skills/normalize/SKILL.md +0 -79
  260. package/framework/skills/onboard/SKILL.md +0 -242
  261. package/framework/skills/openrouter-agent/SKILL.md +0 -922
  262. package/framework/skills/polish/SKILL.md +0 -209
  263. package/framework/skills/pr/SKILL.md +0 -66
  264. package/framework/skills/qualia/SKILL.md +0 -199
  265. package/framework/skills/qualia-add-todo/SKILL.md +0 -68
  266. package/framework/skills/qualia-audit-milestone/SKILL.md +0 -95
  267. package/framework/skills/qualia-check-todos/SKILL.md +0 -55
  268. package/framework/skills/qualia-complete-milestone/SKILL.md +0 -134
  269. package/framework/skills/qualia-debug/SKILL.md +0 -149
  270. package/framework/skills/qualia-design/SKILL.md +0 -203
  271. package/framework/skills/qualia-discuss-phase/SKILL.md +0 -72
  272. package/framework/skills/qualia-evolve/SKILL.md +0 -200
  273. package/framework/skills/qualia-execute-phase/SKILL.md +0 -89
  274. package/framework/skills/qualia-framework-audit/SKILL.md +0 -604
  275. package/framework/skills/qualia-guide/SKILL.md +0 -32
  276. package/framework/skills/qualia-help/SKILL.md +0 -114
  277. package/framework/skills/qualia-idk/SKILL.md +0 -352
  278. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +0 -67
  279. package/framework/skills/qualia-new-milestone/SKILL.md +0 -72
  280. package/framework/skills/qualia-new-project/SKILL.md +0 -232
  281. package/framework/skills/qualia-optimize/SKILL.md +0 -417
  282. package/framework/skills/qualia-pause-work/SKILL.md +0 -96
  283. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +0 -57
  284. package/framework/skills/qualia-plan-phase/SKILL.md +0 -104
  285. package/framework/skills/qualia-production-check/SKILL.md +0 -0
  286. package/framework/skills/qualia-progress/SKILL.md +0 -53
  287. package/framework/skills/qualia-quick/SKILL.md +0 -89
  288. package/framework/skills/qualia-report/SKILL.md +0 -166
  289. package/framework/skills/qualia-research-phase/SKILL.md +0 -88
  290. package/framework/skills/qualia-resume-work/SKILL.md +0 -62
  291. package/framework/skills/qualia-review/SKILL.md +0 -263
  292. package/framework/skills/qualia-start/SKILL.md +0 -161
  293. package/framework/skills/qualia-verify-work/SKILL.md +0 -132
  294. package/framework/skills/rag/SKILL.md +0 -750
  295. package/framework/skills/responsive/SKILL.md +0 -231
  296. package/framework/skills/retro/SKILL.md +0 -284
  297. package/framework/skills/sakani-conventions/SKILL.md +0 -136
  298. package/framework/skills/sakani-conventions/evals/evals.json +0 -23
  299. package/framework/skills/sakani-conventions/references/entities.md +0 -365
  300. package/framework/skills/sakani-conventions/references/error-codes.md +0 -95
  301. package/framework/skills/seo-master/SKILL.md +0 -490
  302. package/framework/skills/seo-master/references/checklist.md +0 -199
  303. package/framework/skills/seo-master/references/structured-data.md +0 -609
  304. package/framework/skills/ship/SKILL.md +0 -239
  305. package/framework/skills/stack-researcher/SKILL.md +0 -215
  306. package/framework/skills/status/SKILL.md +0 -154
  307. package/framework/skills/status/scripts/health-check.sh +0 -562
  308. package/framework/skills/subscription-payments/SKILL.md +0 -250
  309. package/framework/skills/supabase/SKILL.md +0 -973
  310. package/framework/skills/supabase/references/templates.md +0 -159
  311. package/framework/skills/team/SKILL.md +0 -67
  312. package/framework/skills/test-runner/SKILL.md +0 -202
  313. package/framework/skills/voice-agent/SKILL.md +0 -1312
  314. package/framework/skills/zoho-workflow/SKILL.md +0 -51
  315. package/framework/statusline-command.sh +0 -117
  316. package/framework/teams/default/inboxes/plan-04.json +0 -9
  317. package/framework/teams/review-team.md +0 -75
  318. package/framework/teams/ship-team.md +0 -86
  319. package/profiles/fawzi.json +0 -16
  320. package/profiles/hasan.json +0 -16
  321. package/profiles/moayad.json +0 -16
  322. package/templates/CLAUDE-owner.md +0 -52
  323. package/templates/CLAUDE.md.hbs +0 -58
  324. package/templates/env.claude.template +0 -12
  325. package/templates/settings.json +0 -172
  326. package/uninstall.sh +0 -90
  327. /package/{framework/rules → rules}/deployment.md +0 -0
  328. /package/{framework/rules → rules}/security.md +0 -0
@@ -1,61 +0,0 @@
1
- # Phase Argument Parsing
2
-
3
- Parse and normalize phase arguments for commands that operate on phases.
4
-
5
- ## Extraction
6
-
7
- From `$ARGUMENTS`:
8
- - Extract phase number (first numeric argument)
9
- - Extract flags (prefixed with `--`)
10
- - Remaining text is description (for insert/add commands)
11
-
12
- ## Using qualia-tools
13
-
14
- The `find-phase` command handles normalization and validation in one step:
15
-
16
- ```bash
17
- PHASE_INFO=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js find-phase "${PHASE}")
18
- ```
19
-
20
- Returns JSON with:
21
- - `found`: true/false
22
- - `directory`: Full path to phase directory
23
- - `phase_number`: Normalized number (e.g., "06", "06.1")
24
- - `phase_name`: Name portion (e.g., "foundation")
25
- - `plans`: Array of PLAN.md files
26
- - `summaries`: Array of SUMMARY.md files
27
-
28
- ## Manual Normalization (Legacy)
29
-
30
- Zero-pad integer phases to 2 digits. Preserve decimal suffixes.
31
-
32
- ```bash
33
- # Normalize phase number
34
- if [[ "$PHASE" =~ ^[0-9]+$ ]]; then
35
- # Integer: 8 → 08
36
- PHASE=$(printf "%02d" "$PHASE")
37
- elif [[ "$PHASE" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
38
- # Decimal: 2.1 → 02.1
39
- PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
40
- fi
41
- ```
42
-
43
- ## Validation
44
-
45
- Use `roadmap get-phase` to validate phase exists:
46
-
47
- ```bash
48
- PHASE_CHECK=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js roadmap get-phase "${PHASE}")
49
- if [ "$(echo "$PHASE_CHECK" | jq -r '.found')" = "false" ]; then
50
- echo "ERROR: Phase ${PHASE} not found in roadmap"
51
- exit 1
52
- fi
53
- ```
54
-
55
- ## Directory Lookup
56
-
57
- Use `find-phase` for directory lookup:
58
-
59
- ```bash
60
- PHASE_DIR=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js find-phase "${PHASE}" --raw)
61
- ```
@@ -1,195 +0,0 @@
1
- <planning_config>
2
-
3
- Configuration options for `.planning/` directory behavior.
4
-
5
- <config_schema>
6
- ```json
7
- "planning": {
8
- "commit_docs": true,
9
- "search_gitignored": false
10
- },
11
- "git": {
12
- "branching_strategy": "none",
13
- "phase_branch_template": "qualia/phase-{phase}-{slug}",
14
- "milestone_branch_template": "qualia/{milestone}-{slug}"
15
- }
16
- ```
17
-
18
- | Option | Default | Description |
19
- |--------|---------|-------------|
20
- | `commit_docs` | `true` | Whether to commit planning artifacts to git |
21
- | `search_gitignored` | `false` | Add `--no-ignore` to broad rg searches |
22
- | `git.branching_strategy` | `"none"` | Git branching approach: `"none"`, `"phase"`, or `"milestone"` |
23
- | `git.phase_branch_template` | `"qualia/phase-{phase}-{slug}"` | Branch template for phase strategy |
24
- | `git.milestone_branch_template` | `"qualia/{milestone}-{slug}"` | Branch template for milestone strategy |
25
- </config_schema>
26
-
27
- <commit_docs_behavior>
28
-
29
- **When `commit_docs: true` (default):**
30
- - Planning files committed normally
31
- - SUMMARY.md, STATE.md, ROADMAP.md tracked in git
32
- - Full history of planning decisions preserved
33
-
34
- **When `commit_docs: false`:**
35
- - Skip all `git add`/`git commit` for `.planning/` files
36
- - User must add `.planning/` to `.gitignore`
37
- - Useful for: OSS contributions, client projects, keeping planning private
38
-
39
- **Using qualia-tools.js (preferred):**
40
-
41
- ```bash
42
- # Commit with automatic commit_docs + gitignore checks:
43
- node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs: update state" --files .planning/STATE.md
44
-
45
- # Load config via state load (returns JSON):
46
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js state load)
47
- # commit_docs is available in the JSON output
48
-
49
- # Or use init commands which include commit_docs:
50
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init execute-phase "1")
51
- # commit_docs is included in all init command outputs
52
- ```
53
-
54
- **Auto-detection:** If `.planning/` is gitignored, `commit_docs` is automatically `false` regardless of config.json. This prevents git errors when users have `.planning/` in `.gitignore`.
55
-
56
- **Conditional git operations:**
57
-
58
- ```bash
59
- if [ "$COMMIT_DOCS" = "true" ]; then
60
- git add .planning/STATE.md
61
- git commit -m "docs: update state"
62
- fi
63
- ```
64
-
65
- </commit_docs_behavior>
66
-
67
- <search_behavior>
68
-
69
- **When `search_gitignored: false` (default):**
70
- - Standard rg behavior (respects .gitignore)
71
- - Direct path searches work: `rg "pattern" .planning/` finds files
72
- - Broad searches skip gitignored: `rg "pattern"` skips `.planning/`
73
-
74
- **When `search_gitignored: true`:**
75
- - Add `--no-ignore` to broad rg searches that should include `.planning/`
76
- - Only needed when searching entire repo and expecting `.planning/` matches
77
-
78
- **Note:** Most Qualia operations use direct file reads or explicit paths, which work regardless of gitignore status.
79
-
80
- </search_behavior>
81
-
82
- <setup_uncommitted_mode>
83
-
84
- To use uncommitted mode:
85
-
86
- 1. **Set config:**
87
- ```json
88
- "planning": {
89
- "commit_docs": false,
90
- "search_gitignored": true
91
- }
92
- ```
93
-
94
- 2. **Add to .gitignore:**
95
- ```
96
- .planning/
97
- ```
98
-
99
- 3. **Existing tracked files:** If `.planning/` was previously tracked:
100
- ```bash
101
- git rm -r --cached .planning/
102
- git commit -m "chore: stop tracking planning docs"
103
- ```
104
-
105
- </setup_uncommitted_mode>
106
-
107
- <branching_strategy_behavior>
108
-
109
- **Branching Strategies:**
110
-
111
- | Strategy | When branch created | Branch scope | Merge point |
112
- |----------|---------------------|--------------|-------------|
113
- | `none` | Never | N/A | N/A |
114
- | `phase` | At `execute-phase` start | Single phase | User merges after phase |
115
- | `milestone` | At first `execute-phase` of milestone | Entire milestone | At `complete-milestone` |
116
-
117
- **When `git.branching_strategy: "none"` (default):**
118
- - All work commits to current branch
119
- - Standard Qualia behavior
120
-
121
- **When `git.branching_strategy: "phase"`:**
122
- - `execute-phase` creates/switches to a branch before execution
123
- - Branch name from `phase_branch_template` (e.g., `qualia/phase-03-authentication`)
124
- - All plan commits go to that branch
125
- - User merges branches manually after phase completion
126
- - `complete-milestone` offers to merge all phase branches
127
-
128
- **When `git.branching_strategy: "milestone"`:**
129
- - First `execute-phase` of milestone creates the milestone branch
130
- - Branch name from `milestone_branch_template` (e.g., `qualia/v1.0-mvp`)
131
- - All phases in milestone commit to same branch
132
- - `complete-milestone` offers to merge milestone branch to main
133
-
134
- **Template variables:**
135
-
136
- | Variable | Available in | Description |
137
- |----------|--------------|-------------|
138
- | `{phase}` | phase_branch_template | Zero-padded phase number (e.g., "03") |
139
- | `{slug}` | Both | Lowercase, hyphenated name |
140
- | `{milestone}` | milestone_branch_template | Milestone version (e.g., "v1.0") |
141
-
142
- **Checking the config:**
143
-
144
- Use `init execute-phase` which returns all config as JSON:
145
- ```bash
146
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init execute-phase "1")
147
- # JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template
148
- ```
149
-
150
- Or use `state load` for the config values:
151
- ```bash
152
- INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js state load)
153
- # Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON
154
- ```
155
-
156
- **Branch creation:**
157
-
158
- ```bash
159
- # For phase strategy
160
- if [ "$BRANCHING_STRATEGY" = "phase" ]; then
161
- PHASE_SLUG=$(echo "$PHASE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
162
- BRANCH_NAME=$(echo "$PHASE_BRANCH_TEMPLATE" | sed "s/{phase}/$PADDED_PHASE/g" | sed "s/{slug}/$PHASE_SLUG/g")
163
- git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
164
- fi
165
-
166
- # For milestone strategy
167
- if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
168
- MILESTONE_SLUG=$(echo "$MILESTONE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
169
- BRANCH_NAME=$(echo "$MILESTONE_BRANCH_TEMPLATE" | sed "s/{milestone}/$MILESTONE_VERSION/g" | sed "s/{slug}/$MILESTONE_SLUG/g")
170
- git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
171
- fi
172
- ```
173
-
174
- **Merge options at complete-milestone:**
175
-
176
- | Option | Git command | Result |
177
- |--------|-------------|--------|
178
- | Squash merge (recommended) | `git merge --squash` | Single clean commit per branch |
179
- | Merge with history | `git merge --no-ff` | Preserves all individual commits |
180
- | Delete without merging | `git branch -D` | Discard branch work |
181
- | Keep branches | (none) | Manual handling later |
182
-
183
- Squash merge is recommended — keeps main branch history clean while preserving the full development history in the branch (until deleted).
184
-
185
- **Use cases:**
186
-
187
- | Strategy | Best for |
188
- |----------|----------|
189
- | `none` | Solo development, simple projects |
190
- | `phase` | Code review per phase, granular rollback, team collaboration |
191
- | `milestone` | Release branches, staging environments, PR per version |
192
-
193
- </branching_strategy_behavior>
194
-
195
- </planning_config>
@@ -1,141 +0,0 @@
1
- <questioning_guide>
2
-
3
- Project initialization is dream extraction, not requirements gathering. You're helping the user discover and articulate what they want to build. This isn't a contract negotiation — it's collaborative thinking.
4
-
5
- <philosophy>
6
-
7
- **You are a thinking partner, not an interviewer.**
8
-
9
- The user often has a fuzzy idea. Your job is to help them sharpen it. Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean."
10
-
11
- Don't interrogate. Collaborate. Don't follow a script. Follow the thread.
12
-
13
- </philosophy>
14
-
15
- <the_goal>
16
-
17
- By the end of questioning, you need enough clarity to write a PROJECT.md that downstream phases can act on:
18
-
19
- - **Research** needs: what domain to research, what the user already knows, what unknowns exist
20
- - **Requirements** needs: clear enough vision to scope v1 features
21
- - **Roadmap** needs: clear enough vision to decompose into phases, what "done" looks like
22
- - **plan-phase** needs: specific requirements to break into tasks, context for implementation choices
23
- - **execute-phase** needs: success criteria to verify against, the "why" behind requirements
24
-
25
- A vague PROJECT.md forces every downstream phase to guess. The cost compounds.
26
-
27
- </the_goal>
28
-
29
- <how_to_question>
30
-
31
- **Start open.** Let them dump their mental model. Don't interrupt with structure.
32
-
33
- **Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this?
34
-
35
- **Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how?
36
-
37
- **Make the abstract concrete.** "Walk me through using this." "What does that actually look like?"
38
-
39
- **Clarify ambiguity.** "When you say Z, do you mean A or B?" "You mentioned X — tell me more."
40
-
41
- **Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like — offer to proceed.
42
-
43
- </how_to_question>
44
-
45
- <question_types>
46
-
47
- Use these as inspiration, not a checklist. Pick what's relevant to the thread.
48
-
49
- **Motivation — why this exists:**
50
- - "What prompted this?"
51
- - "What are you doing today that this replaces?"
52
- - "What would you do if this existed?"
53
-
54
- **Concreteness — what it actually is:**
55
- - "Walk me through using this"
56
- - "You said X — what does that actually look like?"
57
- - "Give me an example"
58
-
59
- **Clarification — what they mean:**
60
- - "When you say Z, do you mean A or B?"
61
- - "You mentioned X — tell me more about that"
62
-
63
- **Success — how you'll know it's working:**
64
- - "How will you know this is working?"
65
- - "What does done look like?"
66
-
67
- </question_types>
68
-
69
- <using_askuserquestion>
70
-
71
- Use AskUserQuestion to help users think by presenting concrete options to react to.
72
-
73
- **Good options:**
74
- - Interpretations of what they might mean
75
- - Specific examples to confirm or deny
76
- - Concrete choices that reveal priorities
77
-
78
- **Bad options:**
79
- - Generic categories ("Technical", "Business", "Other")
80
- - Leading options that presume an answer
81
- - Too many options (2-4 is ideal)
82
-
83
- **Example — vague answer:**
84
- User says "it should be fast"
85
-
86
- - header: "Fast"
87
- - question: "Fast how?"
88
- - options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"]
89
-
90
- **Example — following a thread:**
91
- User mentions "frustrated with current tools"
92
-
93
- - header: "Frustration"
94
- - question: "What specifically frustrates you?"
95
- - options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"]
96
-
97
- </using_askuserquestion>
98
-
99
- <context_checklist>
100
-
101
- Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally.
102
-
103
- - [ ] What they're building (concrete enough to explain to a stranger)
104
- - [ ] Why it needs to exist (the problem or desire driving it)
105
- - [ ] Who it's for (even if just themselves)
106
- - [ ] What "done" looks like (observable outcomes)
107
-
108
- Four things. If they volunteer more, capture it.
109
-
110
- </context_checklist>
111
-
112
- <decision_gate>
113
-
114
- When you could write a clear PROJECT.md, offer to proceed:
115
-
116
- - header: "Ready?"
117
- - question: "I think I understand what you're after. Ready to create PROJECT.md?"
118
- - options:
119
- - "Create PROJECT.md" — Let's move forward
120
- - "Keep exploring" — I want to share more / ask me more
121
-
122
- If "Keep exploring" — ask what they want to add or identify gaps and probe naturally.
123
-
124
- Loop until "Create PROJECT.md" selected.
125
-
126
- </decision_gate>
127
-
128
- <anti_patterns>
129
-
130
- - **Checklist walking** — Going through domains regardless of what they said
131
- - **Canned questions** — "What's your core value?" "What's out of scope?" regardless of context
132
- - **Corporate speak** — "What are your success criteria?" "Who are your stakeholders?"
133
- - **Interrogation** — Firing questions without building on answers
134
- - **Rushing** — Minimizing questions to get to "the work"
135
- - **Shallow acceptance** — Taking vague answers without probing
136
- - **Premature constraints** — Asking about tech stack before understanding the idea
137
- - **User skills** — NEVER ask about user's technical experience. Claude builds.
138
-
139
- </anti_patterns>
140
-
141
- </questioning_guide>
@@ -1,263 +0,0 @@
1
- <overview>
2
- TDD is about design quality, not coverage metrics. The red-green-refactor cycle forces you to think about behavior before implementation, producing cleaner interfaces and more testable code.
3
-
4
- **Principle:** If you can describe the behavior as `expect(fn(input)).toBe(output)` before writing `fn`, TDD improves the result.
5
-
6
- **Key insight:** TDD work is fundamentally heavier than standard tasks—it requires 2-3 execution cycles (RED → GREEN → REFACTOR), each with file reads, test runs, and potential debugging. TDD features get dedicated plans to ensure full context is available throughout the cycle.
7
- </overview>
8
-
9
- <when_to_use_tdd>
10
- ## When TDD Improves Quality
11
-
12
- **TDD candidates (create a TDD plan):**
13
- - Business logic with defined inputs/outputs
14
- - API endpoints with request/response contracts
15
- - Data transformations, parsing, formatting
16
- - Validation rules and constraints
17
- - Algorithms with testable behavior
18
- - State machines and workflows
19
- - Utility functions with clear specifications
20
-
21
- **Skip TDD (use standard plan with `type="auto"` tasks):**
22
- - UI layout, styling, visual components
23
- - Configuration changes
24
- - Glue code connecting existing components
25
- - One-off scripts and migrations
26
- - Simple CRUD with no business logic
27
- - Exploratory prototyping
28
-
29
- **Heuristic:** Can you write `expect(fn(input)).toBe(output)` before writing `fn`?
30
- → Yes: Create a TDD plan
31
- → No: Use standard plan, add tests after if needed
32
- </when_to_use_tdd>
33
-
34
- <tdd_plan_structure>
35
- ## TDD Plan Structure
36
-
37
- Each TDD plan implements **one feature** through the full RED-GREEN-REFACTOR cycle.
38
-
39
- ```markdown
40
- ---
41
- phase: XX-name
42
- plan: NN
43
- type: tdd
44
- ---
45
-
46
- <objective>
47
- [What feature and why]
48
- Purpose: [Design benefit of TDD for this feature]
49
- Output: [Working, tested feature]
50
- </objective>
51
-
52
- <context>
53
- @.planning/PROJECT.md
54
- @.planning/ROADMAP.md
55
- @relevant/source/files.ts
56
- </context>
57
-
58
- <feature>
59
- <name>[Feature name]</name>
60
- <files>[source file, test file]</files>
61
- <behavior>
62
- [Expected behavior in testable terms]
63
- Cases: input → expected output
64
- </behavior>
65
- <implementation>[How to implement once tests pass]</implementation>
66
- </feature>
67
-
68
- <verification>
69
- [Test command that proves feature works]
70
- </verification>
71
-
72
- <success_criteria>
73
- - Failing test written and committed
74
- - Implementation passes test
75
- - Refactor complete (if needed)
76
- - All 2-3 commits present
77
- </success_criteria>
78
-
79
- <output>
80
- After completion, create SUMMARY.md with:
81
- - RED: What test was written, why it failed
82
- - GREEN: What implementation made it pass
83
- - REFACTOR: What cleanup was done (if any)
84
- - Commits: List of commits produced
85
- </output>
86
- ```
87
-
88
- **One feature per TDD plan.** If features are trivial enough to batch, they're trivial enough to skip TDD—use a standard plan and add tests after.
89
- </tdd_plan_structure>
90
-
91
- <execution_flow>
92
- ## Red-Green-Refactor Cycle
93
-
94
- **RED - Write failing test:**
95
- 1. Create test file following project conventions
96
- 2. Write test describing expected behavior (from `<behavior>` element)
97
- 3. Run test - it MUST fail
98
- 4. If test passes: feature exists or test is wrong. Investigate.
99
- 5. Commit: `test({phase}-{plan}): add failing test for [feature]`
100
-
101
- **GREEN - Implement to pass:**
102
- 1. Write minimal code to make test pass
103
- 2. No cleverness, no optimization - just make it work
104
- 3. Run test - it MUST pass
105
- 4. Commit: `feat({phase}-{plan}): implement [feature]`
106
-
107
- **REFACTOR (if needed):**
108
- 1. Clean up implementation if obvious improvements exist
109
- 2. Run tests - MUST still pass
110
- 3. Only commit if changes made: `refactor({phase}-{plan}): clean up [feature]`
111
-
112
- **Result:** Each TDD plan produces 2-3 atomic commits.
113
- </execution_flow>
114
-
115
- <test_quality>
116
- ## Good Tests vs Bad Tests
117
-
118
- **Test behavior, not implementation:**
119
- - Good: "returns formatted date string"
120
- - Bad: "calls formatDate helper with correct params"
121
- - Tests should survive refactors
122
-
123
- **One concept per test:**
124
- - Good: Separate tests for valid input, empty input, malformed input
125
- - Bad: Single test checking all edge cases with multiple assertions
126
-
127
- **Descriptive names:**
128
- - Good: "should reject empty email", "returns null for invalid ID"
129
- - Bad: "test1", "handles error", "works correctly"
130
-
131
- **No implementation details:**
132
- - Good: Test public API, observable behavior
133
- - Bad: Mock internals, test private methods, assert on internal state
134
- </test_quality>
135
-
136
- <framework_setup>
137
- ## Test Framework Setup (If None Exists)
138
-
139
- When executing a TDD plan but no test framework is configured, set it up as part of the RED phase:
140
-
141
- **1. Detect project type:**
142
- ```bash
143
- # JavaScript/TypeScript
144
- if [ -f package.json ]; then echo "node"; fi
145
-
146
- # Python
147
- if [ -f requirements.txt ] || [ -f pyproject.toml ]; then echo "python"; fi
148
-
149
- # Go
150
- if [ -f go.mod ]; then echo "go"; fi
151
-
152
- # Rust
153
- if [ -f Cargo.toml ]; then echo "rust"; fi
154
- ```
155
-
156
- **2. Install minimal framework:**
157
- | Project | Framework | Install |
158
- |---------|-----------|---------|
159
- | Node.js | Jest | `npm install -D jest @types/jest ts-jest` |
160
- | Node.js (Vite) | Vitest | `npm install -D vitest` |
161
- | Python | pytest | `pip install pytest` |
162
- | Go | testing | Built-in |
163
- | Rust | cargo test | Built-in |
164
-
165
- **3. Create config if needed:**
166
- - Jest: `jest.config.js` with ts-jest preset
167
- - Vitest: `vitest.config.ts` with test globals
168
- - pytest: `pytest.ini` or `pyproject.toml` section
169
-
170
- **4. Verify setup:**
171
- ```bash
172
- # Run empty test suite - should pass with 0 tests
173
- npm test # Node
174
- pytest # Python
175
- go test ./... # Go
176
- cargo test # Rust
177
- ```
178
-
179
- **5. Create first test file:**
180
- Follow project conventions for test location:
181
- - `*.test.ts` / `*.spec.ts` next to source
182
- - `__tests__/` directory
183
- - `tests/` directory at root
184
-
185
- Framework setup is a one-time cost included in the first TDD plan's RED phase.
186
- </framework_setup>
187
-
188
- <error_handling>
189
- ## Error Handling
190
-
191
- **Test doesn't fail in RED phase:**
192
- - Feature may already exist - investigate
193
- - Test may be wrong (not testing what you think)
194
- - Fix before proceeding
195
-
196
- **Test doesn't pass in GREEN phase:**
197
- - Debug implementation
198
- - Don't skip to refactor
199
- - Keep iterating until green
200
-
201
- **Tests fail in REFACTOR phase:**
202
- - Undo refactor
203
- - Commit was premature
204
- - Refactor in smaller steps
205
-
206
- **Unrelated tests break:**
207
- - Stop and investigate
208
- - May indicate coupling issue
209
- - Fix before proceeding
210
- </error_handling>
211
-
212
- <commit_pattern>
213
- ## Commit Pattern for TDD Plans
214
-
215
- TDD plans produce 2-3 atomic commits (one per phase):
216
-
217
- ```
218
- test(08-02): add failing test for email validation
219
-
220
- - Tests valid email formats accepted
221
- - Tests invalid formats rejected
222
- - Tests empty input handling
223
-
224
- feat(08-02): implement email validation
225
-
226
- - Regex pattern matches RFC 5322
227
- - Returns boolean for validity
228
- - Handles edge cases (empty, null)
229
-
230
- refactor(08-02): extract regex to constant (optional)
231
-
232
- - Moved pattern to EMAIL_REGEX constant
233
- - No behavior changes
234
- - Tests still pass
235
- ```
236
-
237
- **Comparison with standard plans:**
238
- - Standard plans: 1 commit per task, 2-4 commits per plan
239
- - TDD plans: 2-3 commits for single feature
240
-
241
- Both follow same format: `{type}({phase}-{plan}): {description}`
242
-
243
- **Benefits:**
244
- - Each commit independently revertable
245
- - Git bisect works at commit level
246
- - Clear history showing TDD discipline
247
- - Consistent with overall commit strategy
248
- </commit_pattern>
249
-
250
- <context_budget>
251
- ## Context Budget
252
-
253
- TDD plans target **~40% context usage** (lower than standard plans' ~50%).
254
-
255
- Why lower:
256
- - RED phase: write test, run test, potentially debug why it didn't fail
257
- - GREEN phase: implement, run test, potentially iterate on failures
258
- - REFACTOR phase: modify code, run tests, verify no regressions
259
-
260
- Each phase involves reading files, running commands, analyzing output. The back-and-forth is inherently heavier than linear task execution.
261
-
262
- Single feature focus ensures full quality throughout the cycle.
263
- </context_budget>