qualia-framework 3.6.0 → 4.0.3
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 +23 -11
- package/README.md +96 -51
- package/agents/builder.md +25 -14
- package/agents/plan-checker.md +29 -16
- package/agents/planner.md +33 -24
- package/agents/research-synthesizer.md +25 -12
- package/agents/roadmapper.md +89 -84
- package/agents/verifier.md +11 -2
- package/bin/cli.js +18 -13
- package/bin/install.js +34 -45
- package/bin/qualia-ui.js +267 -1
- package/bin/state.js +164 -12
- package/bin/statusline.js +4 -1
- package/docs/erp-contract.md +12 -0
- package/guide.md +85 -22
- package/hooks/migration-guard.js +23 -9
- package/hooks/pre-compact.js +39 -11
- package/hooks/pre-deploy-gate.js +3 -4
- package/hooks/pre-push.js +6 -3
- package/hooks/session-start.js +8 -8
- package/package.json +1 -1
- package/rules/frontend.md +5 -13
- package/skills/qualia/SKILL.md +8 -1
- package/skills/qualia-build/SKILL.md +49 -4
- package/skills/qualia-debug/SKILL.md +6 -0
- package/skills/qualia-design/SKILL.md +9 -1
- package/skills/qualia-discuss/SKILL.md +6 -0
- package/skills/qualia-handoff/SKILL.md +92 -12
- package/skills/qualia-help/SKILL.md +18 -4
- package/skills/qualia-idk/SKILL.md +166 -0
- package/skills/qualia-learn/SKILL.md +6 -0
- package/skills/qualia-map/SKILL.md +7 -0
- package/skills/qualia-milestone/SKILL.md +128 -79
- package/skills/qualia-new/SKILL.md +163 -230
- package/skills/qualia-optimize/SKILL.md +8 -0
- package/skills/qualia-pause/SKILL.md +5 -0
- package/skills/qualia-plan/SKILL.md +25 -10
- package/skills/qualia-polish/SKILL.md +8 -0
- package/skills/qualia-quick/SKILL.md +7 -0
- package/skills/qualia-report/SKILL.md +17 -0
- package/skills/qualia-research/SKILL.md +7 -0
- package/skills/qualia-resume/SKILL.md +3 -0
- package/skills/qualia-review/SKILL.md +7 -0
- package/skills/qualia-ship/SKILL.md +5 -0
- package/skills/qualia-skill-new/SKILL.md +6 -0
- package/skills/qualia-task/SKILL.md +8 -1
- package/skills/qualia-test/SKILL.md +7 -0
- package/skills/qualia-verify/SKILL.md +65 -3
- package/templates/help.html +4 -4
- package/templates/journey.md +113 -0
- package/templates/plan.md +56 -11
- package/templates/requirements.md +82 -22
- package/templates/roadmap.md +41 -14
- package/templates/tracking.json +2 -0
- package/tests/hooks.test.sh +5 -5
- package/tests/runner.js +381 -7
|
@@ -1,15 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qualia-new
|
|
3
|
-
description: "Set up a new project from scratch — deep questioning,
|
|
3
|
+
description: "Set up a new project from scratch — deep questioning, ALWAYS-AUTO research, JOURNEY.md with all milestones to handoff, single approval gate, optional auto-chain into building. Use when starting any new client project."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Agent
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
- TaskCreate
|
|
14
|
+
- TaskUpdate
|
|
15
|
+
- TaskList
|
|
4
16
|
---
|
|
5
17
|
|
|
6
|
-
# /qualia-new — New Project
|
|
18
|
+
# /qualia-new — New Project (Full Journey)
|
|
7
19
|
|
|
8
|
-
|
|
20
|
+
Initialize a project with the **entire arc mapped from kickoff to handoff**. All milestones defined upfront so the team follows a clear path, not improvising after each ship.
|
|
9
21
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- `/qualia-new
|
|
22
|
+
## Flags
|
|
23
|
+
|
|
24
|
+
- `/qualia-new` — full-journey flow, stops after approval (default, backward-compatible)
|
|
25
|
+
- `/qualia-new --auto` — full-journey flow, then auto-chains into `/qualia-plan 1 → /qualia-build → /qualia-verify` for Milestone 1
|
|
26
|
+
- `/qualia-new --quick` — 4-phase flat wizard for trivial projects (landing pages, prototypes). Skips research and journey mapping.
|
|
27
|
+
|
|
28
|
+
## The Shift From Previous Versions
|
|
29
|
+
|
|
30
|
+
**Before:** `/qualia-new` produced a v1 ROADMAP and stopped. Team improvised subsequent milestones ad hoc.
|
|
31
|
+
|
|
32
|
+
**Now:** `/qualia-new` produces **JOURNEY.md** (all milestones → Handoff) + REQUIREMENTS.md (multi-milestone, REQ-IDs) + ROADMAP.md (Milestone 1's phase detail). **One approval gate** on the whole journey. Research always runs — no permission ask.
|
|
13
33
|
|
|
14
34
|
## Process
|
|
15
35
|
|
|
@@ -25,157 +45,61 @@ Wait for free-text answer. Do NOT use AskUserQuestion here — let them talk nat
|
|
|
25
45
|
|
|
26
46
|
### Step 0.5. Brownfield Check
|
|
27
47
|
|
|
28
|
-
Before questioning, detect if we're in an existing codebase:
|
|
29
|
-
|
|
30
48
|
```bash
|
|
31
49
|
test -f package.json && echo "HAS_PACKAGE"
|
|
32
50
|
test -d .git && echo "HAS_GIT"
|
|
33
|
-
ls *.ts *.tsx *.js *.jsx *.py 2>/dev/null | head -5
|
|
34
51
|
test -f .planning/codebase/README.md && echo "ALREADY_MAPPED"
|
|
35
52
|
```
|
|
36
53
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
- header: "Existing Code"
|
|
40
|
-
- question: "I see existing code here. Map the codebase first so I understand what's already built?"
|
|
41
|
-
- options:
|
|
42
|
-
- "Map codebase first" — Run /qualia-map, then continue (recommended for brownfield)
|
|
43
|
-
- "Skip mapping" — Treat as greenfield anyway
|
|
44
|
-
|
|
45
|
-
If "Map codebase first": invoke the `qualia-map` skill inline, wait for completion, then continue to Step 1.
|
|
54
|
+
If existing code is detected AND not already mapped, ask the user whether to run `/qualia-map` inline first. If yes, invoke the `qualia-map` skill inline, wait for completion, then continue to Step 1.
|
|
46
55
|
|
|
47
56
|
### Step 1. Deep Questioning
|
|
48
57
|
|
|
49
|
-
|
|
58
|
+
Load the questioning methodology:
|
|
50
59
|
|
|
51
60
|
```bash
|
|
52
61
|
cat ~/.claude/qualia-references/questioning.md 2>/dev/null
|
|
53
62
|
```
|
|
54
63
|
|
|
55
|
-
Follow
|
|
56
|
-
- Start with their free-text answer from Step 0
|
|
57
|
-
- Follow energy — dig into what excited them
|
|
58
|
-
- Challenge vagueness — never accept fuzzy answers
|
|
59
|
-
- Make abstract concrete — "walk me through using this"
|
|
60
|
-
- Surface motivation — "what prompted this?"
|
|
61
|
-
- Check the 4-item context checklist mentally (what, why, who, done)
|
|
64
|
+
Follow the thread. Challenge vagueness. Make abstract concrete. Check the 4-item mental checklist (what, why, who, done).
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
Use `AskUserQuestion` for forks with 2-4 concrete interpretations. Use free text when you want them to think freely.
|
|
64
67
|
|
|
65
68
|
**Decision gate** — when you could write a clear PROJECT.md:
|
|
66
69
|
|
|
67
70
|
- header: "Ready?"
|
|
68
|
-
- question: "I
|
|
69
|
-
- options:
|
|
70
|
-
- "Create PROJECT.md" — Let's move forward
|
|
71
|
-
- "Keep exploring" — I want to share more
|
|
71
|
+
- question: "I understand what you're building. Create PROJECT.md and move forward?"
|
|
72
|
+
- options: ["Create PROJECT.md", "Keep exploring"]
|
|
72
73
|
|
|
73
74
|
Loop until "Create PROJECT.md".
|
|
74
75
|
|
|
75
|
-
### Step 2. Detect Project Type
|
|
76
|
-
|
|
77
|
-
From the questioning answers, infer project type:
|
|
78
|
-
|
|
79
|
-
- "website", "landing page", "marketing site", "SaaS", "dashboard", "portal" → `website`
|
|
80
|
-
- "chatbot", "AI assistant", "chat agent", "RAG", "agent" → `ai-agent`
|
|
81
|
-
- "voice agent", "phone agent", "call bot", "VAPI", "Retell" → `voice-agent`
|
|
82
|
-
- "mobile app", "iOS", "Android", "React Native", "Expo" → `mobile-app`
|
|
83
|
-
|
|
84
|
-
**If a type matches:**
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
cat ~/.claude/qualia-templates/projects/{type}.md
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
This template gives suggested phase structure and category names the roadmapper will use.
|
|
91
|
-
|
|
92
|
-
**If no type matches:** continue without a template — the roadmapper will derive structure from requirements.
|
|
76
|
+
### Step 2. Detect Project Type
|
|
93
77
|
|
|
94
|
-
|
|
78
|
+
From questioning answers, infer type → `website` | `ai-agent` | `voice-agent` | `mobile-app` | `null`. If matched, `cat ~/.claude/qualia-templates/projects/{type}.md` gives suggested milestone arc. Store `template_type` for Step 10.
|
|
95
79
|
|
|
96
80
|
### Step 3. Design Direction (frontend only)
|
|
97
81
|
|
|
98
|
-
If the project involves frontend work (most do), capture design direction:
|
|
99
|
-
|
|
100
82
|
- header: "Design"
|
|
101
83
|
- question: "What's the design vibe?"
|
|
102
|
-
- options:
|
|
103
|
-
- "Dark & Bold" — Dark backgrounds, neon accents, strong contrast
|
|
104
|
-
- "Clean & Minimal" — White space, subtle shadows, refined typography
|
|
105
|
-
- "Colorful & Playful" — Gradients, rounded shapes, vibrant palette
|
|
106
|
-
- "Corporate / Professional" — Structured, trust signals, enterprise feel
|
|
84
|
+
- options: ["Dark & Bold", "Clean & Minimal", "Colorful & Playful", "Corporate / Professional"]
|
|
107
85
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Store these for Step 7 (DESIGN.md generation).
|
|
86
|
+
Plus free-text: "Any brand colors or reference sites I should look at?"
|
|
111
87
|
|
|
112
88
|
### Step 4. Client Context
|
|
113
89
|
|
|
114
90
|
- header: "Client"
|
|
115
91
|
- question: "Client project or internal?"
|
|
116
|
-
- options:
|
|
117
|
-
- "Client project" — External client, needs handoff
|
|
118
|
-
- "Internal / Qualia" — Our own product
|
|
119
|
-
- "Personal / Side project" — No formal client
|
|
92
|
+
- options: ["Client project", "Internal / Qualia", "Personal / Side project"]
|
|
120
93
|
|
|
121
|
-
If client, ask
|
|
94
|
+
If client, ask name. Check saved prefs:
|
|
122
95
|
```bash
|
|
123
96
|
cat ~/.claude/knowledge/client-prefs.md 2>/dev/null | grep -A 10 "{client name}"
|
|
124
97
|
```
|
|
125
98
|
|
|
126
|
-
If prefs found, mention: *"I have notes on {client} — {summary}. Applying these to defaults unless you say otherwise."*
|
|
127
|
-
|
|
128
99
|
### Step 5. Write PROJECT.md
|
|
129
100
|
|
|
130
|
-
Create `.planning/PROJECT.md` from the template:
|
|
101
|
+
Create `.planning/PROJECT.md` from the template. Include: client, what we're building, core value, validated + active requirements (empty for greenfield), out of scope, stack, design direction, decisions table.
|
|
131
102
|
|
|
132
|
-
```bash
|
|
133
|
-
mkdir -p .planning
|
|
134
|
-
cat ~/.claude/qualia-templates/project.md
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Fill in with questioning answers. Include:
|
|
138
|
-
|
|
139
|
-
```markdown
|
|
140
|
-
# {Project Name}
|
|
141
|
-
|
|
142
|
-
## Client
|
|
143
|
-
{name or "Internal" or "Personal"}
|
|
144
|
-
|
|
145
|
-
## What We're Building
|
|
146
|
-
{one-paragraph description from questioning}
|
|
147
|
-
|
|
148
|
-
## Core Value
|
|
149
|
-
{the ONE thing that must work}
|
|
150
|
-
|
|
151
|
-
## Requirements
|
|
152
|
-
### Validated
|
|
153
|
-
{if brownfield, inferred from codebase map; else "(none yet)"}
|
|
154
|
-
|
|
155
|
-
### Active (hypotheses)
|
|
156
|
-
- [ ] {requirement 1 — from questioning}
|
|
157
|
-
- [ ] {requirement 2}
|
|
158
|
-
- [ ] {requirement 3}
|
|
159
|
-
|
|
160
|
-
### Out of Scope
|
|
161
|
-
- {exclusion 1}
|
|
162
|
-
|
|
163
|
-
## Stack
|
|
164
|
-
{from questioning — default: Next.js 16 + React 19 + TypeScript + Supabase + Vercel}
|
|
165
|
-
|
|
166
|
-
## Design Direction
|
|
167
|
-
{from Step 3}
|
|
168
|
-
|
|
169
|
-
## Decisions
|
|
170
|
-
| Decision | Rationale |
|
|
171
|
-
|----------|-----------|
|
|
172
|
-
| {choice from questioning} | {why} |
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
*Created: {date}*
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
Commit:
|
|
179
103
|
```bash
|
|
180
104
|
git init 2>/dev/null
|
|
181
105
|
git add .planning/PROJECT.md
|
|
@@ -184,8 +108,6 @@ git commit -m "docs: initialize project"
|
|
|
184
108
|
|
|
185
109
|
### Step 6. Create config.json
|
|
186
110
|
|
|
187
|
-
Write `.planning/config.json`:
|
|
188
|
-
|
|
189
111
|
```json
|
|
190
112
|
{
|
|
191
113
|
"mode": "interactive",
|
|
@@ -199,40 +121,31 @@ Write `.planning/config.json`:
|
|
|
199
121
|
}
|
|
200
122
|
```
|
|
201
123
|
|
|
202
|
-
**
|
|
124
|
+
**Note:** `workflow.research` is ALWAYS `true` for v4. It exists for telemetry but is no longer read as a gate.
|
|
203
125
|
|
|
204
126
|
### Step 7. Create DESIGN.md (frontend projects)
|
|
205
127
|
|
|
206
|
-
If frontend work is involved, generate `.planning/DESIGN.md` from
|
|
207
|
-
- Palette (concrete hex values, not placeholders)
|
|
208
|
-
- Typography (distinctive fonts, NOT Inter/Roboto/system-ui)
|
|
209
|
-
- Spacing (8px grid)
|
|
210
|
-
- Motion approach
|
|
211
|
-
- Component patterns
|
|
128
|
+
If frontend work is involved, generate `.planning/DESIGN.md` from the template with concrete palette, distinctive typography (NEVER Inter/Roboto/system-ui), 8px spacing grid, motion approach, component patterns.
|
|
212
129
|
|
|
213
|
-
Commit:
|
|
214
130
|
```bash
|
|
215
131
|
git add .planning/DESIGN.md .planning/config.json
|
|
216
132
|
git commit -m "docs: design direction + config"
|
|
217
133
|
```
|
|
218
134
|
|
|
219
|
-
### Step 8. Run Research (
|
|
135
|
+
### Step 8. Run Research (ALWAYS, no permission ask)
|
|
136
|
+
|
|
137
|
+
**In v4, research runs unconditionally.** The previous `workflow.research` gate is gone. Skipping research leads to generic roadmaps and surprises late in the project — the 4-agent cost is worth it.
|
|
220
138
|
|
|
221
|
-
|
|
139
|
+
Only `/qualia-new --quick` skips this step.
|
|
222
140
|
|
|
223
|
-
**Banner:**
|
|
224
141
|
```bash
|
|
225
142
|
node ~/.claude/bin/qualia-ui.js banner research
|
|
143
|
+
mkdir -p .planning/research
|
|
226
144
|
```
|
|
227
145
|
|
|
228
146
|
Say: **"Running 4 parallel research agents (stack, features, architecture, pitfalls)..."**
|
|
229
147
|
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
mkdir -p .planning/research
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
**Spawn 4 researchers in parallel** (single message, 4 Agent tool calls):
|
|
148
|
+
Spawn 4 researchers in parallel (single message, 4 Agent tool calls), with multi-milestone scope:
|
|
236
149
|
|
|
237
150
|
```
|
|
238
151
|
Agent(prompt="
|
|
@@ -241,7 +154,7 @@ Read your role: @~/.claude/agents/researcher.md
|
|
|
241
154
|
<dimension>stack</dimension>
|
|
242
155
|
<domain>{inferred domain from PROJECT.md}</domain>
|
|
243
156
|
<project_context>{PROJECT.md summary}</project_context>
|
|
244
|
-
<milestone_context>
|
|
157
|
+
<milestone_context>multi-milestone — research must cover scalability through Milestone 3+</milestone_context>
|
|
245
158
|
<output_path>.planning/research/STACK.md</output_path>
|
|
246
159
|
", subagent_type="qualia-researcher", description="Stack research")
|
|
247
160
|
|
|
@@ -251,7 +164,7 @@ Read your role: @~/.claude/agents/researcher.md
|
|
|
251
164
|
<dimension>features</dimension>
|
|
252
165
|
<domain>{inferred domain}</domain>
|
|
253
166
|
<project_context>{PROJECT.md summary}</project_context>
|
|
254
|
-
<milestone_context>
|
|
167
|
+
<milestone_context>multi-milestone — distinguish v1 table stakes from v2 differentiators</milestone_context>
|
|
255
168
|
<output_path>.planning/research/FEATURES.md</output_path>
|
|
256
169
|
", subagent_type="qualia-researcher", description="Features research")
|
|
257
170
|
|
|
@@ -261,7 +174,7 @@ Read your role: @~/.claude/agents/researcher.md
|
|
|
261
174
|
<dimension>architecture</dimension>
|
|
262
175
|
<domain>{inferred domain}</domain>
|
|
263
176
|
<project_context>{PROJECT.md summary}</project_context>
|
|
264
|
-
<milestone_context>
|
|
177
|
+
<milestone_context>multi-milestone — Phase 1 foundations must support final-milestone requirements</milestone_context>
|
|
265
178
|
<output_path>.planning/research/ARCHITECTURE.md</output_path>
|
|
266
179
|
", subagent_type="qualia-researcher", description="Architecture research")
|
|
267
180
|
|
|
@@ -271,7 +184,7 @@ Read your role: @~/.claude/agents/researcher.md
|
|
|
271
184
|
<dimension>pitfalls</dimension>
|
|
272
185
|
<domain>{inferred domain}</domain>
|
|
273
186
|
<project_context>{PROJECT.md summary}</project_context>
|
|
274
|
-
<milestone_context>
|
|
187
|
+
<milestone_context>multi-milestone — flag risks that stall LATER milestones, not just v1</milestone_context>
|
|
275
188
|
<output_path>.planning/research/PITFALLS.md</output_path>
|
|
276
189
|
", subagent_type="qualia-researcher", description="Pitfalls research")
|
|
277
190
|
```
|
|
@@ -283,145 +196,170 @@ Agent(prompt="
|
|
|
283
196
|
Read your role: @~/.claude/agents/research-synthesizer.md
|
|
284
197
|
|
|
285
198
|
Merge the 4 research files at .planning/research/ into .planning/research/SUMMARY.md.
|
|
286
|
-
|
|
199
|
+
This is a multi-milestone project — the SUMMARY must suggest a FULL milestone arc
|
|
200
|
+
(2-5 milestones including Handoff), not just a v1 phase list. Include roadmap
|
|
201
|
+
implications AND handoff implications (what client takeover requires).
|
|
287
202
|
", subagent_type="qualia-research-synthesizer", description="Synthesize research")
|
|
288
203
|
```
|
|
289
204
|
|
|
290
|
-
**Commit
|
|
205
|
+
**Commit:**
|
|
291
206
|
```bash
|
|
292
207
|
git add .planning/research/
|
|
293
|
-
git commit -m "docs: research synthesis (4 dimensions)"
|
|
208
|
+
git commit -m "docs: research synthesis (4 dimensions, multi-milestone scope)"
|
|
294
209
|
```
|
|
295
210
|
|
|
296
|
-
|
|
211
|
+
Show key findings:
|
|
297
212
|
```bash
|
|
298
213
|
node ~/.claude/bin/qualia-ui.js ok "Research complete"
|
|
299
214
|
```
|
|
300
|
-
Display top 3
|
|
215
|
+
Display top 3 from SUMMARY.md (stack recommendation, table stakes, top pitfall).
|
|
301
216
|
|
|
302
|
-
### Step 9. Feature Scoping
|
|
217
|
+
### Step 9. Feature Scoping (Multi-Milestone)
|
|
303
218
|
|
|
304
|
-
Read `.planning/research/FEATURES.md`
|
|
219
|
+
Read `.planning/research/FEATURES.md` and present the feature landscape. Features are scoped **to milestones** — you'll decide per-feature which milestone owns it.
|
|
305
220
|
|
|
306
221
|
For each category, use AskUserQuestion:
|
|
307
222
|
|
|
308
223
|
- header: "{Category name}"
|
|
309
|
-
- question: "Which {category} features
|
|
224
|
+
- question: "Which {category} features belong to v1 (Milestones 1..N-1 excluding Handoff)?"
|
|
310
225
|
- multiSelect: true
|
|
311
|
-
- options:
|
|
312
|
-
- Each feature from FEATURES.md with brief description
|
|
313
|
-
- "None for v1" — defer entire category
|
|
226
|
+
- options: each feature from FEATURES.md + "None for v1"
|
|
314
227
|
|
|
315
|
-
Track:
|
|
316
|
-
- Selected → v1
|
|
317
|
-
- Unselected table stakes → v2 (users expect these)
|
|
318
|
-
- Unselected differentiators →
|
|
319
|
-
|
|
320
|
-
**If research was skipped:** Ask free text: "What are the main things users need to be able to do?" — then probe for specifics on each capability mentioned.
|
|
228
|
+
Track selections:
|
|
229
|
+
- Selected → v1 scope (roadmapper assigns to specific milestones based on dependency order)
|
|
230
|
+
- Unselected table stakes → Post-Handoff v2 (users expect these)
|
|
231
|
+
- Unselected differentiators → Out of Scope
|
|
321
232
|
|
|
322
233
|
Gather any additional requirements the user wants that research missed.
|
|
323
234
|
|
|
324
235
|
### Step 10. Run Roadmapper
|
|
325
236
|
|
|
326
|
-
**Banner:**
|
|
327
237
|
```bash
|
|
328
238
|
node ~/.claude/bin/qualia-ui.js banner roadmap
|
|
329
239
|
```
|
|
330
240
|
|
|
331
|
-
Spawn the roadmapper
|
|
241
|
+
Spawn the roadmapper with full-journey mandate:
|
|
332
242
|
|
|
333
243
|
```
|
|
334
244
|
Agent(prompt="
|
|
335
245
|
Read your role: @~/.claude/agents/roadmapper.md
|
|
336
246
|
|
|
337
247
|
<task>
|
|
338
|
-
Create
|
|
248
|
+
Create the FULL JOURNEY for this project:
|
|
249
|
+
- .planning/JOURNEY.md — all milestones (2-5 including Handoff) with exit criteria
|
|
250
|
+
- .planning/REQUIREMENTS.md — requirements grouped by milestone
|
|
251
|
+
- .planning/ROADMAP.md — Milestone 1's phase detail only (ready for /qualia-plan 1)
|
|
339
252
|
|
|
340
253
|
User-scoped v1 features:
|
|
341
254
|
{list of features selected in Step 9, grouped by category}
|
|
342
255
|
|
|
343
256
|
Template type: {template_type from config.json}
|
|
344
|
-
If
|
|
257
|
+
If set, use ~/.claude/qualia-templates/projects/{type}.md as the milestone arc starting point.
|
|
258
|
+
|
|
259
|
+
The final milestone MUST be named 'Handoff' with the fixed 4 phases
|
|
260
|
+
(Polish, Content + SEO, Final QA, Handoff). Do not omit it.
|
|
345
261
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
262
|
+
After writing, update STATE.md via:
|
|
263
|
+
node ~/.claude/bin/state.js init \\
|
|
264
|
+
--project '{name}' --client '{client}' --type '{type}' \\
|
|
265
|
+
--milestone_name '{Milestone 1 name}' \\
|
|
266
|
+
--phases '<JSON: Milestone 1 phases only>' \\
|
|
267
|
+
--total_phases <count>
|
|
350
268
|
</task>
|
|
351
|
-
", subagent_type="qualia-roadmapper", description="Create
|
|
269
|
+
", subagent_type="qualia-roadmapper", description="Create full journey")
|
|
352
270
|
```
|
|
353
271
|
|
|
354
|
-
### Step 11.
|
|
272
|
+
### Step 11. Present the Journey (single view)
|
|
355
273
|
|
|
356
|
-
|
|
274
|
+
Render the branded journey ladder:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
node ~/.claude/bin/qualia-ui.js journey-tree .planning/JOURNEY.md
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
This shows M1..M{N} as a vertical ladder: shipped milestones get a green dot, current gets a teal diamond with `[CURRENT]` tag, future get dim open circles. Handoff gets `[FINAL]` tag. Why-now + phase sketch render under current and final.
|
|
281
|
+
|
|
282
|
+
Also narrate the one-glance summary:
|
|
357
283
|
|
|
358
284
|
```
|
|
359
|
-
## Proposed
|
|
360
|
-
|
|
361
|
-
**{N}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
1. {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
285
|
+
## Proposed Journey
|
|
286
|
+
|
|
287
|
+
**{N} milestones to handoff** | **{X} requirements mapped** | All v1 requirements covered ✓
|
|
288
|
+
|
|
289
|
+
┌─ Milestone 1 · {Name} [CURRENT]
|
|
290
|
+
│ Why now: {one line}
|
|
291
|
+
│ Exit: {outcome 1}, {outcome 2}
|
|
292
|
+
│ Phases: 1. {name} → 2. {name} → 3. {name}
|
|
293
|
+
│ Requirements: {REQ-IDs}
|
|
294
|
+
└─
|
|
295
|
+
↓
|
|
296
|
+
┌─ Milestone 2 · {Name}
|
|
297
|
+
│ Why now: {one line}
|
|
298
|
+
│ Exit: {outcome 1}, {outcome 2}
|
|
299
|
+
│ Phases: 1. {name} → 2. {name}
|
|
300
|
+
│ Requirements: {REQ-IDs}
|
|
301
|
+
└─
|
|
302
|
+
↓
|
|
303
|
+
...
|
|
304
|
+
↓
|
|
305
|
+
┌─ Milestone {N} · Handoff [FINAL]
|
|
306
|
+
│ Exit: Deployed, docs, credentials, walkthrough
|
|
307
|
+
│ Phases: 1. Polish → 2. Content + SEO → 3. Final QA → 4. Handoff
|
|
308
|
+
└─
|
|
309
|
+
|
|
310
|
+
Milestone 1 is fully planned. Milestones 2..{N-1} are sketched and will be detailed
|
|
311
|
+
when they open. Milestone {N} (Handoff) uses the standard 4-phase template.
|
|
379
312
|
```
|
|
380
313
|
|
|
381
|
-
### Step 12. Approval Gate
|
|
314
|
+
### Step 12. Approval Gate (single — for the whole journey)
|
|
382
315
|
|
|
383
|
-
- header: "
|
|
384
|
-
- question: "Does this
|
|
316
|
+
- header: "Journey"
|
|
317
|
+
- question: "Does this journey work for you?"
|
|
385
318
|
- options:
|
|
386
|
-
- "Approve" —
|
|
387
|
-
- "Adjust
|
|
388
|
-
- "Review full
|
|
319
|
+
- "Approve" — commit the full journey and continue
|
|
320
|
+
- "Adjust" — tell me what to change (milestones, phases, exit criteria, scope)
|
|
321
|
+
- "Review full JOURNEY.md" — show the raw file
|
|
389
322
|
|
|
390
|
-
**If "Adjust":**
|
|
391
|
-
- Get the user's feedback
|
|
392
|
-
- Re-spawn the roadmapper with revision context
|
|
393
|
-
- Show revised roadmap
|
|
394
|
-
- Loop until approved
|
|
323
|
+
**If "Adjust":** capture feedback, re-spawn roadmapper with revision context, re-present. Loop until approved.
|
|
395
324
|
|
|
396
|
-
**If "Review full
|
|
325
|
+
**If "Review full JOURNEY.md":** `cat .planning/JOURNEY.md`, then re-ask.
|
|
397
326
|
|
|
398
327
|
**If "Approve":**
|
|
399
328
|
|
|
400
329
|
```bash
|
|
401
|
-
git add .planning/REQUIREMENTS.md .planning/ROADMAP.md .planning/STATE.md
|
|
402
|
-
git commit -m "docs: requirements + roadmap ({N}
|
|
330
|
+
git add .planning/JOURNEY.md .planning/REQUIREMENTS.md .planning/ROADMAP.md .planning/STATE.md
|
|
331
|
+
git commit -m "docs: journey + requirements + milestone 1 roadmap ({N} milestones)"
|
|
403
332
|
```
|
|
404
333
|
|
|
405
334
|
### Step 13. Environment Setup
|
|
406
335
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
- Supabase project? Guide through `supabase link` or create new
|
|
410
|
-
- Vercel project? Guide through `vercel link`
|
|
411
|
-
- Env vars? Create `.env.local` with placeholders
|
|
336
|
+
Supabase project? `supabase link` or create. Vercel project? `vercel link`. Env vars? `.env.local` with placeholders from PROJECT.md stack.
|
|
412
337
|
|
|
413
|
-
|
|
338
|
+
Skip if user says "I'll handle env myself."
|
|
414
339
|
|
|
415
|
-
Commit:
|
|
416
340
|
```bash
|
|
417
341
|
git add .gitignore
|
|
418
342
|
git commit -m "chore: environment setup" 2>/dev/null
|
|
419
343
|
```
|
|
420
344
|
|
|
421
|
-
### Step 14.
|
|
345
|
+
### Step 14. Auto-Apply Gate (or stop here)
|
|
346
|
+
|
|
347
|
+
If invoked with `--auto`, skip straight into building Milestone 1:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
node ~/.claude/bin/qualia-ui.js info "Auto mode — chaining into /qualia-plan 1"
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Then inline-invoke `/qualia-plan 1`. That skill will chain into `/qualia-build 1 → /qualia-verify 1 → /qualia-plan 2 → ...` until Milestone 1's last phase verifies, at which point the chain pauses at the milestone boundary and asks:
|
|
354
|
+
|
|
355
|
+
- header: "Milestone 1 shipped"
|
|
356
|
+
- question: "Continue to Milestone 2 ({next milestone name})?"
|
|
357
|
+
- options: ["Continue", "Pause here"]
|
|
358
|
+
|
|
359
|
+
**Without `--auto`**, end with a clear pointer:
|
|
422
360
|
|
|
423
361
|
```bash
|
|
424
|
-
node ~/.claude/bin/qualia-ui.js end "
|
|
362
|
+
node ~/.claude/bin/qualia-ui.js end "JOURNEY READY" "/qualia-plan 1"
|
|
425
363
|
```
|
|
426
364
|
|
|
427
365
|
Show summary:
|
|
@@ -432,37 +370,32 @@ Show summary:
|
|
|
432
370
|
| Artifact | Location |
|
|
433
371
|
|----------------|-----------------------------|
|
|
434
372
|
| Project | .planning/PROJECT.md |
|
|
435
|
-
|
|
|
373
|
+
| Journey | .planning/JOURNEY.md |
|
|
436
374
|
| Requirements | .planning/REQUIREMENTS.md |
|
|
437
|
-
| Roadmap
|
|
375
|
+
| Roadmap (M1) | .planning/ROADMAP.md |
|
|
438
376
|
| Design | .planning/DESIGN.md |
|
|
439
377
|
| Research | .planning/research/ |
|
|
440
378
|
| State | .planning/STATE.md |
|
|
379
|
+
| Config | .planning/config.json |
|
|
441
380
|
|
|
442
|
-
{N}
|
|
381
|
+
{N} milestones | {X} requirements | Ready to build Milestone 1: {name}
|
|
443
382
|
|
|
444
|
-
▶ Next: /qualia-plan 1
|
|
383
|
+
▶ Next: /qualia-plan 1
|
|
384
|
+
(or rerun with /qualia-new --auto to chain through automatically)
|
|
445
385
|
```
|
|
446
386
|
|
|
447
|
-
## --quick Flag (Fast Path)
|
|
448
|
-
|
|
449
|
-
If invoked as `/qualia-new --quick`, run a 4-phase flat flow instead of the full comprehensive flow:
|
|
387
|
+
## --quick Flag (Fast Path, Unchanged)
|
|
450
388
|
|
|
451
|
-
1.
|
|
452
|
-
2. 4-step wizard (type / features / design / client)
|
|
453
|
-
3. Fixed 4 phases based on project type (Foundation / Core / Content / Polish)
|
|
454
|
-
4. Skip: research, REQUIREMENTS.md, plan-check
|
|
455
|
-
5. Still creates: PROJECT.md, ROADMAP.md (simplified), STATE.md, DESIGN.md
|
|
456
|
-
6. Route to `/qualia-plan 1`
|
|
389
|
+
`/qualia-new --quick` still runs the 4-phase flat wizard for trivial projects (landing pages with 1-2 sections, throwaway prototypes). Creates PROJECT.md + a simplified ROADMAP.md + DESIGN.md + STATE.md. No JOURNEY.md, no research, no multi-milestone. Routes to `/qualia-plan 1`.
|
|
457
390
|
|
|
458
|
-
|
|
459
|
-
Do NOT use `--quick` for: client projects, anything with compliance/regulatory stakes, anything longer than 1 week.
|
|
391
|
+
Do NOT use `--quick` for: client projects, anything with compliance stakes, anything longer than one week.
|
|
460
392
|
|
|
461
393
|
## Rules
|
|
462
394
|
|
|
463
|
-
1. **
|
|
464
|
-
2. **
|
|
465
|
-
3. **
|
|
466
|
-
4. **
|
|
467
|
-
5. **
|
|
468
|
-
6. **
|
|
395
|
+
1. **Research runs automatically.** No permission ask. Only `--quick` skips it. This is a v4 invariant.
|
|
396
|
+
2. **The journey includes Handoff.** Every project's final milestone is literally named "Handoff" with 4 standard phases. The roadmapper enforces this.
|
|
397
|
+
3. **Single approval gate.** One gate for the whole journey. Not per-milestone, not per-phase.
|
|
398
|
+
4. **Milestone count: 2-5.** Hard floor 2, hard ceiling 5. Bigger projects defer remainder to post-handoff v2.
|
|
399
|
+
5. **Milestone 1 is fully detailed.** M2..M{N-1} are sketched. Detail fills in when each milestone opens.
|
|
400
|
+
6. **STATE.md through state.js.** Never edit STATE.md or tracking.json by hand.
|
|
401
|
+
7. **Inline skill invocation.** When Step 0.5 offers `/qualia-map`, invoke it inline — don't exit.
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qualia-optimize
|
|
3
3
|
description: "Deep optimization pass — reads .planning/ AND codebase to find performance, design, UI, backend, and frontend issues. Spawns parallel specialist agents. Use this skill whenever the user says 'optimize', 'optimization pass', 'find issues', 'qualia-optimize', 'deep optimize', 'performance audit', 'design alignment check', 'speed up', 'slow', 'bundle size', or wants a comprehensive quality sweep. Supports --perf, --ui, --backend, --alignment, --fix flags."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Agent
|
|
4
12
|
---
|
|
5
13
|
|
|
6
14
|
# Qualia Optimize — Deep Codebase + Planning Optimization
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qualia-pause
|
|
3
3
|
description: "Save session context for seamless handoff. Creates .continue-here.md so the next session picks up exactly where you left off. Trigger on 'pause', 'stop for now', 'save progress', 'continue later', 'pick up tomorrow'."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
4
9
|
---
|
|
5
10
|
|
|
6
11
|
# /qualia-pause — Session Handoff
|