qualia-framework 2.1.6 → 2.2.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/framework/.claudeignore +51 -0
- package/framework/CLAUDE.md +54 -0
- package/framework/MCP_SETUP.md +229 -0
- package/framework/agents/architecture-strategist.md +1 -1
- package/framework/agents/code-simplicity-reviewer.md +1 -1
- package/framework/agents/kieran-typescript-reviewer.md +1 -1
- package/framework/agents/performance-oracle.md +1 -1
- package/framework/agents/qualia-codebase-mapper.md +1 -0
- package/framework/agents/qualia-debugger.md +1 -0
- package/framework/agents/qualia-executor.md +1 -0
- package/framework/agents/qualia-integration-checker.md +1 -0
- package/framework/agents/qualia-phase-researcher.md +1 -0
- package/framework/agents/qualia-plan-checker.md +1 -0
- package/framework/agents/qualia-planner.md +1 -0
- package/framework/agents/qualia-project-researcher.md +1 -0
- package/framework/agents/qualia-research-synthesizer.md +1 -0
- package/framework/agents/qualia-roadmapper.md +1 -0
- package/framework/agents/qualia-verifier.md +1 -0
- package/framework/agents/security-auditor.md +72 -0
- package/framework/agents/team-orchestrator.md +1 -0
- package/framework/agents/teams/framework-audit-team.md +66 -0
- package/framework/agents/teams/review-team.md +11 -3
- package/framework/hooks/block-env-edit.sh +4 -8
- package/framework/hooks/branch-guard.sh +2 -5
- package/framework/hooks/confirm-delete.sh +7 -4
- package/framework/hooks/migration-validate.sh +9 -8
- package/framework/hooks/notification-speak.sh +1 -1
- package/framework/hooks/pre-commit.sh +22 -10
- package/framework/hooks/pre-deploy-gate.sh +5 -6
- package/framework/hooks/retention-cleanup.sh +11 -2
- package/framework/hooks/save-session-state.sh +22 -0
- package/framework/hooks/session-context-loader.sh +27 -29
- package/framework/hooks/session-learn.sh +6 -5
- package/framework/hooks/skill-announce.sh +109 -6
- package/framework/hooks/tool-error-announce.sh +16 -7
- package/framework/install.ps1 +323 -0
- package/framework/install.sh +306 -0
- package/framework/qualia-engine/references/completion-checklists.md +359 -0
- package/framework/rules/deployment.md +4 -3
- package/framework/rules/speed.md +4 -0
- package/framework/skills/animate/SKILL.md +1 -1
- package/framework/skills/bolder/SKILL.md +1 -1
- package/framework/skills/colorize/SKILL.md +1 -1
- package/framework/skills/deep-research/SKILL.md +19 -13
- package/framework/skills/delight/SKILL.md +1 -1
- package/framework/skills/design-quieter/SKILL.md +1 -1
- package/framework/skills/distill/SKILL.md +1 -1
- package/framework/skills/qualia-audit-milestone/SKILL.md +1 -1
- package/framework/skills/qualia-complete-milestone/SKILL.md +2 -2
- package/framework/skills/qualia-design/SKILL.md +2 -2
- package/framework/skills/qualia-framework-audit/SKILL.md +604 -0
- package/framework/skills/qualia-help/SKILL.md +11 -1
- package/framework/skills/qualia-pause-work/SKILL.md +2 -2
- package/framework/skills/qualia-review/SKILL.md +1 -1
- package/framework/skills/qualia-start/SKILL.md +8 -1
- package/framework/skills/qualia-verify-work/SKILL.md +1 -1
- package/framework/skills/ship/SKILL.md +1 -1
- package/framework/statusline-command.sh +5 -6
- package/framework/teams/default/inboxes/plan-04.json +9 -0
- package/package.json +1 -1
- package/framework/askpass.sh +0 -2
- package/framework/commands/design.md +0 -53
- package/framework/commands/quick-db.md +0 -22
- package/framework/config/retention.json +0 -35
- package/framework/core/PRINCIPLES.md +0 -77
- package/framework/knowledge/claudecode-bible.md +0 -1384
- package/framework/knowledge/client-prefs.md +0 -22
- package/framework/knowledge/common-fixes.md +0 -25
- package/framework/knowledge/deployment-map.md +0 -35
- package/framework/knowledge/email-signature.html +0 -1
- package/framework/knowledge/employees.md +0 -8
- package/framework/knowledge/learned-patterns.md +0 -51
- package/framework/knowledge/optimization-research-2026.md +0 -137
- package/framework/knowledge/qualia-context.md +0 -67
- package/framework/knowledge/supabase-patterns.md +0 -50
- package/framework/knowledge/voice-agent-patterns.md +0 -46
- package/framework/statusline-command.js +0 -111
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# Qualia Project Completion Checklists
|
|
2
|
+
|
|
3
|
+
> **Every project must pass ALL items in its checklist before being considered complete.**
|
|
4
|
+
> Copy the relevant checklist into your project's root as `COMPLETION_CHECKLIST.md` and check items off as you go.
|
|
5
|
+
> Manager reviews the checklist before sign-off.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Universal Checklist (ALL project types)
|
|
10
|
+
|
|
11
|
+
### 1. Client & Requirements
|
|
12
|
+
|
|
13
|
+
- [ ] All features from the project brief are implemented
|
|
14
|
+
- [ ] Client has reviewed and approved the work
|
|
15
|
+
- [ ] No outstanding client feedback unaddressed
|
|
16
|
+
- [ ] Project brief saved in `Knowledge Base/[client]/PROJECT_BRIEF.md`
|
|
17
|
+
|
|
18
|
+
### 2. Code Quality
|
|
19
|
+
|
|
20
|
+
- [ ] `npx tsc --noEmit` passes with zero errors
|
|
21
|
+
- [ ] `npm run lint` passes with zero warnings
|
|
22
|
+
- [ ] `npm run build` completes successfully
|
|
23
|
+
- [ ] No `console.log` statements left in production code
|
|
24
|
+
- [ ] No `TODO` or `FIXME` comments left unresolved
|
|
25
|
+
- [ ] No commented-out code blocks
|
|
26
|
+
- [ ] CLAUDE.md is complete and accurate (stack, structure, commands, env vars)
|
|
27
|
+
- [ ] README.md has setup instructions
|
|
28
|
+
|
|
29
|
+
### 3. Security
|
|
30
|
+
|
|
31
|
+
- [ ] No API keys or secrets hardcoded in source code
|
|
32
|
+
- [ ] No `.env` files committed to git (`git log --all --full-history -- "*.env*"` returns nothing)
|
|
33
|
+
- [ ] `.env.example` exists with all required variable names (no values)
|
|
34
|
+
- [ ] All environment variables set in deployment platform (Vercel/Cloudflare)
|
|
35
|
+
- [ ] No `eval()` or `dangerouslySetInnerHTML` used
|
|
36
|
+
- [ ] Server-side auth checks on all mutations (never trust client)
|
|
37
|
+
- [ ] CORS configured correctly (not `*` in production)
|
|
38
|
+
|
|
39
|
+
### 4. Database (if applicable)
|
|
40
|
+
|
|
41
|
+
- [ ] RLS (Row Level Security) enabled on EVERY table
|
|
42
|
+
- [ ] RLS policies written and tested for each table
|
|
43
|
+
- [ ] No `service_role` key used in client-side code
|
|
44
|
+
- [ ] Supabase client created from `lib/supabase/server.ts` for mutations
|
|
45
|
+
- [ ] TypeScript types generated from database schema
|
|
46
|
+
- [ ] Migrations committed to `supabase/migrations/`
|
|
47
|
+
- [ ] Indexes on frequently queried columns
|
|
48
|
+
|
|
49
|
+
### 5. Testing
|
|
50
|
+
|
|
51
|
+
- [ ] Manual testing of all features completed
|
|
52
|
+
- [ ] All forms validate correctly (invalid input rejected, valid input accepted)
|
|
53
|
+
- [ ] Error states tested (network failure, invalid data, unauthorized access)
|
|
54
|
+
- [ ] Mobile responsive tested on real device or DevTools
|
|
55
|
+
- [ ] Cross-browser tested (Chrome + Safari minimum)
|
|
56
|
+
|
|
57
|
+
### 6. Performance
|
|
58
|
+
|
|
59
|
+
- [ ] `npm run build` bundle size reasonable (no massive chunks)
|
|
60
|
+
- [ ] Images optimized (WebP/AVIF, proper sizing, lazy loading)
|
|
61
|
+
- [ ] No N+1 database queries
|
|
62
|
+
- [ ] API responses under 500ms for key endpoints
|
|
63
|
+
- [ ] Fonts loaded efficiently (next/font or font-display: swap)
|
|
64
|
+
|
|
65
|
+
### 7. Deployment
|
|
66
|
+
|
|
67
|
+
- [ ] Project deployed to production (`vercel --prod` or `wrangler deploy`)
|
|
68
|
+
- [ ] Custom domain configured (if applicable)
|
|
69
|
+
- [ ] SSL certificate active and valid
|
|
70
|
+
- [ ] **HTTP 200** — Homepage loads: `curl -s -o /dev/null -w "%{http_code}" <URL>`
|
|
71
|
+
- [ ] **Auth flow** — Login/signup works end-to-end
|
|
72
|
+
- [ ] **Console clean** — No JavaScript errors in browser DevTools
|
|
73
|
+
- [ ] **Latency** — Key pages load under 3 seconds on mobile
|
|
74
|
+
- [ ] Project added to UptimeRobot monitoring
|
|
75
|
+
|
|
76
|
+
### 8. Handoff
|
|
77
|
+
|
|
78
|
+
- [ ] Client walkthrough/demo completed
|
|
79
|
+
- [ ] Client has access to all necessary accounts
|
|
80
|
+
- [ ] Documentation provided (how to use, how to update)
|
|
81
|
+
- [ ] Project registered in Qualia ERP (portal.qualiasolutions.net)
|
|
82
|
+
- [ ] Qualia context file updated (`~/.claude/knowledge/qualia-context.md`)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Website-Specific Checklist
|
|
87
|
+
|
|
88
|
+
> Applies to: Marketing websites, landing pages, portfolio sites
|
|
89
|
+
> Stack: React + Vite + Tailwind OR Next.js
|
|
90
|
+
|
|
91
|
+
### SEO
|
|
92
|
+
|
|
93
|
+
- [ ] Page titles set on every page (`<title>` or metadata)
|
|
94
|
+
- [ ] Meta descriptions set on every page (150-160 chars)
|
|
95
|
+
- [ ] Open Graph tags set (og:title, og:description, og:image)
|
|
96
|
+
- [ ] Favicon added (multiple sizes: 16x16, 32x32, apple-touch-icon)
|
|
97
|
+
- [ ] `robots.txt` exists and allows crawling
|
|
98
|
+
- [ ] `sitemap.xml` exists (or auto-generated)
|
|
99
|
+
- [ ] JSON-LD structured data on homepage (Organization or LocalBusiness)
|
|
100
|
+
- [ ] Heading hierarchy correct (single H1 per page, H2s, H3s in order)
|
|
101
|
+
- [ ] All images have `alt` text
|
|
102
|
+
- [ ] No broken links (test all navigation + footer links)
|
|
103
|
+
|
|
104
|
+
### Responsive Design
|
|
105
|
+
|
|
106
|
+
- [ ] Mobile (375px): All content readable, no horizontal scroll
|
|
107
|
+
- [ ] Tablet (768px): Layout adjusts properly
|
|
108
|
+
- [ ] Desktop (1280px): Content doesn't stretch beyond max-width
|
|
109
|
+
- [ ] Touch targets minimum 44x44px on mobile
|
|
110
|
+
- [ ] Font sizes readable without zooming on mobile (min 16px body)
|
|
111
|
+
|
|
112
|
+
### Visual Quality
|
|
113
|
+
|
|
114
|
+
- [ ] Distinctive fonts loaded (not Inter/Arial/system default)
|
|
115
|
+
- [ ] Brand colors applied consistently
|
|
116
|
+
- [ ] Hover effects on all interactive elements
|
|
117
|
+
- [ ] Animations are smooth (no jank, no layout shift)
|
|
118
|
+
- [ ] Dark mode works (if applicable)
|
|
119
|
+
- [ ] No orphaned text (single words on a line in headings)
|
|
120
|
+
|
|
121
|
+
### Accessibility
|
|
122
|
+
|
|
123
|
+
- [ ] Keyboard navigation works (Tab through all interactive elements)
|
|
124
|
+
- [ ] Focus indicators visible on all interactive elements
|
|
125
|
+
- [ ] Color contrast ratio minimum 4.5:1 for body text
|
|
126
|
+
- [ ] Forms have associated labels
|
|
127
|
+
- [ ] Skip-to-content link exists
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Platform with LLM Checklist
|
|
132
|
+
|
|
133
|
+
> Applies to: SaaS apps, dashboards, internal tools with AI/LLM integration
|
|
134
|
+
> Stack: Next.js + Supabase + AI SDK (Gemini/OpenAI/Anthropic)
|
|
135
|
+
|
|
136
|
+
### AI Safety & Prompt Security
|
|
137
|
+
|
|
138
|
+
- [ ] System prompt NOT exposed to users (not in client bundle, not in API response)
|
|
139
|
+
- [ ] User input sanitized before injection into prompts
|
|
140
|
+
- [ ] No `eval()` or dynamic code execution from AI output
|
|
141
|
+
- [ ] AI output validated/sanitized before rendering (no raw HTML)
|
|
142
|
+
- [ ] Token limits enforced on AI calls (`maxTokens` set)
|
|
143
|
+
- [ ] Rate limiting on AI endpoints (per-user, per-minute)
|
|
144
|
+
- [ ] Cost monitoring configured (track token usage, set alerts)
|
|
145
|
+
|
|
146
|
+
### AI Functionality
|
|
147
|
+
|
|
148
|
+
- [ ] AI responses stream correctly (no buffering, smooth display)
|
|
149
|
+
- [ ] Error handling for AI provider failures (timeout, rate limit, quota)
|
|
150
|
+
- [ ] Fallback behavior when AI is unavailable
|
|
151
|
+
- [ ] Conversation context managed properly (not exceeding window)
|
|
152
|
+
- [ ] AI tools/functions validated before execution
|
|
153
|
+
|
|
154
|
+
### Platform Features
|
|
155
|
+
|
|
156
|
+
- [ ] Authentication working (login, signup, logout, password reset)
|
|
157
|
+
- [ ] Authorization checked server-side on every mutation
|
|
158
|
+
- [ ] Multi-tenancy isolation (users can only see their own data)
|
|
159
|
+
- [ ] Server Actions return `ActionResult { success, error?, data? }`
|
|
160
|
+
- [ ] Zod validation on all server action inputs
|
|
161
|
+
- [ ] Cache invalidation after mutations
|
|
162
|
+
- [ ] Loading states on all async operations
|
|
163
|
+
- [ ] Error boundaries on all pages
|
|
164
|
+
- [ ] 404 page exists
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## AI Agent Checklist
|
|
169
|
+
|
|
170
|
+
> Applies to: Chat agents, AI personas, WhatsApp bots, web chatbots
|
|
171
|
+
> Stack: Next.js + AI SDK + Supabase
|
|
172
|
+
|
|
173
|
+
### AI Configuration
|
|
174
|
+
|
|
175
|
+
- [ ] System prompt written and tested
|
|
176
|
+
- [ ] AI provider configured (API key server-side only)
|
|
177
|
+
- [ ] Chat endpoint working (`/api/chat` or similar)
|
|
178
|
+
- [ ] Streaming responses working
|
|
179
|
+
- [ ] Temperature and model settings appropriate for use case
|
|
180
|
+
|
|
181
|
+
### AI Safety (CRITICAL)
|
|
182
|
+
|
|
183
|
+
- [ ] System prompt not exposed in client-side code
|
|
184
|
+
- [ ] No prompt injection vulnerabilities (test with adversarial inputs)
|
|
185
|
+
- [ ] `service_role` key NOT imported in any client component: `grep -r "service_role" app/ components/ src/`
|
|
186
|
+
- [ ] AI output sanitized before display
|
|
187
|
+
- [ ] Rate limiting on chat endpoint (per-user)
|
|
188
|
+
- [ ] `maxTokens` set on all AI calls
|
|
189
|
+
- [ ] Token budget monitoring in place
|
|
190
|
+
|
|
191
|
+
### Conversation Quality
|
|
192
|
+
|
|
193
|
+
- [ ] Agent stays in character / on topic
|
|
194
|
+
- [ ] Graceful handling of off-topic inputs
|
|
195
|
+
- [ ] Clear fallback responses for edge cases ("I can't help with that")
|
|
196
|
+
- [ ] Context window management (conversation doesn't exceed limits)
|
|
197
|
+
- [ ] Conversation history stored (if required)
|
|
198
|
+
|
|
199
|
+
### Integrations (if applicable)
|
|
200
|
+
|
|
201
|
+
- [ ] WhatsApp webhook verified and secure
|
|
202
|
+
- [ ] Webhook idempotency (duplicate messages handled)
|
|
203
|
+
- [ ] External API calls have timeout protection
|
|
204
|
+
- [ ] Error handling for third-party API failures
|
|
205
|
+
|
|
206
|
+
### Monitoring
|
|
207
|
+
|
|
208
|
+
- [ ] Error tracking configured (Sentry or logging)
|
|
209
|
+
- [ ] Token usage tracked and alerted
|
|
210
|
+
- [ ] Conversation logs stored for debugging
|
|
211
|
+
- [ ] Uptime monitoring active
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Voice Agent Checklist
|
|
216
|
+
|
|
217
|
+
> Applies to: Phone bots, voice assistants, IVR systems
|
|
218
|
+
> Stack: VAPI/Retell + Cloudflare Workers/Vercel + Supabase
|
|
219
|
+
|
|
220
|
+
### Voice Configuration
|
|
221
|
+
|
|
222
|
+
- [ ] VAPI assistant created and configured
|
|
223
|
+
- [ ] Voice provider selected and tested (Cartesia/ElevenLabs)
|
|
224
|
+
- [ ] STT provider configured (Gladia/Deepgram)
|
|
225
|
+
- [ ] LLM provider configured (Gemini/Claude/OpenAI)
|
|
226
|
+
- [ ] System prompt written for voice (concise, conversational)
|
|
227
|
+
- [ ] First message configured and sounds natural
|
|
228
|
+
- [ ] End-call message configured
|
|
229
|
+
|
|
230
|
+
### Voice UX
|
|
231
|
+
|
|
232
|
+
- [ ] Responses are SHORT (1-2 sentences max per turn)
|
|
233
|
+
- [ ] Agent confirms important info back to caller (dates, names, numbers)
|
|
234
|
+
- [ ] Interruption handling works (caller can cut in)
|
|
235
|
+
- [ ] Silence detection and timeout configured
|
|
236
|
+
- [ ] Escape route available ("say 'operator' for a human")
|
|
237
|
+
- [ ] Agent handles "I don't understand" gracefully
|
|
238
|
+
|
|
239
|
+
### Webhook & Tools
|
|
240
|
+
|
|
241
|
+
- [ ] Webhook endpoint deployed and accessible
|
|
242
|
+
- [ ] Webhook signature verification implemented (`x-vapi-signature` check)
|
|
243
|
+
- [ ] All tools defined, implemented, and tested
|
|
244
|
+
- [ ] Tool input validation with Zod
|
|
245
|
+
- [ ] Error handling for each tool (graceful degradation)
|
|
246
|
+
- [ ] Call logs stored in database
|
|
247
|
+
|
|
248
|
+
### Testing
|
|
249
|
+
|
|
250
|
+
- [ ] Test call from VAPI dashboard successful
|
|
251
|
+
- [ ] Real phone call tested (if phone number configured)
|
|
252
|
+
- [ ] Edge cases tested (invalid dates, unavailable slots, etc.)
|
|
253
|
+
- [ ] Error scenarios tested (tool fails, API timeout)
|
|
254
|
+
- [ ] Multi-language tested (if applicable)
|
|
255
|
+
|
|
256
|
+
### Performance
|
|
257
|
+
|
|
258
|
+
- [ ] First response latency under 500ms
|
|
259
|
+
- [ ] Webhook response time under 300ms
|
|
260
|
+
- [ ] No audio gaps or awkward silences during tool execution
|
|
261
|
+
- [ ] Edge function cold start acceptable
|
|
262
|
+
|
|
263
|
+
### Deployment
|
|
264
|
+
|
|
265
|
+
- [ ] Cloudflare Worker deployed to production (or Vercel/Supabase)
|
|
266
|
+
- [ ] VAPI assistant updated with production webhook URL
|
|
267
|
+
- [ ] Phone number connected (if applicable)
|
|
268
|
+
- [ ] Webhook secrets set in production environment
|
|
269
|
+
- [ ] Final production test call successful
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Mobile App Checklist
|
|
274
|
+
|
|
275
|
+
> Applies to: iOS/Android apps
|
|
276
|
+
> Stack: React Native + Expo + Supabase
|
|
277
|
+
|
|
278
|
+
### App Basics
|
|
279
|
+
|
|
280
|
+
- [ ] App icon designed and configured (all required sizes)
|
|
281
|
+
- [ ] Splash screen configured
|
|
282
|
+
- [ ] App name and bundle identifier set
|
|
283
|
+
- [ ] Version number set correctly
|
|
284
|
+
|
|
285
|
+
### Functionality
|
|
286
|
+
|
|
287
|
+
- [ ] All screens implemented per requirements
|
|
288
|
+
- [ ] Navigation flows work correctly (forward, back, deep links)
|
|
289
|
+
- [ ] Forms validate correctly with error messages
|
|
290
|
+
- [ ] Pull-to-refresh on list screens
|
|
291
|
+
- [ ] Loading states on all async operations
|
|
292
|
+
- [ ] Empty states on all list screens
|
|
293
|
+
- [ ] Error handling with user-friendly messages
|
|
294
|
+
|
|
295
|
+
### Mobile-Specific
|
|
296
|
+
|
|
297
|
+
- [ ] Works on iOS (test on real device or simulator)
|
|
298
|
+
- [ ] Works on Android (test on real device or emulator)
|
|
299
|
+
- [ ] Keyboard handling correct (doesn't cover inputs)
|
|
300
|
+
- [ ] Safe area insets respected (notch, home indicator)
|
|
301
|
+
- [ ] Dark mode supported (if applicable)
|
|
302
|
+
- [ ] Orientation handling (portrait-only or both)
|
|
303
|
+
- [ ] Offline behavior defined (graceful degradation or offline-first)
|
|
304
|
+
|
|
305
|
+
### Push Notifications (if applicable)
|
|
306
|
+
|
|
307
|
+
- [ ] FCM configured for Android
|
|
308
|
+
- [ ] APNs configured for iOS
|
|
309
|
+
- [ ] Device token registration working
|
|
310
|
+
- [ ] Test notification received on real device
|
|
311
|
+
- [ ] Notification tap opens correct screen
|
|
312
|
+
|
|
313
|
+
### Security
|
|
314
|
+
|
|
315
|
+
- [ ] Sensitive data stored in SecureStore (not AsyncStorage)
|
|
316
|
+
- [ ] API keys not in client bundle
|
|
317
|
+
- [ ] Auth tokens have refresh logic
|
|
318
|
+
- [ ] Certificate pinning (if handling sensitive data)
|
|
319
|
+
|
|
320
|
+
### Store Submission
|
|
321
|
+
|
|
322
|
+
- [ ] App Store screenshots prepared (all required sizes)
|
|
323
|
+
- [ ] Play Store screenshots prepared
|
|
324
|
+
- [ ] App description written
|
|
325
|
+
- [ ] Privacy policy URL provided
|
|
326
|
+
- [ ] EAS Build configured and tested
|
|
327
|
+
- [ ] Test build distributed to client for approval
|
|
328
|
+
- [ ] Final build submitted to stores
|
|
329
|
+
|
|
330
|
+
### i18n & RTL (if applicable)
|
|
331
|
+
|
|
332
|
+
- [ ] All strings use message keys (no hardcoded text)
|
|
333
|
+
- [ ] Arabic text renders correctly (RTL layout)
|
|
334
|
+
- [ ] Icons flip correctly in RTL mode
|
|
335
|
+
- [ ] Western numerals (0-9) used everywhere (not Eastern Arabic)
|
|
336
|
+
- [ ] Date/time formatting locale-aware
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## How to Use These Checklists
|
|
341
|
+
|
|
342
|
+
1. **At project start:** Copy the Universal Checklist + your project-type checklist into `COMPLETION_CHECKLIST.md` in your project root
|
|
343
|
+
2. **During development:** Check items off as you complete them
|
|
344
|
+
3. **Before shipping:** All items must be checked. Run `/review` for automated verification
|
|
345
|
+
4. **Manager review:** Fawzi reviews the checklist, signs off or returns with feedback
|
|
346
|
+
5. **After launch:** Keep the checklist in the repo as a record of what was verified
|
|
347
|
+
|
|
348
|
+
### Severity Guide
|
|
349
|
+
|
|
350
|
+
If an item can't be checked off, document WHY in the Notes section:
|
|
351
|
+
|
|
352
|
+
- **Blocker** — Must fix before launch (security, broken features)
|
|
353
|
+
- **Accepted Risk** — Acknowledged by Fawzi, documented, will fix later
|
|
354
|
+
- **N/A** — Doesn't apply to this project (e.g., no database = skip DB section)
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
_Last updated: 2026-03-23_
|
|
359
|
+
_Version: 1.0_
|
|
@@ -10,19 +10,20 @@ When work on a project is **done**, ALWAYS execute these steps in order:
|
|
|
10
10
|
Commit and push all changes to the remote repository.
|
|
11
11
|
|
|
12
12
|
## 2. Redeploy to Vercel
|
|
13
|
-
Deploy through the Vercel CLI (`vercel --prod` or appropriate
|
|
13
|
+
Deploy through the Vercel CLI (`vercel --prod`) or project-appropriate method (e.g., `wrangler deploy` for Cloudflare Workers).
|
|
14
14
|
|
|
15
15
|
## 3. Verify Supabase
|
|
16
|
-
Confirm Supabase is configured correctly via
|
|
16
|
+
Confirm Supabase is configured correctly via CLI or Management API (check tables, RLS, migrations are applied).
|
|
17
17
|
|
|
18
18
|
## 4. Post-Deploy Verification Checklist
|
|
19
19
|
|
|
20
|
-
After deployment, verify all
|
|
20
|
+
After deployment, verify all 5 checks pass:
|
|
21
21
|
|
|
22
22
|
- [ ] **HTTP 200** — Homepage loads successfully (`curl -s -o /dev/null -w "%{http_code}" <url>` returns 200)
|
|
23
23
|
- [ ] **Auth flow** — Login/signup endpoint responds correctly (test auth callback URL)
|
|
24
24
|
- [ ] **Console errors** — No critical JS errors in browser console on homepage load
|
|
25
25
|
- [ ] **API latency** — Key API endpoints respond under 500ms (`curl -w "%{time_total}" <api-url>`)
|
|
26
|
+
- [ ] **UptimeRobot** — Verify monitor shows UP on https://stats.uptimerobot.com/bKudHy1pLs
|
|
26
27
|
|
|
27
28
|
If any check fails, investigate and fix before considering deployment complete.
|
|
28
29
|
|
package/framework/rules/speed.md
CHANGED
|
@@ -22,7 +22,7 @@ cat .planning/DESIGN.md 2>/dev/null
|
|
|
22
22
|
|
|
23
23
|
**If DESIGN.md exists:** This is the authoritative source for all design decisions in this project. Use its palette, typography, spacing, component, and motion decisions as your foundation. Do NOT override these decisions unless the user explicitly asks. Reference specific DESIGN.md decisions in your output (e.g., "Per DESIGN.md, the primary color is...").
|
|
24
24
|
|
|
25
|
-
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia
|
|
25
|
+
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia-discuss-phase` to establish design decisions.
|
|
26
26
|
|
|
27
27
|
### Context Gathering (Do This First)
|
|
28
28
|
|
|
@@ -22,7 +22,7 @@ cat .planning/DESIGN.md 2>/dev/null
|
|
|
22
22
|
|
|
23
23
|
**If DESIGN.md exists:** This is the authoritative source for all design decisions in this project. Use its palette, typography, spacing, component, and motion decisions as your foundation. Do NOT override these decisions unless the user explicitly asks. Reference specific DESIGN.md decisions in your output (e.g., "Per DESIGN.md, the primary color is...").
|
|
24
24
|
|
|
25
|
-
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia
|
|
25
|
+
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia-discuss-phase` to establish design decisions.
|
|
26
26
|
|
|
27
27
|
### Context Gathering (Do This First)
|
|
28
28
|
|
|
@@ -22,7 +22,7 @@ cat .planning/DESIGN.md 2>/dev/null
|
|
|
22
22
|
|
|
23
23
|
**If DESIGN.md exists:** This is the authoritative source for all design decisions in this project. Use its palette, typography, spacing, component, and motion decisions as your foundation. Do NOT override these decisions unless the user explicitly asks. Reference specific DESIGN.md decisions in your output (e.g., "Per DESIGN.md, the primary color is...").
|
|
24
24
|
|
|
25
|
-
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia
|
|
25
|
+
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia-discuss-phase` to establish design decisions.
|
|
26
26
|
|
|
27
27
|
### Context Gathering (Do This First)
|
|
28
28
|
|
|
@@ -28,8 +28,9 @@ Before spawning agents, gather context:
|
|
|
28
28
|
|
|
29
29
|
### Agent 1: Frontend Architecture Analyst
|
|
30
30
|
```
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
Agent(
|
|
32
|
+
subagent_type="general-purpose",
|
|
33
|
+
prompt="
|
|
33
34
|
You are a Frontend Architecture Analyst (Opus). Research this codebase for frontend best practices.
|
|
34
35
|
|
|
35
36
|
ANALYZE:
|
|
@@ -49,8 +50,9 @@ Prompt: |
|
|
|
49
50
|
|
|
50
51
|
### Agent 2: Backend Architecture Analyst
|
|
51
52
|
```
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
Agent(
|
|
54
|
+
subagent_type="general-purpose",
|
|
55
|
+
prompt="
|
|
54
56
|
You are a Backend Architecture Analyst (Opus). Research this codebase for backend best practices.
|
|
55
57
|
|
|
56
58
|
ANALYZE:
|
|
@@ -70,8 +72,9 @@ Prompt: |
|
|
|
70
72
|
|
|
71
73
|
### Agent 3: Database & Data Layer Analyst
|
|
72
74
|
```
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
Agent(
|
|
76
|
+
subagent_type="general-purpose",
|
|
77
|
+
prompt="
|
|
75
78
|
You are a Database & Data Layer Analyst (Opus). Research this codebase for data best practices.
|
|
76
79
|
|
|
77
80
|
ANALYZE:
|
|
@@ -91,8 +94,9 @@ Prompt: |
|
|
|
91
94
|
|
|
92
95
|
### Agent 4: Security & DevOps Analyst
|
|
93
96
|
```
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
Agent(
|
|
98
|
+
subagent_type="general-purpose",
|
|
99
|
+
prompt="
|
|
96
100
|
You are a Security & DevOps Analyst (Opus). Research this codebase for security and deployment best practices.
|
|
97
101
|
|
|
98
102
|
ANALYZE:
|
|
@@ -114,8 +118,9 @@ Prompt: |
|
|
|
114
118
|
|
|
115
119
|
### Agent 5: Performance & Scalability Analyst
|
|
116
120
|
```
|
|
117
|
-
|
|
118
|
-
|
|
121
|
+
Agent(
|
|
122
|
+
subagent_type="general-purpose",
|
|
123
|
+
prompt="
|
|
119
124
|
You are a Performance & Scalability Analyst (Opus). Research this codebase for performance best practices.
|
|
120
125
|
|
|
121
126
|
ANALYZE:
|
|
@@ -137,8 +142,9 @@ Prompt: |
|
|
|
137
142
|
|
|
138
143
|
### Agent 6: Code Quality & Testing Analyst
|
|
139
144
|
```
|
|
140
|
-
|
|
141
|
-
|
|
145
|
+
Agent(
|
|
146
|
+
subagent_type="general-purpose",
|
|
147
|
+
prompt="
|
|
142
148
|
You are a Code Quality & Testing Analyst (Opus). Research this codebase for quality best practices.
|
|
143
149
|
|
|
144
150
|
ANALYZE:
|
|
@@ -244,7 +250,7 @@ After presenting the report:
|
|
|
244
250
|
```
|
|
245
251
|
"Research complete. Would you like to:
|
|
246
252
|
|
|
247
|
-
1. **Create Implementation Plan** - Use /qualia
|
|
253
|
+
1. **Create Implementation Plan** - Use /qualia-plan-phase to create detailed tasks
|
|
248
254
|
2. **Deep Dive on Specific Area** - Focus on frontend/backend/security/etc
|
|
249
255
|
3. **Start Fixing Critical Issues** - Begin implementing top priority fixes
|
|
250
256
|
4. **Save Report** - Save to docs/research/YYYY-MM-DD-deep-research.md
|
|
@@ -22,7 +22,7 @@ cat .planning/DESIGN.md 2>/dev/null
|
|
|
22
22
|
|
|
23
23
|
**If DESIGN.md exists:** This is the authoritative source for all design decisions in this project. Use its palette, typography, spacing, component, and motion decisions as your foundation. Do NOT override these decisions unless the user explicitly asks. Reference specific DESIGN.md decisions in your output (e.g., "Per DESIGN.md, the primary color is...").
|
|
24
24
|
|
|
25
|
-
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia
|
|
25
|
+
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia-discuss-phase` to establish design decisions.
|
|
26
26
|
|
|
27
27
|
### Context Gathering (Do This First)
|
|
28
28
|
|
|
@@ -22,7 +22,7 @@ cat .planning/DESIGN.md 2>/dev/null
|
|
|
22
22
|
|
|
23
23
|
**If DESIGN.md exists:** This is the authoritative source for all design decisions in this project. Use its palette, typography, spacing, component, and motion decisions as your foundation. Do NOT override these decisions unless the user explicitly asks. Reference specific DESIGN.md decisions in your output (e.g., "Per DESIGN.md, the primary color is...").
|
|
24
24
|
|
|
25
|
-
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia
|
|
25
|
+
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia-discuss-phase` to establish design decisions.
|
|
26
26
|
|
|
27
27
|
### Context Gathering (Do This First)
|
|
28
28
|
|
|
@@ -22,7 +22,7 @@ cat .planning/DESIGN.md 2>/dev/null
|
|
|
22
22
|
|
|
23
23
|
**If DESIGN.md exists:** This is the authoritative source for all design decisions in this project. Use its palette, typography, spacing, component, and motion decisions as your foundation. Do NOT override these decisions unless the user explicitly asks. Reference specific DESIGN.md decisions in your output (e.g., "Per DESIGN.md, the primary color is...").
|
|
24
24
|
|
|
25
|
-
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia
|
|
25
|
+
**If DESIGN.md does not exist:** Proceed with normal context gathering below. Consider suggesting the user run `/qualia-discuss-phase` to establish design decisions.
|
|
26
26
|
|
|
27
27
|
### Context Gathering (Do This First)
|
|
28
28
|
|
|
@@ -43,7 +43,7 @@ Scan phase summaries and verification files for noted tech debt, workarounds, or
|
|
|
43
43
|
|
|
44
44
|
### 5. Shipping Checklist Audit
|
|
45
45
|
|
|
46
|
-
Run the full shipping checklist from
|
|
46
|
+
Run the full shipping checklist from `~/.claude/qualia-engine/references/completion-checklists.md` as part of the audit.
|
|
47
47
|
|
|
48
48
|
Detect project type from `.planning/PROJECT.md` and load the matching checklist:
|
|
49
49
|
- **website** → "Website-Specific Checklist" + "Universal Checklist"
|
|
@@ -26,7 +26,7 @@ Verify the most recent `v*-MILESTONE-AUDIT.md` shows PASS. If not:
|
|
|
26
26
|
|
|
27
27
|
### 2. Shipping Checklist Final Gate
|
|
28
28
|
|
|
29
|
-
Before archiving, run the full shipping checklist from
|
|
29
|
+
Before archiving, run the full shipping checklist from `~/.claude/qualia-engine/references/completion-checklists.md`.
|
|
30
30
|
|
|
31
31
|
Detect project type from `.planning/PROJECT.md` and load the matching checklist:
|
|
32
32
|
- **website** → "Website-Specific Checklist" + "Universal Checklist"
|
|
@@ -95,7 +95,7 @@ Update PROJECT.md to reflect:
|
|
|
95
95
|
### 8. Commit & Tag
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
|
-
git add
|
|
98
|
+
git add <list of modified files>
|
|
99
99
|
git commit -m "milestone: complete v{version}"
|
|
100
100
|
git tag v{version}
|
|
101
101
|
```
|
|
@@ -163,9 +163,9 @@ npm run build 2>&1 | tail -10
|
|
|
163
163
|
|
|
164
164
|
### Step 7: Commit and Report
|
|
165
165
|
|
|
166
|
-
Commit all design changes:
|
|
166
|
+
Commit all design changes (add only the files you modified — never use `git add -A`):
|
|
167
167
|
```bash
|
|
168
|
-
git add
|
|
168
|
+
git add <list of modified files>
|
|
169
169
|
git commit -m "style: design transformation — typography, color, spacing, states, responsive"
|
|
170
170
|
```
|
|
171
171
|
|