qualia-framework 2.4.0 → 2.4.2
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/bin/collect-metrics.sh +62 -0
- package/framework/agents/qualia-phase-researcher.md +6 -3
- package/framework/agents/qualia-planner.md +10 -7
- package/framework/agents/qualia-research-synthesizer.md +110 -147
- package/framework/agents/red-team-qa.md +130 -0
- package/framework/hooks/auto-format.sh +9 -1
- package/framework/hooks/migration-validate.sh +21 -16
- package/framework/hooks/pre-commit.sh +13 -5
- package/framework/hooks/pre-deploy-gate.sh +23 -1
- package/framework/hooks/retention-cleanup.sh +4 -4
- package/framework/hooks/save-session-state.sh +18 -10
- package/framework/hooks/session-context-loader.sh +21 -0
- package/framework/hooks/skill-announce.sh +2 -0
- package/framework/install.ps1 +6 -6
- package/framework/install.sh +6 -4
- package/framework/qualia-engine/VERSION +1 -1
- package/framework/qualia-engine/bin/collect-metrics.sh +71 -0
- package/framework/qualia-engine/bin/qualia-tools.js +104 -63
- package/framework/qualia-engine/references/continuation-prompt.md +97 -0
- package/framework/qualia-engine/references/employee-guide.md +167 -0
- package/framework/qualia-engine/templates/lab-notes.md +16 -0
- package/framework/qualia-engine/templates/roadmap.md +2 -8
- package/framework/qualia-engine/workflows/execute-phase.md +17 -17
- package/framework/qualia-engine/workflows/new-project.md +37 -114
- package/framework/qualia-engine/workflows/progress.md +63 -28
- package/framework/skills/client-handoff/SKILL.md +13 -3
- package/framework/skills/deep-research/SKILL.md +34 -71
- package/framework/skills/learn/SKILL.md +29 -5
- package/framework/skills/qualia/SKILL.md +57 -17
- package/framework/skills/qualia-complete-milestone/SKILL.md +29 -7
- package/framework/skills/qualia-evolve/SKILL.md +200 -0
- package/framework/skills/qualia-execute-phase/SKILL.md +1 -1
- package/framework/skills/qualia-guide/SKILL.md +32 -0
- package/framework/skills/qualia-help/SKILL.md +62 -60
- package/framework/skills/qualia-new-project/SKILL.md +32 -30
- package/framework/skills/qualia-report/SKILL.md +217 -0
- package/framework/skills/qualia-start/SKILL.md +31 -59
- package/framework/skills/qualia-verify-work/SKILL.md +20 -3
- package/package.json +1 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qualia-report
|
|
3
|
+
description: "Generate a session work report for owner review — what was assigned, what was done, what deviated, what's next. Use this skill whenever the user says 'report', 'done for today', 'session report', 'log my work', 'what did I do', 'end of day', 'wrapping up', 'signing off', or finishes a working session. Also trigger when user mentions 'daily report', 'status update', 'work summary', or wants to document what they accomplished."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Qualia Report — Session Work Report
|
|
7
|
+
|
|
8
|
+
Generate a structured report of what was done in this session. This is for the owner to review — assigned vs done, deviations, blockers, and next steps.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
`/qualia-report` — Generate report for current session
|
|
13
|
+
`/qualia-report --week` — Aggregate reports from the last 7 days
|
|
14
|
+
|
|
15
|
+
## When to Run
|
|
16
|
+
|
|
17
|
+
The framework should suggest this when:
|
|
18
|
+
- Employee says "done for today", "stopping", "wrapping up", "signing off"
|
|
19
|
+
- Employee has been working for 1+ hours and mentions pausing
|
|
20
|
+
- A phase is completed or verified
|
|
21
|
+
- Before running `/qualia-pause-work` (report first, then pause)
|
|
22
|
+
|
|
23
|
+
## Process
|
|
24
|
+
|
|
25
|
+
### 1. Gather Session Data
|
|
26
|
+
|
|
27
|
+
**From git (what actually changed):**
|
|
28
|
+
```bash
|
|
29
|
+
# Commits made this session (last N hours or since last report)
|
|
30
|
+
LAST_REPORT=$(ls -t .planning/reports/report-*.md 2>/dev/null | head -1)
|
|
31
|
+
if [ -n "$LAST_REPORT" ]; then
|
|
32
|
+
SINCE=$(grep -m1 "^Date:" "$LAST_REPORT" | sed 's/^Date: *//')
|
|
33
|
+
else
|
|
34
|
+
SINCE="8 hours ago"
|
|
35
|
+
fi
|
|
36
|
+
git log --oneline --since="$SINCE" --author="$(git config user.name)" 2>/dev/null
|
|
37
|
+
git diff --stat HEAD~5..HEAD 2>/dev/null | tail -5
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**From STATE.md (where the project stands):**
|
|
41
|
+
- Current phase and status
|
|
42
|
+
- Progress percentage
|
|
43
|
+
- Assigned to whom
|
|
44
|
+
|
|
45
|
+
**From ROADMAP.md (what was planned):**
|
|
46
|
+
- Which phase was being worked on
|
|
47
|
+
- What the phase goal is
|
|
48
|
+
- What the success criteria are
|
|
49
|
+
|
|
50
|
+
**From SUMMARY.md files (if any were created this session):**
|
|
51
|
+
- Phase execution summaries
|
|
52
|
+
- Deviations noted
|
|
53
|
+
- Decisions made
|
|
54
|
+
|
|
55
|
+
**From UAT.md files (if any were created this session):**
|
|
56
|
+
- Test results
|
|
57
|
+
- Issues found
|
|
58
|
+
|
|
59
|
+
**From git diff (what files changed):**
|
|
60
|
+
```bash
|
|
61
|
+
git diff --name-only HEAD~5..HEAD 2>/dev/null | head -30
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 2. Analyze: Assigned vs Done
|
|
65
|
+
|
|
66
|
+
Compare what ROADMAP.md says the current phase should deliver against what was actually built:
|
|
67
|
+
|
|
68
|
+
- **Planned:** [from ROADMAP.md phase goal + success criteria]
|
|
69
|
+
- **Completed:** [from commits + SUMMARY.md]
|
|
70
|
+
- **Partially done:** [started but not finished]
|
|
71
|
+
- **Not started:** [planned but untouched]
|
|
72
|
+
- **Unplanned work:** [things done that weren't in the plan]
|
|
73
|
+
|
|
74
|
+
### 3. Generate Report
|
|
75
|
+
|
|
76
|
+
Create `.planning/reports/report-{YYYY-MM-DD-HHMM}.md`:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
# Session Report
|
|
80
|
+
|
|
81
|
+
**Project:** {from PROJECT.md or directory name}
|
|
82
|
+
**Date:** {YYYY-MM-DD HH:MM}
|
|
83
|
+
**Employee:** {from STATE.md "Assigned to" or git config user.name}
|
|
84
|
+
**Duration:** {estimated from first to last commit, or "~X hours"}
|
|
85
|
+
**Phase:** {N} of {total} — {phase name}
|
|
86
|
+
|
|
87
|
+
## What Was Assigned
|
|
88
|
+
|
|
89
|
+
{Phase goal from ROADMAP.md}
|
|
90
|
+
|
|
91
|
+
Success criteria:
|
|
92
|
+
1. {criterion 1}
|
|
93
|
+
2. {criterion 2}
|
|
94
|
+
3. {criterion 3}
|
|
95
|
+
|
|
96
|
+
## What Was Done
|
|
97
|
+
|
|
98
|
+
{Summary of actual work, derived from commits and file changes}
|
|
99
|
+
|
|
100
|
+
- {accomplishment 1}
|
|
101
|
+
- {accomplishment 2}
|
|
102
|
+
- {accomplishment 3}
|
|
103
|
+
|
|
104
|
+
### Files Changed
|
|
105
|
+
{Top 15 files modified, grouped by area}
|
|
106
|
+
|
|
107
|
+
### Commits
|
|
108
|
+
{List of commits this session}
|
|
109
|
+
|
|
110
|
+
## Progress
|
|
111
|
+
|
|
112
|
+
| Criterion | Status |
|
|
113
|
+
|-----------|--------|
|
|
114
|
+
| {criterion 1} | Done / Partial / Not started |
|
|
115
|
+
| {criterion 2} | Done / Partial / Not started |
|
|
116
|
+
| {criterion 3} | Done / Partial / Not started |
|
|
117
|
+
|
|
118
|
+
**Phase progress:** {X}% → {Y}% (moved {delta}%)
|
|
119
|
+
**Overall project:** {A}% → {B}%
|
|
120
|
+
|
|
121
|
+
## Deviations
|
|
122
|
+
|
|
123
|
+
{Anything done differently from the plan — and why}
|
|
124
|
+
|
|
125
|
+
- {deviation 1}: {reason}
|
|
126
|
+
|
|
127
|
+
{If no deviations: "None — followed the plan."}
|
|
128
|
+
|
|
129
|
+
## Blockers & Issues
|
|
130
|
+
|
|
131
|
+
{Anything that slowed down or blocked work}
|
|
132
|
+
|
|
133
|
+
- {blocker 1}: {status — resolved / still blocking}
|
|
134
|
+
|
|
135
|
+
{If none: "None — clear session."}
|
|
136
|
+
|
|
137
|
+
## Decisions Made
|
|
138
|
+
|
|
139
|
+
{Any choices that affect future work}
|
|
140
|
+
|
|
141
|
+
| Decision | Why | Impact |
|
|
142
|
+
|----------|-----|--------|
|
|
143
|
+
| {choice} | {reason} | {what it affects} |
|
|
144
|
+
|
|
145
|
+
## Next Session
|
|
146
|
+
|
|
147
|
+
**What to do next:**
|
|
148
|
+
1. {immediate next action}
|
|
149
|
+
2. {following action}
|
|
150
|
+
|
|
151
|
+
**Suggested command:** `/qualia-plan-phase {N}` or `/qualia-execute-phase {N}` etc.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
*Generated by /qualia-report at {timestamp}*
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 4. Commit Report
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
mkdir -p .planning/reports
|
|
161
|
+
git add .planning/reports/report-{timestamp}.md
|
|
162
|
+
git commit -m "report: session report {date} — {employee name}"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 5. Update STATE.md
|
|
166
|
+
|
|
167
|
+
Update the `Last activity` and `Last worked by` fields in STATE.md.
|
|
168
|
+
|
|
169
|
+
### 6. Suggest Next Steps
|
|
170
|
+
|
|
171
|
+
> "Report saved to `.planning/reports/report-{date}.md`"
|
|
172
|
+
>
|
|
173
|
+
> "Want to also save session context? Run `/qualia-pause-work`"
|
|
174
|
+
> "Ready to keep going? Run `/qualia-plan-phase {N}`"
|
|
175
|
+
|
|
176
|
+
## Weekly Aggregate (`--week`)
|
|
177
|
+
|
|
178
|
+
When run with `--week`, reads all reports from the last 7 days and produces a summary:
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
# Weekly Report — {project name}
|
|
182
|
+
|
|
183
|
+
**Period:** {date} to {date}
|
|
184
|
+
**Employee:** {name}
|
|
185
|
+
|
|
186
|
+
## Summary
|
|
187
|
+
|
|
188
|
+
- **Sessions:** {count}
|
|
189
|
+
- **Phases progressed:** Phase {X} → Phase {Y}
|
|
190
|
+
- **Overall progress:** {A}% → {B}%
|
|
191
|
+
- **Commits:** {total}
|
|
192
|
+
|
|
193
|
+
## Per-Session Breakdown
|
|
194
|
+
|
|
195
|
+
| Date | Phase | Progress | Key Accomplishment |
|
|
196
|
+
|------|-------|----------|-------------------|
|
|
197
|
+
| {date} | Phase 3 | +15% | Built auth flow |
|
|
198
|
+
| {date} | Phase 3 | +10% | Added RLS policies |
|
|
199
|
+
| {date} | Phase 4 | +5% | Started chat UI |
|
|
200
|
+
|
|
201
|
+
## Cumulative Deviations
|
|
202
|
+
|
|
203
|
+
{Any patterns — repeated blockers, scope changes, etc.}
|
|
204
|
+
|
|
205
|
+
## Blockers Still Open
|
|
206
|
+
|
|
207
|
+
{Unresolved from any session}
|
|
208
|
+
|
|
209
|
+
## Next Week
|
|
210
|
+
|
|
211
|
+
{What's ahead based on ROADMAP.md}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Save to `.planning/reports/weekly-{date}.md`.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
> Stuck? Type `/qualia-idk` · Lost? Type `/qualia-help`
|
|
@@ -20,75 +20,52 @@ You will:
|
|
|
20
20
|
|
|
21
21
|
**CRITICAL**: Do NOT dump raw bash output. YOU format the dashboard as styled text output.
|
|
22
22
|
|
|
23
|
-
## Step 1: Gather
|
|
23
|
+
## Step 1: Gather ALL Data (2 bash calls max)
|
|
24
24
|
|
|
25
|
-
Run
|
|
25
|
+
**CRITICAL: Run exactly 2 bash calls in parallel.** Do NOT split these into separate calls.
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
pwd
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
node -e "try{const p=require('./package.json');console.log(p.name||'')}catch(e){console.log('')}" 2>/dev/null
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
git branch --show-current 2>/dev/null || echo ""
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
git status --porcelain 2>/dev/null | wc -l
|
|
41
|
-
```
|
|
27
|
+
### Call 1 — Project & System Health
|
|
42
28
|
|
|
43
|
-
|
|
44
|
-
node -v 2>/dev/null || echo "none"
|
|
45
|
-
```
|
|
29
|
+
Run this single combined command:
|
|
46
30
|
|
|
47
31
|
```bash
|
|
48
|
-
|
|
32
|
+
echo "---PROJECT---"
|
|
33
|
+
echo "DIR:$(pwd)"
|
|
34
|
+
echo "NAME:$(node -e "try{const p=require('./package.json');console.log(p.name||'')}catch(e){console.log('')}" 2>/dev/null)"
|
|
35
|
+
echo "BRANCH:$(git branch --show-current 2>/dev/null || echo '')"
|
|
36
|
+
echo "CHANGES:$(git status --porcelain 2>/dev/null | wc -l)"
|
|
37
|
+
echo "NODE:$(node -v 2>/dev/null || echo 'none')"
|
|
38
|
+
echo "TS:$(test -f tsconfig.json && echo 'yes' || echo 'no')"
|
|
39
|
+
echo "SUPABASE:$(test -d supabase && echo 'yes' || echo 'no')"
|
|
40
|
+
echo "PLANNING:$(test -d .planning && echo 'yes' || echo 'no')"
|
|
41
|
+
echo "NEXTCONF:$(ls next.config.* 2>/dev/null | head -1)"
|
|
42
|
+
echo "EXPO:$(ls app.json expo.json 2>/dev/null | head -1)"
|
|
43
|
+
echo "PYTHON:$(ls app.py main.py 2>/dev/null | head -1)"
|
|
44
|
+
echo "HANDOFF:$(test -f .continue-here.md && echo 'yes' || echo 'no')"
|
|
45
|
+
echo "---SYSTEM---"
|
|
46
|
+
HOOKS_OK=0; HOOKS_TOTAL=0; for h in branch-guard pre-commit confirm-delete migration-validate pre-deploy-gate block-env-edit auto-format session-context-loader retention-cleanup pre-compact save-session-state session-learn notification-speak qualia-colors skill-announce tool-error-announce; do HOOKS_TOTAL=$((HOOKS_TOTAL+1)); test -f "$HOME/.claude/hooks/${h}.sh" && HOOKS_OK=$((HOOKS_OK+1)); done; echo "HOOKS:${HOOKS_OK}/${HOOKS_TOTAL}"
|
|
47
|
+
echo "ENGINE:$(test -f "$HOME/.claude/qualia-framework/bin/qualia-tools.js" && echo 'ok' || echo 'MISSING')"
|
|
48
|
+
echo "VERSION:$(cat "$HOME/.claude/qualia-framework/VERSION" 2>/dev/null || echo 'unknown')"
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
test -d supabase && echo "supabase:yes" || echo "supabase:no"; test -d .planning && echo "planning:yes" || echo "planning:no"; ls next.config.* 2>/dev/null | head -1; ls app.json expo.json 2>/dev/null | head -1; ls app.py main.py 2>/dev/null | head -1
|
|
53
|
-
```
|
|
51
|
+
### Call 2 — Session Context
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
HOOKS_OK=0; HOOKS_TOTAL=0; for h in branch-guard pre-commit confirm-delete migration-validate pre-deploy-gate block-env-edit auto-format session-context-loader retention-cleanup pre-compact save-session-state session-learn notification-speak qualia-colors skill-announce tool-error-announce; do HOOKS_TOTAL=$((HOOKS_TOTAL+1)); test -f "$HOME/.claude/hooks/${h}.sh" && HOOKS_OK=$((HOOKS_OK+1)); done; echo "${HOOKS_OK}/${HOOKS_TOTAL}"
|
|
57
|
-
```
|
|
53
|
+
Run this single combined command:
|
|
58
54
|
|
|
59
55
|
```bash
|
|
60
|
-
|
|
61
|
-
test -f "$HOME/.claude/qualia-engine/bin/qualia-tools.js" && echo "engine:ok" || echo "engine:MISSING"
|
|
62
|
-
cat "$HOME/.claude/qualia-engine/VERSION" 2>/dev/null || echo "engine:no-version"
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
If `.planning/STATE.md` exists, read it. If `.planning/ROADMAP.md` exists, read it.
|
|
66
|
-
|
|
67
|
-
Classify project type from signals: `web` | `voice` | `mobile` | `python-agent` | `edge-functions` | `framework` | `unknown`
|
|
68
|
-
|
|
69
|
-
## Step 2: Gather Session Context
|
|
70
|
-
|
|
71
|
-
This replaces the old session-context-loader. Run these:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# Cross-project session digest (last 5 sessions)
|
|
56
|
+
echo "---DIGEST---"
|
|
75
57
|
tail -n +4 ~/.claude/knowledge/session-digest.md 2>/dev/null | head -5
|
|
58
|
+
echo "---STALE---"
|
|
59
|
+
NOW=$(date +%s); find ~/.claude/knowledge -maxdepth 1 -name "*.md" -type f | while read f; do B=$(basename "$f"); [ "$B" = "session-digest.md" ] && continue; AGE=$(( (NOW - $(stat -c %Y "$f" 2>/dev/null || echo $NOW)) / 86400 )); [ "$AGE" -gt 30 ] && echo "${B} (${AGE}d)"; done
|
|
60
|
+
echo "---PULSE---"
|
|
61
|
+
for DIR in ~/Projects/*/; do [ -d "$DIR/.git" ] || continue; LAST=$(git -C "$DIR" log --oneline -1 --since="7 days ago" --format="%ar" 2>/dev/null); [ -n "$LAST" ] && echo "$(basename "$DIR")(${LAST})"; done | head -10
|
|
76
62
|
```
|
|
77
63
|
|
|
78
|
-
|
|
79
|
-
# Stale knowledge detection (>30 days) — only top-level .md files
|
|
80
|
-
NOW=$(date +%s); find ~/.claude/knowledge -maxdepth 1 -name "*.md" -type f | while read f; do B=$(basename "$f"); [ "$B" = "session-digest.md" ] && continue; AGE=$(( (NOW - $(stat -c %Y "$f" 2>/dev/null || echo $NOW)) / 86400 )); [ "$AGE" -gt 30 ] && echo "STALE: ${B} (${AGE}d)"; done
|
|
81
|
-
```
|
|
64
|
+
### After bash calls
|
|
82
65
|
|
|
83
|
-
|
|
84
|
-
# Project pulse (git activity in last 7 days)
|
|
85
|
-
for DIR in ~/Projects/*/; do [ -d "$DIR/.git" ] || continue; LAST=$(git -C "$DIR" log --oneline -1 --since="7 days ago" --format="%ar" 2>/dev/null); [ -n "$LAST" ] && echo "$(basename "$DIR")(${LAST})"; done | head -10
|
|
86
|
-
```
|
|
66
|
+
If PLANNING is "yes", read `.planning/STATE.md` and `.planning/ROADMAP.md` (use the Read tool, not bash).
|
|
87
67
|
|
|
88
|
-
|
|
89
|
-
# Check for .continue-here.md (auto-handoff from previous session)
|
|
90
|
-
test -f .continue-here.md && echo "HANDOFF: .continue-here.md exists" || echo ""
|
|
91
|
-
```
|
|
68
|
+
Classify project type from signals: `web` | `voice` | `mobile` | `python-agent` | `edge-functions` | `framework` | `unknown`
|
|
92
69
|
|
|
93
70
|
## Step 3: Render the Dashboard
|
|
94
71
|
|
|
@@ -123,11 +100,6 @@ test -f .continue-here.md && echo "HANDOFF: .continue-here.md exists" || echo ""
|
|
|
123
100
|
Status executed
|
|
124
101
|
DESIGN.md ✓ REVIEW.md ▲ stale
|
|
125
102
|
|
|
126
|
-
── GATES ───────────────────────────────
|
|
127
|
-
✓ Frontend guard ✓ Deploy guard
|
|
128
|
-
✓ Intent verify ✓ Security rules
|
|
129
|
-
✓ TypeScript ✓ .env protection
|
|
130
|
-
|
|
131
103
|
── PATTERNS ────────────────────────────
|
|
132
104
|
frontend-master responsive seo-master ship
|
|
133
105
|
|
|
@@ -93,7 +93,23 @@ For items relevant to this phase's scope, verify each one:
|
|
|
93
93
|
|
|
94
94
|
Do NOT check items outside this phase's scope (e.g., don't check deployment items during a Phase 1 verify).
|
|
95
95
|
|
|
96
|
-
### 6.
|
|
96
|
+
### 6. Red-Team QA (Optional Adversarial Pass)
|
|
97
|
+
|
|
98
|
+
After cooperative verification passes (all UAT items green), offer an adversarial stress test:
|
|
99
|
+
|
|
100
|
+
> "UAT passed. Want to run red-team QA? This spawns an adversarial agent that actively tries to break the implementation — edge cases, error paths, permission bypasses. Run it? (recommended for phases with auth, payments, or user input)"
|
|
101
|
+
|
|
102
|
+
If accepted, spawn the `red-team-qa` agent:
|
|
103
|
+
- Pass ONLY the phase goal text (from ROADMAP.md) — do NOT pass SUMMARY.md or PLAN.md
|
|
104
|
+
- The agent works from the goal + codebase alone (prevents confirmation bias)
|
|
105
|
+
- Agent produces an attack report with BROKEN / WEAK / SOLID verdicts
|
|
106
|
+
|
|
107
|
+
**On red-team results:**
|
|
108
|
+
- **BROKEN findings**: treat as UAT failures — add to UAT.md, route to gap planning
|
|
109
|
+
- **WEAK findings**: add as advisory notes in UAT.md, user decides whether to fix
|
|
110
|
+
- **All SOLID**: add "Red-team QA: PASSED" to UAT.md, proceed
|
|
111
|
+
|
|
112
|
+
### 7. Design Quality Check (Frontend Phases)
|
|
97
113
|
|
|
98
114
|
If the phase involves frontend work (detected from PLAN.md file references or phase description), after UAT passes with zero issues, suggest the design quality workflow:
|
|
99
115
|
|
|
@@ -101,15 +117,16 @@ If the phase involves frontend work (detected from PLAN.md file references or ph
|
|
|
101
117
|
|
|
102
118
|
This is advisory — user can skip by running the next command directly.
|
|
103
119
|
|
|
104
|
-
###
|
|
120
|
+
### 8. Update State
|
|
105
121
|
|
|
106
122
|
Update `.planning/STATE.md` to reflect verification status.
|
|
107
123
|
|
|
108
124
|
### Agents Used
|
|
109
125
|
| Agent | File | Role |
|
|
110
126
|
|-------|------|------|
|
|
127
|
+
| `red-team-qa` | `~/.claude/agents/red-team-qa.md` | Adversarial QA — tries to break the implementation |
|
|
111
128
|
| `qualia-planner` | `~/.claude/agents/qualia-planner.md` | Creates fix plans from diagnosed gaps |
|
|
112
129
|
| `qualia-plan-checker` | `~/.claude/agents/qualia-plan-checker.md` | Validates fix plans (max 3 iterations) |
|
|
113
130
|
|
|
114
131
|
---
|
|
115
|
-
> Stuck? Type `/qualia-idk` · Lost? Type `/qualia-help`
|
|
132
|
+
> Stuck? Type `/qualia-idk` · Lost? Type `/qualia-help` · Done for today? Type `/qualia-report`
|