qualia-framework-v2 2.0.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 +63 -0
- package/README.md +48 -0
- package/agents/builder.md +75 -0
- package/agents/planner.md +102 -0
- package/agents/verifier.md +118 -0
- package/bin/install.js +248 -0
- package/guide.md +63 -0
- package/hooks/block-env-edit.sh +8 -0
- package/hooks/branch-guard.sh +13 -0
- package/hooks/pre-compact.sh +11 -0
- package/hooks/pre-deploy-gate.sh +32 -0
- package/hooks/pre-push.sh +29 -0
- package/hooks/session-start.sh +17 -0
- package/install.sh +223 -0
- package/package.json +40 -0
- package/rules/deployment.md +30 -0
- package/rules/frontend.md +33 -0
- package/rules/security.md +12 -0
- package/skills/qualia/SKILL.md +54 -0
- package/skills/qualia-build/SKILL.md +93 -0
- package/skills/qualia-handoff/SKILL.md +68 -0
- package/skills/qualia-new/SKILL.md +282 -0
- package/skills/qualia-plan/SKILL.md +84 -0
- package/skills/qualia-polish/SKILL.md +57 -0
- package/skills/qualia-quick/SKILL.md +25 -0
- package/skills/qualia-report/SKILL.md +74 -0
- package/skills/qualia-ship/SKILL.md +91 -0
- package/skills/qualia-verify/SKILL.md +79 -0
- package/statusline.sh +93 -0
- package/templates/plan.md +28 -0
- package/templates/project.md +22 -0
- package/templates/state.md +27 -0
- package/templates/tracking.json +19 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-handoff
|
|
3
|
+
description: "Client delivery — credentials, handover doc, final update. Use after shipping."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-handoff — Client Delivery
|
|
7
|
+
|
|
8
|
+
Prepare and deliver the finished project to the client.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
◆ QUALIA ► HANDOFF
|
|
14
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 1. Generate Handover Doc
|
|
18
|
+
|
|
19
|
+
Create `.planning/HANDOFF.md`:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
# {Project Name} — Handover
|
|
23
|
+
|
|
24
|
+
## What Was Built
|
|
25
|
+
{3-5 bullet summary of delivered features}
|
|
26
|
+
|
|
27
|
+
## Access
|
|
28
|
+
- **URL:** {production URL}
|
|
29
|
+
- **Admin login:** {credentials or where to find them}
|
|
30
|
+
- **Supabase:** {project ref}
|
|
31
|
+
- **GitHub:** {repo URL}
|
|
32
|
+
- **Vercel:** {project URL}
|
|
33
|
+
|
|
34
|
+
## How to Use
|
|
35
|
+
{Brief walkthrough of the main user flows}
|
|
36
|
+
|
|
37
|
+
## Known Limitations
|
|
38
|
+
{Anything not in scope or deferred}
|
|
39
|
+
|
|
40
|
+
## Maintenance
|
|
41
|
+
- Hosting: Vercel (auto-deploys from main branch)
|
|
42
|
+
- Database: Supabase ({region})
|
|
43
|
+
- Domain: {domain provider if applicable}
|
|
44
|
+
|
|
45
|
+
## Support
|
|
46
|
+
Contact: Fawzi Goussous — fawzi@qualiasolutions.net
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 2. Commit
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
git add .planning/HANDOFF.md
|
|
53
|
+
git commit -m "docs: client handoff document"
|
|
54
|
+
git push
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Update State
|
|
58
|
+
|
|
59
|
+
Update STATE.md: "handed off"
|
|
60
|
+
Update tracking.json: status → "handed_off"
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
◆ QUALIA ► DELIVERED ✓
|
|
64
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
|
+
{Project Name} handed off to {client}.
|
|
66
|
+
Don't forget: /qualia-report
|
|
67
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
68
|
+
```
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-new
|
|
3
|
+
description: "Set up a new project from scratch — interactive wizard with step-by-step questioning. Use when starting any new client project."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-new — New Project Wizard
|
|
7
|
+
|
|
8
|
+
Interactive project setup. Ask one step at a time using AskUserQuestion. Never dump all questions at once.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
### Step 0. Banner
|
|
13
|
+
|
|
14
|
+
Print this FIRST, before anything else:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
◆ QUALIA ► NEW PROJECT
|
|
18
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Then say: **"Let's build something. Tell me what you're making."**
|
|
22
|
+
|
|
23
|
+
Wait for the user's free-text answer. Do NOT use AskUserQuestion here — let them talk naturally.
|
|
24
|
+
|
|
25
|
+
### Step 1. Project Type
|
|
26
|
+
|
|
27
|
+
After they describe what they want, use AskUserQuestion:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
question: "What type of project is this?"
|
|
31
|
+
header: "Type"
|
|
32
|
+
options:
|
|
33
|
+
- label: "Website / Web App"
|
|
34
|
+
description: "Landing page, SaaS, dashboard, marketing site, portal"
|
|
35
|
+
- label: "AI Agent"
|
|
36
|
+
description: "Chatbot, AI assistant, tool-calling agent, RAG system"
|
|
37
|
+
- label: "Voice Agent"
|
|
38
|
+
description: "Phone agent, VAPI, Retell AI, ElevenLabs call bot"
|
|
39
|
+
- label: "Mobile App"
|
|
40
|
+
description: "iOS, Android, React Native, Expo"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Step 2. Core Features
|
|
44
|
+
|
|
45
|
+
Based on their description, use AskUserQuestion with multiSelect: true:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
question: "Which features do you need?"
|
|
49
|
+
header: "Features"
|
|
50
|
+
multiSelect: true
|
|
51
|
+
options (pick 4 most relevant from):
|
|
52
|
+
- "Auth & accounts" — Login, signup, user management
|
|
53
|
+
- "Database & CRUD" — Data storage, tables, admin panel
|
|
54
|
+
- "Payments" — Stripe, subscriptions, checkout
|
|
55
|
+
- "AI / LLM" — Chat, completions, embeddings, RAG
|
|
56
|
+
- "Voice calls" — Inbound/outbound calls, IVR, telephony
|
|
57
|
+
- "Email / notifications" — Transactional email, SMS, push
|
|
58
|
+
- "File uploads" — Images, documents, S3/storage
|
|
59
|
+
- "Admin dashboard" — Internal tools, analytics, reporting
|
|
60
|
+
- "API / integrations" — Third-party APIs, webhooks, CRM sync
|
|
61
|
+
- "Real-time" — WebSockets, live updates, presence
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Pick the 4 options most relevant to what they described. Always offer the most likely ones.
|
|
65
|
+
|
|
66
|
+
### Step 3. Design Direction
|
|
67
|
+
|
|
68
|
+
Use AskUserQuestion with previews:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
question: "What's the design vibe?"
|
|
72
|
+
header: "Design"
|
|
73
|
+
options:
|
|
74
|
+
- label: "Dark & Bold"
|
|
75
|
+
description: "Dark backgrounds, neon accents, strong contrast"
|
|
76
|
+
preview: |
|
|
77
|
+
┌──────────────────────────────┐
|
|
78
|
+
│ ██████████████████████████ │
|
|
79
|
+
│ ██ DARK BG + TEAL GLOW ██ │
|
|
80
|
+
│ ██████████████████████████ │
|
|
81
|
+
│ │
|
|
82
|
+
│ ░░░░░░░░░░░░░░░░░░░░░░░░ │
|
|
83
|
+
│ Sharp cards, glass effects │
|
|
84
|
+
│ Neon borders, deep shadows │
|
|
85
|
+
└──────────────────────────────┘
|
|
86
|
+
|
|
87
|
+
- label: "Clean & Minimal"
|
|
88
|
+
description: "White space, subtle shadows, refined typography"
|
|
89
|
+
preview: |
|
|
90
|
+
┌──────────────────────────────┐
|
|
91
|
+
│ │
|
|
92
|
+
│ Clean & Minimal │
|
|
93
|
+
│ ───────────── │
|
|
94
|
+
│ │
|
|
95
|
+
│ Generous whitespace │
|
|
96
|
+
│ Subtle borders │
|
|
97
|
+
│ Light, airy feel │
|
|
98
|
+
└──────────────────────────────┘
|
|
99
|
+
|
|
100
|
+
- label: "Colorful & Playful"
|
|
101
|
+
description: "Gradients, rounded shapes, vibrant palette"
|
|
102
|
+
preview: |
|
|
103
|
+
┌──────────────────────────────┐
|
|
104
|
+
│ ◆ ● ▲ ■ COLORFUL │
|
|
105
|
+
│ │
|
|
106
|
+
│ ╭──────╮ ╭──────╮ │
|
|
107
|
+
│ │ Card │ │ Card │ │
|
|
108
|
+
│ ╰──────╯ ╰──────╯ │
|
|
109
|
+
│ Rounded, gradient fills │
|
|
110
|
+
│ Fun, approachable │
|
|
111
|
+
└──────────────────────────────┘
|
|
112
|
+
|
|
113
|
+
- label: "Corporate / Professional"
|
|
114
|
+
description: "Structured layouts, trust signals, enterprise feel"
|
|
115
|
+
preview: |
|
|
116
|
+
┌──────────────────────────────┐
|
|
117
|
+
│ LOGO Nav Nav [CTA] │
|
|
118
|
+
│ ──────────────────────── │
|
|
119
|
+
│ ┌────┐ ┌────┐ ┌────┐ │
|
|
120
|
+
│ │Feat│ │Feat│ │Feat│ │
|
|
121
|
+
│ └────┘ └────┘ └────┘ │
|
|
122
|
+
│ Structured, trustworthy │
|
|
123
|
+
│ Clear hierarchy │
|
|
124
|
+
└──────────────────────────────┘
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Step 4. Stack Confirmation
|
|
128
|
+
|
|
129
|
+
Use AskUserQuestion:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
question: "Stack — go with the Qualia default?"
|
|
133
|
+
header: "Stack"
|
|
134
|
+
options:
|
|
135
|
+
- label: "Qualia Stack (Recommended)"
|
|
136
|
+
description: "Next.js 16 + React 19 + TypeScript + Supabase + Vercel"
|
|
137
|
+
- label: "Qualia + extras"
|
|
138
|
+
description: "Default stack plus additional integrations (Stripe, VAPI, etc.)"
|
|
139
|
+
- label: "Custom stack"
|
|
140
|
+
description: "I have specific tech requirements"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
If "Custom stack" — ask what they need.
|
|
144
|
+
If "Qualia + extras" — ask which integrations.
|
|
145
|
+
|
|
146
|
+
### Step 5. Scope & Client
|
|
147
|
+
|
|
148
|
+
Use AskUserQuestion:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
question: "Is this a client project or internal?"
|
|
152
|
+
header: "Client"
|
|
153
|
+
options:
|
|
154
|
+
- label: "Client project"
|
|
155
|
+
description: "External client — will need handoff and credentials"
|
|
156
|
+
- label: "Internal / Qualia"
|
|
157
|
+
description: "Our own product or tool"
|
|
158
|
+
- label: "Personal / Side project"
|
|
159
|
+
description: "No formal client"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
If client project, ask: **"What's the client's name?"** (free text, no AskUserQuestion)
|
|
163
|
+
|
|
164
|
+
### Step 6. Confirm & Scaffold
|
|
165
|
+
|
|
166
|
+
Present a summary:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
◆ QUALIA ► PROJECT SUMMARY
|
|
170
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
171
|
+
|
|
172
|
+
Project {name}
|
|
173
|
+
Type {type}
|
|
174
|
+
Client {client}
|
|
175
|
+
Stack {stack}
|
|
176
|
+
Features {feature list}
|
|
177
|
+
Design {design direction}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Use AskUserQuestion:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
question: "Ready to scaffold?"
|
|
184
|
+
header: "Confirm"
|
|
185
|
+
options:
|
|
186
|
+
- label: "Let's go"
|
|
187
|
+
description: "Create the project now"
|
|
188
|
+
- label: "Change something"
|
|
189
|
+
description: "Go back and adjust"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Step 7. Execute Scaffold
|
|
193
|
+
|
|
194
|
+
On confirmation, scaffold:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
mkdir -p .planning
|
|
198
|
+
|
|
199
|
+
# Initialize git if needed
|
|
200
|
+
git init 2>/dev/null
|
|
201
|
+
|
|
202
|
+
# Create Next.js project (if website/ai-agent)
|
|
203
|
+
npx create-next-app@latest . --typescript --tailwind --eslint --app --src-dir=false --import-alias="@/*" --no-git
|
|
204
|
+
|
|
205
|
+
# Or Expo project (if mobile-app)
|
|
206
|
+
# npx create-expo-app . --template blank-typescript
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Create GitHub repo:
|
|
210
|
+
```bash
|
|
211
|
+
gh repo create {project-name} --private --source=. --push
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Link Vercel:
|
|
215
|
+
```bash
|
|
216
|
+
vercel link
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Create Supabase project (via MCP or manual).
|
|
220
|
+
|
|
221
|
+
### Step 8. Create Planning Files
|
|
222
|
+
|
|
223
|
+
**`.planning/PROJECT.md`** — use template, fill from answers:
|
|
224
|
+
- Client, description, requirements (from features), out of scope, stack, design direction, decisions
|
|
225
|
+
|
|
226
|
+
**`.planning/STATE.md`** — use template from `templates/state.md`
|
|
227
|
+
|
|
228
|
+
**`.planning/tracking.json`** — use template, fill in project/client/assigned_to
|
|
229
|
+
|
|
230
|
+
### Step 9. Create Roadmap
|
|
231
|
+
|
|
232
|
+
Based on project type and features, create phases in STATE.md:
|
|
233
|
+
|
|
234
|
+
**Typical website:**
|
|
235
|
+
1. Foundation — Auth, database schema, base layout
|
|
236
|
+
2. Core — Main features
|
|
237
|
+
3. Content — Pages, copy, media
|
|
238
|
+
4. Polish — Design, animations, responsive
|
|
239
|
+
|
|
240
|
+
**Typical AI agent:**
|
|
241
|
+
1. Foundation — Auth, database, API routes
|
|
242
|
+
2. Agent — AI logic, prompts, tool calling
|
|
243
|
+
3. Interface — Chat UI, streaming, history
|
|
244
|
+
4. Polish — Error handling, rate limiting, monitoring
|
|
245
|
+
|
|
246
|
+
**Typical voice agent:**
|
|
247
|
+
1. Foundation — Webhook handler, Supabase, auth
|
|
248
|
+
2. Voice — VAPI/Retell config, call flow, prompts
|
|
249
|
+
3. Integration — CRM sync, logging, analytics
|
|
250
|
+
4. Polish — Latency optimization, error handling
|
|
251
|
+
|
|
252
|
+
Present the roadmap. Use AskUserQuestion:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
question: "Does this roadmap look right?"
|
|
256
|
+
header: "Roadmap"
|
|
257
|
+
options:
|
|
258
|
+
- label: "Looks good"
|
|
259
|
+
description: "Lock it in and start planning Phase 1"
|
|
260
|
+
- label: "Adjust phases"
|
|
261
|
+
description: "I want to change the phase breakdown"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Step 10. Commit & Output
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
git add .planning/
|
|
268
|
+
git commit -m "init: project setup with planning files"
|
|
269
|
+
git push -u origin main
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
◆ QUALIA ► PROJECT READY
|
|
274
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
275
|
+
|
|
276
|
+
{Project Name}
|
|
277
|
+
Type {type}
|
|
278
|
+
Phases {N}
|
|
279
|
+
Client {client}
|
|
280
|
+
|
|
281
|
+
→ Run: /qualia-plan 1
|
|
282
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-plan
|
|
3
|
+
description: "Plan the current phase — spawns planner agent in fresh context. Use when ready to plan a phase."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-plan — Plan a Phase
|
|
7
|
+
|
|
8
|
+
Spawn a planner agent to break the current phase into executable tasks.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
`/qualia-plan` — plan the next unplanned phase
|
|
12
|
+
`/qualia-plan {N}` — plan specific phase
|
|
13
|
+
`/qualia-plan {N} --gaps` — plan fixes for verification failures
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
### 1. Determine Phase
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cat .planning/STATE.md 2>/dev/null
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If no phase number given, use the current phase from STATE.md.
|
|
24
|
+
|
|
25
|
+
### 2. Spawn Planner (Fresh Context)
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
◆ QUALIA ► PLANNING Phase {N}
|
|
29
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
30
|
+
Spawning planner...
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Spawn a subagent with `agents/planner.md` instructions:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Agent(prompt="
|
|
37
|
+
Read your role: @agents/planner.md
|
|
38
|
+
|
|
39
|
+
Project context:
|
|
40
|
+
@.planning/PROJECT.md
|
|
41
|
+
|
|
42
|
+
Current state:
|
|
43
|
+
@.planning/STATE.md
|
|
44
|
+
|
|
45
|
+
Phase {N} goal: {goal from STATE.md roadmap}
|
|
46
|
+
Phase {N} success criteria: {criteria from STATE.md}
|
|
47
|
+
|
|
48
|
+
{If --gaps: Also read @.planning/phase-{N}-verification.md for failures to fix}
|
|
49
|
+
|
|
50
|
+
Create the plan file at .planning/phase-{N}-plan.md
|
|
51
|
+
", subagent_type="general-purpose", description="Plan phase {N}")
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 3. Review Plan
|
|
55
|
+
|
|
56
|
+
Read the generated plan. Present to employee:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
◆ Phase {N} Plan
|
|
60
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
+
|
|
62
|
+
Tasks: {count}
|
|
63
|
+
Waves: {count}
|
|
64
|
+
|
|
65
|
+
Wave 1 (parallel):
|
|
66
|
+
Task 1: {title}
|
|
67
|
+
Task 2: {title}
|
|
68
|
+
|
|
69
|
+
Wave 2 (after Wave 1):
|
|
70
|
+
Task 3: {title}
|
|
71
|
+
|
|
72
|
+
Approve? (yes / adjust)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
If "adjust" — get feedback, re-spawn planner with revision context.
|
|
76
|
+
|
|
77
|
+
### 4. Update State
|
|
78
|
+
|
|
79
|
+
Update STATE.md: status → "planned"
|
|
80
|
+
Update tracking.json: status → "planned"
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
→ Run: /qualia-build {N}
|
|
84
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-polish
|
|
3
|
+
description: "Design and UX pass — critique, polish, harden. Run after all phases are verified."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-polish — Design Pass
|
|
7
|
+
|
|
8
|
+
Run after all feature phases are verified. Makes it look production-ready.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
◆ QUALIA ► POLISHING
|
|
14
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 1. Critique
|
|
18
|
+
Review the entire UI. Check:
|
|
19
|
+
- Visual hierarchy and information architecture
|
|
20
|
+
- Color consistency, contrast, readability
|
|
21
|
+
- Spacing and alignment
|
|
22
|
+
- Component consistency across pages
|
|
23
|
+
|
|
24
|
+
### 2. Polish
|
|
25
|
+
Fix what critique found:
|
|
26
|
+
- Alignment and spacing issues
|
|
27
|
+
- Font consistency
|
|
28
|
+
- Color palette adherence (Qualia teal brand)
|
|
29
|
+
- Transition and hover state consistency
|
|
30
|
+
|
|
31
|
+
### 3. Harden
|
|
32
|
+
Edge cases and robustness:
|
|
33
|
+
- Empty states (no data, loading, error)
|
|
34
|
+
- Text overflow, long content
|
|
35
|
+
- Mobile responsive (check all breakpoints)
|
|
36
|
+
- Error messages (user-friendly, not technical)
|
|
37
|
+
|
|
38
|
+
### 4. Qualia Frontend Rules
|
|
39
|
+
- Distinctive fonts (not Inter/Arial)
|
|
40
|
+
- Cohesive color palette with sharp accents
|
|
41
|
+
- CSS transitions, staggered animations
|
|
42
|
+
- Full-width layouts, no hardcoded max-width caps
|
|
43
|
+
- No card grids, no generic heroes, no blue-purple gradients
|
|
44
|
+
|
|
45
|
+
### 5. Commit & Update
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
git add {changed files}
|
|
49
|
+
git commit -m "polish: design and UX pass"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Update STATE.md: "polish complete"
|
|
53
|
+
Update tracking.json: status → "polished"
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
→ Run: /qualia-ship
|
|
57
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-quick
|
|
3
|
+
description: "Fast path for small tasks — bug fixes, tweaks, hot fixes. Skips full phase planning."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-quick — Quick Task
|
|
7
|
+
|
|
8
|
+
For tasks under 30 minutes that don't need full phase planning. Bug fixes, small features, tweaks.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
1. **Understand:** Ask what needs to be done (or read the instruction)
|
|
13
|
+
2. **Build:** Do it directly — read before write, MVP only
|
|
14
|
+
3. **Verify:** Run `npx tsc --noEmit`, test locally
|
|
15
|
+
4. **Commit:** Atomic commit with clear message
|
|
16
|
+
5. **Update:** Update tracking.json notes field
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
git add {specific files}
|
|
20
|
+
git commit -m "fix: {description}"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
No plan file. No subagents. Just build and ship.
|
|
24
|
+
|
|
25
|
+
Update STATE.md last activity. Update tracking.json notes.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-report
|
|
3
|
+
description: "Generate session report as DOCX and auto-upload to ERP. Mandatory before clock-out."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-report — Session Report
|
|
7
|
+
|
|
8
|
+
Generate a concise DOCX report of what was done. Auto-uploads to the ERP.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
### 1. Gather Data
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
echo "---COMMITS---"
|
|
16
|
+
SINCE="8 hours ago"
|
|
17
|
+
git log --oneline --since="$SINCE" 2>/dev/null | head -20
|
|
18
|
+
echo "---STATS---"
|
|
19
|
+
echo "COUNT:$(git log --oneline --since="$SINCE" 2>/dev/null | wc -l)"
|
|
20
|
+
echo "---PROJECT---"
|
|
21
|
+
echo "DIR:$(basename $(pwd))"
|
|
22
|
+
echo "BRANCH:$(git branch --show-current 2>/dev/null)"
|
|
23
|
+
echo "---STATE---"
|
|
24
|
+
head -20 .planning/STATE.md 2>/dev/null || echo "no-state"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 2. Synthesize
|
|
28
|
+
|
|
29
|
+
Build a concise summary:
|
|
30
|
+
- **What was done:** 3-6 bullet points. Start with verbs (Built, Fixed, Added). Group related commits.
|
|
31
|
+
- **Blockers:** Only if something is actually blocked.
|
|
32
|
+
- **Next:** 1-3 clear next actions.
|
|
33
|
+
|
|
34
|
+
### 3. Generate DOCX
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
mkdir -p .planning/reports
|
|
38
|
+
|
|
39
|
+
cat <<'REPORT_JSON' | python3 ~/.claude/qualia-framework/bin/generate-report-docx.py ".planning/reports/report-$(date +%Y-%m-%d-%H%M).docx"
|
|
40
|
+
{
|
|
41
|
+
"project": "{project-name}",
|
|
42
|
+
"user": "{git user.name}",
|
|
43
|
+
"date": "{YYYY-MM-DD}",
|
|
44
|
+
"time": "{HH:MM}",
|
|
45
|
+
"branch": "{branch}",
|
|
46
|
+
"phase": "{Phase N — name}",
|
|
47
|
+
"done": ["{accomplishment 1}", "{accomplishment 2}"],
|
|
48
|
+
"blockers": [],
|
|
49
|
+
"next": ["{next action 1}"]
|
|
50
|
+
}
|
|
51
|
+
REPORT_JSON
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 4. Commit & Upload
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
REPORT_FILE=$(ls -t .planning/reports/report-*.docx 2>/dev/null | head -1)
|
|
58
|
+
git add "$REPORT_FILE"
|
|
59
|
+
git commit -m "report: session $(date +%Y-%m-%d)"
|
|
60
|
+
git push
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Auto-upload to ERP:
|
|
64
|
+
```bash
|
|
65
|
+
curl -s -X POST "https://portal.qualiasolutions.net/api/claude/report-upload" \
|
|
66
|
+
-H "x-api-key: $CLAUDE_API_KEY" \
|
|
67
|
+
-F "file=@$REPORT_FILE" \
|
|
68
|
+
-F "employee_email=$(git config user.email)" \
|
|
69
|
+
-F "project_name=$(basename $(pwd))"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Employee cannot skip this. Report goes directly to the ERP.
|
|
73
|
+
|
|
74
|
+
Update STATE.md last activity.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-ship
|
|
3
|
+
description: "Deploy to production — quality gates, commit, push, deploy, verify. Use when ready to go live."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-ship — Deploy
|
|
7
|
+
|
|
8
|
+
Full deployment pipeline with quality gates.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
◆ QUALIA ► SHIPPING
|
|
14
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 1. Quality Gates
|
|
18
|
+
|
|
19
|
+
Run in sequence. Auto-fix failures (up to 2 attempts).
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx tsc --noEmit # TypeScript — must pass
|
|
23
|
+
npx eslint . --max-warnings 0 # Lint — auto-fix first
|
|
24
|
+
npm run build # Build — must succeed
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
On failure:
|
|
28
|
+
1. Summarize what failed in plain language
|
|
29
|
+
2. Auto-fix
|
|
30
|
+
3. Re-run the gate
|
|
31
|
+
4. If still failing after 2 attempts: tell the employee, suggest `/qualia-debug`
|
|
32
|
+
|
|
33
|
+
### 2. Security Check
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# service_role in client code?
|
|
37
|
+
grep -r "service_role" app/ components/ src/ 2>/dev/null | grep -v node_modules | grep -v ".server."
|
|
38
|
+
# Should be ZERO matches
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. Git
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
git add {specific changed files}
|
|
45
|
+
git commit -m "ship: {project name} production deploy"
|
|
46
|
+
git push
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Employee stays on feature branch. Never push to main.
|
|
50
|
+
|
|
51
|
+
### 4. Deploy
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
vercel --prod # Website/AI agent
|
|
55
|
+
# OR
|
|
56
|
+
supabase functions deploy # Edge functions
|
|
57
|
+
# OR
|
|
58
|
+
wrangler deploy # Cloudflare Workers
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 5. Post-Deploy Verification
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# HTTP 200
|
|
65
|
+
curl -s -o /dev/null -w "%{http_code}" {domain}
|
|
66
|
+
|
|
67
|
+
# Latency under 500ms
|
|
68
|
+
curl -s -o /dev/null -w "%{time_total}" {domain}
|
|
69
|
+
|
|
70
|
+
# Auth endpoint responds
|
|
71
|
+
curl -s -o /dev/null -w "%{http_code}" {domain}/api/auth/callback
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 6. Report
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
◆ QUALIA ► SHIPPED ✓
|
|
78
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
|
+
URL {production url}
|
|
80
|
+
Status HTTP 200 ✓
|
|
81
|
+
Latency {time}ms ✓
|
|
82
|
+
Auth ✓
|
|
83
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Update STATE.md: "shipped"
|
|
87
|
+
Update tracking.json: status → "shipped", deployed_url
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
→ Run: /qualia-handoff
|
|
91
|
+
```
|