qualia-framework 6.2.10 → 6.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.
Files changed (78) hide show
  1. package/AGENTS.md +8 -7
  2. package/CLAUDE.md +5 -4
  3. package/README.md +27 -56
  4. package/bin/cli.js +113 -18
  5. package/bin/command-surface.js +75 -0
  6. package/bin/harness-eval.js +296 -0
  7. package/bin/install.js +43 -31
  8. package/bin/knowledge-flush.js +21 -10
  9. package/bin/knowledge.js +1 -1
  10. package/bin/learning-candidates.js +217 -0
  11. package/bin/project-snapshot.js +20 -0
  12. package/bin/prune-deprecated.js +64 -0
  13. package/bin/report-payload.js +18 -0
  14. package/bin/runtime-manifest.js +7 -0
  15. package/bin/security-scan.js +409 -0
  16. package/bin/state.js +31 -0
  17. package/bin/status-snapshot.js +363 -0
  18. package/bin/trust-score.js +3 -11
  19. package/bin/work-packet.js +228 -0
  20. package/docs/erp-contract.md +81 -1
  21. package/docs/onboarding.html +0 -11
  22. package/guide.md +15 -38
  23. package/hooks/fawzi-approval-guard.js +143 -0
  24. package/hooks/pre-compact.js +232 -0
  25. package/hooks/pre-deploy-gate.js +74 -1
  26. package/hooks/session-start.js +29 -1
  27. package/package.json +1 -1
  28. package/qualia-design/frontend.md +2 -2
  29. package/rules/codex-goal.md +1 -1
  30. package/rules/one-opinion.md +2 -2
  31. package/rules/speed.md +0 -1
  32. package/skills/qualia/SKILL.md +4 -4
  33. package/skills/qualia-build/SKILL.md +1 -1
  34. package/skills/qualia-discuss/SKILL.md +1 -1
  35. package/skills/qualia-doctor/SKILL.md +1 -1
  36. package/skills/qualia-feature/SKILL.md +2 -2
  37. package/skills/qualia-fix/SKILL.md +4 -4
  38. package/skills/qualia-idk/SKILL.md +133 -54
  39. package/skills/qualia-learn/SKILL.md +2 -2
  40. package/skills/qualia-map/SKILL.md +1 -1
  41. package/skills/qualia-milestone/SKILL.md +1 -1
  42. package/skills/qualia-new/SKILL.md +1 -1
  43. package/skills/qualia-optimize/SKILL.md +1 -1
  44. package/skills/qualia-plan/SKILL.md +1 -1
  45. package/skills/qualia-polish/REFERENCE.md +1 -1
  46. package/skills/qualia-polish/SKILL.md +19 -4
  47. package/skills/{qualia-vibe/scripts/extract.mjs → qualia-polish/scripts/vibe-extract.mjs} +4 -4
  48. package/skills/{qualia-vibe/scripts/tokens.mjs → qualia-polish/scripts/vibe-tokens.mjs} +6 -6
  49. package/skills/qualia-postmortem/SKILL.md +1 -1
  50. package/skills/qualia-report/SKILL.md +1 -1
  51. package/skills/qualia-research/SKILL.md +1 -1
  52. package/skills/qualia-review/SKILL.md +1 -1
  53. package/skills/qualia-road/SKILL.md +15 -20
  54. package/skills/qualia-secure/SKILL.md +105 -0
  55. package/skills/qualia-ship/SKILL.md +12 -5
  56. package/skills/qualia-test/SKILL.md +1 -1
  57. package/skills/qualia-verify/SKILL.md +10 -2
  58. package/skills/zoho-workflow/SKILL.md +1 -1
  59. package/templates/help.html +1 -12
  60. package/tests/bin.test.sh +147 -75
  61. package/tests/hooks.test.sh +81 -1
  62. package/tests/install-smoke.test.sh +14 -4
  63. package/tests/lib.test.sh +145 -3
  64. package/tests/published-install-smoke.test.sh +5 -4
  65. package/tests/refs.test.sh +32 -20
  66. package/tests/runner.js +30 -29
  67. package/tests/state.test.sh +106 -7
  68. package/skills/qualia-debug/SKILL.md +0 -193
  69. package/skills/qualia-flush/SKILL.md +0 -198
  70. package/skills/qualia-help/SKILL.md +0 -74
  71. package/skills/qualia-hook-gen/SKILL.md +0 -206
  72. package/skills/qualia-issues/SKILL.md +0 -151
  73. package/skills/qualia-pause/SKILL.md +0 -68
  74. package/skills/qualia-resume/SKILL.md +0 -52
  75. package/skills/qualia-skill-new/SKILL.md +0 -173
  76. package/skills/qualia-triage/SKILL.md +0 -152
  77. package/skills/qualia-vibe/SKILL.md +0 -229
  78. package/skills/qualia-zoom/SKILL.md +0 -51
@@ -1,6 +1,6 @@
1
1
  ---
2
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'."
3
+ description: "Save a learning, pattern, fix, or client preference to the knowledge base. Persists across projects + sessions. Triggers: 'remember this', 'save this pattern', 'learned something', 'client prefers'."
4
4
  allowed-tools:
5
5
  - Read
6
6
  - Write
@@ -122,7 +122,7 @@ node ${QUALIA_BIN}/knowledge.js list
122
122
  node ${QUALIA_BIN}/knowledge.js search "RLS"
123
123
  ```
124
124
 
125
- The `/qualia-debug` skill should check `common-fixes.md` (`load fixes`) before
125
+ The `/qualia-fix` skill should check `common-fixes.md` (`load fixes`) before
126
126
  investigating. The `/qualia-new` skill should check `client-prefs.md`
127
127
  (`load client`) when setting up client projects. The `/qualia-plan` skill
128
128
  should check `learned-patterns.md` (`load patterns`) when planning phases.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-map
3
- description: "Map an existing codebase to infer architecture, stack, conventions, what's already built, AND adapt Qualia to the repo's existing tracker/labels/glossary conventions (onboarding). For brownfield projects — run BEFORE /qualia-new so Validated requirements get inferred from existing code and Qualia commands respect the repo's existing process. Triggers: 'map this codebase', 'onboard to existing project', 'brownfield setup', 'what's already built here', 'scan the repo', 'inherited a codebase', 'audit this project before planning'."
3
+ description: "Map an existing codebase (architecture, stack, conventions, capabilities) and adapt Qualia to its tracker/labels/glossary. Run BEFORE /qualia-new on brownfield projects. Triggers: 'map this codebase', 'onboard to existing project', 'brownfield setup', 'scan the repo', 'inherited a codebase'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-milestone
3
- description: "Close the current milestone and open the next one — loads the next milestone's scope from JOURNEY.md (no ad-hoc naming). Archives artifacts, marks requirements Complete, regenerates ROADMAP.md for the next milestone. Triggers: 'close milestone', 'next milestone', 'milestone done', 'wrap up milestone', 'M1 done open M2', 'I want to advance to the next milestone', 'finish this milestone'."
3
+ description: "Close current milestone and open next — loads scope from JOURNEY.md (no ad-hoc naming), archives, regenerates ROADMAP.md. Triggers: 'close milestone', 'next milestone', 'milestone done', 'M1 done open M2'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-new
3
- description: "Set up a new project from scratch deep questioning, ALWAYS-AUTO research, CONTEXT.md domain glossary seed, decisions/ ADR folder initialized, JOURNEY.md with all milestones to handoff, single approval gate, optional auto-chain into building. Use when starting any new client project."
3
+ description: "Set up a new project — kickoff interview, research, CONTEXT.md glossary, decisions/ ADRs, JOURNEY.md, single approval gate, optional `--auto`. Triggers: 'new project', 'start a project', 'qualia-new', 'set up'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-optimize
3
- description: "Deep improvement discovery pass — reads .planning/ AND codebase to find performance, design, UI, backend, frontend, alignment, and architecture-deepening opportunities. Spawns parallel specialist agents and writes OPTIMIZE.md/RFCs; practical repair work routes to /qualia-fix or /qualia-polish. Use when the user says 'optimize', 'optimization pass', 'find issues', 'deep improve', 'performance audit', 'design alignment check', 'speed up', 'bundle size', 'refactor architecture', 'shallow modules', 'simplify', or wants a comprehensive quality sweep. Supports --perf, --ui, --backend, --alignment, --deepen, --fix flags."
3
+ description: "Deep improvement discovery pass — spawns parallel specialist agents and writes OPTIMIZE.md/RFCs. Triggers: 'optimize', 'find issues', 'performance audit', 'design alignment check', 'speed up', 'bundle size', 'shallow modules', 'simplify'. Flags: --perf, --ui, --backend, --alignment, --deepen, --fix. Routes practical repair to /qualia-fix or /qualia-polish."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-plan
3
- description: "Plans the current phase by spawning a planner agent to break it into executable tasks with waves, then validates via a plan-checker revision loop (max 2 cycles). Supports gap-closure mode for verification failures. Use when the user says 'plan this phase', 'break this into tasks', 'create the plan', 'qualia-plan', 'plan phase 2', or after /qualia-new sets up the journey."
3
+ description: "Plan the current phase planner agent breaks it into wave-grouped tasks, plan-checker validates (max 2 cycles). Supports `--gaps` for verification-failure closure. Triggers: 'plan this phase', 'break this into tasks', 'plan phase 2'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -262,6 +262,6 @@ This is intentional. Most visual regressions Fawzi has documented in `/insights`
262
262
  - Accessibility audits beyond what the rubric scores — use `/qualia-polish` Stage 3 (Lighthouse + axe) for that.
263
263
  - Performance regressions — use `/qualia-polish --loop` only after Lighthouse score passes.
264
264
  - Reference-image-only mode (compare to a target screenshot without a brief) — the brief is required; reference is supplemental.
265
- - Aesthetic pivots — if the issue is "the whole vibe is wrong", `/qualia-vibe` swaps the aesthetic in minutes instead of grinding the loop against a vibe that doesn't fit.
265
+ - Aesthetic pivots — if the issue is "the whole vibe is wrong", `/qualia-polish --vibe` swaps the aesthetic in minutes instead of grinding the loop against a vibe that doesn't fit.
266
266
 
267
267
  Implemented as of v5.2: `--routes a,b,c` for multi-route sweeps, `--reduced-motion` for `prefers-reduced-motion: reduce` capture.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-polish
3
- description: "Scope-adaptive visual quality pass. Works on a single component, a route, the whole app, a ground-up redesign, or an autonomous visual loop, but does not repair business logic or broken data flow. Trigger on 'polish', 'design pass', 'fix the design', 'redesign', 'critique', 'audit design', 'looks ugly', 'make it look better', 'polish loop', 'visual loop', 'fix what I see', 'iterate on the design until it's correct'. Route functional bugs to /qualia-fix and aesthetic token pivots to /qualia-vibe."
3
+ description: "Scope-adaptive visual quality pass component, route, whole app, redesign, vibe pivot, or autonomous loop. Triggers: 'polish', 'design pass', 'redesign', 'critique', 'looks ugly', 'different vibe', 'visual loop'. Route functional bugs to /qualia-fix."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -18,7 +18,7 @@ argument-hint: "[file|route|--redesign|--critique|--quick|--loop] [--register=br
18
18
 
19
19
  One command. Seven scopes. Use it whenever you need design work, from a 30-second component touch-up to a ground-up redesign with current design research, complex visuals, and a fully transparent see-fix-verify loop.
20
20
 
21
- Polish fixes visual quality only. Broken behavior, failing tests, API bugs, state bugs, and config errors go to `/qualia-fix`. Whole-site aesthetic token pivots go to `/qualia-vibe`.
21
+ Polish fixes visual quality only. Broken behavior, failing tests, API bugs, state bugs, and config errors go to `/qualia-fix`. Whole-site aesthetic token pivots stay inside `/qualia-polish --vibe` so the design surface is one command.
22
22
 
23
23
  ## Scopes
24
24
 
@@ -32,9 +32,10 @@ The first argument selects the scope. Stage selection follows from scope.
32
32
  | `/qualia-polish --redesign` | **Redesign** | ~30m | all + Stage 1 mandatory + 2 vision iterations |
33
33
  | `/qualia-polish --critique` | **Critique** | read-only | 0, 4, 5 (no edits) |
34
34
  | `/qualia-polish --quick` | **Quick** | ~1m | 0, 2, 7 (gates only, no vision loop) |
35
+ | `/qualia-polish --vibe` | **Aesthetic pivot** | ~3m | token-only direction swap |
35
36
  | `/qualia-polish --loop {url}` | **Loop** | ~5-15m | autonomous see/fix/verify, max 8 iterations |
36
37
 
37
- Other flags: `--register=brand|product` overrides register inference. Loop-specific flags: `--brief PATH`, `--max N`, `--viewports 375,768,1440`, `--ref PATH`, `--budget 100000`.
38
+ Other flags: `--register=brand|product` overrides register inference. Vibe-specific flags: `--variants N`, `--extract URL|image`, `--sync`, `--write`. Loop-specific flags: `--brief PATH`, `--max N`, `--viewports 375,768,1440`, `--ref PATH`, `--budget 100000`.
38
39
 
39
40
  ## Transparent Command Output
40
41
 
@@ -58,6 +59,20 @@ Scripts ship at `skills/qualia-polish/scripts/{loop,playwright-capture,score}.mj
58
59
 
59
60
  When `--loop` is detected on entry, route to the loop process documented in `REFERENCE.md` and stop executing the standard stages below. The two paths share Stage 0 substrate gates and the rubric, but diverge from Stage 1 onward.
60
61
 
62
+ ## --vibe mode (aesthetic token pivot)
63
+
64
+ When `--vibe` is detected, do not restructure JSX, routes, data flow, navigation, or layout grids. Change only aesthetic tokens and matching DESIGN.md sections: color, typography, depth, motion, brand accents, and short visual-direction copy.
65
+
66
+ Supporting scripts ship inside this skill:
67
+
68
+ ```bash
69
+ node ${QUALIA_SKILLS}/qualia-polish/scripts/vibe-tokens.mjs sync --design .planning/DESIGN.md
70
+ node ${QUALIA_SKILLS}/qualia-polish/scripts/vibe-tokens.mjs propose-variants --product .planning/PRODUCT.md --design .planning/DESIGN.md --count 3
71
+ node ${QUALIA_SKILLS}/qualia-polish/scripts/vibe-extract.mjs --source https://example.com
72
+ ```
73
+
74
+ Default flow proposes one opinionated direction per `rules/one-opinion.md`. `--variants` is opt-in only. `--extract` stages a reference screenshot for the visual evaluator to reverse-engineer into DESIGN.md tokens; the user must review low-confidence extracted values before application. `--sync --write` patches DESIGN.md to reflect tokens already present in code.
75
+
61
76
  ## Setup gates (non-optional, every scope)
62
77
 
63
78
  Before any work — design or otherwise — pass these gates. Skipping them produces generic output that ignores the project.
@@ -109,7 +124,7 @@ For Redesign scope, run a short online best-practices check before the brief unl
109
124
 
110
125
  Use the sources as constraints, not as a style to copy. Cite links in the report/summary when they shaped the redesign.
111
126
 
112
- If the user pushes back on the proposed direction, that is a `/qualia-vibe` triggerswitch surfaces, do not start enumerating alternatives in the brief.
127
+ If the user pushes back on the proposed direction, switch to `/qualia-polish --vibe` mode — do not start enumerating alternatives in the brief.
113
128
 
114
129
  For Component / Section / Quick scope, the brief is implicit (loaded from DESIGN.md). Skip the ultrathink step but cite the relevant DESIGN.md tokens you'll touch.
115
130
 
@@ -6,11 +6,11 @@
6
6
  * 1. If source is a URL → capture screenshot at 1440 via playwright-capture.mjs.
7
7
  * If source is a local image path → use it directly.
8
8
  * 2. Emit a JSON scaffold the LLM uses to generate the extracted token bundle.
9
- * 3. The skill (qualia-vibe) reads the scaffold, runs the vision evaluator in
9
+ * 3. The skill (qualia-polish --vibe) reads the scaffold, runs the vision evaluator in
10
10
  * extract mode, gets the bundle back, renders it as a DESIGN.md draft.
11
11
  *
12
12
  * This script does NOT call any LLM directly — it stages the inputs and emits
13
- * a deterministic JSON contract. The /qualia-vibe skill orchestrates the LLM
13
+ * a deterministic JSON contract. The /qualia-polish --vibe skill orchestrates the LLM
14
14
  * call.
15
15
  *
16
16
  * Usage:
@@ -49,7 +49,7 @@ let screenshotPath;
49
49
  const isUrl = /^https?:\/\//i.test(source);
50
50
  if (isUrl) {
51
51
  const stamp = Date.now().toString(36);
52
- const outDir = join(tmpdir(), `qualia-vibe-extract-${stamp}`);
52
+ const outDir = join(tmpdir(), `qualia-polish-vibe-extract-${stamp}`);
53
53
  mkdirSync(outDir, { recursive: true });
54
54
  screenshotPath = join(outDir, "ref-1440.png");
55
55
 
@@ -132,7 +132,7 @@ const scaffold = {
132
132
  rules: [
133
133
  "Banned fonts: Inter, Roboto, Arial, Helvetica, system-ui, Space Grotesk, Montserrat, Poppins, Lato, Open Sans. If you see one of these, name it AND flag it so the user can decide whether to ban or accept.",
134
134
  "Banned patterns: purple-blue gradient, gradient text, bounce/elastic easing. Flag the same way.",
135
- "Confidence < high → user must review before /qualia-vibe applies.",
135
+ "Confidence < high → user must review before /qualia-polish --vibe applies.",
136
136
  ],
137
137
  next_step: `After producing the bundle, write a DESIGN.md draft to ${outDraft} using the bundle to populate sections 1 (Direction), 2 (Color), 3 (Typography), 4 (Spacing), 6 (Depth), 7 (Motion). Leave sections that depend on PRODUCT.md or anti-references empty — the user will fill them.`,
138
138
  };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * tokens.mjs — read/write design tokens for /qualia-vibe.
3
+ * tokens.mjs — read/write design tokens for /qualia-polish --vibe.
4
4
  *
5
5
  * Commands:
6
6
  * tokens.mjs sync --design .planning/DESIGN.md [--write]
@@ -36,13 +36,13 @@ function hasFlag(name) {
36
36
  const CMD = argv[2];
37
37
 
38
38
  if (!CMD || CMD === "--help" || CMD === "-h") {
39
- console.log(`tokens.mjs — design-token utility for /qualia-vibe
39
+ console.log(`tokens.mjs — design-token utility for /qualia-polish --vibe
40
40
 
41
41
  Usage:
42
42
  tokens.mjs sync --design <path> [--write]
43
43
  tokens.mjs propose-variants --product <path> --design <path> --count <N>
44
44
 
45
- See skills/qualia-vibe/SKILL.md.
45
+ See skills/qualia-polish/SKILL.md.
46
46
  `);
47
47
  exit(0);
48
48
  }
@@ -268,7 +268,7 @@ function cmdSync() {
268
268
  ``,
269
269
  `## §sync — auto-synced from code (${stamp})`,
270
270
  ``,
271
- `<!-- Generated by /qualia-vibe --sync --write. Reflects values actually present in code at sync time. -->`,
271
+ `<!-- Generated by /qualia-polish --vibe --sync --write. Reflects values actually present in code at sync time. -->`,
272
272
  ``,
273
273
  "```css",
274
274
  `:root {`,
@@ -307,7 +307,7 @@ function cmdProposeVariants() {
307
307
 
308
308
  // Emit a structured scaffold the LLM uses to generate variants.
309
309
  const scaffold = {
310
- instruction: `Generate exactly ${count} aesthetic-direction variants for /qualia-vibe --variants. Each variant must be opinionated and concrete — no "modern minimal" hedging. Variants must be meaningfully different from each other AND from the current direction.`,
310
+ instruction: `Generate exactly ${count} aesthetic-direction variants for /qualia-polish --vibe --variants. Each variant must be opinionated and concrete — no "modern minimal" hedging. Variants must be meaningfully different from each other AND from the current direction.`,
311
311
  context: {
312
312
  product_md: product.slice(0, 4000),
313
313
  current_direction_lines: design
@@ -323,7 +323,7 @@ function cmdProposeVariants() {
323
323
  "No purple-blue gradients.",
324
324
  "No bounce/elastic easing.",
325
325
  `Respect anti-references from PRODUCT.md if present.`,
326
- "Each variant should be commit-able as-is — concrete enough that /qualia-vibe can apply it without further questions.",
326
+ "Each variant should be commit-able as-is — concrete enough that /qualia-polish --vibe can apply it without further questions.",
327
327
  ],
328
328
  };
329
329
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-postmortem
3
- description: "Self-healing AI layer when /qualia-verify returns FAIL, identify which agent/rule/skill should have caught the failure and propose a delta to that file so the same class of bug never recurs. Trigger on 'postmortem', 'why did the framework miss this', 'self-heal', 'qualia-postmortem', or auto-invoked by /qualia-verify on FAIL with --auto."
3
+ description: "Self-healing passon /qualia-verify FAIL, identify which rule/agent/skill should have caught it and propose a delta. Triggers: 'postmortem', 'why did the framework miss this', 'self-heal'. Auto-invoked by /qualia-verify on FAIL with `--auto`."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-report
3
- description: "Generate session report, commit to git, push, and upload to the Qualia ERP the mandatory clock-out flow. Use when the user says 'qualia-report', 'clock out', 'end of day', 'wrap up', 'session report', 'submit report', 'I'm done for today', or before stopping work. Handles empty days (no commits), missing API key, ERP outages, and dry-run preview gracefully."
3
+ description: "Mandatory clock-out flow — generate session report, commit, push, upload to ERP. Handles empty days, missing API key, ERP outages, dry-run. Triggers: 'qualia-report', 'clock out', 'end of day', 'session report', 'I'm done for today'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-research
3
- description: "Deep-research a niche domain or library BEFORE planning a specific phase. Spawns the researcher agent with Context7/WebFetch access. Writes to .planning/phase-{N}-research.md. Triggers: 'research X library', 'research the domain before planning', 'study Stripe webhooks', 'how do others do RAG', 'best practices for X', 'compare libraries', 'I need depth before planning phase N'. Distinct from /qualia-recall (which queries the local Obsidian vault) and /qualia-discuss (which interviews the user)."
3
+ description: "Deep-research a domain or library BEFORE planning a phase. Spawns researcher with Context7/WebFetch. Writes .planning/phase-{N}-research.md. Triggers: 'research X library', 'study Stripe webhooks', 'best practices for X', 'compare libraries'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-review
3
- description: "Read-only production audit with scored diagnostics. Runs real commands, scores findings by severity, writes REVIEW.md, and routes repair work to /qualia-fix, /qualia-polish, or /qualia-optimize. Trigger on 'review', 'audit', 'code review', 'security check', 'production check'."
3
+ description: "Read-only production audit real commands, severity-scored REVIEW.md, routes repair to /qualia-fix, /qualia-polish, or /qualia-optimize. Triggers: 'review', 'audit', 'code review', 'security check', 'production check'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-road
3
- description: "TERMINAL workflow map — Project → Journey → Milestones → Phases → Tasks. Use this in headless/SSH/no-browser sessions or when the user asks for the road in chat. For the HTML reference (default when a browser is available), use /qualia-help. Triggers: 'how does Qualia work', 'what's the workflow', 'show me the road', 'what command does X', 'how do projects flow', 'in terminal please', SSH context."
3
+ description: "Terminal workflow map — Project → Journey → Milestones → Phases → Tasks. For headless/SSH/no-browser sessions. Triggers: 'show me the road', 'what's the workflow', 'how does Qualia work', SSH context."
4
4
  disable-model-invocation: true
5
5
  allowed-tools:
6
6
  - Read
@@ -45,17 +45,17 @@ Every road agent loads `PRODUCT.md + DESIGN.md + design-laws.md` substrate. Buil
45
45
  /qualia-polish --quick ~1m gates only
46
46
  ```
47
47
 
48
- ## Design pivots — /qualia-vibe (v6.1+)
48
+ ## Design pivots — /qualia-polish --vibe
49
49
  ```
50
- /qualia-vibe fast aesthetic pivot: ONE proposed direction, swap tokens, keep layout (~3 min)
51
- /qualia-vibe brutalist explicit pivot to named direction
52
- /qualia-vibe --variants 3 opt-in menu (uses AskUserQuestion; default flow is one-opinion)
53
- /qualia-vibe --extract https://stripe.com reverse-engineer DESIGN.md from a reference URL
54
- /qualia-vibe --extract ./inspo.png same, from a local screenshot
55
- /qualia-vibe --sync show drift between code (CSS vars, Tailwind config) and DESIGN.md
56
- /qualia-vibe --sync --write patch DESIGN.md to match code, commit
50
+ /qualia-polish --vibe fast aesthetic pivot: ONE proposed direction, swap tokens, keep layout (~3 min)
51
+ /qualia-polish --vibe brutalist explicit pivot to named direction
52
+ /qualia-polish --vibe --variants 3 opt-in menu (rare; default flow is one-opinion)
53
+ /qualia-polish --vibe --extract https://stripe.com reverse-engineer DESIGN.md from a reference URL
54
+ /qualia-polish --vibe --extract ./inspo.png same, from a local screenshot
55
+ /qualia-polish --vibe --sync show drift between code (CSS vars, Tailwind config) and DESIGN.md
56
+ /qualia-polish --vibe --sync --write patch DESIGN.md to match code, commit
57
57
  ```
58
- `/qualia-vibe` is for the WHOLE-SITE aesthetic. For surgical component-level fixes use `/qualia-polish` (component or section scope). For ground-up structural redesign use `/qualia-polish --redesign`.
58
+ `/qualia-polish --vibe` is for the WHOLE-SITE aesthetic. For surgical component-level fixes use `/qualia-polish` (component or section scope). For ground-up structural redesign use `/qualia-polish --redesign`.
59
59
 
60
60
  ## /qualia-polish --loop — autonomous visual QA
61
61
  ```
@@ -69,21 +69,17 @@ Screenshots at 3 viewports (375/768/1440), scores 9 design dimensions using visi
69
69
 
70
70
  ## Deterministic-enforcement skills
71
71
  ```
72
- /qualia-hook-gen convert a CLAUDE.md/rules instruction into a deterministic pre-tool-use hook
73
72
  /qualia-optimize --deepen spawns 3 parallel interface-design variants per candidate (Step 5b)
74
73
  ```
75
- `/qualia-hook-gen` reduces lifetime token cost (each migrated rule frees ~50-200 tokens per request). `/qualia-optimize --deepen` produces dramatically better refactor RFCs because 3 radically-different interfaces are surfaced and the human picks/hybridizes.
74
+ `/qualia-optimize --deepen` produces dramatically better refactor RFCs because 3 radically-different interfaces are surfaced and the human picks/hybridizes.
76
75
 
77
76
  ## Alignment substrate
78
77
  Before high-stakes phases, run alignment skills against `.planning/CONTEXT.md` (domain glossary) and `.planning/decisions/` (ADRs):
79
78
 
80
79
  ```
81
80
  /qualia-discuss → relentless one-question interview, updates CONTEXT.md inline
82
- /qualia-zoom → map an unfamiliar code area using glossary terms
83
81
  /qualia-optimize --deepen → find shallow modules, propose Ousterhout-style refactors
84
82
  /qualia-test --tdd → vertical-slice red→green→refactor for one feature
85
- /qualia-issues → break a phase plan into independent GH issues
86
- /qualia-triage → label + route open issues (ready-for-agent vs human)
87
83
  /qualia-map → adapt Qualia to an existing brownfield repo's conventions (5th onboarding agent)
88
84
  ```
89
85
 
@@ -91,23 +87,22 @@ Before high-stakes phases, run alignment skills against `.planning/CONTEXT.md` (
91
87
  ```
92
88
  Lost? → /qualia (state router — tells you the next command)
93
89
  Health? → /qualia-doctor (install, state, contracts, memory, ERP queue)
94
- Stuck/weird? → /qualia-idk (diagnostic — spawns plan-view + code-view agents in parallel)
90
+ Stuck/weird? → /qualia (diagnostic branch scans planning + code when state alone is insufficient)
95
91
  Broken thing? → /qualia-fix (root cause, minimal patch, verify, report)
96
92
  Single feature? → /qualia-feature (new capability: inline for trivia, fresh spawn for 1-5 files)
97
- Paused? → /qualia-resume (restore from .continue-here.md or STATE.md)
93
+ Paused? → /qualia (restore from .continue-here.md or STATE.md)
98
94
  End of day? → /qualia-report (mandatory before clock-out; writes ERP payload)
99
- Debug why? → /qualia-debug (feedback-loop-first investigation when evidence is unclear)
100
95
  Unsure plan? → /qualia-discuss (capture decisions before planning)
101
96
  ```
102
97
 
103
98
  ## Outside-road command boundaries
104
99
  ```
105
100
  Need a repair? → /qualia-fix (mutates code, proves fix)
106
- Need an investigation? → /qualia-debug (evidence first, no guessing)
101
+ Need an investigation? → /qualia-review (read-only audit) or /qualia-fix (known broken behavior)
107
102
  Need an audit? → /qualia-review (detect-only, scored findings)
108
103
  Need improvement map? → /qualia-optimize (report/RFC, broad opportunities)
109
104
  Need visual quality? → /qualia-polish (style/layout/accessibility)
110
- Need new aesthetic? → /qualia-vibe (tokens only, layout preserved)
105
+ Need new aesthetic? → /qualia-polish --vibe (tokens only, layout preserved)
111
106
  Need new capability? → /qualia-feature (small net-new work)
112
107
  ```
113
108
 
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: qualia-secure
3
+ description: "Security scan of agent config — CLAUDE.md / settings.json / hooks / MCP — for prompt injection, leaked secrets, unscoped permissions, config drift. Static pass + optional Opus red/blue/auditor pipeline. Triggers: 'security scan', 'security audit', 'check my config', 'before going live'."
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Grep
8
+ - Agent
9
+ ---
10
+
11
+ # /qualia-secure — Security audit of the agent's own configuration
12
+
13
+ Not application code security. **Agent configuration security.** This skill audits the surfaces that Claude/Codex itself reads — CLAUDE.md, settings.json, hooks, MCP servers — for the class of risks that a normal linter cannot catch: prompt-injection vectors, secrets baked into instructions, unscoped tool permissions, drifted policy enforcement.
14
+
15
+ This is Qualia's vertical equivalent of ECC's AgentShield, kept local to your stack.
16
+
17
+ ## When to run
18
+
19
+ - **Before going live** with a new agent harness on a sensitive project.
20
+ - **After installing new MCP servers** — each MCP description consumes context AND can introduce permission scope risks.
21
+ - **As a release gate** — wire into CI via `qualia-framework secure --exit-code`.
22
+ - **After editing CLAUDE.md / settings.json by hand** to catch accidental secret leaks or permission widening.
23
+
24
+ ## Process
25
+
26
+ ### Step 0. Banner
27
+
28
+ ```bash
29
+ node ${QUALIA_BIN}/qualia-ui.js banner secure
30
+ ```
31
+
32
+ Say: **"Running security scan."**
33
+
34
+ ### Step 1. Fast static pass
35
+
36
+ ```bash
37
+ node ${QUALIA_BIN}/security-scan.js --write
38
+ ```
39
+
40
+ This writes `.planning/security-scan.md` with severity-ranked findings:
41
+
42
+ - **Secret patterns** — Anthropic / OpenAI / GitHub / AWS / Supabase JWT / Vercel keys baked into CLAUDE.md or settings.json (CRITICAL/HIGH).
43
+ - **Permission smells** — unscoped `Bash` tool, `service_role` imports leaking into client code (CRITICAL/HIGH).
44
+ - **Hook hygiene** — `child_process.exec` with `shell: true` from user input, hooks missing timeouts (MEDIUM/LOW).
45
+
46
+ Read the report. If CRITICAL findings exist, **stop here** and rotate / fix before continuing — the deep pass is moot until the obvious holes are closed.
47
+
48
+ ### Step 2. Opus 4.7 adversarial deep-analysis (optional, longer)
49
+
50
+ If the static pass is clean (or you want adversarial reasoning over the rules + instructions text regardless), run:
51
+
52
+ ```bash
53
+ node ${QUALIA_BIN}/security-scan.js --deep
54
+ ```
55
+
56
+ This writes:
57
+ - `.planning/security-scan.md` (the static findings, same as Step 1)
58
+ - `.planning/security-deep-prompt.md` (a prompt pack with the static findings as seeds, plus the three agent prompts ready to dispatch)
59
+
60
+ Read `.planning/security-deep-prompt.md`. It contains three sections — RED TEAM, BLUE TEAM, AUDITOR — each is a self-contained prompt for one `Agent()` spawn. Dispatch the first two in parallel, then the auditor after they return:
61
+
62
+ ```
63
+ Agent(prompt=<contents of "## Agent A — RED TEAM" section>, subagent_type="general-purpose", description="Red-team attacks")
64
+ Agent(prompt=<contents of "## Agent B — BLUE TEAM" section>, subagent_type="general-purpose", description="Blue-team guardrail audit")
65
+ ```
66
+
67
+ Wait for both. Pass their reports into the auditor:
68
+
69
+ ```
70
+ Agent(prompt=<"## Agent C — AUDITOR" section> + "\n\n## Red-team output\n\n" + <A's report> + "\n\n## Blue-team output\n\n" + <B's report>, subagent_type="general-purpose", description="Auditor synthesis")
71
+ ```
72
+
73
+ The auditor writes `.planning/security-audit.md` — that's the deliverable.
74
+
75
+ ### Step 3. Synthesize + route
76
+
77
+ Combine `.planning/security-scan.md` (static) + `.planning/security-audit.md` (Opus) into a single executive summary. Surface the top 3 actions ranked by severity:
78
+
79
+ - **CRITICAL** → fix immediately, before any further work.
80
+ - **HIGH** → ticket for this sprint; route to `/qualia-hook-gen` if the fix is "make this instructional rule deterministic via a hook."
81
+ - **MEDIUM/LOW** → backlog.
82
+
83
+ ### Step 4. Close
84
+
85
+ ```bash
86
+ node ${QUALIA_BIN}/qualia-ui.js end "SECURED" "/qualia-hook-gen"
87
+ ```
88
+
89
+ (Or omit the next-command if all findings are LOW.)
90
+
91
+ ## Rules
92
+
93
+ 1. **Static pass is non-negotiable.** It's fast and deterministic — always runs.
94
+ 2. **Opus pass is opt-in.** It costs tokens and time. Default to skipping unless the user explicitly asks for "deep audit" or the static pass triggers HIGH+ findings.
95
+ 3. **No fake severity.** Per `rules/grounding.md`, every finding cites `file:line` and matches a category in the Severity Rubric. No hedging.
96
+ 4. **Recommend deterministic fixes when possible.** A rule in CLAUDE.md is suggestive; a hook is enforced. The skill's bias is toward `/qualia-hook-gen` over "tell the agent to do X."
97
+ 5. **Never auto-rotate secrets.** Flag and instruct. The user rotates manually with confirmation — secrets in CI variables are the user's domain.
98
+
99
+ ## When NOT to use
100
+
101
+ - Application-level security review (use `/security-review` for OWASP-style code audit).
102
+ - Production deployment health (use `/qualia-doctor` / `/qualia-status`).
103
+ - Specific bug investigation (use `/qualia-debug` → `/qualia-fix`).
104
+
105
+ `/qualia-secure` is specifically for **the agent's configuration**. The hooks, the rules, the tool scopes, the MCP servers — the surfaces Claude reads to decide what to do.
@@ -32,6 +32,14 @@ fi
32
32
 
33
33
  STATUS=$(echo "$STATE" | node -e "try{const d=JSON.parse(require('fs').readFileSync(0,'utf8'));process.stdout.write(d.status||'')}catch{}")
34
34
  VERIFICATION=$(echo "$STATE" | node -e "try{const d=JSON.parse(require('fs').readFileSync(0,'utf8'));process.stdout.write(d.verification||'')}catch{}")
35
+ NEXT_COMMAND=$(echo "$STATE" | node -e "try{const d=JSON.parse(require('fs').readFileSync(0,'utf8'));process.stdout.write(d.next_command||'/qualia')}catch{process.stdout.write('/qualia')}")
36
+ ROLE=$(node -e "try{const fs=require('fs'),path=require('path'),os=require('os');const h=process.env.QUALIA_HOME||path.dirname(process.env.QUALIA_BIN||path.join(os.homedir(),'.claude','bin'));const c=JSON.parse(fs.readFileSync(path.join(h,'.qualia-config.json'),'utf8'));process.stdout.write((c.role||'').toUpperCase())}catch{}")
37
+
38
+ if [ "${QUALIA_SHIP_FORCE:-0}" = "1" ] && [ "$ROLE" != "OWNER" ]; then
39
+ node ${QUALIA_BIN}/qualia-ui.js fail "Owner override is OWNER-only."
40
+ node ${QUALIA_BIN}/qualia-ui.js info "Run $NEXT_COMMAND."
41
+ exit 1
42
+ fi
35
43
 
36
44
  # Valid ship-from states:
37
45
  # polished — /qualia-polish ran cleanly; ready for deploy
@@ -41,10 +49,9 @@ if [ "$STATUS" != "polished" ] && ! { [ "$STATUS" = "verified" ] && [ "$VERIFICA
41
49
  if [ "${QUALIA_SHIP_FORCE:-0}" = "1" ]; then
42
50
  node ${QUALIA_BIN}/qualia-ui.js warn "Forced ship from state '$STATUS' (verification: ${VERIFICATION:-none}). Record the reason in the final report."
43
51
  else
44
- node ${QUALIA_BIN}/qualia-ui.js fail "Cannot ship from state '$STATUS' (verification: ${VERIFICATION:-none})."
45
- node ${QUALIA_BIN}/qualia-ui.js info "Run /qualia-polish first, or /qualia-verify {phase} if verification is still pending."
46
- node ${QUALIA_BIN}/qualia-ui.js info "Hotfix override: set QUALIA_SHIP_FORCE=1 only when the user explicitly approved it."
47
- exit 1
52
+ node ${QUALIA_BIN}/qualia-ui.js fail "Ship refused from state '$STATUS' (verification: ${VERIFICATION:-none})."
53
+ node ${QUALIA_BIN}/qualia-ui.js info "Run $NEXT_COMMAND."
54
+ exit 1
48
55
  fi
49
56
  fi
50
57
  ```
@@ -64,7 +71,7 @@ On failure:
64
71
  1. Summarize what failed in plain language
65
72
  2. Auto-fix
66
73
  3. Re-run the gate
67
- 4. If still failing after 2 attempts: tell the employee, suggest `/qualia-debug`
74
+ 4. If still failing after 2 attempts: tell the employee, suggest `/qualia-fix`
68
75
 
69
76
  ### 2. Security Check — full depth
70
77
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-test
3
- description: "Generate tests for existing code, run tests, OR drive a feature test-first via --tdd vertical-slice loop (red→green→refactor, one test→one impl→repeat). Trigger on 'write tests', 'add tests', 'test this', 'run tests', 'test coverage', 'need tests for', 'tdd this', 'test-driven', 'red green refactor'."
3
+ description: "Generate tests, run tests, or drive a feature test-first via `--tdd` vertical-slice loop. Triggers: 'write tests', 'add tests', 'run tests', 'test coverage', 'tdd this', 'test-driven', 'red green refactor'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualia-verify
3
- description: "Goal-backward verification of a built phase. Spawns a fresh verifier agent that greps the actual codebase against acceptance criteria, scores the design rubric, and optionally runs an adversarial second pass. Use when the user says 'verify this phase', 'check if it works', 'run verification', 'did the build pass', 'qualia-verify', or after /qualia-build completes."
3
+ description: "Goal-backward verification of a built phase fresh verifier agent greps code against acceptance criteria, scores design rubric, optional adversarial second pass. Triggers: 'verify this phase', 'check if it works', 'run verification', 'did the build pass'."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  - Read
@@ -169,8 +169,16 @@ node ${QUALIA_BIN}/qualia-ui.js end "PHASE {N} GAPS FOUND" "/qualia-plan {N} --g
169
169
 
170
170
  ### 4. Update State
171
171
 
172
+ Write the deterministic eval artifact before changing state:
173
+
174
+ ```bash
175
+ node ${QUALIA_BIN}/harness-eval.js --phase {N} --run --write
176
+ ```
177
+
178
+ If the eval status is `FAIL`, do not mark the phase PASS. The state machine also refuses PASS when a contract exists but `.planning/evidence/phase-{N}-contract-run.json` is missing/failing, or when the verification report contains `INSUFFICIENT EVIDENCE`.
179
+
172
180
  ```bash
173
- node ${QUALIA_BIN}/state.js transition --to verified --phase {N} --verification {pass|fail}
181
+ node ${QUALIA_BIN}/state.js transition --to verified --phase {N} --verification {pass|fail} --evidence .planning/evals/harness-eval-*.json
174
182
  ```
175
183
  PASS + more phases → state.js auto-advances.
176
184
  FAIL + gap_cycles >= limit → GAP_CYCLE_LIMIT, escalate.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: zoho-workflow
3
- description: "Zoho Invoice and Mail operations via ERP-first routing. Creates invoices from templates, sends cover emails, manages contacts, reads inbox, and handles payment reminders. Use when the user says 'invoice this client', 'send an email', 'check inbox', 'create a Zoho contact', 'send payment reminder', or mentions invoicing, billing, or Zoho."
3
+ description: "Zoho Invoice + Mail ops via ERP-first routing. Invoices from templates, cover emails, contacts, inbox, payment reminders. Triggers: 'invoice this client', 'send an email', 'check inbox', 'create a Zoho contact', 'payment reminder'."
4
4
  tags: [zoho, invoice, email, billing, crm]
5
5
  ---
6
6
 
@@ -364,13 +364,9 @@
364
364
  <div class="commands">
365
365
  <div class="cmd"><span class="cmd-name">/qualia-doctor</span><span class="cmd-desc">Framework health check &mdash; install, state, contracts, memory, hooks, and ERP queue. Use when Qualia itself feels broken or Codex/Claude is not picking it up.</span></div>
366
366
  <div class="cmd"><span class="cmd-name">/qualia-fix</span><span class="cmd-desc">Repair broken existing behavior &mdash; build a feedback loop, find root cause, patch minimally, verify, write a fix report. Trigger on 'fix this', 'bug', 'broken', 'failing test', 'regression'.</span></div>
367
- <div class="cmd"><span class="cmd-name">/qualia-debug</span><span class="cmd-desc">Structured investigation &mdash; symptom gathering, diagnosis confirmation, root cause analysis. Use when the failure is unclear and you need evidence before repair.</span></div>
368
367
  <div class="cmd"><span class="cmd-name">/qualia-review</span><span class="cmd-desc">Read-only production audit with scored diagnostics. Runs real commands, scores findings by severity, then routes repairs to /qualia-fix, /qualia-polish, or /qualia-optimize.</span></div>
369
368
  <div class="cmd"><span class="cmd-name">/qualia-optimize</span><span class="cmd-desc">Deep improvement discovery &mdash; reads .planning/ AND codebase to find performance, design, UI, backend, alignment, and architecture opportunities. Writes OPTIMIZE.md/RFCs; specific repairs route through /qualia-fix.</span></div>
370
369
  <div class="cmd"><span class="cmd-name">/qualia-test</span><span class="cmd-desc">Generate or run tests for client projects. Trigger on 'write tests', 'add tests', 'test this', 'test coverage'.</span></div>
371
- <div class="cmd"><span class="cmd-name">/qualia-zoom</span><span class="cmd-desc">Focus on a single file or function with full context (glossary terms, depending callers, ADRs touched). Use when a fresh agent needs surgical context for a tricky area.</span></div>
372
- <div class="cmd"><span class="cmd-name">/qualia-issues</span><span class="cmd-desc">Break a phase plan into independent vertical-slice GitHub issues with needs-triage label. Externalizes work to the open queue so other sessions or contributors can pull from it.</span></div>
373
- <div class="cmd"><span class="cmd-name">/qualia-triage</span><span class="cmd-desc">State machine over open GH issues — labels each as needs-triage, needs-info, ready-for-agent, ready-for-human, or wontfix. Pairs with /qualia-issues for the autonomous queue.</span></div>
374
370
  </div>
375
371
  </div>
376
372
 
@@ -381,7 +377,7 @@
381
377
  <div class="commands">
382
378
  <div class="cmd"><span class="cmd-name">/qualia-feature</span><span class="cmd-desc">Auto-scoped new-feature build. Inline for trivia (copy, config), fresh builder spawn for 1-5 file features. Broken existing behavior routes to /qualia-fix. Flags: --force-spawn, --force-inline.</span></div>
383
379
  <div class="cmd"><span class="cmd-name">/qualia-polish</span><span class="cmd-desc">Visual quality pass, scope-adaptive &mdash; component, route, full app, redesign, critique, quick. It fixes style/layout/accessibility only; functional bugs route to /qualia-fix.</span></div>
384
- <div class="cmd"><span class="cmd-name">/qualia-vibe</span><span class="cmd-desc">Fast aesthetic-token pivot (~3 min) &mdash; swap color, type, depth, and motion, keep layout untouched. Structural redesign routes to /qualia-polish --redesign.</span></div>
380
+ <div class="cmd"><span class="cmd-name">/qualia-polish --vibe</span><span class="cmd-desc">Fast aesthetic-token pivot (~3 min) &mdash; swap color, type, depth, and motion, keep layout untouched. Structural redesign routes to /qualia-polish --redesign.</span></div>
385
381
  </div>
386
382
  </div>
387
383
 
@@ -391,7 +387,6 @@
391
387
  <p class="cmd-group-note">Persist learnings and log work.</p>
392
388
  <div class="commands">
393
389
  <div class="cmd"><span class="cmd-name">/qualia-learn</span><span class="cmd-desc">Save a learning, pattern, fix, or client preference to the knowledge base. Persists across projects and sessions.</span></div>
394
- <div class="cmd"><span class="cmd-name">/qualia-flush</span><span class="cmd-desc">Promote raw daily logs into curated knowledge concepts. Use weekly or when session logs contain durable lessons.</span></div>
395
390
  <div class="cmd"><span class="cmd-name">/qualia-report</span><span class="cmd-desc">Generate session report and commit to repo. Mandatory before clock-out.</span></div>
396
391
  </div>
397
392
  </div>
@@ -401,8 +396,6 @@
401
396
  <h3>Session</h3>
402
397
  <p class="cmd-group-note">Hand off and resume context cleanly.</p>
403
398
  <div class="commands">
404
- <div class="cmd"><span class="cmd-name">/qualia-pause</span><span class="cmd-desc">Save session context for seamless handoff. Creates .continue-here.md so the next session picks up exactly where you left off.</span></div>
405
- <div class="cmd"><span class="cmd-name">/qualia-resume</span><span class="cmd-desc">Restore context from a previous session. Reads .continue-here.md or STATE.md, summarizes where you left off, routes to next action.</span></div>
406
399
  </div>
407
400
  </div>
408
401
 
@@ -412,8 +405,6 @@
412
405
  <p class="cmd-group-note">When you don't know what to do next.</p>
413
406
  <div class="commands">
414
407
  <div class="cmd"><span class="cmd-name">/qualia</span><span class="cmd-desc">Smart router &mdash; reads project state, classifies your situation, tells you the exact next command. Use whenever you're unsure about your next step.</span></div>
415
- <div class="cmd"><span class="cmd-name">/qualia-idk</span><span class="cmd-desc">Diagnostic intelligence &mdash; spawns two isolated scans (planning + codebase) in parallel, cross-references against your confusion, explains the situation in plain language with a concrete next step. Use when something feels off or you need to understand what's going on.</span></div>
416
- <div class="cmd"><span class="cmd-name">/qualia-help</span><span class="cmd-desc">Open the Qualia Framework reference guide in the browser. A beautiful themed HTML page with all commands, rules, services, and the road.</span></div>
417
408
  <div class="cmd"><span class="cmd-name">/qualia-road</span><span class="cmd-desc">Terminal workflow map — Project → Journey → Milestones → Phases → Tasks. Use in headless/SSH sessions or when you want the road in chat instead of the browser.</span></div>
418
409
  </div>
419
410
  </div>
@@ -423,9 +414,7 @@
423
414
  <h3>Meta</h3>
424
415
  <p class="cmd-group-note">Extend the framework itself.</p>
425
416
  <div class="commands">
426
- <div class="cmd"><span class="cmd-name">/qualia-skill-new</span><span class="cmd-desc">Author a new Qualia skill or agent. Generates the SKILL.md, registers it in the right location, and optionally ships to the framework repo.</span></div>
427
417
  <div class="cmd"><span class="cmd-name">/qualia-postmortem</span><span class="cmd-desc">Analyze a verification failure and turn the lesson into a framework improvement.</span></div>
428
- <div class="cmd"><span class="cmd-name">/qualia-hook-gen</span><span class="cmd-desc">Convert a CLAUDE.md or rules instruction into a deterministic Claude Code pre-tool-use hook. Lets you shrink your instruction budget instead of just hearing the advice.</span></div>
429
418
  <div class="cmd"><span class="cmd-name">/zoho-workflow</span><span class="cmd-desc">Internal Qualia Solutions ops — Zoho Invoice and Mail integration via ERP-first routing.</span></div>
430
419
  </div>
431
420
  </div>