qualia-framework 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +50 -0
  2. package/bin/cli.js +519 -0
  3. package/framework/agents/architecture-strategist.md +53 -0
  4. package/framework/agents/backend-agent.md +150 -0
  5. package/framework/agents/code-simplicity-reviewer.md +86 -0
  6. package/framework/agents/frontend-agent.md +111 -0
  7. package/framework/agents/kieran-typescript-reviewer.md +96 -0
  8. package/framework/agents/performance-oracle.md +111 -0
  9. package/framework/agents/qualia-codebase-mapper.md +760 -0
  10. package/framework/agents/qualia-debugger.md +1203 -0
  11. package/framework/agents/qualia-executor.md +881 -0
  12. package/framework/agents/qualia-integration-checker.md +423 -0
  13. package/framework/agents/qualia-phase-researcher.md +453 -0
  14. package/framework/agents/qualia-plan-checker.md +699 -0
  15. package/framework/agents/qualia-planner.md +1241 -0
  16. package/framework/agents/qualia-project-researcher.md +602 -0
  17. package/framework/agents/qualia-research-synthesizer.md +236 -0
  18. package/framework/agents/qualia-roadmapper.md +605 -0
  19. package/framework/agents/qualia-verifier.md +685 -0
  20. package/framework/agents/team-orchestrator.md +228 -0
  21. package/framework/agents/teams/full-stack-team.md +48 -0
  22. package/framework/agents/teams/optimize-team.md +53 -0
  23. package/framework/agents/teams/review-team.md +62 -0
  24. package/framework/agents/teams/ship-team.md +86 -0
  25. package/framework/agents/test-agent.md +182 -0
  26. package/framework/askpass.sh +2 -0
  27. package/framework/commands/design.md +53 -0
  28. package/framework/commands/quick-db.md +22 -0
  29. package/framework/config/retention.json +35 -0
  30. package/framework/core/PRINCIPLES.md +77 -0
  31. package/framework/hooks/auto-format.sh +45 -0
  32. package/framework/hooks/block-env-edit.sh +42 -0
  33. package/framework/hooks/branch-guard.sh +46 -0
  34. package/framework/hooks/confirm-delete.sh +56 -0
  35. package/framework/hooks/migration-validate.sh +68 -0
  36. package/framework/hooks/notification-speak.sh +15 -0
  37. package/framework/hooks/pre-commit.sh +80 -0
  38. package/framework/hooks/pre-compact.sh +55 -0
  39. package/framework/hooks/pre-deploy-gate.sh +151 -0
  40. package/framework/hooks/qualia-colors.sh +32 -0
  41. package/framework/hooks/retention-cleanup.sh +43 -0
  42. package/framework/hooks/save-session-state.sh +153 -0
  43. package/framework/hooks/session-context-loader.sh +28 -0
  44. package/framework/hooks/session-learn.sh +30 -0
  45. package/framework/knowledge/claudecode-bible.md +1384 -0
  46. package/framework/knowledge/client-prefs.md +22 -0
  47. package/framework/knowledge/common-fixes.md +25 -0
  48. package/framework/knowledge/deployment-map.md +35 -0
  49. package/framework/knowledge/email-signature.html +1 -0
  50. package/framework/knowledge/employees.md +8 -0
  51. package/framework/knowledge/learned-patterns.md +51 -0
  52. package/framework/knowledge/optimization-research-2026.md +137 -0
  53. package/framework/knowledge/qualia-context.md +67 -0
  54. package/framework/knowledge/supabase-patterns.md +50 -0
  55. package/framework/knowledge/voice-agent-patterns.md +46 -0
  56. package/framework/qualia-engine/VERSION +1 -0
  57. package/framework/qualia-engine/bin/qualia-tools.js +2160 -0
  58. package/framework/qualia-engine/bin/qualia-tools.test.js +1054 -0
  59. package/framework/qualia-engine/references/checkpoints.md +775 -0
  60. package/framework/qualia-engine/references/continuation-format.md +249 -0
  61. package/framework/qualia-engine/references/decimal-phase-calculation.md +65 -0
  62. package/framework/qualia-engine/references/design-quality.md +56 -0
  63. package/framework/qualia-engine/references/git-integration.md +254 -0
  64. package/framework/qualia-engine/references/git-planning-commit.md +50 -0
  65. package/framework/qualia-engine/references/model-profile-resolution.md +32 -0
  66. package/framework/qualia-engine/references/model-profiles.md +73 -0
  67. package/framework/qualia-engine/references/phase-argument-parsing.md +61 -0
  68. package/framework/qualia-engine/references/planning-config.md +195 -0
  69. package/framework/qualia-engine/references/questioning.md +141 -0
  70. package/framework/qualia-engine/references/tdd.md +263 -0
  71. package/framework/qualia-engine/references/ui-brand.md +160 -0
  72. package/framework/qualia-engine/references/verification-patterns.md +612 -0
  73. package/framework/qualia-engine/templates/DEBUG.md +159 -0
  74. package/framework/qualia-engine/templates/DESIGN.md +81 -0
  75. package/framework/qualia-engine/templates/UAT.md +247 -0
  76. package/framework/qualia-engine/templates/codebase/architecture.md +255 -0
  77. package/framework/qualia-engine/templates/codebase/concerns.md +310 -0
  78. package/framework/qualia-engine/templates/codebase/conventions.md +307 -0
  79. package/framework/qualia-engine/templates/codebase/integrations.md +280 -0
  80. package/framework/qualia-engine/templates/codebase/stack.md +186 -0
  81. package/framework/qualia-engine/templates/codebase/structure.md +285 -0
  82. package/framework/qualia-engine/templates/codebase/testing.md +480 -0
  83. package/framework/qualia-engine/templates/config.json +35 -0
  84. package/framework/qualia-engine/templates/context.md +283 -0
  85. package/framework/qualia-engine/templates/continue-here.md +78 -0
  86. package/framework/qualia-engine/templates/debug-subagent-prompt.md +91 -0
  87. package/framework/qualia-engine/templates/discovery.md +146 -0
  88. package/framework/qualia-engine/templates/milestone-archive.md +123 -0
  89. package/framework/qualia-engine/templates/milestone.md +115 -0
  90. package/framework/qualia-engine/templates/phase-prompt.md +567 -0
  91. package/framework/qualia-engine/templates/planner-subagent-prompt.md +117 -0
  92. package/framework/qualia-engine/templates/project.md +184 -0
  93. package/framework/qualia-engine/templates/projects/ai-agent.md +156 -0
  94. package/framework/qualia-engine/templates/projects/mobile-app.md +181 -0
  95. package/framework/qualia-engine/templates/projects/voice-agent.md +134 -0
  96. package/framework/qualia-engine/templates/projects/website.md +137 -0
  97. package/framework/qualia-engine/templates/requirements.md +231 -0
  98. package/framework/qualia-engine/templates/research-project/ARCHITECTURE.md +204 -0
  99. package/framework/qualia-engine/templates/research-project/FEATURES.md +147 -0
  100. package/framework/qualia-engine/templates/research-project/PITFALLS.md +200 -0
  101. package/framework/qualia-engine/templates/research-project/STACK.md +120 -0
  102. package/framework/qualia-engine/templates/research-project/SUMMARY.md +170 -0
  103. package/framework/qualia-engine/templates/research.md +552 -0
  104. package/framework/qualia-engine/templates/roadmap.md +202 -0
  105. package/framework/qualia-engine/templates/state.md +176 -0
  106. package/framework/qualia-engine/templates/summary-complex.md +59 -0
  107. package/framework/qualia-engine/templates/summary-minimal.md +41 -0
  108. package/framework/qualia-engine/templates/summary-standard.md +48 -0
  109. package/framework/qualia-engine/templates/summary.md +246 -0
  110. package/framework/qualia-engine/templates/user-setup.md +311 -0
  111. package/framework/qualia-engine/templates/verification-report.md +322 -0
  112. package/framework/qualia-engine/workflows/add-phase.md +179 -0
  113. package/framework/qualia-engine/workflows/add-todo.md +157 -0
  114. package/framework/qualia-engine/workflows/audit-milestone.md +241 -0
  115. package/framework/qualia-engine/workflows/check-todos.md +176 -0
  116. package/framework/qualia-engine/workflows/complete-milestone.md +858 -0
  117. package/framework/qualia-engine/workflows/diagnose-issues.md +219 -0
  118. package/framework/qualia-engine/workflows/discovery-phase.md +289 -0
  119. package/framework/qualia-engine/workflows/discuss-phase.md +534 -0
  120. package/framework/qualia-engine/workflows/execute-phase.md +559 -0
  121. package/framework/qualia-engine/workflows/execute-plan.md +438 -0
  122. package/framework/qualia-engine/workflows/help.md +470 -0
  123. package/framework/qualia-engine/workflows/insert-phase.md +220 -0
  124. package/framework/qualia-engine/workflows/list-phase-assumptions.md +178 -0
  125. package/framework/qualia-engine/workflows/map-codebase.md +327 -0
  126. package/framework/qualia-engine/workflows/new-milestone.md +363 -0
  127. package/framework/qualia-engine/workflows/new-project.md +1037 -0
  128. package/framework/qualia-engine/workflows/pause-work.md +122 -0
  129. package/framework/qualia-engine/workflows/plan-milestone-gaps.md +256 -0
  130. package/framework/qualia-engine/workflows/plan-phase.md +422 -0
  131. package/framework/qualia-engine/workflows/progress.md +354 -0
  132. package/framework/qualia-engine/workflows/quick.md +252 -0
  133. package/framework/qualia-engine/workflows/remove-phase.md +326 -0
  134. package/framework/qualia-engine/workflows/research-phase.md +74 -0
  135. package/framework/qualia-engine/workflows/resume-project.md +306 -0
  136. package/framework/qualia-engine/workflows/set-profile.md +80 -0
  137. package/framework/qualia-engine/workflows/settings.md +145 -0
  138. package/framework/qualia-engine/workflows/transition.md +556 -0
  139. package/framework/qualia-engine/workflows/update.md +197 -0
  140. package/framework/qualia-engine/workflows/verify-phase.md +195 -0
  141. package/framework/qualia-engine/workflows/verify-work.md +625 -0
  142. package/framework/rules/context7.md +11 -0
  143. package/framework/rules/deployment.md +29 -0
  144. package/framework/rules/frontend.md +33 -0
  145. package/framework/rules/security.md +12 -0
  146. package/framework/rules/speed.md +20 -0
  147. package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
  148. package/framework/scripts/apply-retention.sh +120 -0
  149. package/framework/scripts/bootstrap-pop-os.sh +354 -0
  150. package/framework/scripts/claude-voice +13 -0
  151. package/framework/scripts/cleanup.sh +131 -0
  152. package/framework/scripts/cowork-mode.sh +141 -0
  153. package/framework/scripts/generate-project-claude-md.sh +153 -0
  154. package/framework/scripts/load-test-webhook.js +172 -0
  155. package/framework/scripts/say.py +236 -0
  156. package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +167 -0
  157. package/framework/scripts/showcase-video-recorder/playwright-helpers.js +216 -0
  158. package/framework/scripts/speak.py +55 -0
  159. package/framework/scripts/speak.sh +18 -0
  160. package/framework/scripts/status.sh +138 -0
  161. package/framework/scripts/sync-to-framework.sh +65 -0
  162. package/framework/scripts/voice-hotkey.py +227 -0
  163. package/framework/scripts/voice-input.sh +51 -0
  164. package/framework/skills/animate/SKILL.md +202 -0
  165. package/framework/skills/bolder/SKILL.md +144 -0
  166. package/framework/skills/browser-qa/SKILL.md +536 -0
  167. package/framework/skills/clarify/SKILL.md +179 -0
  168. package/framework/skills/colorize/SKILL.md +170 -0
  169. package/framework/skills/critique/SKILL.md +126 -0
  170. package/framework/skills/deep-research/SKILL.md +271 -0
  171. package/framework/skills/delight/SKILL.md +329 -0
  172. package/framework/skills/deploy/SKILL.md +261 -0
  173. package/framework/skills/deploy-verify/SKILL.md +377 -0
  174. package/framework/skills/deploy-verify/scripts/canary-check.sh +206 -0
  175. package/framework/skills/deploy-verify/scripts/check-console-errors.js +147 -0
  176. package/framework/skills/deploy-verify/scripts/check-cwv.js +139 -0
  177. package/framework/skills/deploy-verify/scripts/project-detect.sh +84 -0
  178. package/framework/skills/deploy-verify/scripts/verify.sh +548 -0
  179. package/framework/skills/design-quieter/SKILL.md +130 -0
  180. package/framework/skills/distill/SKILL.md +149 -0
  181. package/framework/skills/docs-lookup/SKILL.md +78 -0
  182. package/framework/skills/fcm-notifications/SKILL.md +125 -0
  183. package/framework/skills/financial-ledger/SKILL.md +1039 -0
  184. package/framework/skills/frontend-master/NOTICE.md +4 -0
  185. package/framework/skills/frontend-master/SKILL.md +127 -0
  186. package/framework/skills/frontend-master/reference/color-and-contrast.md +132 -0
  187. package/framework/skills/frontend-master/reference/interaction-design.md +123 -0
  188. package/framework/skills/frontend-master/reference/motion-design.md +99 -0
  189. package/framework/skills/frontend-master/reference/responsive-design.md +114 -0
  190. package/framework/skills/frontend-master/reference/spatial-design.md +100 -0
  191. package/framework/skills/frontend-master/reference/typography.md +131 -0
  192. package/framework/skills/frontend-master/reference/ux-writing.md +107 -0
  193. package/framework/skills/harden/SKILL.md +357 -0
  194. package/framework/skills/i18n-rtl/SKILL.md +752 -0
  195. package/framework/skills/learn/SKILL.md +71 -0
  196. package/framework/skills/memory/SKILL.md +50 -0
  197. package/framework/skills/mobile-expo/SKILL.md +864 -0
  198. package/framework/skills/mobile-expo/references/store-checklist.md +550 -0
  199. package/framework/skills/nestjs-backend/README.md +73 -0
  200. package/framework/skills/nestjs-backend/SKILL.md +446 -0
  201. package/framework/skills/nestjs-backend/references/templates.md +1173 -0
  202. package/framework/skills/normalize/SKILL.md +79 -0
  203. package/framework/skills/onboard/SKILL.md +242 -0
  204. package/framework/skills/polish/SKILL.md +209 -0
  205. package/framework/skills/pr/SKILL.md +66 -0
  206. package/framework/skills/qualia/SKILL.md +153 -0
  207. package/framework/skills/qualia-add-todo/SKILL.md +68 -0
  208. package/framework/skills/qualia-audit-milestone/SKILL.md +92 -0
  209. package/framework/skills/qualia-check-todos/SKILL.md +55 -0
  210. package/framework/skills/qualia-complete-milestone/SKILL.md +108 -0
  211. package/framework/skills/qualia-debug/SKILL.md +149 -0
  212. package/framework/skills/qualia-design/SKILL.md +203 -0
  213. package/framework/skills/qualia-discuss-phase/SKILL.md +72 -0
  214. package/framework/skills/qualia-execute-phase/SKILL.md +86 -0
  215. package/framework/skills/qualia-help/SKILL.md +67 -0
  216. package/framework/skills/qualia-idk/SKILL.md +352 -0
  217. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +67 -0
  218. package/framework/skills/qualia-new-milestone/SKILL.md +72 -0
  219. package/framework/skills/qualia-new-project/SKILL.md +92 -0
  220. package/framework/skills/qualia-optimize/SKILL.md +417 -0
  221. package/framework/skills/qualia-pause-work/SKILL.md +96 -0
  222. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +57 -0
  223. package/framework/skills/qualia-plan-phase/SKILL.md +101 -0
  224. package/framework/skills/qualia-progress/SKILL.md +53 -0
  225. package/framework/skills/qualia-quick/SKILL.md +89 -0
  226. package/framework/skills/qualia-research-phase/SKILL.md +88 -0
  227. package/framework/skills/qualia-resume-work/SKILL.md +62 -0
  228. package/framework/skills/qualia-review/SKILL.md +263 -0
  229. package/framework/skills/qualia-start/SKILL.md +182 -0
  230. package/framework/skills/qualia-verify-work/SKILL.md +105 -0
  231. package/framework/skills/qualia-workflow/SKILL.md +130 -0
  232. package/framework/skills/rag/SKILL.md +750 -0
  233. package/framework/skills/responsive/SKILL.md +231 -0
  234. package/framework/skills/retro/SKILL.md +284 -0
  235. package/framework/skills/sakani-conventions/SKILL.md +136 -0
  236. package/framework/skills/sakani-conventions/evals/evals.json +23 -0
  237. package/framework/skills/sakani-conventions/references/entities.md +365 -0
  238. package/framework/skills/sakani-conventions/references/error-codes.md +95 -0
  239. package/framework/skills/seo-master/SKILL.md +490 -0
  240. package/framework/skills/seo-master/references/checklist.md +199 -0
  241. package/framework/skills/seo-master/references/structured-data.md +609 -0
  242. package/framework/skills/ship/SKILL.md +202 -0
  243. package/framework/skills/stack-researcher/SKILL.md +215 -0
  244. package/framework/skills/status/SKILL.md +154 -0
  245. package/framework/skills/status/scripts/health-check.sh +562 -0
  246. package/framework/skills/subscription-payments/SKILL.md +250 -0
  247. package/framework/skills/supabase/SKILL.md +973 -0
  248. package/framework/skills/supabase/references/templates.md +159 -0
  249. package/framework/skills/team/SKILL.md +67 -0
  250. package/framework/skills/test-runner/SKILL.md +202 -0
  251. package/framework/skills/voice-agent/SKILL.md +407 -0
  252. package/framework/skills/zoho-workflow/SKILL.md +51 -0
  253. package/framework/statusline-command.sh +117 -0
  254. package/package.json +24 -0
  255. package/profiles/fawzi.json +16 -0
  256. package/profiles/hasan.json +16 -0
  257. package/profiles/moayad.json +16 -0
  258. package/templates/CLAUDE-owner.md +52 -0
  259. package/templates/CLAUDE.md.hbs +58 -0
  260. package/templates/env.claude.template +12 -0
  261. package/templates/settings.json +141 -0
@@ -0,0 +1,73 @@
1
+ # Model Profiles
2
+
3
+ Model profiles control which Claude model each Qualia agent uses. This allows balancing quality vs token spend.
4
+
5
+ ## Profile Definitions
6
+
7
+ | Agent | `quality` | `balanced` | `budget` |
8
+ |-------|-----------|------------|----------|
9
+ | qualia-planner | opus | opus | sonnet |
10
+ | qualia-roadmapper | opus | sonnet | sonnet |
11
+ | qualia-executor | opus | sonnet | sonnet |
12
+ | qualia-phase-researcher | opus | sonnet | haiku |
13
+ | qualia-project-researcher | opus | sonnet | haiku |
14
+ | qualia-research-synthesizer | sonnet | sonnet | haiku |
15
+ | qualia-debugger | opus | sonnet | sonnet |
16
+ | qualia-codebase-mapper | sonnet | haiku | haiku |
17
+ | qualia-verifier | sonnet | sonnet | haiku |
18
+ | qualia-plan-checker | sonnet | sonnet | haiku |
19
+ | qualia-integration-checker | sonnet | sonnet | haiku |
20
+
21
+ ## Profile Philosophy
22
+
23
+ **quality** - Maximum reasoning power
24
+ - Opus for all decision-making agents
25
+ - Sonnet for read-only verification
26
+ - Use when: quota available, critical architecture work
27
+
28
+ **balanced** (default) - Smart allocation
29
+ - Opus only for planning (where architecture decisions happen)
30
+ - Sonnet for execution and research (follows explicit instructions)
31
+ - Sonnet for verification (needs reasoning, not just pattern matching)
32
+ - Use when: normal development, good balance of quality and cost
33
+
34
+ **budget** - Minimal Opus usage
35
+ - Sonnet for anything that writes code
36
+ - Haiku for research and verification
37
+ - Use when: conserving quota, high-volume work, less critical phases
38
+
39
+ ## Resolution Logic
40
+
41
+ Orchestrators resolve model before spawning:
42
+
43
+ ```
44
+ 1. Read .planning/config.json
45
+ 2. Get model_profile (default: "balanced")
46
+ 3. Look up agent in table above
47
+ 4. Pass model parameter to Task call
48
+ ```
49
+
50
+ ## Switching Profiles
51
+
52
+ Runtime: `/qualia:set-profile <profile>`
53
+
54
+ Per-project default: Set in `.planning/config.json`:
55
+ ```json
56
+ {
57
+ "model_profile": "balanced"
58
+ }
59
+ ```
60
+
61
+ ## Design Rationale
62
+
63
+ **Why Opus for qualia-planner?**
64
+ Planning involves architecture decisions, goal decomposition, and task design. This is where model quality has the highest impact.
65
+
66
+ **Why Sonnet for qualia-executor?**
67
+ Executors follow explicit PLAN.md instructions. The plan already contains the reasoning; execution is implementation.
68
+
69
+ **Why Sonnet (not Haiku) for verifiers in balanced?**
70
+ Verification requires goal-backward reasoning - checking if code *delivers* what the phase promised, not just pattern matching. Sonnet handles this well; Haiku may miss subtle gaps.
71
+
72
+ **Why Haiku for qualia-codebase-mapper?**
73
+ Read-only exploration and pattern extraction. No reasoning required, just structured output from file contents.
@@ -0,0 +1,61 @@
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-engine/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-engine/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-engine/bin/qualia-tools.js find-phase "${PHASE}" --raw)
61
+ ```
@@ -0,0 +1,195 @@
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-engine/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-engine/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-engine/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-engine/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-engine/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>
@@ -0,0 +1,141 @@
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>