qualia-framework 2.4.4 → 2.4.8

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 (61) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/framework/agents/qualia-debugger.md +1 -1
  4. package/framework/agents/qualia-executor.md +4 -4
  5. package/framework/agents/qualia-plan-checker.md +2 -2
  6. package/framework/agents/qualia-roadmapper.md +2 -2
  7. package/framework/agents/qualia-verifier.md +1 -1
  8. package/framework/hooks/migration-validate.sh +13 -10
  9. package/framework/hooks/pre-deploy-gate.sh +14 -12
  10. package/framework/qualia-framework/VERSION +1 -1
  11. package/framework/qualia-framework/bin/collect-metrics.sh +8 -12
  12. package/framework/qualia-framework/bin/qualia-tools.js +1 -1
  13. package/framework/qualia-framework/references/decimal-phase-calculation.md +4 -4
  14. package/framework/qualia-framework/references/model-profile-resolution.md +1 -1
  15. package/framework/qualia-framework/references/phase-argument-parsing.md +3 -3
  16. package/framework/qualia-framework/references/planning-config.md +5 -5
  17. package/framework/qualia-framework/references/verification-patterns.md +1 -1
  18. package/framework/qualia-framework/templates/codebase/structure.md +10 -10
  19. package/framework/qualia-framework/templates/phase-prompt.md +10 -10
  20. package/framework/qualia-framework/workflows/add-phase.md +2 -2
  21. package/framework/qualia-framework/workflows/add-todo.md +3 -3
  22. package/framework/qualia-framework/workflows/audit-milestone.md +3 -3
  23. package/framework/qualia-framework/workflows/check-todos.md +2 -2
  24. package/framework/qualia-framework/workflows/complete-milestone.md +4 -4
  25. package/framework/qualia-framework/workflows/diagnose-issues.md +1 -1
  26. package/framework/qualia-framework/workflows/discovery-phase.md +5 -5
  27. package/framework/qualia-framework/workflows/discuss-phase.md +4 -4
  28. package/framework/qualia-framework/workflows/execute-plan.md +8 -8
  29. package/framework/qualia-framework/workflows/help.md +2 -2
  30. package/framework/qualia-framework/workflows/insert-phase.md +3 -3
  31. package/framework/qualia-framework/workflows/map-codebase.md +2 -2
  32. package/framework/qualia-framework/workflows/new-milestone.md +6 -6
  33. package/framework/qualia-framework/workflows/pause-work.md +2 -2
  34. package/framework/qualia-framework/workflows/plan-milestone-gaps.md +2 -2
  35. package/framework/qualia-framework/workflows/plan-phase.md +5 -5
  36. package/framework/qualia-framework/workflows/quick.md +2 -2
  37. package/framework/qualia-framework/workflows/remove-phase.md +2 -2
  38. package/framework/qualia-framework/workflows/research-phase.md +4 -4
  39. package/framework/qualia-framework/workflows/resume-project.md +2 -2
  40. package/framework/qualia-framework/workflows/set-profile.md +2 -2
  41. package/framework/qualia-framework/workflows/settings.md +2 -2
  42. package/framework/qualia-framework/workflows/update.md +10 -10
  43. package/framework/qualia-framework/workflows/verify-phase.md +5 -5
  44. package/framework/qualia-framework/workflows/verify-work.md +4 -4
  45. package/framework/scripts/sync-to-framework.sh +1 -1
  46. package/framework/skills/qualia-add-todo/SKILL.md +1 -1
  47. package/framework/skills/qualia-check-todos/SKILL.md +1 -1
  48. package/framework/skills/qualia-debug/SKILL.md +2 -2
  49. package/framework/skills/qualia-discuss-phase/SKILL.md +2 -2
  50. package/framework/skills/qualia-framework-audit/SKILL.md +1 -1
  51. package/framework/skills/qualia-list-phase-assumptions/SKILL.md +1 -1
  52. package/framework/skills/qualia-new-milestone/SKILL.md +4 -4
  53. package/framework/skills/qualia-optimize/SKILL.md +1 -1
  54. package/framework/skills/qualia-pause-work/SKILL.md +1 -1
  55. package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +1 -1
  56. package/framework/skills/qualia-progress/SKILL.md +1 -1
  57. package/framework/skills/qualia-quick/SKILL.md +1 -1
  58. package/framework/skills/qualia-research-phase/SKILL.md +2 -2
  59. package/framework/skills/qualia-resume-work/SKILL.md +1 -1
  60. package/framework/skills/qualia-review/SKILL.md +1 -1
  61. package/package.json +1 -1
package/README.md CHANGED
@@ -32,7 +32,7 @@ npx github:Qualiasolutions/qualia-framework verify
32
32
  - `~/.claude/hooks/` — 13 hook scripts (pre-commit, deploy gate, etc.)
33
33
  - `~/.claude/agents/` — 19 agent definitions
34
34
  - `~/.claude/rules/` — Security, frontend, deployment, speed rules
35
- - `~/.claude/qualia-engine/` — Workflow engine
35
+ - `~/.claude/qualia-framework/` — Workflow engine
36
36
  - `~/.claude/knowledge/` — Shared knowledge base
37
37
  - `~/.claude/CLAUDE.md` — Personalized to your role
38
38
  - `~/.claude/settings.json` — Merged with your existing config
package/bin/cli.js CHANGED
@@ -458,7 +458,7 @@ async function runUpdate() {
458
458
  }
459
459
 
460
460
  // Clean up removed directories from old versions
461
- for (const stale of ['commands', 'config', 'core']) {
461
+ for (const stale of ['commands', 'config', 'core', 'qualia-engine']) {
462
462
  const p = path.join(CLAUDE_DIR, stale);
463
463
  if (fs.existsSync(p)) {
464
464
  fs.rmSync(p, { recursive: true, force: true });
@@ -983,7 +983,7 @@ mv .planning/debug/{slug}.md .planning/debug/resolved/
983
983
  **Check planning config using state load (commit_docs is available from the output):**
984
984
 
985
985
  ```bash
986
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js state load)
986
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js state load)
987
987
  # commit_docs is in the JSON output
988
988
  ```
989
989
 
@@ -20,7 +20,7 @@ Your job: Execute the plan completely, commit each task, create SUMMARY.md, upda
20
20
  Load execution context:
21
21
 
22
22
  ```bash
23
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init execute-phase "${PHASE}")
23
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init execute-phase "${PHASE}")
24
24
  ```
25
25
 
26
26
  Extract from init JSON: `executor_model`, `commit_docs`, `phase_dir`, `plans`, `incomplete_plans`.
@@ -298,7 +298,7 @@ No user permission needed for Rules 1-3.
298
298
  Before any `checkpoint:human-verify`, ensure verification environment is ready. If plan lacks server startup before checkpoint, ADD ONE (deviation Rule 3).
299
299
 
300
300
  For full automation-first patterns, server lifecycle, CLI handling:
301
- **See @/home/qualia/.claude/qualia-engine/references/checkpoints.md**
301
+ **See @/home/qualia/.claude/qualia-framework/references/checkpoints.md**
302
302
 
303
303
  **Quick reference:** Users NEVER run CLI commands. Users ONLY visit URLs, click UI, evaluate visuals, provide secrets. Claude does all automation.
304
304
 
@@ -722,7 +722,7 @@ git commit -m "{type}({phase}-{plan}): {concise task description}
722
722
  <summary_creation>
723
723
  After all tasks complete, create `{phase}-{plan}-SUMMARY.md` at `.planning/phases/XX-name/`.
724
724
 
725
- **Use template:** @/home/qualia/.claude/qualia-engine/templates/summary.md
725
+ **Use template:** @/home/qualia/.claude/qualia-framework/templates/summary.md
726
726
 
727
727
  **Frontmatter:** phase, plan, subsystem, tags, dependency graph (requires/provides/affects), tech-stack (added/patterns), key-files (created/modified), decisions, metrics (duration, completed date).
728
728
 
@@ -844,7 +844,7 @@ Progress: [progress bar]
844
844
 
845
845
  <final_commit>
846
846
  ```bash
847
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md
847
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md
848
848
  ```
849
849
 
850
850
  Separate from per-task commits — captures execution results only.
@@ -396,7 +396,7 @@ issue:
396
396
 
397
397
  Load phase operation context:
398
398
  ```bash
399
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init phase-op "${PHASE_ARG}")
399
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init phase-op "${PHASE_ARG}")
400
400
  ```
401
401
 
402
402
  Extract from init JSON: `phase_dir`, `phase_number`, `has_plans`, `plan_count`.
@@ -405,7 +405,7 @@ Orchestrator provides CONTEXT.md content in the verification prompt. If provided
405
405
 
406
406
  ```bash
407
407
  ls "$phase_dir"/*-PLAN.md 2>/dev/null
408
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js roadmap get-phase "$phase_number"
408
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js roadmap get-phase "$phase_number"
409
409
  ls "$phase_dir"/*-BRIEF.md 2>/dev/null
410
410
  ```
411
411
 
@@ -287,7 +287,7 @@ After roadmap creation, REQUIREMENTS.md gets updated with phase mappings:
287
287
 
288
288
  ## ROADMAP.md Structure
289
289
 
290
- Use template from `/home/qualia/.claude/qualia-engine/templates/roadmap.md`.
290
+ Use template from `/home/qualia/.claude/qualia-framework/templates/roadmap.md`.
291
291
 
292
292
  Key sections:
293
293
  - Overview (2-3 sentences)
@@ -296,7 +296,7 @@ Key sections:
296
296
 
297
297
  ## STATE.md Structure
298
298
 
299
- Use template from `/home/qualia/.claude/qualia-engine/templates/state.md`.
299
+ Use template from `/home/qualia/.claude/qualia-framework/templates/state.md`.
300
300
 
301
301
  Key sections:
302
302
  - Project Reference (core value, current focus)
@@ -55,7 +55,7 @@ Set `is_re_verification = false`, proceed with Step 1.
55
55
  ```bash
56
56
  ls "$PHASE_DIR"/*-PLAN.md 2>/dev/null
57
57
  ls "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
58
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js roadmap get-phase "$PHASE_NUM"
58
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js roadmap get-phase "$PHASE_NUM"
59
59
  grep -E "^| $PHASE_NUM" .planning/REQUIREMENTS.md 2>/dev/null
60
60
  ```
61
61
 
@@ -26,8 +26,11 @@ check_sql_file() {
26
26
  q_fail "TRUNCATE in ${file}"
27
27
  DESTRUCTIVE=$((DESTRUCTIVE + 1))
28
28
  fi
29
- if grep -iE '\bDELETE\s+FROM\b' "$file" > /dev/null 2>&1 && ! grep -iE '\bWHERE\b' "$file" > /dev/null 2>&1; then
30
- q_fail "DELETE without WHERE in ${file}"
29
+ # DELETE-without-WHERE: count DELETEs vs WHERE clauses (per-statement approximation)
30
+ local delete_count=$(grep -ciE '\bDELETE\s+FROM\b' "$file" 2>/dev/null || echo 0)
31
+ local where_count=$(grep -ciE '\bWHERE\b' "$file" 2>/dev/null || echo 0)
32
+ if [ "$delete_count" -gt 0 ] && [ "$delete_count" -gt "$where_count" ]; then
33
+ q_fail "DELETE without WHERE in ${file} (${delete_count} DELETEs, ${where_count} WHEREs)"
31
34
  DESTRUCTIVE=$((DESTRUCTIVE + 1))
32
35
  fi
33
36
  if grep -iE '\bALTER\s+TABLE\b.*\bDROP\s+COLUMN\b' "$file" > /dev/null 2>&1; then
@@ -41,24 +44,24 @@ check_sql_file() {
41
44
  fi
42
45
  }
43
46
 
44
- TOTAL=0
45
47
  TRIGGERED=false
46
48
 
47
49
  # Mode 1: SQL file written
48
50
  if [ -n "$FILE_PATH" ] && [[ "$FILE_PATH" == *.sql ]]; then
49
51
  TRIGGERED=true
50
52
  check_sql_file "$FILE_PATH"
51
- TOTAL=$?
52
53
  fi
53
54
 
54
- # Mode 2: supabase db push
55
+ # Mode 2: supabase db push — only scan new/modified migrations (not historical)
55
56
  if [ -n "$COMMAND" ] && echo "$COMMAND" | grep -qE 'supabase\s+db\s+push'; then
56
57
  TRIGGERED=true
57
- for sql_file in supabase/migrations/*.sql; do
58
- [ -f "$sql_file" ] || continue
59
- check_sql_file "$sql_file"
60
- TOTAL=$((TOTAL + $?))
61
- done
58
+ # Scan only uncommitted or recently modified migration files
59
+ MODIFIED_MIGRATIONS=$(git diff --name-only HEAD -- supabase/migrations/*.sql 2>/dev/null; git diff --cached --name-only -- supabase/migrations/*.sql 2>/dev/null; git ls-files --others -- supabase/migrations/*.sql 2>/dev/null)
60
+ if [ -n "$MODIFIED_MIGRATIONS" ]; then
61
+ echo "$MODIFIED_MIGRATIONS" | sort -u | while IFS= read -r sql_file; do
62
+ [ -f "$sql_file" ] && check_sql_file "$sql_file"
63
+ done
64
+ fi
62
65
  fi
63
66
 
64
67
  # Block on destructive ops, warn on missing RLS
@@ -19,20 +19,27 @@ else
19
19
  COMMAND=""
20
20
  fi
21
21
 
22
- # Only gate actual production deploy commands (not commit messages containing the word)
22
+ # Skip non-deploy commands first (git, npm, etc. may mention vercel in args/messages)
23
23
  case "$COMMAND" in
24
- vercel\ *--prod*|npx\ vercel\ *--prod*|bunx\ vercel\ *--prod*) ;;
24
+ git\ *|npm\ *|node\ *|cat\ *|echo\ *|grep\ *|ls\ *|cd\ *) exit 0 ;;
25
+ esac
26
+
27
+ # Only gate actual vercel production deploy commands
28
+ case "$COMMAND" in
29
+ vercel\ *--prod*|npx\ vercel\ *--prod*|bunx\ vercel\ *--prod*|pnpx\ vercel\ *--prod*) ;;
25
30
  *) exit 0 ;;
26
31
  esac
27
32
 
28
33
 
29
- # Skip if gate was passed recently (within 5 minutes)
34
+ # Skip if gate passed recently AND no code changes since
30
35
  STAMP="/tmp/.deploy-gate-$(echo "$PWD" | md5sum | cut -c1-8)"
31
36
  if [ -f "$STAMP" ]; then
32
37
  AGE=$(( $(date +%s) - $(stat -c %Y "$STAMP" 2>/dev/null || echo 0) ))
33
- if [ "$AGE" -lt 300 ]; then
38
+ DIRTY=$(git status --porcelain 2>/dev/null | head -1)
39
+ if [ "$AGE" -lt 300 ] && [ -z "$DIRTY" ]; then
34
40
  exit 0
35
41
  fi
42
+ rm -f "$STAMP"
36
43
  fi
37
44
 
38
45
  q_header "PRE-DEPLOY GATE"
@@ -135,15 +142,10 @@ else
135
142
  fi
136
143
 
137
144
  # ─── Verdict ───
145
+ # Warning only — /ship skill is the real quality gate. Hook is a safety net.
138
146
  if [ "$FAILURES" -gt 0 ]; then
139
- cat <<EOJSON
140
- {
141
- "continue": false,
142
- "stopReason": "◆ Deploy gate: ${FAILURES} check(s) failed",
143
- "systemMessage": "◆ DEPLOY BLOCKED: ${FAILURES} check(s) failed. ${FAIL_DETAILS}Fix issues and retry with /ship."
144
- }
145
- EOJSON
146
- exit 2
147
+ printf '{"continue":true,"systemMessage":"◆ DEPLOY WARNING: %d check(s) failed. %sThe /ship skill should have caught these — if deploying manually, fix first."}' "$FAILURES" "$FAIL_DETAILS"
148
+ exit 0
147
149
  fi
148
150
 
149
151
  WARN_MSG=""
@@ -1 +1 @@
1
- 2.4.4
1
+ 2.4.8
@@ -49,18 +49,14 @@ fi
49
49
  # Lab Notes count
50
50
  LAB_NOTES=$(grep -c "^###" .planning/lab-notes.md 2>/dev/null || echo "0")
51
51
 
52
- # Completion rate from ROADMAP.md (actual, not assumed)
53
- TOTAL_PLANS=$(grep -c "^- \[" .planning/ROADMAP.md 2>/dev/null || echo "0")
54
- COMPLETED_PLANS=$(grep -c "^- \[x\]" .planning/ROADMAP.md 2>/dev/null || echo "0")
55
- if [ "$TOTAL_PLANS" -gt 0 ]; then
56
- COMPLETION_RATE=$(( COMPLETED_PLANS * 100 / TOTAL_PLANS ))
57
- else
58
- COMPLETION_RATE=100
59
- fi
60
-
61
- # FQS = completion_rate / avg_sessions_to_ship * 100 (per OBJECTIVE.md)
62
- if [ "$SESSIONS" != "?" ] && [ "$SESSIONS" -gt 0 ]; then
63
- FQS=$(( COMPLETION_RATE * 100 / SESSIONS ))
52
+ # Completion rate from ROADMAP.md (case-insensitive, allows indentation)
53
+ TOTAL_PLANS=$(grep -ciE "^\s*- \[" .planning/ROADMAP.md 2>/dev/null || echo "0")
54
+ COMPLETED_PLANS=$(grep -ciE "^\s*- \[x\]" .planning/ROADMAP.md 2>/dev/null || echo "0")
55
+
56
+ # FQS = (completion_fraction) / sessions * 100 (per OBJECTIVE.md)
57
+ # = COMPLETED_PLANS * 100 / (TOTAL_PLANS * SESSIONS)
58
+ if [ "$TOTAL_PLANS" -gt 0 ] && [ "$SESSIONS" != "?" ] && [ "$SESSIONS" -gt 0 ]; then
59
+ FQS=$(( COMPLETED_PLANS * 100 / (TOTAL_PLANS * SESSIONS) ))
64
60
  else
65
61
  FQS="?"
66
62
  fi
@@ -1192,7 +1192,7 @@ function cmdStateSnapshot(cwd, raw) {
1192
1192
 
1193
1193
  // Parse "Progress: [...] N%" — extract percentage
1194
1194
  let progressPercent = null;
1195
- const progressMatch = content.match(/(\d+)%/);
1195
+ const progressMatch = content.match(/^Progress:.*?(\d+)%/m);
1196
1196
  if (progressMatch) progressPercent = parseInt(progressMatch[1], 10);
1197
1197
 
1198
1198
  // Parse "Assigned to: ..."
@@ -6,7 +6,7 @@ Calculate the next decimal phase number for urgent insertions.
6
6
 
7
7
  ```bash
8
8
  # Get next decimal phase after phase 6
9
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js phase next-decimal 6
9
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js phase next-decimal 6
10
10
  ```
11
11
 
12
12
  Output:
@@ -32,14 +32,14 @@ With existing decimals:
32
32
  ## Extract Values
33
33
 
34
34
  ```bash
35
- DECIMAL_INFO=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js phase next-decimal "${AFTER_PHASE}")
35
+ DECIMAL_INFO=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js phase next-decimal "${AFTER_PHASE}")
36
36
  DECIMAL_PHASE=$(echo "$DECIMAL_INFO" | jq -r '.next')
37
37
  BASE_PHASE=$(echo "$DECIMAL_INFO" | jq -r '.base_phase')
38
38
  ```
39
39
 
40
40
  Or with --raw flag:
41
41
  ```bash
42
- DECIMAL_PHASE=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js phase next-decimal "${AFTER_PHASE}" --raw)
42
+ DECIMAL_PHASE=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js phase next-decimal "${AFTER_PHASE}" --raw)
43
43
  # Returns just: 06.1
44
44
  ```
45
45
 
@@ -57,7 +57,7 @@ DECIMAL_PHASE=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js phas
57
57
  Decimal phase directories use the full decimal number:
58
58
 
59
59
  ```bash
60
- SLUG=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js generate-slug "$DESCRIPTION" --raw)
60
+ SLUG=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js generate-slug "$DESCRIPTION" --raw)
61
61
  PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}"
62
62
  mkdir -p "$PHASE_DIR"
63
63
  ```
@@ -12,7 +12,7 @@ Default: `balanced` if not set or config missing.
12
12
 
13
13
  ## Lookup Table
14
14
 
15
- @/home/qualia/.claude/qualia-engine/references/model-profiles.md
15
+ @/home/qualia/.claude/qualia-framework/references/model-profiles.md
16
16
 
17
17
  Look up the agent in the table for the resolved profile. Pass the model parameter to Task calls:
18
18
 
@@ -14,7 +14,7 @@ From `$ARGUMENTS`:
14
14
  The `find-phase` command handles normalization and validation in one step:
15
15
 
16
16
  ```bash
17
- PHASE_INFO=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js find-phase "${PHASE}")
17
+ PHASE_INFO=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js find-phase "${PHASE}")
18
18
  ```
19
19
 
20
20
  Returns JSON with:
@@ -45,7 +45,7 @@ fi
45
45
  Use `roadmap get-phase` to validate phase exists:
46
46
 
47
47
  ```bash
48
- PHASE_CHECK=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js roadmap get-phase "${PHASE}")
48
+ PHASE_CHECK=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js roadmap get-phase "${PHASE}")
49
49
  if [ "$(echo "$PHASE_CHECK" | jq -r '.found')" = "false" ]; then
50
50
  echo "ERROR: Phase ${PHASE} not found in roadmap"
51
51
  exit 1
@@ -57,5 +57,5 @@ fi
57
57
  Use `find-phase` for directory lookup:
58
58
 
59
59
  ```bash
60
- PHASE_DIR=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js find-phase "${PHASE}" --raw)
60
+ PHASE_DIR=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js find-phase "${PHASE}" --raw)
61
61
  ```
@@ -40,14 +40,14 @@ Configuration options for `.planning/` directory behavior.
40
40
 
41
41
  ```bash
42
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
43
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs: update state" --files .planning/STATE.md
44
44
 
45
45
  # Load config via state load (returns JSON):
46
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js state load)
46
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js state load)
47
47
  # commit_docs is available in the JSON output
48
48
 
49
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")
50
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init execute-phase "1")
51
51
  # commit_docs is included in all init command outputs
52
52
  ```
53
53
 
@@ -143,13 +143,13 @@ To use uncommitted mode:
143
143
 
144
144
  Use `init execute-phase` which returns all config as JSON:
145
145
  ```bash
146
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init execute-phase "1")
146
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init execute-phase "1")
147
147
  # JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template
148
148
  ```
149
149
 
150
150
  Or use `state load` for the config values:
151
151
  ```bash
152
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js state load)
152
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js state load)
153
153
  # Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON
154
154
  ```
155
155
 
@@ -600,7 +600,7 @@ Some things can't be verified programmatically. Flag these for human testing:
600
600
 
601
601
  For automation-first checkpoint patterns, server lifecycle management, CLI installation handling, and error recovery protocols, see:
602
602
 
603
- **@/home/qualia/.claude/qualia-engine/references/checkpoints.md** → `<automation_reference>` section
603
+ **@/home/qualia/.claude/qualia-framework/references/checkpoints.md** → `<automation_reference>` section
604
604
 
605
605
  Key principles:
606
606
  - Claude sets up verification environment BEFORE presenting checkpoints
@@ -123,11 +123,11 @@ Template for `.planning/codebase/STRUCTURE.md` - captures physical file organiza
123
123
  ## Directory Layout
124
124
 
125
125
  ```
126
- qualia-engine/
126
+ qualia-framework/
127
127
  ├── bin/ # Executable entry points
128
128
  ├── commands/ # Slash command definitions
129
129
  │ └── qualia/ # Qualia-specific commands
130
- ├── qualia-engine/ # Skill resources
130
+ ├── qualia-framework/ # Skill resources
131
131
  │ ├── references/ # Principle documents
132
132
  │ ├── templates/ # File templates
133
133
  │ └── workflows/ # Multi-step procedures
@@ -151,19 +151,19 @@ qualia-engine/
151
151
  - Key files: new-project.md, plan-phase.md, execute-plan.md
152
152
  - Subdirectories: None (flat structure)
153
153
 
154
- **qualia-engine/references/**
154
+ **qualia-framework/references/**
155
155
  - Purpose: Core philosophy and guidance documents
156
156
  - Contains: principles.md, questioning.md, plan-format.md
157
157
  - Key files: principles.md - system philosophy
158
158
  - Subdirectories: None
159
159
 
160
- **qualia-engine/templates/**
160
+ **qualia-framework/templates/**
161
161
  - Purpose: Document templates for .planning/ files
162
162
  - Contains: Template definitions with frontmatter
163
163
  - Key files: project.md, roadmap.md, plan.md, summary.md
164
164
  - Subdirectories: codebase/ (new - for stack/architecture/structure templates)
165
165
 
166
- **qualia-engine/workflows/**
166
+ **qualia-framework/workflows/**
167
167
  - Purpose: Reusable multi-step procedures
168
168
  - Contains: Workflow definitions called by commands
169
169
  - Key files: execute-plan.md, research-phase.md
@@ -211,15 +211,15 @@ qualia-engine/
211
211
  - Documentation: Update `README.md` with new command
212
212
 
213
213
  **New Template:**
214
- - Implementation: `qualia-engine/templates/{name}.md`
214
+ - Implementation: `qualia-framework/templates/{name}.md`
215
215
  - Documentation: Template is self-documenting (includes guidelines)
216
216
 
217
217
  **New Workflow:**
218
- - Implementation: `qualia-engine/workflows/{name}.md`
219
- - Usage: Reference from command with `@/home/qualia/.claude/qualia-engine/workflows/{name}.md`
218
+ - Implementation: `qualia-framework/workflows/{name}.md`
219
+ - Usage: Reference from command with `@/home/qualia/.claude/qualia-framework/workflows/{name}.md`
220
220
 
221
221
  **New Reference Document:**
222
- - Implementation: `qualia-engine/references/{name}.md`
222
+ - Implementation: `qualia-framework/references/{name}.md`
223
223
  - Usage: Reference from commands/workflows as needed
224
224
 
225
225
  **Utilities:**
@@ -228,7 +228,7 @@ qualia-engine/
228
228
 
229
229
  ## Special Directories
230
230
 
231
- **qualia-engine/**
231
+ **qualia-framework/**
232
232
  - Purpose: Resources installed to /home/qualia/.claude/
233
233
  - Source: Copied by bin/install.js during installation
234
234
  - Committed: Yes (source of truth)
@@ -37,10 +37,10 @@ Output: [What artifacts will be created]
37
37
  </objective>
38
38
 
39
39
  <execution_context>
40
- @/home/qualia/.claude/qualia-engine/workflows/execute-plan.md
41
- @/home/qualia/.claude/qualia-engine/templates/summary.md
40
+ @/home/qualia/.claude/qualia-framework/workflows/execute-plan.md
41
+ @/home/qualia/.claude/qualia-framework/templates/summary.md
42
42
  [If plan contains checkpoint tasks (type="checkpoint:*"), add:]
43
- @/home/qualia/.claude/qualia-engine/references/checkpoints.md
43
+ @/home/qualia/.claude/qualia-framework/references/checkpoints.md
44
44
  </execution_context>
45
45
 
46
46
  <context>
@@ -75,7 +75,7 @@ Output: [What artifacts will be created]
75
75
  <done>[Acceptance criteria]</done>
76
76
  </task>
77
77
 
78
- <!-- For checkpoint task examples and patterns, see @/home/qualia/.claude/qualia-engine/references/checkpoints.md -->
78
+ <!-- For checkpoint task examples and patterns, see @/home/qualia/.claude/qualia-framework/references/checkpoints.md -->
79
79
  <!-- Key rule: Claude starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
80
80
 
81
81
  <task type="checkpoint:decision" gate="blocking">
@@ -268,7 +268,7 @@ TDD features get dedicated plans with `type: tdd`.
268
268
  → Yes: Create a TDD plan
269
269
  → No: Standard task in standard plan
270
270
 
271
- See `/home/qualia/.claude/qualia-engine/references/tdd.md` for TDD plan structure.
271
+ See `/home/qualia/.claude/qualia-framework/references/tdd.md` for TDD plan structure.
272
272
 
273
273
  ---
274
274
 
@@ -372,9 +372,9 @@ Output: Working dashboard component.
372
372
  </objective>
373
373
 
374
374
  <execution_context>
375
- @/home/qualia/.claude/qualia-engine/workflows/execute-plan.md
376
- @/home/qualia/.claude/qualia-engine/templates/summary.md
377
- @/home/qualia/.claude/qualia-engine/references/checkpoints.md
375
+ @/home/qualia/.claude/qualia-framework/workflows/execute-plan.md
376
+ @/home/qualia/.claude/qualia-framework/templates/summary.md
377
+ @/home/qualia/.claude/qualia-framework/references/checkpoints.md
378
378
  </execution_context>
379
379
 
380
380
  <context>
@@ -497,7 +497,7 @@ user_setup:
497
497
 
498
498
  **Result:** Execute-plan generates `{phase}-USER-SETUP.md` with checklist for the user.
499
499
 
500
- See `/home/qualia/.claude/qualia-engine/templates/user-setup.md` for full schema and examples
500
+ See `/home/qualia/.claude/qualia-framework/templates/user-setup.md` for full schema and examples
501
501
 
502
502
  ---
503
503
 
@@ -564,4 +564,4 @@ Task completion ≠ Goal achievement. A task "create chat component" can complet
564
564
  5. Gaps found → fix plans created → execute → re-verify
565
565
  6. All must_haves pass → phase complete
566
566
 
567
- See `/home/qualia/.claude/qualia-engine/workflows/verify-phase.md` for verification logic.
567
+ See `/home/qualia/.claude/qualia-framework/workflows/verify-phase.md` for verification logic.
@@ -29,7 +29,7 @@ Exit.
29
29
  Load phase operation context:
30
30
 
31
31
  ```bash
32
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init phase-op "0")
32
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init phase-op "0")
33
33
  ```
34
34
 
35
35
  Check `roadmap_exists` from init JSON. If false:
@@ -79,7 +79,7 @@ Convert the phase description to a kebab-case slug.
79
79
 
80
80
  Use `init phase-op` which provides `phase_slug` computed from phase name, or call:
81
81
  ```bash
82
- slug=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js generate-slug "$description" --raw)
82
+ slug=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js generate-slug "$description" --raw)
83
83
  ```
84
84
 
85
85
  Phase directory name: `{two-digit-phase}-{slug}`
@@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star
12
12
  Load todo context:
13
13
 
14
14
  ```bash
15
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init todos)
15
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init todos)
16
16
  ```
17
17
 
18
18
  Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
@@ -83,7 +83,7 @@ Use values from init context: `timestamp` and `date` are already available.
83
83
 
84
84
  Generate slug for the title:
85
85
  ```bash
86
- slug=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js generate-slug "$title" --raw)
86
+ slug=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js generate-slug "$title" --raw)
87
87
  ```
88
88
 
89
89
  Write to `.planning/todos/pending/${date}-${slug}.md`:
@@ -118,7 +118,7 @@ If `.planning/STATE.md` exists:
118
118
  Commit the todo and any updated state:
119
119
 
120
120
  ```bash
121
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
121
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
122
122
  ```
123
123
 
124
124
  Tool respects `commit_docs` config and gitignore automatically.
@@ -11,21 +11,21 @@ Read all files referenced by the invoking prompt's execution_context before star
11
11
  ## 0. Initialize Milestone Context
12
12
 
13
13
  ```bash
14
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init milestone-op)
14
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init milestone-op)
15
15
  ```
16
16
 
17
17
  Extract from init JSON: `milestone_version`, `milestone_name`, `phase_count`, `completed_phases`, `commit_docs`.
18
18
 
19
19
  Resolve integration checker model:
20
20
  ```bash
21
- CHECKER_MODEL=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js resolve-model qualia-integration-checker --raw)
21
+ CHECKER_MODEL=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js resolve-model qualia-integration-checker --raw)
22
22
  ```
23
23
 
24
24
  ## 1. Determine Milestone Scope
25
25
 
26
26
  ```bash
27
27
  # Get phases in milestone (sorted numerically, handles decimals)
28
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js phases list
28
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js phases list
29
29
  ```
30
30
 
31
31
  - Parse version from arguments or detect current from ROADMAP.md
@@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star
12
12
  Load todo context:
13
13
 
14
14
  ```bash
15
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init todos)
15
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init todos)
16
16
  ```
17
17
 
18
18
  Extract from init JSON: `todo_count`, `todos`, `pending_dir`.
@@ -154,7 +154,7 @@ If todo was moved to done/, commit the change:
154
154
 
155
155
  ```bash
156
156
  git rm --cached .planning/todos/pending/[filename] 2>/dev/null || true
157
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js commit "docs: start work on todo - [title]" --files .planning/todos/done/[filename] .planning/STATE.md
157
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs: start work on todo - [title]" --files .planning/todos/done/[filename] .planning/STATE.md
158
158
  ```
159
159
 
160
160
  Tool respects `commit_docs` config and gitignore automatically.
@@ -133,7 +133,7 @@ Extract one-liners from SUMMARY.md files using summary-extract:
133
133
  ```bash
134
134
  # For each phase in milestone, extract one-liner
135
135
  for summary in .planning/phases/*-*/*-SUMMARY.md; do
136
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js summary-extract "$summary" --fields one_liner | jq -r '.one_liner'
136
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js summary-extract "$summary" --fields one_liner | jq -r '.one_liner'
137
137
  done
138
138
  ```
139
139
 
@@ -373,7 +373,7 @@ Update `.planning/ROADMAP.md` — group completed milestone phases:
373
373
  Extract completed milestone details to archive.
374
374
 
375
375
  1. Create `.planning/milestones/v[X.Y]-ROADMAP.md`
376
- 2. Read `/home/qualia/.claude/qualia-engine/templates/milestone-archive.md` template
376
+ 2. Read `/home/qualia/.claude/qualia-framework/templates/milestone-archive.md` template
377
377
  3. Extract from ROADMAP.md: all phases in milestone (by number range), full phase details, plan lists with checkmarks
378
378
  4. Extract from PROJECT.md: key decisions, validated requirements
379
379
  5. Fill template placeholders: {{VERSION}}, {{MILESTONE_NAME}}, {{DATE}}, {{PHASE_START}}, {{PHASE_END}}, {{TOTAL_PLANS}}, {{MILESTONE_DESCRIPTION}}, {{PHASES_SECTION}}, {{DECISIONS_FROM_PROJECT}}, {{ISSUES_RESOLVED_DURING_MILESTONE}}
@@ -599,7 +599,7 @@ Check branching strategy and offer merge options.
599
599
  Use `init milestone-op` for context, or load config directly:
600
600
 
601
601
  ```bash
602
- INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init execute-phase "1")
602
+ INIT=$(node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js init execute-phase "1")
603
603
  ```
604
604
 
605
605
  Extract `branching_strategy`, `phase_branch_template`, `milestone_branch_template` from init JSON.
@@ -777,7 +777,7 @@ git push origin v[X.Y]
777
777
  Commit milestone completion.
778
778
 
779
779
  ```bash
780
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md
780
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md
781
781
  ```
782
782
  ```
783
783
 
@@ -158,7 +158,7 @@ Update status in frontmatter to "diagnosed".
158
158
 
159
159
  Commit the updated UAT.md:
160
160
  ```bash
161
- node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js commit "docs({phase}): add root causes from diagnosis" --files ".planning/phases/XX-name/{phase}-UAT.md"
161
+ node /home/qualia/.claude/qualia-framework/bin/qualia-tools.js commit "docs({phase}): add root causes from diagnosis" --files ".planning/phases/XX-name/{phase}-UAT.md"
162
162
  ```
163
163
  </step>
164
164