qualia-framework 2.6.0 → 3.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/CLAUDE.md +64 -0
- package/README.md +103 -30
- package/agents/builder.md +110 -0
- package/agents/planner.md +134 -0
- package/agents/qa-browser.md +186 -0
- package/agents/verifier.md +221 -0
- package/bin/cli.js +336 -531
- package/bin/install.js +570 -0
- package/bin/qualia-ui.js +299 -0
- package/bin/state.js +630 -0
- package/bin/statusline.js +252 -0
- package/guide.md +63 -0
- package/hooks/auto-update.js +139 -0
- package/hooks/branch-guard.js +47 -0
- package/hooks/migration-guard.js +60 -0
- package/hooks/pre-compact.js +32 -0
- package/hooks/pre-deploy-gate.js +110 -0
- package/hooks/pre-push.js +33 -0
- package/hooks/session-start.js +170 -0
- package/package.json +29 -20
- package/rules/design-reference.md +179 -0
- package/rules/frontend.md +126 -0
- package/skills/qualia/SKILL.md +87 -0
- package/skills/qualia-build/SKILL.md +97 -0
- package/skills/qualia-debug/SKILL.md +87 -0
- package/skills/qualia-design/SKILL.md +93 -0
- package/skills/qualia-handoff/SKILL.md +66 -0
- package/skills/qualia-idk/SKILL.md +8 -0
- package/skills/qualia-learn/SKILL.md +88 -0
- package/skills/qualia-new/SKILL.md +323 -0
- package/{framework/skills → skills}/qualia-optimize/SKILL.md +1 -1
- package/skills/qualia-pause/SKILL.md +63 -0
- package/skills/qualia-plan/SKILL.md +101 -0
- package/skills/qualia-polish/SKILL.md +157 -0
- package/skills/qualia-quick/SKILL.md +37 -0
- package/skills/qualia-report/SKILL.md +105 -0
- package/skills/qualia-resume/SKILL.md +49 -0
- package/skills/qualia-review/SKILL.md +76 -0
- package/skills/qualia-ship/SKILL.md +90 -0
- package/skills/qualia-skill-new/SKILL.md +167 -0
- package/skills/qualia-task/SKILL.md +91 -0
- package/skills/qualia-verify/SKILL.md +113 -0
- package/templates/DESIGN.md +137 -0
- package/templates/plan.md +28 -0
- package/templates/project.md +22 -0
- package/templates/state.md +27 -0
- package/templates/tracking.json +20 -0
- package/tests/bin.test.sh +673 -0
- package/tests/hooks.test.sh +315 -0
- package/tests/state.test.sh +535 -0
- package/tests/statusline.test.sh +243 -0
- package/bin/collect-metrics.sh +0 -62
- package/framework/.claudeignore +0 -51
- package/framework/CLAUDE.md +0 -51
- package/framework/MCP_SETUP.md +0 -229
- package/framework/agents/architecture-strategist.md +0 -53
- package/framework/agents/backend-agent.md +0 -150
- package/framework/agents/code-simplicity-reviewer.md +0 -86
- package/framework/agents/frontend-agent.md +0 -111
- package/framework/agents/kieran-typescript-reviewer.md +0 -96
- package/framework/agents/performance-oracle.md +0 -111
- package/framework/agents/qualia-codebase-mapper.md +0 -761
- package/framework/agents/qualia-debugger.md +0 -1204
- package/framework/agents/qualia-executor.md +0 -882
- package/framework/agents/qualia-integration-checker.md +0 -424
- package/framework/agents/qualia-phase-researcher.md +0 -457
- package/framework/agents/qualia-plan-checker.md +0 -700
- package/framework/agents/qualia-planner.md +0 -1245
- package/framework/agents/qualia-project-researcher.md +0 -603
- package/framework/agents/qualia-research-synthesizer.md +0 -200
- package/framework/agents/qualia-roadmapper.md +0 -606
- package/framework/agents/qualia-verifier.md +0 -686
- package/framework/agents/red-team-qa.md +0 -130
- package/framework/agents/security-auditor.md +0 -72
- package/framework/agents/team-orchestrator.md +0 -229
- package/framework/agents/teams/framework-audit-team.md +0 -66
- package/framework/agents/teams/full-stack-team.md +0 -48
- package/framework/agents/teams/optimize-team.md +0 -53
- package/framework/agents/teams/review-team.md +0 -70
- package/framework/agents/teams/ship-team.md +0 -86
- package/framework/agents/test-agent.md +0 -182
- package/framework/hooks/auto-format.sh +0 -54
- package/framework/hooks/block-env-edit.sh +0 -42
- package/framework/hooks/branch-guard.sh +0 -43
- package/framework/hooks/confirm-delete.sh +0 -59
- package/framework/hooks/migration-validate.sh +0 -77
- package/framework/hooks/notification-speak.sh +0 -16
- package/framework/hooks/pre-commit.sh +0 -100
- package/framework/hooks/pre-compact.sh +0 -56
- package/framework/hooks/pre-deploy-gate.sh +0 -160
- package/framework/hooks/qualia-colors.sh +0 -32
- package/framework/hooks/retention-cleanup.sh +0 -62
- package/framework/hooks/save-session-state.sh +0 -185
- package/framework/hooks/session-context-loader.sh +0 -96
- package/framework/hooks/session-learn.sh +0 -32
- package/framework/hooks/skill-announce.sh +0 -123
- package/framework/hooks/tool-error-announce.sh +0 -27
- package/framework/install.ps1 +0 -323
- package/framework/install.sh +0 -313
- package/framework/qualia-framework/VERSION +0 -1
- package/framework/qualia-framework/assets/qualia-logo.png +0 -0
- package/framework/qualia-framework/bin/collect-metrics.sh +0 -67
- package/framework/qualia-framework/bin/generate-report-docx.py +0 -429
- package/framework/qualia-framework/bin/qualia-tools.js +0 -2201
- package/framework/qualia-framework/bin/qualia-tools.test.js +0 -1054
- package/framework/qualia-framework/references/checkpoints.md +0 -775
- package/framework/qualia-framework/references/completion-checklists.md +0 -359
- package/framework/qualia-framework/references/continuation-format.md +0 -249
- package/framework/qualia-framework/references/continuation-prompt.md +0 -97
- package/framework/qualia-framework/references/decimal-phase-calculation.md +0 -65
- package/framework/qualia-framework/references/design-quality.md +0 -56
- package/framework/qualia-framework/references/employee-guide.md +0 -167
- package/framework/qualia-framework/references/git-integration.md +0 -254
- package/framework/qualia-framework/references/git-planning-commit.md +0 -50
- package/framework/qualia-framework/references/model-profile-resolution.md +0 -32
- package/framework/qualia-framework/references/model-profiles.md +0 -73
- package/framework/qualia-framework/references/phase-argument-parsing.md +0 -61
- package/framework/qualia-framework/references/planning-config.md +0 -195
- package/framework/qualia-framework/references/questioning.md +0 -141
- package/framework/qualia-framework/references/tdd.md +0 -263
- package/framework/qualia-framework/references/ui-brand.md +0 -160
- package/framework/qualia-framework/references/verification-patterns.md +0 -612
- package/framework/qualia-framework/templates/DEBUG.md +0 -159
- package/framework/qualia-framework/templates/DESIGN.md +0 -81
- package/framework/qualia-framework/templates/UAT.md +0 -247
- package/framework/qualia-framework/templates/codebase/architecture.md +0 -255
- package/framework/qualia-framework/templates/codebase/concerns.md +0 -310
- package/framework/qualia-framework/templates/codebase/conventions.md +0 -307
- package/framework/qualia-framework/templates/codebase/integrations.md +0 -280
- package/framework/qualia-framework/templates/codebase/stack.md +0 -186
- package/framework/qualia-framework/templates/codebase/structure.md +0 -285
- package/framework/qualia-framework/templates/codebase/testing.md +0 -480
- package/framework/qualia-framework/templates/config.json +0 -35
- package/framework/qualia-framework/templates/context.md +0 -283
- package/framework/qualia-framework/templates/continue-here.md +0 -78
- package/framework/qualia-framework/templates/debug-subagent-prompt.md +0 -91
- package/framework/qualia-framework/templates/discovery.md +0 -146
- package/framework/qualia-framework/templates/lab-notes.md +0 -16
- package/framework/qualia-framework/templates/milestone-archive.md +0 -123
- package/framework/qualia-framework/templates/milestone.md +0 -115
- package/framework/qualia-framework/templates/phase-prompt.md +0 -567
- package/framework/qualia-framework/templates/planner-subagent-prompt.md +0 -117
- package/framework/qualia-framework/templates/project.md +0 -184
- package/framework/qualia-framework/templates/projects/ai-agent.md +0 -156
- package/framework/qualia-framework/templates/projects/mobile-app.md +0 -181
- package/framework/qualia-framework/templates/projects/voice-agent.md +0 -134
- package/framework/qualia-framework/templates/projects/website.md +0 -137
- package/framework/qualia-framework/templates/requirements.md +0 -231
- package/framework/qualia-framework/templates/research-project/ARCHITECTURE.md +0 -204
- package/framework/qualia-framework/templates/research-project/FEATURES.md +0 -147
- package/framework/qualia-framework/templates/research-project/PITFALLS.md +0 -200
- package/framework/qualia-framework/templates/research-project/STACK.md +0 -120
- package/framework/qualia-framework/templates/research-project/SUMMARY.md +0 -170
- package/framework/qualia-framework/templates/research.md +0 -552
- package/framework/qualia-framework/templates/roadmap.md +0 -206
- package/framework/qualia-framework/templates/state.md +0 -179
- package/framework/qualia-framework/templates/summary-complex.md +0 -59
- package/framework/qualia-framework/templates/summary-minimal.md +0 -41
- package/framework/qualia-framework/templates/summary-standard.md +0 -48
- package/framework/qualia-framework/templates/summary.md +0 -246
- package/framework/qualia-framework/templates/user-setup.md +0 -311
- package/framework/qualia-framework/templates/verification-report.md +0 -322
- package/framework/qualia-framework/workflows/add-phase.md +0 -179
- package/framework/qualia-framework/workflows/add-todo.md +0 -157
- package/framework/qualia-framework/workflows/audit-milestone.md +0 -241
- package/framework/qualia-framework/workflows/check-todos.md +0 -176
- package/framework/qualia-framework/workflows/complete-milestone.md +0 -858
- package/framework/qualia-framework/workflows/diagnose-issues.md +0 -219
- package/framework/qualia-framework/workflows/discovery-phase.md +0 -289
- package/framework/qualia-framework/workflows/discuss-phase.md +0 -534
- package/framework/qualia-framework/workflows/execute-phase.md +0 -559
- package/framework/qualia-framework/workflows/execute-plan.md +0 -438
- package/framework/qualia-framework/workflows/help.md +0 -470
- package/framework/qualia-framework/workflows/insert-phase.md +0 -220
- package/framework/qualia-framework/workflows/list-phase-assumptions.md +0 -178
- package/framework/qualia-framework/workflows/map-codebase.md +0 -327
- package/framework/qualia-framework/workflows/new-milestone.md +0 -363
- package/framework/qualia-framework/workflows/new-project.md +0 -982
- package/framework/qualia-framework/workflows/pause-work.md +0 -122
- package/framework/qualia-framework/workflows/plan-milestone-gaps.md +0 -256
- package/framework/qualia-framework/workflows/plan-phase.md +0 -422
- package/framework/qualia-framework/workflows/progress.md +0 -389
- package/framework/qualia-framework/workflows/quick.md +0 -252
- package/framework/qualia-framework/workflows/remove-phase.md +0 -326
- package/framework/qualia-framework/workflows/research-phase.md +0 -74
- package/framework/qualia-framework/workflows/resume-project.md +0 -306
- package/framework/qualia-framework/workflows/set-profile.md +0 -80
- package/framework/qualia-framework/workflows/settings.md +0 -145
- package/framework/qualia-framework/workflows/transition.md +0 -556
- package/framework/qualia-framework/workflows/update.md +0 -197
- package/framework/qualia-framework/workflows/verify-phase.md +0 -195
- package/framework/qualia-framework/workflows/verify-work.md +0 -625
- package/framework/rules/context7.md +0 -14
- package/framework/rules/frontend.md +0 -33
- package/framework/rules/speed.md +0 -23
- package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
- package/framework/scripts/apply-retention.sh +0 -120
- package/framework/scripts/bootstrap-pop-os.sh +0 -354
- package/framework/scripts/claude-voice +0 -13
- package/framework/scripts/cleanup.sh +0 -131
- package/framework/scripts/cowork-mode.sh +0 -141
- package/framework/scripts/generate-project-claude-md.sh +0 -153
- package/framework/scripts/load-test-webhook.js +0 -172
- package/framework/scripts/say.py +0 -236
- package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +0 -167
- package/framework/scripts/showcase-video-recorder/playwright-helpers.js +0 -216
- package/framework/scripts/speak.py +0 -55
- package/framework/scripts/speak.sh +0 -18
- package/framework/scripts/status.sh +0 -138
- package/framework/scripts/sync-to-framework.sh +0 -65
- package/framework/scripts/voice-hotkey.py +0 -227
- package/framework/scripts/voice-input.sh +0 -51
- package/framework/skills/animate/SKILL.md +0 -202
- package/framework/skills/bolder/SKILL.md +0 -144
- package/framework/skills/browser-qa/SKILL.md +0 -536
- package/framework/skills/clarify/SKILL.md +0 -179
- package/framework/skills/client-handoff/SKILL.md +0 -135
- package/framework/skills/collab-onboard/SKILL.md +0 -111
- package/framework/skills/colorize/SKILL.md +0 -170
- package/framework/skills/critique/SKILL.md +0 -126
- package/framework/skills/deep-research/SKILL.md +0 -240
- package/framework/skills/delight/SKILL.md +0 -329
- package/framework/skills/deploy/SKILL.md +0 -261
- package/framework/skills/deploy-verify/SKILL.md +0 -377
- package/framework/skills/deploy-verify/scripts/canary-check.sh +0 -206
- package/framework/skills/deploy-verify/scripts/check-console-errors.js +0 -147
- package/framework/skills/deploy-verify/scripts/check-cwv.js +0 -139
- package/framework/skills/deploy-verify/scripts/project-detect.sh +0 -84
- package/framework/skills/deploy-verify/scripts/verify.sh +0 -548
- package/framework/skills/design-quieter/SKILL.md +0 -130
- package/framework/skills/distill/SKILL.md +0 -149
- package/framework/skills/docs-lookup/SKILL.md +0 -79
- package/framework/skills/fcm-notifications/SKILL.md +0 -125
- package/framework/skills/financial-ledger/SKILL.md +0 -1039
- package/framework/skills/frontend-master/NOTICE.md +0 -4
- package/framework/skills/frontend-master/SKILL.md +0 -127
- package/framework/skills/frontend-master/reference/color-and-contrast.md +0 -132
- package/framework/skills/frontend-master/reference/interaction-design.md +0 -123
- package/framework/skills/frontend-master/reference/motion-design.md +0 -99
- package/framework/skills/frontend-master/reference/responsive-design.md +0 -114
- package/framework/skills/frontend-master/reference/spatial-design.md +0 -100
- package/framework/skills/frontend-master/reference/typography.md +0 -131
- package/framework/skills/frontend-master/reference/ux-writing.md +0 -107
- package/framework/skills/harden/SKILL.md +0 -357
- package/framework/skills/i18n-rtl/SKILL.md +0 -752
- package/framework/skills/learn/SKILL.md +0 -95
- package/framework/skills/memory/SKILL.md +0 -50
- package/framework/skills/mobile-expo/SKILL.md +0 -977
- package/framework/skills/mobile-expo/references/store-checklist.md +0 -550
- package/framework/skills/nestjs-backend/README.md +0 -73
- package/framework/skills/nestjs-backend/SKILL.md +0 -446
- package/framework/skills/nestjs-backend/references/templates.md +0 -1173
- package/framework/skills/normalize/SKILL.md +0 -79
- package/framework/skills/onboard/SKILL.md +0 -242
- package/framework/skills/openrouter-agent/SKILL.md +0 -922
- package/framework/skills/polish/SKILL.md +0 -209
- package/framework/skills/pr/SKILL.md +0 -66
- package/framework/skills/qualia/SKILL.md +0 -199
- package/framework/skills/qualia-add-todo/SKILL.md +0 -68
- package/framework/skills/qualia-audit-milestone/SKILL.md +0 -95
- package/framework/skills/qualia-check-todos/SKILL.md +0 -55
- package/framework/skills/qualia-complete-milestone/SKILL.md +0 -134
- package/framework/skills/qualia-debug/SKILL.md +0 -149
- package/framework/skills/qualia-design/SKILL.md +0 -203
- package/framework/skills/qualia-discuss-phase/SKILL.md +0 -72
- package/framework/skills/qualia-evolve/SKILL.md +0 -200
- package/framework/skills/qualia-execute-phase/SKILL.md +0 -89
- package/framework/skills/qualia-framework-audit/SKILL.md +0 -604
- package/framework/skills/qualia-guide/SKILL.md +0 -32
- package/framework/skills/qualia-help/SKILL.md +0 -114
- package/framework/skills/qualia-idk/SKILL.md +0 -352
- package/framework/skills/qualia-list-phase-assumptions/SKILL.md +0 -67
- package/framework/skills/qualia-new-milestone/SKILL.md +0 -72
- package/framework/skills/qualia-new-project/SKILL.md +0 -232
- package/framework/skills/qualia-pause-work/SKILL.md +0 -96
- package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +0 -57
- package/framework/skills/qualia-plan-phase/SKILL.md +0 -104
- package/framework/skills/qualia-production-check/SKILL.md +0 -0
- package/framework/skills/qualia-progress/SKILL.md +0 -53
- package/framework/skills/qualia-quick/SKILL.md +0 -89
- package/framework/skills/qualia-report/SKILL.md +0 -166
- package/framework/skills/qualia-research-phase/SKILL.md +0 -88
- package/framework/skills/qualia-resume-work/SKILL.md +0 -62
- package/framework/skills/qualia-review/SKILL.md +0 -263
- package/framework/skills/qualia-start/SKILL.md +0 -161
- package/framework/skills/qualia-verify-work/SKILL.md +0 -132
- package/framework/skills/rag/SKILL.md +0 -750
- package/framework/skills/responsive/SKILL.md +0 -231
- package/framework/skills/retro/SKILL.md +0 -284
- package/framework/skills/sakani-conventions/SKILL.md +0 -136
- package/framework/skills/sakani-conventions/evals/evals.json +0 -23
- package/framework/skills/sakani-conventions/references/entities.md +0 -365
- package/framework/skills/sakani-conventions/references/error-codes.md +0 -95
- package/framework/skills/seo-master/SKILL.md +0 -490
- package/framework/skills/seo-master/references/checklist.md +0 -199
- package/framework/skills/seo-master/references/structured-data.md +0 -609
- package/framework/skills/ship/SKILL.md +0 -239
- package/framework/skills/stack-researcher/SKILL.md +0 -215
- package/framework/skills/status/SKILL.md +0 -154
- package/framework/skills/status/scripts/health-check.sh +0 -562
- package/framework/skills/subscription-payments/SKILL.md +0 -250
- package/framework/skills/supabase/SKILL.md +0 -973
- package/framework/skills/supabase/references/templates.md +0 -159
- package/framework/skills/team/SKILL.md +0 -67
- package/framework/skills/test-runner/SKILL.md +0 -202
- package/framework/skills/voice-agent/SKILL.md +0 -1312
- package/framework/skills/zoho-workflow/SKILL.md +0 -51
- package/framework/statusline-command.sh +0 -117
- package/framework/teams/default/inboxes/plan-04.json +0 -9
- package/framework/teams/review-team.md +0 -75
- package/framework/teams/ship-team.md +0 -86
- package/profiles/fawzi.json +0 -16
- package/profiles/hasan.json +0 -16
- package/profiles/moayad.json +0 -16
- package/templates/CLAUDE-owner.md +0 -52
- package/templates/CLAUDE.md.hbs +0 -58
- package/templates/env.claude.template +0 -12
- package/templates/settings.json +0 -172
- package/uninstall.sh +0 -90
- /package/{framework/rules → rules}/deployment.md +0 -0
- /package/{framework/rules → rules}/security.md +0 -0
|
@@ -0,0 +1,323 @@
|
|
|
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
|
+
```bash
|
|
17
|
+
node ~/.claude/bin/qualia-ui.js banner new
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then say: **"Let's build something. Tell me what you're making."**
|
|
21
|
+
|
|
22
|
+
Wait for the user's free-text answer. Do NOT use AskUserQuestion here — let them talk naturally.
|
|
23
|
+
|
|
24
|
+
### Step 1. Project Type
|
|
25
|
+
|
|
26
|
+
After they describe what they want, use AskUserQuestion:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
question: "What type of project is this?"
|
|
30
|
+
header: "Type"
|
|
31
|
+
options:
|
|
32
|
+
- label: "Website / Web App"
|
|
33
|
+
description: "Landing page, SaaS, dashboard, marketing site, portal"
|
|
34
|
+
- label: "AI Agent"
|
|
35
|
+
description: "Chatbot, AI assistant, tool-calling agent, RAG system"
|
|
36
|
+
- label: "Voice Agent"
|
|
37
|
+
description: "Phone agent, VAPI, Retell AI, ElevenLabs call bot"
|
|
38
|
+
- label: "Mobile App"
|
|
39
|
+
description: "iOS, Android, React Native, Expo"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Step 2. Core Features
|
|
43
|
+
|
|
44
|
+
Based on their description, use AskUserQuestion with multiSelect: true:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
question: "Which features do you need?"
|
|
48
|
+
header: "Features"
|
|
49
|
+
multiSelect: true
|
|
50
|
+
options (pick 4 most relevant from):
|
|
51
|
+
- "Auth & accounts" — Login, signup, user management
|
|
52
|
+
- "Database & CRUD" — Data storage, tables, admin panel
|
|
53
|
+
- "Payments" — Stripe, subscriptions, checkout
|
|
54
|
+
- "AI / LLM" — Chat, completions, embeddings, RAG
|
|
55
|
+
- "Voice calls" — Inbound/outbound calls, IVR, telephony
|
|
56
|
+
- "Email / notifications" — Transactional email, SMS, push
|
|
57
|
+
- "File uploads" — Images, documents, S3/storage
|
|
58
|
+
- "Admin dashboard" — Internal tools, analytics, reporting
|
|
59
|
+
- "API / integrations" — Third-party APIs, webhooks, CRM sync
|
|
60
|
+
- "Real-time" — WebSockets, live updates, presence
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Pick the 4 options most relevant to what they described. Always offer the most likely ones.
|
|
64
|
+
|
|
65
|
+
### Step 3. Design Direction
|
|
66
|
+
|
|
67
|
+
Use AskUserQuestion with previews:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
question: "What's the design vibe?"
|
|
71
|
+
header: "Design"
|
|
72
|
+
options:
|
|
73
|
+
- label: "Dark & Bold"
|
|
74
|
+
description: "Dark backgrounds, neon accents, strong contrast"
|
|
75
|
+
preview: |
|
|
76
|
+
┌──────────────────────────────┐
|
|
77
|
+
│ ██████████████████████████ │
|
|
78
|
+
│ ██ DARK BG + TEAL GLOW ██ │
|
|
79
|
+
│ ██████████████████████████ │
|
|
80
|
+
│ │
|
|
81
|
+
│ ░░░░░░░░░░░░░░░░░░░░░░░░ │
|
|
82
|
+
│ Sharp cards, glass effects │
|
|
83
|
+
│ Neon borders, deep shadows │
|
|
84
|
+
└──────────────────────────────┘
|
|
85
|
+
|
|
86
|
+
- label: "Clean & Minimal"
|
|
87
|
+
description: "White space, subtle shadows, refined typography"
|
|
88
|
+
preview: |
|
|
89
|
+
┌──────────────────────────────┐
|
|
90
|
+
│ │
|
|
91
|
+
│ Clean & Minimal │
|
|
92
|
+
│ ───────────── │
|
|
93
|
+
│ │
|
|
94
|
+
│ Generous whitespace │
|
|
95
|
+
│ Subtle borders │
|
|
96
|
+
│ Light, airy feel │
|
|
97
|
+
└──────────────────────────────┘
|
|
98
|
+
|
|
99
|
+
- label: "Colorful & Playful"
|
|
100
|
+
description: "Gradients, rounded shapes, vibrant palette"
|
|
101
|
+
preview: |
|
|
102
|
+
┌──────────────────────────────┐
|
|
103
|
+
│ ⬢ ● ▲ ■ COLORFUL │
|
|
104
|
+
│ │
|
|
105
|
+
│ ╭──────╮ ╭──────╮ │
|
|
106
|
+
│ │ Card │ │ Card │ │
|
|
107
|
+
│ ╰──────╯ ╰──────╯ │
|
|
108
|
+
│ Rounded, gradient fills │
|
|
109
|
+
│ Fun, approachable │
|
|
110
|
+
└──────────────────────────────┘
|
|
111
|
+
|
|
112
|
+
- label: "Corporate / Professional"
|
|
113
|
+
description: "Structured layouts, trust signals, enterprise feel"
|
|
114
|
+
preview: |
|
|
115
|
+
┌──────────────────────────────┐
|
|
116
|
+
│ LOGO Nav Nav [CTA] │
|
|
117
|
+
│ ──────────────────────── │
|
|
118
|
+
│ ┌────┐ ┌────┐ ┌────┐ │
|
|
119
|
+
│ │Feat│ │Feat│ │Feat│ │
|
|
120
|
+
│ └────┘ └────┘ └────┘ │
|
|
121
|
+
│ Structured, trustworthy │
|
|
122
|
+
│ Clear hierarchy │
|
|
123
|
+
└──────────────────────────────┘
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Step 4. Stack Confirmation
|
|
127
|
+
|
|
128
|
+
Use AskUserQuestion:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
question: "Stack — go with the Qualia default?"
|
|
132
|
+
header: "Stack"
|
|
133
|
+
options:
|
|
134
|
+
- label: "Qualia Stack (Recommended)"
|
|
135
|
+
description: "Next.js 16 + React 19 + TypeScript + Supabase + Vercel"
|
|
136
|
+
- label: "Qualia + extras"
|
|
137
|
+
description: "Default stack plus additional integrations (Stripe, VAPI, etc.)"
|
|
138
|
+
- label: "Custom stack"
|
|
139
|
+
description: "I have specific tech requirements"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
If "Custom stack" — ask what they need.
|
|
143
|
+
If "Qualia + extras" — ask which integrations.
|
|
144
|
+
|
|
145
|
+
### Step 5. Scope & Client
|
|
146
|
+
|
|
147
|
+
Use AskUserQuestion:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
question: "Is this a client project or internal?"
|
|
151
|
+
header: "Client"
|
|
152
|
+
options:
|
|
153
|
+
- label: "Client project"
|
|
154
|
+
description: "External client — will need handoff and credentials"
|
|
155
|
+
- label: "Internal / Qualia"
|
|
156
|
+
description: "Our own product or tool"
|
|
157
|
+
- label: "Personal / Side project"
|
|
158
|
+
description: "No formal client"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
If client project, ask: **"What's the client's name?"** (free text, no AskUserQuestion)
|
|
162
|
+
|
|
163
|
+
After capturing the client name, check for saved preferences:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
cat ~/.claude/knowledge/client-prefs.md 2>/dev/null
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
If there's an entry for this client, show it to the user: *"I have notes on {client} — {preferences summary}. Applying these to the project defaults unless you say otherwise."* Then use those preferences in Step 8a (Design System) and Step 9 (Roadmap).
|
|
170
|
+
|
|
171
|
+
### Step 6. Confirm & Scaffold
|
|
172
|
+
|
|
173
|
+
Present a summary:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
⬢ QUALIA ▸ PROJECT SUMMARY
|
|
177
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
178
|
+
|
|
179
|
+
Project {name}
|
|
180
|
+
Type {type}
|
|
181
|
+
Client {client}
|
|
182
|
+
Stack {stack}
|
|
183
|
+
Features {feature list}
|
|
184
|
+
Design {design direction}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Use AskUserQuestion:
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
question: "Ready to scaffold?"
|
|
191
|
+
header: "Confirm"
|
|
192
|
+
options:
|
|
193
|
+
- label: "Let's go"
|
|
194
|
+
description: "Create the project now"
|
|
195
|
+
- label: "Change something"
|
|
196
|
+
description: "Go back and adjust"
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Step 7. Execute Scaffold
|
|
200
|
+
|
|
201
|
+
On confirmation, scaffold:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
mkdir -p .planning
|
|
205
|
+
|
|
206
|
+
# Initialize git if needed
|
|
207
|
+
git init 2>/dev/null
|
|
208
|
+
|
|
209
|
+
# Create Next.js project (if website/ai-agent)
|
|
210
|
+
npx create-next-app@latest . --typescript --tailwind --eslint --app --src-dir=false --import-alias="@/*" --no-git
|
|
211
|
+
|
|
212
|
+
# Or Expo project (if mobile-app)
|
|
213
|
+
# npx create-expo-app . --template blank-typescript
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Create GitHub repo:
|
|
217
|
+
```bash
|
|
218
|
+
gh repo create {project-name} --private --source=. --push
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Link Vercel:
|
|
222
|
+
```bash
|
|
223
|
+
vercel link
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Create Supabase project (via MCP or manual).
|
|
227
|
+
|
|
228
|
+
### Step 8. Create Planning Files
|
|
229
|
+
|
|
230
|
+
**`.planning/PROJECT.md`** — use template, fill from answers:
|
|
231
|
+
- Client, description, requirements (from features), out of scope, stack, design direction, decisions
|
|
232
|
+
|
|
233
|
+
### Step 8a. Create Design System
|
|
234
|
+
|
|
235
|
+
Generate **`.planning/DESIGN.md`** using `~/.claude/qualia-templates/DESIGN.md` as the template.
|
|
236
|
+
|
|
237
|
+
Fill in based on the design direction chosen in Step 3:
|
|
238
|
+
|
|
239
|
+
**Dark & Bold:**
|
|
240
|
+
- Palette: dark backgrounds (#0a0a0a, #141414), vibrant accent (teal #00d4aa, amber #f59e0b, etc.)
|
|
241
|
+
- Typography: bold display font + clean body font (e.g., "Plus Jakarta Sans" + "DM Sans")
|
|
242
|
+
- Effects: glass morphism, noise textures, glow effects
|
|
243
|
+
- Motion: expressive — staggered fades, parallax hints
|
|
244
|
+
|
|
245
|
+
**Clean & Minimal:**
|
|
246
|
+
- Palette: light backgrounds (#fafafa, #ffffff), single muted accent
|
|
247
|
+
- Typography: refined serif or geometric sans (e.g., "Outfit" + "Source Serif 4")
|
|
248
|
+
- Effects: subtle shadows, thin borders
|
|
249
|
+
- Motion: minimal — fades only, no stagger
|
|
250
|
+
|
|
251
|
+
**Colorful & Playful:**
|
|
252
|
+
- Palette: vibrant multi-color, warm backgrounds
|
|
253
|
+
- Typography: rounded friendly fonts (e.g., "Nunito" + "Quicksand")
|
|
254
|
+
- Effects: gradients, rounded shapes, illustrations
|
|
255
|
+
- Motion: expressive — bouncy spring easing, scale on hover
|
|
256
|
+
|
|
257
|
+
**Corporate / Professional:**
|
|
258
|
+
- Palette: navy/charcoal base, conservative accent (blue, green)
|
|
259
|
+
- Typography: trustworthy geometric (e.g., "Manrope" + "IBM Plex Sans")
|
|
260
|
+
- Effects: clean borders, subtle shadows, structured grids
|
|
261
|
+
- Motion: subtle — smooth fades, no bounce
|
|
262
|
+
|
|
263
|
+
**Always include in DESIGN.md:**
|
|
264
|
+
- Concrete CSS variable values (not placeholders)
|
|
265
|
+
- Google Fonts import URL
|
|
266
|
+
- Spacing scale (8px grid)
|
|
267
|
+
- Component patterns (buttons, inputs, cards)
|
|
268
|
+
- Responsive approach
|
|
269
|
+
- Anti-patterns to avoid
|
|
270
|
+
|
|
271
|
+
### Step 8b. Initialize State
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
node ~/.claude/bin/state.js init --project "{name}" --client "{client}" --type "{type}" --assigned-to "{employee}" --phases '[{phases JSON array from roadmap}]'
|
|
275
|
+
```
|
|
276
|
+
This creates both STATE.md and tracking.json with consistent formatting.
|
|
277
|
+
Do NOT manually edit these files — state.js handles both.
|
|
278
|
+
|
|
279
|
+
### Step 9. Create Roadmap
|
|
280
|
+
|
|
281
|
+
Based on project type and features, create phases in STATE.md:
|
|
282
|
+
|
|
283
|
+
**Typical website:**
|
|
284
|
+
1. Foundation — Auth, database schema, base layout
|
|
285
|
+
2. Core — Main features
|
|
286
|
+
3. Content — Pages, copy, media
|
|
287
|
+
4. Polish — Design, animations, responsive
|
|
288
|
+
|
|
289
|
+
**Typical AI agent:**
|
|
290
|
+
1. Foundation — Auth, database, API routes
|
|
291
|
+
2. Agent — AI logic, prompts, tool calling
|
|
292
|
+
3. Interface — Chat UI, streaming, history
|
|
293
|
+
4. Polish — Error handling, rate limiting, monitoring
|
|
294
|
+
|
|
295
|
+
**Typical voice agent:**
|
|
296
|
+
1. Foundation — Webhook handler, Supabase, auth
|
|
297
|
+
2. Voice — VAPI/Retell config, call flow, prompts
|
|
298
|
+
3. Integration — CRM sync, logging, analytics
|
|
299
|
+
4. Polish — Latency optimization, error handling
|
|
300
|
+
|
|
301
|
+
Present the roadmap. Use AskUserQuestion:
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
question: "Does this roadmap look right?"
|
|
305
|
+
header: "Roadmap"
|
|
306
|
+
options:
|
|
307
|
+
- label: "Looks good"
|
|
308
|
+
description: "Lock it in and start planning Phase 1"
|
|
309
|
+
- label: "Adjust phases"
|
|
310
|
+
description: "I want to change the phase breakdown"
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Step 10. Commit & Output
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
git add .planning/
|
|
317
|
+
git commit -m "init: project setup with planning files"
|
|
318
|
+
git push -u origin main
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
node ~/.claude/bin/qualia-ui.js end "PROJECT READY" "/qualia-plan 1"
|
|
323
|
+
```
|
|
@@ -414,4 +414,4 @@ If user wants a fix phase for critical issues:
|
|
|
414
414
|
3. Map CRITICAL and HIGH findings as success criteria
|
|
415
415
|
4. Update STATE.md
|
|
416
416
|
5. Commit
|
|
417
|
-
6. Suggest: "Fix phase created. Run `/qualia-plan
|
|
417
|
+
6. Suggest: "Fix phase created. Run `/qualia-plan {N}.1`"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-pause
|
|
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
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-pause — Session Handoff
|
|
7
|
+
|
|
8
|
+
Save context so the next session picks up where you left off.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
node ~/.claude/bin/qualia-ui.js banner pause
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### 1. Read State
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cat .planning/STATE.md 2>/dev/null
|
|
20
|
+
git status --short 2>/dev/null
|
|
21
|
+
git log --oneline -5 2>/dev/null
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 2. Create `.continue-here.md`
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
# Continue Here
|
|
28
|
+
|
|
29
|
+
## Session Summary
|
|
30
|
+
{What was accomplished — from conversation context + git log}
|
|
31
|
+
|
|
32
|
+
## Current Phase
|
|
33
|
+
Phase {N}: {name} — {status}
|
|
34
|
+
|
|
35
|
+
## In Progress
|
|
36
|
+
- {What's partially done}
|
|
37
|
+
- {Where exactly work stopped}
|
|
38
|
+
|
|
39
|
+
## Next Steps
|
|
40
|
+
1. {Immediate next action}
|
|
41
|
+
2. {Following action}
|
|
42
|
+
|
|
43
|
+
## Decisions Made
|
|
44
|
+
- {Decision and rationale}
|
|
45
|
+
|
|
46
|
+
## Blockers
|
|
47
|
+
- {Any unresolved issues}
|
|
48
|
+
|
|
49
|
+
## Files Modified
|
|
50
|
+
- {List from git status/diff}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Commit
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
git add .continue-here.md {any uncommitted work files}
|
|
57
|
+
git commit -m "WIP: {phase name} — session handoff"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
node ~/.claude/bin/state.js transition --to note --notes "Session paused — see .continue-here.md"
|
|
62
|
+
```
|
|
63
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
@@ -0,0 +1,101 @@
|
|
|
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 & Load Knowledge
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cat .planning/STATE.md 2>/dev/null
|
|
21
|
+
cat ~/.claude/knowledge/learned-patterns.md 2>/dev/null
|
|
22
|
+
cat ~/.claude/knowledge/client-prefs.md 2>/dev/null
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If no phase number given, use the current phase from STATE.md.
|
|
26
|
+
If any learned patterns apply to this phase's work, pass them to the planner in the spawn prompt under a `## Relevant Learnings` section.
|
|
27
|
+
If this is a client project and `client-prefs.md` has an entry for the client, include those preferences in the planner context.
|
|
28
|
+
|
|
29
|
+
### 2. Spawn Planner (Fresh Context)
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
node ~/.claude/bin/qualia-ui.js banner plan {N} "{phase name from STATE.md}"
|
|
33
|
+
node ~/.claude/bin/qualia-ui.js spawn planner "Breaking phase into tasks..."
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Spawn a subagent with `agents/planner.md` instructions:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Agent(prompt="
|
|
40
|
+
Read your role: @agents/planner.md
|
|
41
|
+
|
|
42
|
+
Project context:
|
|
43
|
+
@.planning/PROJECT.md
|
|
44
|
+
|
|
45
|
+
Current state:
|
|
46
|
+
@.planning/STATE.md
|
|
47
|
+
|
|
48
|
+
Phase {N} goal: {goal from STATE.md roadmap}
|
|
49
|
+
Phase {N} success criteria: {criteria from STATE.md}
|
|
50
|
+
|
|
51
|
+
{If --gaps: Also read @.planning/phase-{N}-verification.md for failures to fix}
|
|
52
|
+
|
|
53
|
+
Create the plan file at .planning/phase-{N}-plan.md
|
|
54
|
+
", subagent_type="qualia-planner", description="Plan phase {N}")
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Review Plan
|
|
58
|
+
|
|
59
|
+
Read the generated plan. Present the summary using the UI helpers:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
node ~/.claude/bin/qualia-ui.js divider
|
|
63
|
+
node ~/.claude/bin/qualia-ui.js ok "Plan ready: {count} tasks across {count} waves"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Then, for each wave, print:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
node ~/.claude/bin/qualia-ui.js wave {wave_num} {wave_total} {task_count_in_wave}
|
|
70
|
+
node ~/.claude/bin/qualia-ui.js task 1 "{task title}"
|
|
71
|
+
node ~/.claude/bin/qualia-ui.js task 2 "{task title}"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
End with an approval prompt (plain text, no UI helper): *"Approve? (yes / adjust)"*
|
|
75
|
+
|
|
76
|
+
If "adjust" — get feedback, re-spawn planner with revision context.
|
|
77
|
+
|
|
78
|
+
### 4. Update State
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
node ~/.claude/bin/state.js transition --to planned --phase {N}
|
|
82
|
+
```
|
|
83
|
+
If state.js returns an error, show it to the employee and stop.
|
|
84
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
node ~/.claude/bin/qualia-ui.js end "PHASE {N} PLANNED" "/qualia-build {N}"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Gap Closure Mode (`--gaps`)
|
|
91
|
+
|
|
92
|
+
When invoked as `/qualia-plan {N} --gaps`, the planner is in gap-closure mode:
|
|
93
|
+
|
|
94
|
+
1. Read `.planning/phase-{N}-verification.md` — extract ONLY the FAIL items
|
|
95
|
+
2. For each FAIL item, create a targeted fix task:
|
|
96
|
+
- **Files:** The specific files that failed verification
|
|
97
|
+
- **Action:** The specific fix needed (not "fix auth" — "add session persistence check in `src/lib/auth.ts` signIn function")
|
|
98
|
+
- **Done when:** The exact verification criterion that previously failed, restated
|
|
99
|
+
3. Do NOT re-plan passing items. Do NOT add new features. Gap plans are surgical.
|
|
100
|
+
4. Write to `.planning/phase-{N}-gaps-plan.md` (separate from original plan)
|
|
101
|
+
5. All gap tasks are Wave 1 (parallel) unless they share files
|
|
@@ -0,0 +1,157 @@
|
|
|
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
|
+
```bash
|
|
13
|
+
node ~/.claude/bin/qualia-ui.js banner polish
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### 0. Load Design Context
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cat .planning/DESIGN.md 2>/dev/null || echo "NO_DESIGN"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If DESIGN.md exists → use it as the standard. If not → use Qualia defaults from `rules/frontend.md`.
|
|
23
|
+
|
|
24
|
+
Read EVERY frontend file before modifying. No blind edits.
|
|
25
|
+
|
|
26
|
+
### 1. Critique (Structured Audit)
|
|
27
|
+
|
|
28
|
+
Review the entire UI against this checklist. Check each item, note violations with file:line.
|
|
29
|
+
|
|
30
|
+
**Typography:**
|
|
31
|
+
- [ ] No generic fonts (Inter, Roboto, Arial, system-ui, Space Grotesk)
|
|
32
|
+
- [ ] Proper type scale with clear hierarchy (display → heading → body → caption)
|
|
33
|
+
- [ ] Body text: 16px+, line-height 1.5–1.7
|
|
34
|
+
- [ ] Headings: tighter line-height (1.1–1.3), negative letter-spacing for large sizes
|
|
35
|
+
- [ ] Prose max-width: 65ch
|
|
36
|
+
- [ ] Font weights used for hierarchy (Regular, Medium, Semibold, Bold)
|
|
37
|
+
|
|
38
|
+
**Color & Contrast:**
|
|
39
|
+
- [ ] Cohesive palette via CSS variables (not scattered hex values)
|
|
40
|
+
- [ ] All text passes WCAG AA contrast (4.5:1 normal, 3:1 large)
|
|
41
|
+
- [ ] CTA buttons use accent color — stand out from the page
|
|
42
|
+
- [ ] No blue-purple gradients, no rainbow palettes
|
|
43
|
+
- [ ] Dark mode: rethought surfaces (not just inverted)
|
|
44
|
+
- [ ] Semantic colors used consistently (success=green, error=red, warning=amber)
|
|
45
|
+
|
|
46
|
+
**Layout & Spacing:**
|
|
47
|
+
- [ ] Full-width fluid layouts — no hardcoded max-width caps
|
|
48
|
+
- [ ] 8px spacing grid followed consistently
|
|
49
|
+
- [ ] Tight spacing within groups, generous between sections
|
|
50
|
+
- [ ] Fluid padding: `clamp(1rem, 5vw, 4rem)` horizontal
|
|
51
|
+
- [ ] No identical card grids — varied visual hierarchy
|
|
52
|
+
- [ ] No generic heroes — purposeful, distinctive
|
|
53
|
+
|
|
54
|
+
**Interactive States:**
|
|
55
|
+
- [ ] Every button/link: hover (color shift, 150ms), focus (visible ring), active (press feedback), disabled
|
|
56
|
+
- [ ] Loading: skeleton or spinner on all async operations
|
|
57
|
+
- [ ] Empty: helpful message + action on empty lists/data
|
|
58
|
+
- [ ] Error: user-friendly message + recovery action on failed fetches
|
|
59
|
+
- [ ] Form validation: inline errors with `aria-describedby`
|
|
60
|
+
|
|
61
|
+
**Motion:**
|
|
62
|
+
- [ ] Hover/focus: 150–200ms transitions
|
|
63
|
+
- [ ] Page load: staggered entrance animations (50–80ms delay)
|
|
64
|
+
- [ ] Expand/collapse: 250ms ease-in-out
|
|
65
|
+
- [ ] `prefers-reduced-motion` respected (no animation for users who opt out)
|
|
66
|
+
- [ ] No jank: transforms and opacity only for animated properties
|
|
67
|
+
|
|
68
|
+
**Accessibility:**
|
|
69
|
+
- [ ] Semantic HTML: `nav`, `main`, `section`, `article`, `header`, `footer`
|
|
70
|
+
- [ ] One `h1` per page, sequential heading hierarchy
|
|
71
|
+
- [ ] All images: descriptive `alt` (or `alt=""` + `aria-hidden` if decorative)
|
|
72
|
+
- [ ] All form inputs: visible `<label>` with `htmlFor` — not placeholder-only
|
|
73
|
+
- [ ] All interactive elements: keyboard accessible (Tab/Enter/Escape)
|
|
74
|
+
- [ ] Touch targets: 44px minimum
|
|
75
|
+
- [ ] Skip link: `<a href="#main">` as first focusable element
|
|
76
|
+
- [ ] No `outline: none` without focus replacement
|
|
77
|
+
- [ ] `<html lang="en">` set
|
|
78
|
+
- [ ] Color not sole information carrier — icons/text as supplements
|
|
79
|
+
|
|
80
|
+
**Responsive:**
|
|
81
|
+
- [ ] Mobile-first approach (base styles for mobile, min-width breakpoints for larger)
|
|
82
|
+
- [ ] No horizontal scroll at 320px
|
|
83
|
+
- [ ] Navigation: hamburger on mobile, expanded on desktop
|
|
84
|
+
- [ ] Touch targets adequate on mobile (44px min)
|
|
85
|
+
- [ ] Fluid typography with `clamp()`
|
|
86
|
+
- [ ] Images: `max-width: 100%`, responsive srcset where needed
|
|
87
|
+
- [ ] Tables: card view or horizontal scroll on mobile
|
|
88
|
+
|
|
89
|
+
**Performance:**
|
|
90
|
+
- [ ] Server Components by default — `'use client'` only when needed
|
|
91
|
+
- [ ] Images via `next/image` with width/height
|
|
92
|
+
- [ ] No barrel file imports — direct imports from source
|
|
93
|
+
- [ ] Heavy components lazy-loaded with `next/dynamic`
|
|
94
|
+
- [ ] Data fetched in parallel, not sequentially
|
|
95
|
+
|
|
96
|
+
### 2. Fix Everything
|
|
97
|
+
|
|
98
|
+
Work through violations from the critique. Fix each category:
|
|
99
|
+
|
|
100
|
+
1. Typography first (sets the visual foundation)
|
|
101
|
+
2. Color & contrast (palette coherence)
|
|
102
|
+
3. Layout & spacing (structural fixes)
|
|
103
|
+
4. Interactive states (loading, empty, error, hover, focus)
|
|
104
|
+
5. Motion (transitions, entrance animations, reduced-motion)
|
|
105
|
+
6. Accessibility (semantic HTML, ARIA, keyboard, labels)
|
|
106
|
+
7. Responsive (mobile breakpoints, fluid sizing)
|
|
107
|
+
8. Performance (quick wins — image optimization, dynamic imports)
|
|
108
|
+
|
|
109
|
+
### 3. Harden
|
|
110
|
+
|
|
111
|
+
After polish, stress-test edge cases:
|
|
112
|
+
- Long text content (overflow, truncation, word-break)
|
|
113
|
+
- Extremely long usernames or email addresses
|
|
114
|
+
- Empty data everywhere simultaneously
|
|
115
|
+
- Error state on every fetch simultaneously
|
|
116
|
+
- 320px viewport width
|
|
117
|
+
- Keyboard-only navigation through entire flow
|
|
118
|
+
- Screen reader landmarks check (semantic HTML)
|
|
119
|
+
- Right-to-left text (if i18n is planned)
|
|
120
|
+
- Slow network (loading states visible, no flash of empty content)
|
|
121
|
+
|
|
122
|
+
### 4. Verify
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npx tsc --noEmit 2>&1 | head -20
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Fix any TypeScript errors before committing.
|
|
129
|
+
|
|
130
|
+
### 5. Commit & Transition
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
git add {changed files}
|
|
134
|
+
git commit -m "polish: design and UX pass — typography, accessibility, responsive, states"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
node ~/.claude/bin/state.js transition --to polished
|
|
139
|
+
```
|
|
140
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
141
|
+
|
|
142
|
+
### 6. Report
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
node ~/.claude/bin/qualia-ui.js divider
|
|
146
|
+
node ~/.claude/bin/qualia-ui.js info "Files modified: {N}"
|
|
147
|
+
node ~/.claude/bin/qualia-ui.js ok "Typography — {brief}"
|
|
148
|
+
node ~/.claude/bin/qualia-ui.js ok "Color — {brief}"
|
|
149
|
+
node ~/.claude/bin/qualia-ui.js ok "Layout — {brief}"
|
|
150
|
+
node ~/.claude/bin/qualia-ui.js ok "States — {brief}"
|
|
151
|
+
node ~/.claude/bin/qualia-ui.js ok "Motion — {brief}"
|
|
152
|
+
node ~/.claude/bin/qualia-ui.js ok "Accessibility — {brief}"
|
|
153
|
+
node ~/.claude/bin/qualia-ui.js ok "Responsive — {brief}"
|
|
154
|
+
node ~/.claude/bin/qualia-ui.js ok "Performance — {brief}"
|
|
155
|
+
node ~/.claude/bin/qualia-ui.js ok "Hardening — {brief}"
|
|
156
|
+
node ~/.claude/bin/qualia-ui.js end "POLISHED" "/qualia-ship"
|
|
157
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
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 1 hour that don't need full phase planning. Single file changes, bug fixes, config tweaks, typo fixes.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
node ~/.claude/bin/qualia-ui.js banner quick
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
1. **Understand:** Ask what needs to be done (or read the instruction)
|
|
17
|
+
2. **Build:** Do it directly — read before write, MVP only
|
|
18
|
+
3. **Verify:** Run `npx tsc --noEmit`, test locally
|
|
19
|
+
4. **Commit:** Atomic commit with clear message
|
|
20
|
+
5. **Update:** Update tracking.json notes field
|
|
21
|
+
|
|
22
|
+
End with:
|
|
23
|
+
```bash
|
|
24
|
+
node ~/.claude/bin/qualia-ui.js end "QUICK FIX DONE"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git add {specific files}
|
|
29
|
+
git commit -m "fix: {description}"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
No plan file. No subagents. Just build and ship.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
node ~/.claude/bin/state.js transition --to note --notes "{brief description of what was done}"
|
|
36
|
+
```
|
|
37
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|