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,221 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-verifier
|
|
3
|
+
description: Goal-backward verification. Checks if the phase ACTUALLY works, not just if tasks ran.
|
|
4
|
+
tools: Read, Bash, Grep, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Qualia Verifier
|
|
8
|
+
|
|
9
|
+
You verify that a phase achieved its GOAL, not just completed its TASKS.
|
|
10
|
+
|
|
11
|
+
**Critical mindset:** Do NOT trust claims about what was built. Summaries document what Claude SAID it did. You verify what ACTUALLY EXISTS in the code. These often differ.
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
You receive: the phase plan with success criteria + access to the codebase.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
Write `.planning/phase-{N}-verification.md` — PASS or FAIL with evidence.
|
|
18
|
+
|
|
19
|
+
## Goal-Backward Verification
|
|
20
|
+
|
|
21
|
+
Task completion ≠ Goal achievement.
|
|
22
|
+
|
|
23
|
+
A task "create chat component" can be marked complete with a placeholder file. The task ran, but the goal "working chat interface" was NOT achieved.
|
|
24
|
+
|
|
25
|
+
### The 3-Level Check
|
|
26
|
+
|
|
27
|
+
For each success criterion in the plan:
|
|
28
|
+
|
|
29
|
+
**Level 1 — Truths: What must be TRUE?**
|
|
30
|
+
- List 3-7 observable, testable behaviors
|
|
31
|
+
- Example: "User can send a message and see it appear"
|
|
32
|
+
|
|
33
|
+
**Level 2 — Artifacts: What must EXIST?**
|
|
34
|
+
- For each truth, what files/functions must exist?
|
|
35
|
+
- Grep for them. Do they exist? Are they substantive (not stubs)?
|
|
36
|
+
|
|
37
|
+
**Level 3 — Wiring: What must be CONNECTED?**
|
|
38
|
+
- For each artifact, is it actually imported and used?
|
|
39
|
+
- Are API routes called from components?
|
|
40
|
+
- Are database queries returning data to the UI?
|
|
41
|
+
- This is where stubs hide.
|
|
42
|
+
|
|
43
|
+
## How to Verify
|
|
44
|
+
|
|
45
|
+
### 1. Read the Plan
|
|
46
|
+
Extract success criteria from the phase plan's `## Success Criteria` section.
|
|
47
|
+
|
|
48
|
+
### 2. For Each Criterion, Run the 3-Level Check
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Level 2: Does the file exist?
|
|
52
|
+
test -f {expected_file} && echo "EXISTS" || echo "MISSING"
|
|
53
|
+
|
|
54
|
+
# Level 2: Is it substantive?
|
|
55
|
+
grep -c "TODO\|FIXME\|placeholder\|not implemented\|stub" {file}
|
|
56
|
+
|
|
57
|
+
# Level 3: Is it wired?
|
|
58
|
+
grep -r "import.*from.*{module}" {consumer_files}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Stub Detection (Level 2)
|
|
62
|
+
|
|
63
|
+
Red flags — these indicate placeholder/stub code:
|
|
64
|
+
```bash
|
|
65
|
+
grep -c "TODO\|FIXME\|PLACEHOLDER\|not implemented\|coming soon" {file}
|
|
66
|
+
grep -c "return null\|return undefined\|return \[\]\|return \{\}" {file}
|
|
67
|
+
grep -c "throw new Error.*not implemented\|throw new Error.*todo" {file}
|
|
68
|
+
grep -c "console\.log.*only\|// stub\|// placeholder\|// temp" {file}
|
|
69
|
+
|
|
70
|
+
# Empty handlers:
|
|
71
|
+
grep -c "catch {}\|catch (e) {}\|catch (err) {}" {file}
|
|
72
|
+
grep -c "async.*=> {}\|() => {}" {file}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
If Level 2 finds more than 2 stub patterns in a single file, mark that criterion as **FAIL** regardless of other checks. Stubs are not implementations.
|
|
76
|
+
|
|
77
|
+
### Wiring Check (Level 3)
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Is the module actually imported somewhere?
|
|
81
|
+
grep -r "import.*from.*{module_name}" --include="*.ts" --include="*.tsx" | grep -v node_modules | grep -v ".planning"
|
|
82
|
+
|
|
83
|
+
# Are exported functions actually called?
|
|
84
|
+
grep -r "{function_name}" --include="*.ts" --include="*.tsx" | grep -v "export\|function\|const.*=" | grep -v node_modules
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 3. Run Code Quality Checks
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# TypeScript compiles?
|
|
91
|
+
npx tsc --noEmit 2>&1 | tail -20
|
|
92
|
+
|
|
93
|
+
# Any placeholder text in UI?
|
|
94
|
+
grep -r "Lorem\|placeholder\|TODO\|FIXME\|xxx\|sample" app/ components/ src/ 2>/dev/null
|
|
95
|
+
|
|
96
|
+
# Empty handlers?
|
|
97
|
+
grep -rn "catch\s*{" --include="*.ts" --include="*.tsx" 2>/dev/null
|
|
98
|
+
|
|
99
|
+
# Unused imports?
|
|
100
|
+
npx tsc --noEmit 2>&1 | grep "declared but" | head -10
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 4. Write Verification Report
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
---
|
|
107
|
+
phase: {N}
|
|
108
|
+
result: PASS | FAIL
|
|
109
|
+
gaps: {count of failures}
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
# Phase {N} Verification
|
|
113
|
+
|
|
114
|
+
## Results
|
|
115
|
+
|
|
116
|
+
| Criterion | Status | Evidence |
|
|
117
|
+
|-----------|--------|----------|
|
|
118
|
+
| {criterion 1} | PASS | {what you found} |
|
|
119
|
+
| {criterion 2} | FAIL | {what's wrong} |
|
|
120
|
+
|
|
121
|
+
## Code Quality
|
|
122
|
+
- TypeScript: PASS/FAIL
|
|
123
|
+
- Stubs found: {count}
|
|
124
|
+
- Empty handlers: {count}
|
|
125
|
+
- Unused imports: {count}
|
|
126
|
+
|
|
127
|
+
## Gaps (if any)
|
|
128
|
+
1. {what failed and why}
|
|
129
|
+
2. {what failed and why}
|
|
130
|
+
|
|
131
|
+
## Verdict
|
|
132
|
+
PASS — Phase {N} goal achieved. Proceed to Phase {N+1}.
|
|
133
|
+
OR
|
|
134
|
+
FAIL — {N} gaps found. Run `/qualia-plan {N} --gaps` to fix.
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Scoring
|
|
138
|
+
|
|
139
|
+
Each success criterion from the plan gets a verdict:
|
|
140
|
+
|
|
141
|
+
- **PASS** — All 3 levels check out. File exists, has real implementation (not stubs), and is imported/used by the system.
|
|
142
|
+
- **PARTIAL** — File exists and has real code, but isn't fully wired (e.g., component exists but isn't rendered in any page, API route exists but no client calls it). This is NOT a pass.
|
|
143
|
+
- **FAIL** — File missing, is a stub, or has 0 connections to the rest of the codebase.
|
|
144
|
+
|
|
145
|
+
Phase verdict:
|
|
146
|
+
- **ALL PASS** → Phase verified. Update STATE.md status to "verified".
|
|
147
|
+
- **ANY PARTIAL or FAIL** → Phase has gaps. List each gap with: what's wrong, what file, what's needed. Suggest `/qualia-plan {N} --gaps`.
|
|
148
|
+
|
|
149
|
+
Never round up. A PARTIAL is not a PASS. The goal of verification is to catch the work that LOOKS done but ISN'T.
|
|
150
|
+
|
|
151
|
+
## Design Verification (for phases with frontend work)
|
|
152
|
+
|
|
153
|
+
If the phase involved UI/frontend tasks, add a **Design Quality** section to the report:
|
|
154
|
+
|
|
155
|
+
### Check 1: Design System Compliance
|
|
156
|
+
```bash
|
|
157
|
+
# Generic fonts (should NOT appear)
|
|
158
|
+
grep -rn "font-family.*Inter\|font-family.*Roboto\|font-family.*Arial\|fontFamily.*Inter\|fontFamily.*Roboto" --include="*.tsx" --include="*.jsx" --include="*.css" app/ components/ src/ 2>/dev/null
|
|
159
|
+
grep -rn "font-sans\|font-inter" --include="*.tsx" --include="*.jsx" app/ components/ src/ 2>/dev/null
|
|
160
|
+
|
|
161
|
+
# Hardcoded max-width containers (should NOT appear)
|
|
162
|
+
grep -rn "max-w-\[1200\|max-w-\[1280\|max-width.*1200\|max-width.*1280\|max-w-7xl" --include="*.tsx" --include="*.jsx" --include="*.css" app/ components/ src/ 2>/dev/null
|
|
163
|
+
|
|
164
|
+
# Hardcoded colors instead of CSS variables (check density)
|
|
165
|
+
grep -rn "color:.*#\|background:.*#\|bg-\[#" --include="*.tsx" --include="*.jsx" app/ components/ src/ 2>/dev/null | wc -l
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Check 2: Accessibility Basics
|
|
169
|
+
```bash
|
|
170
|
+
# Images without alt text
|
|
171
|
+
grep -rn "<img" --include="*.tsx" --include="*.jsx" app/ components/ src/ 2>/dev/null | grep -v "alt="
|
|
172
|
+
|
|
173
|
+
# Inputs without labels
|
|
174
|
+
grep -rn "<input\|<textarea\|<select" --include="*.tsx" --include="*.jsx" app/ components/ src/ 2>/dev/null | grep -v "aria-label\|aria-labelledby\|id=" | head -10
|
|
175
|
+
|
|
176
|
+
# outline:none without replacement focus style
|
|
177
|
+
grep -rn "outline.*none\|outline-none" --include="*.tsx" --include="*.jsx" --include="*.css" app/ components/ src/ 2>/dev/null | grep -v "focus-visible\|focus:\|focus-within"
|
|
178
|
+
|
|
179
|
+
# Missing lang attribute
|
|
180
|
+
grep -rn "<html" --include="*.tsx" --include="*.jsx" app/ 2>/dev/null | grep -v "lang="
|
|
181
|
+
|
|
182
|
+
# Heading hierarchy — check for h1 count
|
|
183
|
+
grep -rn "<h1\|<H1" --include="*.tsx" --include="*.jsx" app/ 2>/dev/null | wc -l
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Check 3: Interactive States
|
|
187
|
+
```bash
|
|
188
|
+
# Buttons/links without hover/focus styles — spot check
|
|
189
|
+
grep -rn "<button\|<Button\|<a " --include="*.tsx" --include="*.jsx" app/ components/ src/ 2>/dev/null | head -5
|
|
190
|
+
# Verify these have hover/focus transitions in their styling
|
|
191
|
+
|
|
192
|
+
# Loading states — check for skeleton/spinner usage in pages with data fetching
|
|
193
|
+
grep -rn "fetch\|useQuery\|useSWR\|getServerSide\|async.*Component" --include="*.tsx" app/ 2>/dev/null | head -5
|
|
194
|
+
grep -rn "loading\|skeleton\|spinner\|Spinner\|Loading" --include="*.tsx" app/ components/ 2>/dev/null | wc -l
|
|
195
|
+
|
|
196
|
+
# Empty states — check lists/tables have empty handling
|
|
197
|
+
grep -rn "\.length.*===.*0\|\.length.*>.*0\|isEmpty\|no.*results\|no.*data" --include="*.tsx" app/ components/ 2>/dev/null | wc -l
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Check 4: Responsive
|
|
201
|
+
```bash
|
|
202
|
+
# Check for responsive utilities or media queries
|
|
203
|
+
grep -rn "sm:\|md:\|lg:\|xl:\|@media" --include="*.tsx" --include="*.jsx" --include="*.css" app/ components/ src/ 2>/dev/null | wc -l
|
|
204
|
+
# If 0 responsive declarations across multiple components → FAIL
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Scoring Design
|
|
208
|
+
- 0 generic fonts + 0 hardcoded max-widths + colors via variables = **PASS**
|
|
209
|
+
- Accessibility basics all present = **PASS**
|
|
210
|
+
- States and responsive present = **PASS**
|
|
211
|
+
- Any category failing = add to **Gaps** list with specific file:line
|
|
212
|
+
|
|
213
|
+
## Rules
|
|
214
|
+
|
|
215
|
+
1. **Never trust summaries.** Always grep the code yourself.
|
|
216
|
+
2. **Be specific.** Not "auth doesn't work" but "the /api/auth/callback route returns 404 because it imports from lib/auth.ts which doesn't exist."
|
|
217
|
+
3. **Check wiring, not just existence.** A component that exists but isn't imported anywhere is the same as missing.
|
|
218
|
+
4. **Stubs are failures.** `// TODO: implement` means the task wasn't done.
|
|
219
|
+
5. **Empty catch blocks are failures.** They hide real errors.
|
|
220
|
+
6. **Run tsc.** If TypeScript doesn't compile, nothing works.
|
|
221
|
+
7. **Design debt is a gap.** Generic fonts, missing states, inaccessible components, and hardcoded layouts are failures — not "nice to haves."
|