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.
- package/CLAUDE.md +3 -4
- package/README.md +59 -23
- package/agents/plan-checker.md +158 -0
- package/agents/planner.md +52 -0
- package/agents/research-synthesizer.md +86 -0
- package/agents/researcher.md +119 -0
- package/agents/roadmapper.md +157 -0
- package/agents/verifier.md +180 -32
- package/bin/cli.js +403 -9
- package/bin/install.js +219 -70
- package/bin/qualia-ui.js +11 -11
- package/bin/state.js +200 -6
- package/bin/statusline.js +4 -4
- package/docs/erp-contract.md +161 -0
- package/hooks/branch-guard.js +23 -2
- package/hooks/migration-guard.js +23 -0
- package/hooks/pre-compact.js +20 -0
- package/hooks/pre-deploy-gate.js +39 -0
- package/hooks/pre-push.js +20 -0
- package/hooks/session-start.js +16 -43
- package/package.json +6 -4
- package/references/questioning.md +123 -0
- package/rules/infrastructure.md +87 -0
- package/skills/qualia/SKILL.md +1 -0
- package/skills/qualia-build/SKILL.md +18 -0
- package/skills/qualia-design/SKILL.md +14 -8
- package/skills/qualia-discuss/SKILL.md +115 -0
- package/skills/qualia-help/SKILL.md +60 -0
- package/skills/qualia-learn/SKILL.md +27 -4
- package/skills/qualia-map/SKILL.md +145 -0
- package/skills/qualia-milestone/SKILL.md +148 -0
- package/skills/qualia-new/SKILL.md +374 -229
- package/skills/qualia-plan/SKILL.md +135 -30
- package/skills/qualia-polish/SKILL.md +167 -117
- package/skills/qualia-report/SKILL.md +17 -8
- package/skills/qualia-research/SKILL.md +124 -0
- package/skills/qualia-review/SKILL.md +126 -41
- package/skills/qualia-test/SKILL.md +134 -0
- package/skills/qualia-verify/SKILL.md +1 -1
- package/templates/DESIGN.md +440 -102
- package/templates/help.html +476 -0
- package/templates/phase-context.md +48 -0
- package/templates/plan.md +14 -0
- package/templates/projects/ai-agent.md +55 -0
- package/templates/projects/mobile-app.md +56 -0
- package/templates/projects/voice-agent.md +55 -0
- package/templates/projects/website.md +58 -0
- package/templates/requirements.md +69 -0
- package/templates/research-project/ARCHITECTURE.md +70 -0
- package/templates/research-project/FEATURES.md +60 -0
- package/templates/research-project/PITFALLS.md +73 -0
- package/templates/research-project/STACK.md +51 -0
- package/templates/research-project/SUMMARY.md +86 -0
- package/templates/roadmap.md +71 -0
- package/tests/bin.test.sh +20 -6
- package/tests/hooks.test.sh +76 -7
- package/tests/runner.js +1915 -0
- 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": "
|
|
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": "
|
|
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
|
|
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
|
|
482
|
-
pass "
|
|
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.
|
|
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=$?
|