qualia-framework 3.2.0 → 3.3.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 (58) hide show
  1. package/CLAUDE.md +3 -4
  2. package/README.md +59 -23
  3. package/agents/plan-checker.md +158 -0
  4. package/agents/planner.md +52 -0
  5. package/agents/research-synthesizer.md +86 -0
  6. package/agents/researcher.md +119 -0
  7. package/agents/roadmapper.md +157 -0
  8. package/agents/verifier.md +180 -32
  9. package/bin/cli.js +403 -9
  10. package/bin/install.js +219 -70
  11. package/bin/qualia-ui.js +11 -11
  12. package/bin/state.js +200 -6
  13. package/bin/statusline.js +4 -4
  14. package/docs/erp-contract.md +161 -0
  15. package/hooks/branch-guard.js +23 -2
  16. package/hooks/migration-guard.js +23 -0
  17. package/hooks/pre-compact.js +20 -0
  18. package/hooks/pre-deploy-gate.js +39 -0
  19. package/hooks/pre-push.js +20 -0
  20. package/hooks/session-start.js +16 -43
  21. package/package.json +6 -4
  22. package/references/questioning.md +123 -0
  23. package/rules/infrastructure.md +87 -0
  24. package/skills/qualia/SKILL.md +1 -0
  25. package/skills/qualia-build/SKILL.md +18 -0
  26. package/skills/qualia-design/SKILL.md +14 -8
  27. package/skills/qualia-discuss/SKILL.md +115 -0
  28. package/skills/qualia-help/SKILL.md +60 -0
  29. package/skills/qualia-learn/SKILL.md +27 -4
  30. package/skills/qualia-map/SKILL.md +145 -0
  31. package/skills/qualia-milestone/SKILL.md +148 -0
  32. package/skills/qualia-new/SKILL.md +374 -229
  33. package/skills/qualia-plan/SKILL.md +135 -30
  34. package/skills/qualia-polish/SKILL.md +167 -117
  35. package/skills/qualia-report/SKILL.md +17 -8
  36. package/skills/qualia-research/SKILL.md +124 -0
  37. package/skills/qualia-review/SKILL.md +126 -41
  38. package/skills/qualia-test/SKILL.md +134 -0
  39. package/skills/qualia-verify/SKILL.md +1 -1
  40. package/templates/DESIGN.md +440 -102
  41. package/templates/help.html +476 -0
  42. package/templates/phase-context.md +48 -0
  43. package/templates/plan.md +14 -0
  44. package/templates/projects/ai-agent.md +55 -0
  45. package/templates/projects/mobile-app.md +56 -0
  46. package/templates/projects/voice-agent.md +55 -0
  47. package/templates/projects/website.md +58 -0
  48. package/templates/requirements.md +69 -0
  49. package/templates/research-project/ARCHITECTURE.md +70 -0
  50. package/templates/research-project/FEATURES.md +60 -0
  51. package/templates/research-project/PITFALLS.md +73 -0
  52. package/templates/research-project/STACK.md +51 -0
  53. package/templates/research-project/SUMMARY.md +86 -0
  54. package/templates/roadmap.md +71 -0
  55. package/tests/bin.test.sh +20 -6
  56. package/tests/hooks.test.sh +76 -7
  57. package/tests/runner.js +1915 -0
  58. package/tests/state.test.sh +189 -11
@@ -0,0 +1,55 @@
1
+ # Project Template: Voice Agent
2
+
3
+ Typical phase structure for a phone agent, VAPI bot, Retell agent, or call handling system.
4
+
5
+ **Default depth:** `standard` (5-8 phases)
6
+ **Typical stack:** Next.js 16 + Supabase + Retell AI / ElevenLabs / VAPI + Telnyx (phone numbers) + Vercel
7
+
8
+ ## Typical Phases
9
+
10
+ ### Phase 1: Foundation
11
+
12
+ **Goal:** Webhook endpoint for voice provider, Supabase wired, base call logging working.
13
+
14
+ **Typical success criteria:**
15
+ 1. Webhook endpoint deployed and reachable
16
+ 2. Supabase schema for `calls`, `transcripts`, `contacts` exists
17
+ 3. Provider credentials configured (`RETELL_API_KEY`, `ELEVENLABS_API_KEY`, `TELNYX_API_KEY`)
18
+
19
+ ### Phase 2: Agent Configuration
20
+
21
+ **Goal:** Voice agent answers calls with correct prompt and voice.
22
+
23
+ **Requirements covered:** Provider agent setup, system prompt, voice selection, greeting.
24
+
25
+ ### Phase 3: Call Flow
26
+
27
+ **Goal:** Agent handles conversation, captures data, transfers when needed.
28
+
29
+ **Requirements covered:** Conversation state, data capture (name, email, appointment), transfer to human.
30
+
31
+ ### Phase 4: Integrations
32
+
33
+ **Goal:** Post-call actions fire — CRM sync, Slack notification, email confirmation.
34
+
35
+ **Requirements covered:** CRM webhook, Slack bot, transactional email.
36
+
37
+ ### Phase 5: Polish & Monitoring
38
+
39
+ **Goal:** Low latency, graceful errors, call quality monitoring, cost tracking.
40
+
41
+ **Requirements covered:** Latency optimization, silent call recovery, cost per call tracking, dashboard.
42
+
43
+ ## Common Requirements Categories
44
+
45
+ - **CALL** — call handling and routing
46
+ - **CONV** — conversation flow
47
+ - **INTG** — external integrations (CRM, Slack, email)
48
+ - **MON** — monitoring and cost tracking
49
+ - **PROV** — voice provider configuration
50
+
51
+ ## Research Flags
52
+
53
+ - **Provider choice** (Retell vs VAPI vs ElevenLabs direct) → `/qualia-research 1` to compare for this specific use case
54
+ - **Telephony setup** (DIDs, porting, SIP) → `/qualia-discuss` to lock decisions before wiring
55
+ - **Prompt engineering for voice** → `/qualia-research` for the agent config phase
@@ -0,0 +1,58 @@
1
+ # Project Template: Website / Web App
2
+
3
+ Typical phase structure for a client website, SaaS landing page, dashboard, or marketing site.
4
+
5
+ **Default depth:** `standard` (5-8 phases)
6
+ **Typical stack:** Next.js 16 + React 19 + TypeScript + Supabase + Vercel
7
+
8
+ ## Typical Phases
9
+
10
+ ### Phase 1: Foundation
11
+
12
+ **Goal:** Project skeleton exists on Vercel with Supabase wired, auth working, and base layout rendering.
13
+
14
+ **Requirements covered:** Auth (sign up / log in / log out / session persistence), base layout, deploy pipeline.
15
+
16
+ **Typical success criteria:**
17
+ 1. Site loads on Vercel preview URL
18
+ 2. User can sign up with email + password
19
+ 3. User can log in and stay logged in across refresh
20
+ 4. Base layout renders with nav + footer
21
+
22
+ ### Phase 2: Core Feature (primary)
23
+
24
+ **Goal:** The main value-delivering feature works end-to-end.
25
+
26
+ **Requirements covered:** Primary user capability (depends on project — posting, booking, searching, etc.)
27
+
28
+ ### Phase 3: Core Feature (secondary)
29
+
30
+ **Goal:** Supporting features that make the primary feature usable.
31
+
32
+ **Requirements covered:** Profile, settings, admin panel, etc.
33
+
34
+ ### Phase 4: Content & Marketing
35
+
36
+ **Goal:** Marketing pages, copy, images, SEO meta tags.
37
+
38
+ **Requirements covered:** Homepage hero, features section, pricing, about, contact.
39
+
40
+ ### Phase 5: Polish & Launch
41
+
42
+ **Goal:** Site is production-ready.
43
+
44
+ **Requirements covered:** Responsive (mobile / tablet / desktop), animations, error states, empty states, a11y, SEO, analytics.
45
+
46
+ ## Common Requirements Categories
47
+
48
+ - **AUTH** — authentication and sessions
49
+ - **PROF** — user profiles
50
+ - **CONT** — content / primary feature
51
+ - **ADMIN** — admin panel
52
+ - **MARK** — marketing pages
53
+ - **SEO** — SEO, sitemaps, analytics
54
+
55
+ ## Research Flags
56
+
57
+ - **Niche domain integrations** (e.g., legal compliance, medical records, financial regulations) → run `/qualia-research N` before planning that phase
58
+ - **Complex auth** (SSO, multi-tenant, RBAC) → run `/qualia-discuss N` first
@@ -0,0 +1,69 @@
1
+ # Requirements: {Project Name}
2
+
3
+ **Defined:** {date}
4
+ **Core Value:** {from PROJECT.md — the one thing that must work}
5
+
6
+ ## v1 Requirements
7
+
8
+ Initial release scope. Each maps to one roadmap phase.
9
+
10
+ ### {Category 1}
11
+
12
+ - [ ] **{CAT}-01**: {user-centric, testable, atomic capability}
13
+ - [ ] **{CAT}-02**: {capability}
14
+ - [ ] **{CAT}-03**: {capability}
15
+
16
+ ### {Category 2}
17
+
18
+ - [ ] **{CAT}-01**: {capability}
19
+ - [ ] **{CAT}-02**: {capability}
20
+
21
+ ## v2 Requirements
22
+
23
+ Acknowledged but deferred to a future release. Not in current roadmap.
24
+
25
+ ### {Category}
26
+
27
+ - **{CAT}-01**: {capability}
28
+ - **{CAT}-02**: {capability}
29
+
30
+ ## Out of Scope
31
+
32
+ Explicit exclusions with reasoning. Prevents scope creep.
33
+
34
+ | Feature | Reason |
35
+ |---------|--------|
36
+ | {feature} | {why excluded} |
37
+
38
+ ## Traceability
39
+
40
+ Which phases cover which requirements. Populated during roadmap creation.
41
+
42
+ | Requirement | Phase | Status |
43
+ |-------------|-------|--------|
44
+ | {CAT}-01 | Phase {N} | Pending |
45
+
46
+ **Coverage:**
47
+ - v1 requirements: {X} total
48
+ - Mapped to phases: {Y}
49
+ - Unmapped: {Z}
50
+
51
+ ---
52
+
53
+ ## Requirement Quality Rules
54
+
55
+ 1. **ID format:** `{CATEGORY}-{NUMBER}` — `AUTH-01`, `CONT-02`, `SOCIAL-03`
56
+ 2. **User-centric:** "User can X" — not "System does Y"
57
+ 3. **Atomic:** One capability per requirement — not "User can login and manage profile"
58
+ 4. **Testable:** "User can reset password via email link" — not "handle password reset"
59
+ 5. **Independent:** Minimal dependencies on other requirements
60
+
61
+ ## Status Values
62
+
63
+ - **Pending** — not started
64
+ - **In Progress** — phase is active
65
+ - **Complete** — requirement verified
66
+ - **Blocked** — waiting on external factor
67
+
68
+ ---
69
+ *Last updated: {date}*
@@ -0,0 +1,70 @@
1
+ # Architecture Research
2
+
3
+ **Domain:** {domain type}
4
+ **Researched:** {date}
5
+ **Confidence:** {HIGH/MEDIUM/LOW}
6
+
7
+ ## Standard Architecture
8
+
9
+ ### Component Responsibilities
10
+
11
+ | Component | Responsibility | Typical Implementation |
12
+ |-----------|----------------|------------------------|
13
+ | {name} | {what it owns} | {how it's usually built} |
14
+
15
+ ### Data Flow
16
+
17
+ ```
18
+ [User Action]
19
+
20
+ [Component] → [Handler] → [Service] → [Data Store]
21
+ ↓ ↓ ↓ ↓
22
+ [Response] ← [Transform] ← [Query] ← [Database]
23
+ ```
24
+
25
+ ### Key Flows
26
+
27
+ 1. **{flow name}:** {how data moves}
28
+ 2. **{flow name}:** {how data moves}
29
+
30
+ ## Recommended Project Structure
31
+
32
+ ```
33
+ src/
34
+ ├── {folder}/ # {purpose}
35
+ ├── {folder}/ # {purpose}
36
+ └── {folder}/ # {purpose}
37
+ ```
38
+
39
+ **Structure rationale:**
40
+ - **{folder}/:** {why organized this way}
41
+
42
+ ## Suggested Build Order
43
+
44
+ Phases should follow this dependency order:
45
+
46
+ 1. **{component}** — foundation, no dependencies
47
+ 2. **{component}** — depends on 1
48
+ 3. **{component}** — depends on 1, 2
49
+
50
+ ## Anti-Patterns
51
+
52
+ ### {Name}
53
+
54
+ **What people do:** {the mistake}
55
+ **Why it's wrong:** {the problem}
56
+ **Do this instead:** {correct approach}
57
+
58
+ ## Integration Points
59
+
60
+ | Service | Integration Pattern | Notes |
61
+ |---------|---------------------|-------|
62
+ | {service} | {how to connect} | {gotchas} |
63
+
64
+ ## Sources
65
+
66
+ - {architecture references}
67
+ - {official documentation}
68
+
69
+ ---
70
+ *Architecture research for: {domain}*
@@ -0,0 +1,60 @@
1
+ # Feature Research
2
+
3
+ **Domain:** {domain type}
4
+ **Researched:** {date}
5
+ **Confidence:** {HIGH/MEDIUM/LOW}
6
+
7
+ ## Feature Landscape
8
+
9
+ ### Table Stakes (Users Expect These)
10
+
11
+ Features users assume exist. Missing these = product feels incomplete.
12
+
13
+ | Feature | Why Expected | Complexity | Notes |
14
+ |---------|--------------|------------|-------|
15
+ | {feature} | {user expectation} | LOW/MEDIUM/HIGH | {implementation notes} |
16
+
17
+ ### Differentiators (Competitive Advantage)
18
+
19
+ Features that set the product apart. Not required, but valuable.
20
+
21
+ | Feature | Value Proposition | Complexity | Notes |
22
+ |---------|-------------------|------------|-------|
23
+ | {feature} | {why it matters} | LOW/MEDIUM/HIGH | {notes} |
24
+
25
+ ### Anti-Features (Seem Good, Aren't)
26
+
27
+ Features that seem good but create problems — often requested, rarely right.
28
+
29
+ | Feature | Why Requested | Why Problematic | Alternative |
30
+ |---------|---------------|-----------------|-------------|
31
+ | {feature} | {surface appeal} | {actual problems} | {better approach} |
32
+
33
+ ## MVP Recommendation
34
+
35
+ ### Launch With (v1)
36
+
37
+ - {feature} — {why essential}
38
+ - {feature} — {why essential}
39
+
40
+ ### Add After Validation (v1.x)
41
+
42
+ - {feature} — {trigger}
43
+
44
+ ### Defer (v2+)
45
+
46
+ - {feature} — {why defer}
47
+
48
+ ## Feature Dependencies
49
+
50
+ - **{Feature A}** requires **{Feature B}** — {why}
51
+ - **{Feature C}** enhances **{Feature A}** — {how}
52
+
53
+ ## Sources
54
+
55
+ - {competitor products analyzed}
56
+ - {user research referenced}
57
+ - {industry standards}
58
+
59
+ ---
60
+ *Feature research for: {domain}*
@@ -0,0 +1,73 @@
1
+ # Pitfalls Research
2
+
3
+ **Domain:** {domain type}
4
+ **Researched:** {date}
5
+ **Confidence:** {HIGH/MEDIUM/LOW}
6
+
7
+ ## Critical Pitfalls
8
+
9
+ ### {Pitfall Name}
10
+
11
+ **What goes wrong:** {the failure mode}
12
+ **Why it happens:** {root cause}
13
+ **How to avoid:** {specific prevention strategy}
14
+ **Warning signs:** {how to detect early}
15
+ **Phase to address:** Phase {N}
16
+
17
+ ---
18
+
19
+ ### {Pitfall Name}
20
+
21
+ **What goes wrong:** {failure mode}
22
+ **Why it happens:** {root cause}
23
+ **How to avoid:** {prevention}
24
+ **Warning signs:** {detection}
25
+ **Phase to address:** Phase {N}
26
+
27
+ ---
28
+
29
+ ## Technical Debt Patterns
30
+
31
+ Shortcuts that seem reasonable but create long-term problems.
32
+
33
+ | Shortcut | Immediate Benefit | Long-term Cost | When Acceptable |
34
+ |----------|-------------------|----------------|-----------------|
35
+ | {shortcut} | {benefit} | {cost} | {conditions, or "never"} |
36
+
37
+ ## Performance Traps
38
+
39
+ Patterns that work at small scale but fail as usage grows.
40
+
41
+ | Trap | Symptoms | Prevention | When It Breaks |
42
+ |------|----------|------------|----------------|
43
+ | {trap} | {how you notice} | {how to avoid} | {scale threshold} |
44
+
45
+ ## Security Mistakes
46
+
47
+ Domain-specific security issues beyond general web security.
48
+
49
+ | Mistake | Risk | Prevention |
50
+ |---------|------|------------|
51
+ | {mistake} | {what could happen} | {how to avoid} |
52
+
53
+ ## "Looks Done But Isn't" Checklist
54
+
55
+ Things that appear complete but are missing critical pieces.
56
+
57
+ - [ ] **{Feature}:** Often missing {thing} — verify {check}
58
+ - [ ] **{Feature}:** Often missing {thing} — verify {check}
59
+
60
+ ## Pitfall-to-Phase Mapping
61
+
62
+ | Pitfall | Prevention Phase | Verification |
63
+ |---------|------------------|--------------|
64
+ | {pitfall} | Phase {X} | {how to verify prevention} |
65
+
66
+ ## Sources
67
+
68
+ - {post-mortems referenced}
69
+ - {community discussions}
70
+ - {official "gotchas" documentation}
71
+
72
+ ---
73
+ *Pitfalls research for: {domain}*
@@ -0,0 +1,51 @@
1
+ # Stack Research
2
+
3
+ **Domain:** {domain type}
4
+ **Researched:** {date}
5
+ **Confidence:** {HIGH/MEDIUM/LOW}
6
+
7
+ ## Recommended Stack
8
+
9
+ ### Core Technologies
10
+
11
+ | Technology | Version | Purpose | Why Recommended |
12
+ |------------|---------|---------|-----------------|
13
+ | {name} | {version} | {what it does} | {why experts use it for this domain} |
14
+ | {name} | {version} | {what it does} | {why} |
15
+
16
+ ### Supporting Libraries
17
+
18
+ | Library | Version | Purpose | When to Use |
19
+ |---------|---------|---------|-------------|
20
+ | {name} | {version} | {what it does} | {specific use case} |
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ npm install {core packages}
26
+ npm install -D {dev dependencies}
27
+ ```
28
+
29
+ ## Alternatives Considered
30
+
31
+ | Recommended | Alternative | When to Use Alternative |
32
+ |-------------|-------------|-------------------------|
33
+ | {our choice} | {other option} | {conditions} |
34
+
35
+ ## What NOT to Use
36
+
37
+ | Avoid | Why | Use Instead |
38
+ |-------|-----|-------------|
39
+ | {technology} | {specific problem} | {recommended alternative} |
40
+
41
+ ## Version Compatibility
42
+
43
+ Known compatibility constraints between the recommended packages.
44
+
45
+ ## Sources
46
+
47
+ - {Context7 library ID} — {topics fetched}
48
+ - {Official docs URL} — {what was verified}
49
+
50
+ ---
51
+ *Stack research for: {domain}*
@@ -0,0 +1,86 @@
1
+ # Research Summary
2
+
3
+ **Project:** {name}
4
+ **Domain:** {inferred domain type}
5
+ **Researched:** {date}
6
+ **Confidence:** {HIGH/MEDIUM/LOW}
7
+
8
+ ## Executive Summary
9
+
10
+ {2-3 paragraph overview — what type of product this is, recommended approach, key risks}
11
+
12
+ ## Key Findings
13
+
14
+ ### Recommended Stack
15
+
16
+ **Core:**
17
+ - {tech}: {purpose} — {why}
18
+ - {tech}: {purpose} — {why}
19
+
20
+ ### Table Stakes Features
21
+
22
+ - {feature} — users expect this
23
+ - {feature} — users expect this
24
+
25
+ ### Differentiators
26
+
27
+ - {feature}
28
+ - {feature}
29
+
30
+ ### Critical Pitfalls
31
+
32
+ 1. **{pitfall}** — {how to avoid}
33
+ 2. **{pitfall}** — {how to avoid}
34
+ 3. **{pitfall}** — {how to avoid}
35
+
36
+ ## Implications for Roadmap
37
+
38
+ Based on research, suggested phase structure:
39
+
40
+ ### Phase 1: {Name}
41
+ **Rationale:** {why this comes first}
42
+ **Delivers:** {what this phase produces}
43
+ **Addresses:** {features from FEATURES.md}
44
+ **Avoids:** {pitfall from PITFALLS.md}
45
+
46
+ ### Phase 2: {Name}
47
+ **Rationale:** {why this order}
48
+ **Delivers:** {what this phase produces}
49
+
50
+ ### Phase Ordering Rationale
51
+
52
+ - {why this order based on dependencies}
53
+ - {why this grouping based on architecture patterns}
54
+
55
+ ### Research Flags
56
+
57
+ Phases likely needing deeper research during `/qualia-plan`:
58
+ - **Phase {X}:** {reason}
59
+
60
+ ## Confidence Assessment
61
+
62
+ | Area | Confidence | Notes |
63
+ |------|------------|-------|
64
+ | Stack | {HIGH/MEDIUM/LOW} | {reason} |
65
+ | Features | {HIGH/MEDIUM/LOW} | {reason} |
66
+ | Architecture | {HIGH/MEDIUM/LOW} | {reason} |
67
+ | Pitfalls | {HIGH/MEDIUM/LOW} | {reason} |
68
+
69
+ **Overall confidence:** {HIGH/MEDIUM/LOW}
70
+
71
+ ### Gaps to Address
72
+
73
+ {Areas where research was inconclusive — handle during planning}
74
+
75
+ - {gap}: {handling}
76
+
77
+ ## Sources
78
+
79
+ **Primary (HIGH confidence):**
80
+ - {Context7 library ID} — {topics}
81
+
82
+ **Secondary (MEDIUM confidence):**
83
+ - {source} — {finding}
84
+
85
+ ---
86
+ *Ready for roadmap: yes*
@@ -0,0 +1,71 @@
1
+ # Roadmap: {Project Name}
2
+
3
+ **Created:** {date}
4
+ **Total phases:** {N}
5
+ **v1 requirements:** {X} covered
6
+
7
+ ## Phases
8
+
9
+ | # | Phase | Goal | Requirements | Status |
10
+ |---|-------|------|--------------|--------|
11
+ | 1 | {name} | {one-sentence goal} | {REQ-IDs} | ready |
12
+ | 2 | {name} | {goal} | {REQ-IDs} | — |
13
+ | 3 | {name} | {goal} | {REQ-IDs} | — |
14
+
15
+ ## Phase Details
16
+
17
+ ### Phase 1: {Name}
18
+
19
+ **Goal:** {what must be TRUE when this phase is done}
20
+
21
+ **Requirements covered:**
22
+ - {REQ-ID}: {description}
23
+ - {REQ-ID}: {description}
24
+
25
+ **Success criteria** (observable user behaviors):
26
+ 1. {user can do X}
27
+ 2. {user can do Y}
28
+ 3. {user can do Z}
29
+
30
+ **Depends on:** none (or: Phase {N})
31
+
32
+ ---
33
+
34
+ ### Phase 2: {Name}
35
+
36
+ **Goal:** {goal}
37
+
38
+ **Requirements covered:**
39
+ - {REQ-ID}: {description}
40
+
41
+ **Success criteria:**
42
+ 1. {criterion}
43
+ 2. {criterion}
44
+
45
+ **Depends on:** Phase 1
46
+
47
+ ---
48
+
49
+ {... continue for all phases ...}
50
+
51
+ ## Coverage Verification
52
+
53
+ All v1 requirements must map to exactly one phase. Unmapped requirements = roadmap gap.
54
+
55
+ | Requirement | Phase | Covered? |
56
+ |-------------|-------|----------|
57
+ | {REQ-ID} | Phase {N} | ✓ |
58
+
59
+ **Coverage:** {X}/{Y} v1 requirements mapped ({100% expected})
60
+
61
+ ---
62
+
63
+ ## Rules
64
+
65
+ 1. **Feature phases only.** No "review" / "deploy" / "handoff" phases — those are driven by `/qualia-polish` → `/qualia-ship` → `/qualia-handoff` after all feature phases verify.
66
+ 2. **Each requirement maps to exactly one phase.** If a requirement spans phases, it's too big — split it.
67
+ 3. **Phases are independently verifiable.** A phase completes when its success criteria are observable in a running app.
68
+ 4. **Order by dependency, not priority.** Phase 2 should depend on Phase 1's outputs.
69
+
70
+ ---
71
+ *Last updated: {date}*
package/tests/bin.test.sh CHANGED
@@ -139,7 +139,7 @@ cat > "$TMP/.claude/.qualia-config.json" <<'EOF'
139
139
  "code": "QS-FAWZI-01",
140
140
  "installed_by": "Fawzi Goussous",
141
141
  "role": "OWNER",
142
- "version": "3.1.0",
142
+ "version": "2.8.1",
143
143
  "installed_at": "2026-04-10"
144
144
  }
145
145
  EOF
@@ -423,7 +423,7 @@ cat > "$TMP/.claude/.qualia-config.json" <<'EOF'
423
423
  "code": "QS-FAWZI-01",
424
424
  "installed_by": "Fawzi Goussous",
425
425
  "role": "OWNER",
426
- "version": "3.1.0",
426
+ "version": "2.8.1",
427
427
  "installed_at": "2026-04-10"
428
428
  }
429
429
  EOF
@@ -476,10 +476,10 @@ else
476
476
  fail_case "CLAUDE.md role substitution"
477
477
  fi
478
478
 
479
- # 31. All 7 hooks installed (block-env-edit.js retired in v3.2.0)
479
+ # 31. All 8 hooks installed
480
480
  HOOK_COUNT=$(ls "$TMP/.claude/hooks/"*.js 2>/dev/null | wc -l)
481
- if [ "$HOOK_COUNT" -eq 7 ]; then
482
- pass "7 hooks installed in hooks/"
481
+ if [ "$HOOK_COUNT" -eq 8 ]; then
482
+ pass "8 hooks installed in hooks/"
483
483
  else
484
484
  fail_case "hook count" "got $HOOK_COUNT"
485
485
  fi
@@ -494,7 +494,21 @@ else
494
494
  fail_case "settings.json contents"
495
495
  fi
496
496
 
497
- # 33. Lowercase code works (resolveTeamCode normalizes)
497
+ # 33. settings.json contains all 8 hooks wired correctly
498
+ if grep -q 'block-env-edit.js' "$TMP/.claude/settings.json" \
499
+ && grep -q 'branch-guard.js' "$TMP/.claude/settings.json" \
500
+ && grep -q 'migration-guard.js' "$TMP/.claude/settings.json" \
501
+ && grep -q 'pre-push.js' "$TMP/.claude/settings.json" \
502
+ && grep -q 'pre-deploy-gate.js' "$TMP/.claude/settings.json" \
503
+ && grep -q 'auto-update.js' "$TMP/.claude/settings.json" \
504
+ && grep -q 'session-start.js' "$TMP/.claude/settings.json" \
505
+ && grep -q 'pre-compact.js' "$TMP/.claude/settings.json"; then
506
+ pass "settings.json has all 8 hooks wired"
507
+ else
508
+ fail_case "settings.json missing hooks"
509
+ fi
510
+
511
+ # 34. Lowercase code works (resolveTeamCode normalizes)
498
512
  TMP=$(mktmp)
499
513
  echo "qs-fawzi-01" | HOME="$TMP" $NODE "$INSTALL_JS" > "$TMP/out.log" 2>&1
500
514
  EXIT=$?