qualia-framework-v2 2.1.2 → 2.4.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/README.md +29 -6
- package/bin/cli.js +135 -7
- package/bin/install.js +46 -0
- package/bin/state.js +496 -0
- package/hooks/pre-push.sh +19 -26
- package/package.json +1 -1
- package/skills/qualia/SKILL.md +51 -28
- package/skills/qualia-build/SKILL.md +5 -2
- package/skills/qualia-debug/SKILL.md +73 -0
- package/skills/qualia-design/SKILL.md +89 -0
- package/skills/qualia-handoff/SKILL.md +4 -2
- package/skills/qualia-idk/SKILL.md +8 -0
- package/skills/qualia-learn/SKILL.md +84 -0
- package/skills/qualia-new/SKILL.md +6 -2
- package/skills/qualia-pause/SKILL.md +59 -0
- package/skills/qualia-plan/SKILL.md +5 -2
- package/skills/qualia-polish/SKILL.md +4 -2
- package/skills/qualia-quick/SKILL.md +4 -1
- package/skills/qualia-report/SKILL.md +38 -32
- package/skills/qualia-resume/SKILL.md +44 -0
- package/skills/qualia-review/SKILL.md +72 -0
- package/skills/qualia-ship/SKILL.md +4 -2
- package/skills/qualia-task/SKILL.md +4 -1
- package/skills/qualia-verify/SKILL.md +7 -2
- package/templates/tracking.json +1 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-debug
|
|
3
|
+
description: "Structured debugging — symptom gathering, diagnosis confirmation, root cause analysis. Trigger on 'debug', 'find bug', 'fix error', 'something is broken', 'not working', 'weird behavior', 'layout broken', 'CSS issue', 'slow page', 'performance'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-debug — Structured Debugging
|
|
7
|
+
|
|
8
|
+
Systematic debugging. Don't guess — gather symptoms, confirm diagnosis, then fix.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
- `/qualia-debug` — Interactive (gather symptoms, diagnose, fix)
|
|
13
|
+
- `/qualia-debug --frontend` — CSS/layout/visual issues
|
|
14
|
+
- `/qualia-debug --perf` — Performance issues
|
|
15
|
+
|
|
16
|
+
## Interactive Mode (Default)
|
|
17
|
+
|
|
18
|
+
### 1. Gather Symptoms
|
|
19
|
+
|
|
20
|
+
Ask:
|
|
21
|
+
- What's happening? (exact error or behavior)
|
|
22
|
+
- What should happen instead?
|
|
23
|
+
- When did it start? (after what change?)
|
|
24
|
+
- What have you tried?
|
|
25
|
+
|
|
26
|
+
### 2. Confirm Diagnosis
|
|
27
|
+
|
|
28
|
+
Before ANY code changes, present your diagnosis:
|
|
29
|
+
|
|
30
|
+
> "Based on the symptoms, I think: [diagnosis]. I'll investigate [specific area]. Does that match what you're seeing?"
|
|
31
|
+
|
|
32
|
+
Wait for confirmation. If user corrects → adjust. Never proceed on a wrong diagnosis.
|
|
33
|
+
|
|
34
|
+
### 3. Investigate and Fix
|
|
35
|
+
|
|
36
|
+
1. Reproduce the issue
|
|
37
|
+
2. Isolate the cause (binary search: which file, which function, which line)
|
|
38
|
+
3. Identify root cause (not symptoms)
|
|
39
|
+
4. Implement minimal fix
|
|
40
|
+
5. Verify fix works
|
|
41
|
+
6. Check for related issues
|
|
42
|
+
|
|
43
|
+
### 4. Commit
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
git add {specific files}
|
|
47
|
+
git commit -m "fix: {what was broken and why}"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Frontend Mode (`--frontend`)
|
|
51
|
+
|
|
52
|
+
For layout breaks, z-index issues, overflow, animation glitches.
|
|
53
|
+
|
|
54
|
+
**Quick diagnostics:**
|
|
55
|
+
- Z-index not working → element needs `position: relative/absolute/fixed`, check parent stacking contexts
|
|
56
|
+
- Horizontal scroll → use `width: 100%` not `100vw`, find overflowing element
|
|
57
|
+
- Flex overflow → add `min-width: 0`
|
|
58
|
+
- Grid blowout → use `minmax(0, 1fr)`
|
|
59
|
+
- Janky animations → only animate `transform` and `opacity`
|
|
60
|
+
- Safari → `-webkit-backdrop-filter`, `100dvh` not `100vh`
|
|
61
|
+
|
|
62
|
+
## Performance Mode (`--perf`)
|
|
63
|
+
|
|
64
|
+
### Investigate
|
|
65
|
+
1. Profile the bottleneck (network, render, compute, database)
|
|
66
|
+
2. Measure baseline
|
|
67
|
+
3. Identify the hot path
|
|
68
|
+
|
|
69
|
+
### Common fixes
|
|
70
|
+
- Slow queries → check indexes, `EXPLAIN ANALYZE`, optimize joins
|
|
71
|
+
- Large bundles → code split, lazy load, tree shake
|
|
72
|
+
- Slow renders → memoize, virtualize long lists
|
|
73
|
+
- API latency → cache, reduce payload, parallelize requests
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-design
|
|
3
|
+
description: "One-shot design transformation — critiques, fixes, polishes, hardens, makes responsive. No reports, no choices, just makes it professional. Trigger on 'fix the design', 'make it look better', 'redesign', 'design pass', 'make it modern', 'it looks ugly', 'fix the UI'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-design — One-Shot Design Transformation
|
|
7
|
+
|
|
8
|
+
Read the code, understand what's wrong, fix everything, move on. No reports, no choices.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
- `/qualia-design` — Full transformation on all frontend files
|
|
13
|
+
- `/qualia-design app/page.tsx` — Specific file(s)
|
|
14
|
+
- `/qualia-design --scope=dashboard` — Transform a section
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
### 1. Read Brand Context
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cat .planning/DESIGN.md 2>/dev/null || echo "NO_DESIGN"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If DESIGN.md exists → use it. If not → use Qualia defaults: distinctive fonts, sharp accents, layered backgrounds, no card grids, no blue-purple gradients, full-width layouts.
|
|
25
|
+
|
|
26
|
+
### 2. Find Target Files
|
|
27
|
+
|
|
28
|
+
- If specific files given: use those
|
|
29
|
+
- If `--scope`: grep for matching files in `app/` and `components/`
|
|
30
|
+
- If none: find all `page.tsx`, `layout.tsx`, and component files
|
|
31
|
+
|
|
32
|
+
Read EVERY target file before modifying.
|
|
33
|
+
|
|
34
|
+
### 3. Critique (internal — don't output)
|
|
35
|
+
|
|
36
|
+
Evaluate each file on: AI slop detection, visual hierarchy, typography, color, states (loading/error/empty), motion, spacing, responsiveness, microcopy.
|
|
37
|
+
|
|
38
|
+
### 4. Fix Everything
|
|
39
|
+
|
|
40
|
+
**Typography:** Replace generic fonts (Inter, Arial) with distinctive ones. Proper type scale, line-height 1.5-1.7 body.
|
|
41
|
+
|
|
42
|
+
**Color:** Cohesive palette from DESIGN.md or brand. Sharp accent for CTAs. WCAG AA contrast.
|
|
43
|
+
|
|
44
|
+
**Layout:** Full-width with fluid padding `clamp(1rem, 5vw, 4rem)`. NO hardcoded max-width caps. Prose gets `max-width: 65ch`.
|
|
45
|
+
|
|
46
|
+
**Spacing:** Consistent scale (8px grid). Generous whitespace between sections, tight within groups.
|
|
47
|
+
|
|
48
|
+
**Motion:** CSS transitions 200-300ms on hover/focus. Staggered entrance animations. `prefers-reduced-motion` respected.
|
|
49
|
+
|
|
50
|
+
**States:** Loading skeleton/spinner on async ops. Error states on data fetches. Empty states on lists. Hover/focus/active/disabled on interactive elements.
|
|
51
|
+
|
|
52
|
+
**Responsive:** Mobile-first. Touch targets 44x44px min. Stack on mobile, expand on desktop. No horizontal scroll.
|
|
53
|
+
|
|
54
|
+
**Kill:** Card grids → varied layouts. Generic heroes → distinctive. Blue-purple gradients → brand colors. Static pages → purposeful motion. Fixed widths → fluid.
|
|
55
|
+
|
|
56
|
+
### 5. Verify
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx tsc --noEmit 2>&1 | head -20
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Fix any TypeScript errors before committing.
|
|
63
|
+
|
|
64
|
+
### 6. Commit
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
git add {modified files}
|
|
68
|
+
git commit -m "style: design transformation"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
◆ Design Transformation Complete
|
|
73
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
74
|
+
Files: {N}
|
|
75
|
+
Changes:
|
|
76
|
+
- {key change 1}
|
|
77
|
+
- {key change 2}
|
|
78
|
+
- {key change 3}
|
|
79
|
+
|
|
80
|
+
Fine-tune: /bolder, /design-quieter, /colorize, /animate
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Rules
|
|
84
|
+
|
|
85
|
+
- Read before write — understand every file before changing it
|
|
86
|
+
- Don't ask — just fix
|
|
87
|
+
- Respect DESIGN.md decisions
|
|
88
|
+
- Don't break functionality — only change styling, never logic
|
|
89
|
+
- TypeScript must pass after changes
|
|
@@ -56,8 +56,10 @@ git push
|
|
|
56
56
|
|
|
57
57
|
### 3. Update State
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
```bash
|
|
60
|
+
node ~/.claude/bin/state.js transition --to handed_off
|
|
61
|
+
```
|
|
62
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
61
63
|
|
|
62
64
|
```
|
|
63
65
|
◆ QUALIA ► DELIVERED ✓
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-learn
|
|
3
|
+
description: "Save a learning, pattern, fix, or client preference to the knowledge base. Persists across projects and sessions. Trigger on 'remember this', 'save this pattern', 'learned something', 'note for future', 'client prefers', 'qualia-learn'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-learn — Save Knowledge
|
|
7
|
+
|
|
8
|
+
Persist learnings across projects and sessions. Saved to `~/.claude/knowledge/`.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
- `/qualia-learn` — Interactively save a learning
|
|
13
|
+
- `/qualia-learn {description}` — Save directly
|
|
14
|
+
|
|
15
|
+
## Knowledge Types
|
|
16
|
+
|
|
17
|
+
### Patterns (`learned-patterns.md`)
|
|
18
|
+
Recurring approaches that work (or don't). Architecture decisions, library choices, prompt patterns.
|
|
19
|
+
|
|
20
|
+
**Example:** "Supabase RLS policies need to be added in the same migration as the table — adding them later causes a window where data is unprotected."
|
|
21
|
+
|
|
22
|
+
### Fixes (`common-fixes.md`)
|
|
23
|
+
Problems you've solved before. Error messages and their solutions.
|
|
24
|
+
|
|
25
|
+
**Example:** "`next/font` crash on Vercel: caused by importing font in a client component that's also used server-side. Fix: move font import to layout.tsx."
|
|
26
|
+
|
|
27
|
+
### Client Prefs (`client-prefs.md`)
|
|
28
|
+
Client-specific preferences, design choices, requirements.
|
|
29
|
+
|
|
30
|
+
**Example:** "Acme Corp: prefers dark mode, hates rounded corners, logo must be SVG not PNG, primary color #FF6B00."
|
|
31
|
+
|
|
32
|
+
## Process
|
|
33
|
+
|
|
34
|
+
### 1. Classify
|
|
35
|
+
|
|
36
|
+
If description given, classify automatically. Otherwise ask:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
What did you learn?
|
|
40
|
+
1. Pattern — approach that works (or doesn't)
|
|
41
|
+
2. Fix — problem and its solution
|
|
42
|
+
3. Client preference — client-specific requirement
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 2. Format Entry
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
### {Title} ({date})
|
|
49
|
+
**Project:** {current project name or "general"}
|
|
50
|
+
**Context:** {brief context — what you were building when you learned this}
|
|
51
|
+
|
|
52
|
+
{The learning — be specific enough that future-you understands without context}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Append to Knowledge File
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Append to the right file
|
|
59
|
+
echo "{formatted entry}" >> ~/.claude/knowledge/{type}.md
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- Pattern → `~/.claude/knowledge/learned-patterns.md`
|
|
63
|
+
- Fix → `~/.claude/knowledge/common-fixes.md`
|
|
64
|
+
- Client pref → `~/.claude/knowledge/client-prefs.md`
|
|
65
|
+
|
|
66
|
+
### 4. Confirm
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
◆ Saved to {file}
|
|
70
|
+
"{title}"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Reading Knowledge
|
|
74
|
+
|
|
75
|
+
Skills can read knowledge files for context:
|
|
76
|
+
```bash
|
|
77
|
+
cat ~/.claude/knowledge/learned-patterns.md 2>/dev/null
|
|
78
|
+
cat ~/.claude/knowledge/common-fixes.md 2>/dev/null
|
|
79
|
+
cat ~/.claude/knowledge/client-prefs.md 2>/dev/null
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The `/qualia-debug` skill should check `common-fixes.md` before investigating.
|
|
83
|
+
The `/qualia-new` skill should check `client-prefs.md` when setting up client projects.
|
|
84
|
+
The `/qualia-plan` skill should check `learned-patterns.md` when planning phases.
|
|
@@ -223,9 +223,13 @@ Create Supabase project (via MCP or manual).
|
|
|
223
223
|
**`.planning/PROJECT.md`** — use template, fill from answers:
|
|
224
224
|
- Client, description, requirements (from features), out of scope, stack, design direction, decisions
|
|
225
225
|
|
|
226
|
-
|
|
226
|
+
### Step 8b. Initialize State
|
|
227
227
|
|
|
228
|
-
|
|
228
|
+
```bash
|
|
229
|
+
node ~/.claude/bin/state.js init --project "{name}" --client "{client}" --type "{type}" --assigned-to "{employee}" --phases '[{phases JSON array from roadmap}]'
|
|
230
|
+
```
|
|
231
|
+
This creates both STATE.md and tracking.json with consistent formatting.
|
|
232
|
+
Do NOT manually edit these files — state.js handles both.
|
|
229
233
|
|
|
230
234
|
### Step 9. Create Roadmap
|
|
231
235
|
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
### 1. Read State
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
cat .planning/STATE.md 2>/dev/null
|
|
16
|
+
git status --short 2>/dev/null
|
|
17
|
+
git log --oneline -5 2>/dev/null
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 2. Create `.continue-here.md`
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
# Continue Here
|
|
24
|
+
|
|
25
|
+
## Session Summary
|
|
26
|
+
{What was accomplished — from conversation context + git log}
|
|
27
|
+
|
|
28
|
+
## Current Phase
|
|
29
|
+
Phase {N}: {name} — {status}
|
|
30
|
+
|
|
31
|
+
## In Progress
|
|
32
|
+
- {What's partially done}
|
|
33
|
+
- {Where exactly work stopped}
|
|
34
|
+
|
|
35
|
+
## Next Steps
|
|
36
|
+
1. {Immediate next action}
|
|
37
|
+
2. {Following action}
|
|
38
|
+
|
|
39
|
+
## Decisions Made
|
|
40
|
+
- {Decision and rationale}
|
|
41
|
+
|
|
42
|
+
## Blockers
|
|
43
|
+
- {Any unresolved issues}
|
|
44
|
+
|
|
45
|
+
## Files Modified
|
|
46
|
+
- {List from git status/diff}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. Commit
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
git add .continue-here.md {any uncommitted work files}
|
|
53
|
+
git commit -m "WIP: {phase name} — session handoff"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node ~/.claude/bin/state.js transition --to note --notes "Session paused — see .continue-here.md"
|
|
58
|
+
```
|
|
59
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
@@ -76,8 +76,11 @@ If "adjust" — get feedback, re-spawn planner with revision context.
|
|
|
76
76
|
|
|
77
77
|
### 4. Update State
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
```bash
|
|
80
|
+
node ~/.claude/bin/state.js transition --to planned --phase {N}
|
|
81
|
+
```
|
|
82
|
+
If state.js returns an error, show it to the employee and stop.
|
|
83
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
81
84
|
|
|
82
85
|
```
|
|
83
86
|
→ Run: /qualia-build {N}
|
|
@@ -49,8 +49,10 @@ git add {changed files}
|
|
|
49
49
|
git commit -m "polish: design and UX pass"
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
```bash
|
|
53
|
+
node ~/.claude/bin/state.js transition --to polished
|
|
54
|
+
```
|
|
55
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
54
56
|
|
|
55
57
|
```
|
|
56
58
|
→ Run: /qualia-ship
|
|
@@ -22,4 +22,7 @@ git commit -m "fix: {description}"
|
|
|
22
22
|
|
|
23
23
|
No plan file. No subagents. Just build and ship.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
```bash
|
|
26
|
+
node ~/.claude/bin/state.js transition --to note --notes "{brief description of what was done}"
|
|
27
|
+
```
|
|
28
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qualia-report
|
|
3
|
-
description: "Generate session report
|
|
3
|
+
description: "Generate session report and commit to repo. Mandatory before clock-out."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /qualia-report — Session Report
|
|
7
7
|
|
|
8
|
-
Generate a concise
|
|
8
|
+
Generate a concise report of what was done. Committed to git for the ERP to read.
|
|
9
9
|
|
|
10
10
|
## Process
|
|
11
11
|
|
|
12
12
|
### 1. Gather Data
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
echo "---COMMITS---"
|
|
16
15
|
SINCE="8 hours ago"
|
|
16
|
+
echo "---COMMITS---"
|
|
17
17
|
git log --oneline --since="$SINCE" 2>/dev/null | head -20
|
|
18
18
|
echo "---STATS---"
|
|
19
19
|
echo "COUNT:$(git log --oneline --since="$SINCE" 2>/dev/null | wc -l)"
|
|
@@ -21,7 +21,7 @@ echo "---PROJECT---"
|
|
|
21
21
|
echo "DIR:$(basename $(pwd))"
|
|
22
22
|
echo "BRANCH:$(git branch --show-current 2>/dev/null)"
|
|
23
23
|
echo "---STATE---"
|
|
24
|
-
|
|
24
|
+
node ~/.claude/bin/state.js check 2>/dev/null
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
### 2. Synthesize
|
|
@@ -31,44 +31,50 @@ Build a concise summary:
|
|
|
31
31
|
- **Blockers:** Only if something is actually blocked.
|
|
32
32
|
- **Next:** 1-3 clear next actions.
|
|
33
33
|
|
|
34
|
-
### 3. Generate
|
|
34
|
+
### 3. Generate Report
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
Write to `.planning/reports/report-{YYYY-MM-DD}.md`:
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
# Session Report — {YYYY-MM-DD}
|
|
40
|
+
|
|
41
|
+
**Project:** {name}
|
|
42
|
+
**Employee:** {git user.name}
|
|
43
|
+
**Branch:** {branch}
|
|
44
|
+
**Phase:** {N} — {name} ({status})
|
|
45
|
+
**Date:** {YYYY-MM-DD}
|
|
38
46
|
|
|
39
|
-
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
## What Was Done
|
|
48
|
+
- {accomplishment 1}
|
|
49
|
+
- {accomplishment 2}
|
|
50
|
+
- {accomplishment 3}
|
|
51
|
+
|
|
52
|
+
## Blockers
|
|
53
|
+
None. / - {blocker}
|
|
54
|
+
|
|
55
|
+
## Next Steps
|
|
56
|
+
1. {next action}
|
|
57
|
+
2. {next action}
|
|
58
|
+
|
|
59
|
+
## Commits
|
|
60
|
+
{list from git log}
|
|
52
61
|
```
|
|
53
62
|
|
|
54
|
-
### 4. Commit
|
|
63
|
+
### 4. Commit and Push
|
|
55
64
|
|
|
56
65
|
```bash
|
|
57
|
-
|
|
58
|
-
git add
|
|
59
|
-
git commit -m "report: session
|
|
66
|
+
mkdir -p .planning/reports
|
|
67
|
+
git add .planning/reports/report-{date}.md
|
|
68
|
+
git commit -m "report: session {YYYY-MM-DD}"
|
|
60
69
|
git push
|
|
61
70
|
```
|
|
62
71
|
|
|
63
|
-
|
|
72
|
+
### 5. Update State
|
|
73
|
+
|
|
64
74
|
```bash
|
|
65
|
-
|
|
66
|
-
-H "x-api-key: $CLAUDE_API_KEY" \
|
|
67
|
-
-F "file=@$REPORT_FILE" \
|
|
68
|
-
-F "employee_email=$(git config user.email)" \
|
|
69
|
-
-F "project_name=$(basename $(pwd))"
|
|
75
|
+
node ~/.claude/bin/state.js transition --to activity --notes "Session report generated"
|
|
70
76
|
```
|
|
71
77
|
|
|
72
|
-
|
|
78
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
73
79
|
|
|
74
|
-
|
|
80
|
+
Employee cannot skip this. Run `/qualia-report` before clock-out.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-resume
|
|
3
|
+
description: "Restore context from a previous session. Reads .continue-here.md or STATE.md, summarizes where you left off, routes to next action. Trigger on 'resume', 'continue', 'pick up where I left off', 'what was I doing'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-resume — Resume Work
|
|
7
|
+
|
|
8
|
+
Restore context and route to the right next action.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
### 1. Find Context (priority order)
|
|
13
|
+
|
|
14
|
+
1. `.continue-here.md` — richest source, from `/qualia-pause`
|
|
15
|
+
2. `.planning/STATE.md` — project state
|
|
16
|
+
3. Git history — `git log --oneline -10` + `git diff --stat`
|
|
17
|
+
|
|
18
|
+
### 2. Restore
|
|
19
|
+
|
|
20
|
+
**If `.continue-here.md` exists:** Read fully. Summarize: what was done, what's in progress, next steps, blockers.
|
|
21
|
+
|
|
22
|
+
**If only STATE.md:** Read STATE.md + tracking.json. Show current phase and status.
|
|
23
|
+
|
|
24
|
+
**If neither:** Reconstruct from git. Present findings, ask user to confirm.
|
|
25
|
+
|
|
26
|
+
### 3. Detect Incomplete Work
|
|
27
|
+
|
|
28
|
+
- Phase has plan but no verification → execution may be incomplete
|
|
29
|
+
- Uncommitted changes → `git status --short`
|
|
30
|
+
- Phase marked in-progress in STATE.md
|
|
31
|
+
|
|
32
|
+
### 4. Present and Route
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
◆ QUALIA ► RESUMING
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
Last session: {summary}
|
|
38
|
+
Phase: {N} — {status}
|
|
39
|
+
{Uncommitted changes if any}
|
|
40
|
+
|
|
41
|
+
→ {next command}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Clean up `.continue-here.md` after restoration (or offer to keep it).
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-review
|
|
3
|
+
description: "Production audit and code review. General review, --web for web app audit, --ai for AI/voice agent audit. Trigger on 'review', 'audit', 'code review', 'security check', 'production check'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /qualia-review — Production Audit
|
|
7
|
+
|
|
8
|
+
Deep review with severity-scored findings. Different from `/qualia-verify` (which checks phase goals). This checks production readiness.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
- `/qualia-review` — General code review
|
|
13
|
+
- `/qualia-review --web` — Web app production audit
|
|
14
|
+
- `/qualia-review --ai` — AI/voice agent audit
|
|
15
|
+
|
|
16
|
+
## General Review (default)
|
|
17
|
+
|
|
18
|
+
Spawn parallel agents analyzing:
|
|
19
|
+
|
|
20
|
+
1. **Code Quality** — Clean code, TypeScript strictness, naming, readability
|
|
21
|
+
2. **Security** — OWASP top 10, auth server-side, RLS policies, secrets scan
|
|
22
|
+
3. **Architecture** — Component boundaries, coupling, API contracts
|
|
23
|
+
4. **Performance** — N+1 queries, bundle size, caching, render performance
|
|
24
|
+
5. **Test Coverage** — Gaps, edge cases, test quality
|
|
25
|
+
|
|
26
|
+
## --web (Web App Audit)
|
|
27
|
+
|
|
28
|
+
Full production readiness for Next.js + Supabase + Vercel:
|
|
29
|
+
|
|
30
|
+
**Security:** No secrets in code, HTTPS, CORS restricted, CSP headers, rate limiting, npm audit clean.
|
|
31
|
+
|
|
32
|
+
**Performance:** Core Web Vitals (LCP < 2.5s, CLS < 0.1), image optimization, bundle analysis, query performance.
|
|
33
|
+
|
|
34
|
+
**Reliability:** Error boundaries, API error handling, graceful degradation, health check endpoint.
|
|
35
|
+
|
|
36
|
+
**Observability:** Error tracking (Sentry), structured logging, uptime monitoring, analytics.
|
|
37
|
+
|
|
38
|
+
## --ai (AI/Voice Agent Audit)
|
|
39
|
+
|
|
40
|
+
Auto-detect stack (VAPI, ElevenLabs, Retell, OpenAI, Anthropic, pgvector).
|
|
41
|
+
|
|
42
|
+
**Prompt Safety:** System prompts not exposed, injection defenses, no eval() on AI output, token limits.
|
|
43
|
+
|
|
44
|
+
**Conversation Flow:** Off-topic handling, context window management, error recovery, human handoff.
|
|
45
|
+
|
|
46
|
+
**Voice (if detected):** Latency < 500ms, interruption handling, silence timeout, webhook security.
|
|
47
|
+
|
|
48
|
+
**RAG (if detected):** Embedding consistency, chunk size, retrieval relevance, index refresh.
|
|
49
|
+
|
|
50
|
+
**Resilience:** Provider failover, timeout handling, cost monitoring, streaming error recovery.
|
|
51
|
+
|
|
52
|
+
## Output
|
|
53
|
+
|
|
54
|
+
Every finding:
|
|
55
|
+
- **What** — description
|
|
56
|
+
- **Where** — `file:line`
|
|
57
|
+
- **Fix** — concrete suggestion
|
|
58
|
+
- **Severity** — CRITICAL / HIGH / MEDIUM / LOW
|
|
59
|
+
|
|
60
|
+
Write to `.planning/REVIEW.md`. CRITICAL or HIGH findings are deploy blockers — `/qualia-ship` checks for them.
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
◆ Review Complete
|
|
64
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
|
+
Critical: {N}
|
|
66
|
+
High: {N}
|
|
67
|
+
Medium: {N}
|
|
68
|
+
Low: {N}
|
|
69
|
+
|
|
70
|
+
{If blockers: Fix CRITICAL/HIGH before /qualia-ship}
|
|
71
|
+
{If clean: Ready to ship}
|
|
72
|
+
```
|
|
@@ -83,8 +83,10 @@ curl -s -o /dev/null -w "%{http_code}" {domain}/api/auth/callback
|
|
|
83
83
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
```bash
|
|
87
|
+
node ~/.claude/bin/state.js transition --to shipped --deployed-url {production url}
|
|
88
|
+
```
|
|
89
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
88
90
|
|
|
89
91
|
```
|
|
90
92
|
→ Run: /qualia-handoff
|
|
@@ -89,4 +89,7 @@ After the builder finishes:
|
|
|
89
89
|
Status ✓ Done
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
```bash
|
|
93
|
+
node ~/.claude/bin/state.js transition --to note --notes "{task description}"
|
|
94
|
+
```
|
|
95
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|
|
@@ -75,5 +75,10 @@ Read the verification report. Present:
|
|
|
75
75
|
|
|
76
76
|
### 4. Update State
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
```bash
|
|
79
|
+
node ~/.claude/bin/state.js transition --to verified --phase {N} --verification {pass|fail}
|
|
80
|
+
```
|
|
81
|
+
If PASS and more phases: state.js auto-advances to the next phase.
|
|
82
|
+
If FAIL and gap_cycles >= 2: state.js returns GAP_CYCLE_LIMIT — tell the employee to escalate.
|
|
83
|
+
If FAIL and gap_cycles < 2: proceed to `/qualia-plan {N} --gaps`.
|
|
84
|
+
Do NOT manually edit STATE.md or tracking.json — state.js handles both.
|