@hegemonart/get-design-done 1.19.0 → 1.19.6

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 (62) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +54 -0
  4. package/SKILL.md +10 -4
  5. package/agents/README.md +53 -0
  6. package/agents/a11y-mapper.md +10 -0
  7. package/agents/component-benchmark-harvester.md +11 -0
  8. package/agents/component-benchmark-synthesizer.md +11 -0
  9. package/agents/component-taxonomy-mapper.md +10 -0
  10. package/agents/design-advisor.md +10 -0
  11. package/agents/design-assumptions-analyzer.md +10 -0
  12. package/agents/design-auditor.md +22 -0
  13. package/agents/design-authority-watcher.md +10 -0
  14. package/agents/design-component-generator.md +10 -0
  15. package/agents/design-context-checker-gate.md +10 -0
  16. package/agents/design-context-checker.md +10 -0
  17. package/agents/design-discussant.md +24 -0
  18. package/agents/design-doc-writer.md +12 -0
  19. package/agents/design-executor.md +10 -0
  20. package/agents/design-figma-writer.md +10 -0
  21. package/agents/design-fixer.md +10 -0
  22. package/agents/design-integration-checker-gate.md +10 -0
  23. package/agents/design-integration-checker.md +10 -0
  24. package/agents/design-paper-writer.md +10 -0
  25. package/agents/design-pattern-mapper.md +10 -0
  26. package/agents/design-pencil-writer.md +10 -0
  27. package/agents/design-phase-researcher.md +10 -0
  28. package/agents/design-plan-checker.md +10 -0
  29. package/agents/design-planner.md +10 -0
  30. package/agents/design-reflector.md +20 -0
  31. package/agents/design-research-synthesizer.md +10 -0
  32. package/agents/design-start-writer.md +10 -0
  33. package/agents/design-update-checker.md +10 -0
  34. package/agents/design-verifier-gate.md +10 -0
  35. package/agents/design-verifier.md +11 -0
  36. package/agents/gdd-graphify-sync.md +10 -0
  37. package/agents/gdd-intel-updater.md +10 -0
  38. package/agents/gdd-learnings-extractor.md +10 -0
  39. package/agents/motion-mapper.md +10 -0
  40. package/agents/token-mapper.md +10 -0
  41. package/agents/visual-hierarchy-mapper.md +10 -0
  42. package/hooks/gdd-decision-injector.js +30 -8
  43. package/package.json +18 -2
  44. package/reference/authority-feeds.md +4 -2
  45. package/reference/checklists.md +30 -0
  46. package/reference/component-authoring.md +184 -0
  47. package/reference/emotional-design.md +124 -0
  48. package/reference/first-principles.md +89 -0
  49. package/reference/heuristics.md +70 -0
  50. package/reference/motion-advanced.md +192 -3
  51. package/reference/registry.json +28 -0
  52. package/reference/schemas/insight-line.schema.json +37 -0
  53. package/reference/shared-preamble.md +10 -0
  54. package/scripts/lib/design-search.cjs +206 -0
  55. package/scripts/lib/probe-optional.cjs +29 -0
  56. package/scripts/lib/relevance-counter.cjs +121 -0
  57. package/skills/complete-cycle/SKILL.md +40 -2
  58. package/skills/continue/SKILL.md +23 -0
  59. package/skills/pause/SKILL.md +40 -14
  60. package/skills/recall/SKILL.md +74 -0
  61. package/skills/resume/SKILL.md +34 -16
  62. package/skills/timeline/SKILL.md +65 -0
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "Get Design Done — 5-stage agent-orchestrated design pipeline with 9 connections, handoff-first workflow, bidirectional Figma write-back, 22+ specialized agents, queryable knowledge layer (intel store, dependency analysis, learnings extraction), and a self-improvement loop (reflector, frontmatter + budget feedback, global-skills layer). Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation (auto-tag + GitHub Release + release-time smoke test).",
8
- "version": "1.19.0"
8
+ "version": "1.19.6"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "get-design-done",
13
13
  "source": "./",
14
14
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), Claude Design handoff, bidirectional Figma write-back, and a queryable intel store (.design/intel/) for dependency and learnings queries. Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings. Ships 35-component benchmark corpus with pipeline integration (auditor conformance, executor pre-flight, doc-writer scaffold, pattern-mapper convergence). Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, variable-font loading, image optimization, CSS Grid + container queries, advanced motion vocabulary, platform design patterns (iOS/Android/web/visionOS), RTL/CJK/cultural adaptations, IA catalog, form UX patterns, data-visualization matrix, and user-research methodology, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation. Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression.",
15
- "version": "1.19.0",
15
+ "version": "1.19.6",
16
16
  "author": {
17
17
  "name": "hegemonart"
18
18
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "get-design-done",
3
3
  "short_name": "gdd",
4
- "version": "1.19.0",
4
+ "version": "1.19.6",
5
5
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), handoff-first workflow via Claude Design bundles, bidirectional Figma write-back (annotations, Code Connect), queryable intel store (`.design/intel/`) for O(1) design surface lookups, and self-improvement loop (reflector agent, frontmatter + budget feedback, global-skills layer at `~/.claude/gdd/global-skills/`). Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings, reflect, apply-reflections. Ships 35-component benchmark corpus (Waves 1–5) with pipeline integration: auditor conformance scoring, executor spec pre-flight, doc-writer scaffold, pattern-mapper convergence detector. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, variable-font loading, image optimization, CSS Grid + container queries, advanced motion vocabulary (RN MIT easings/spring/interpolate + hyperframes transition taxonomy), platform design patterns (iOS/Android/web/visionOS), RTL/CJK/cultural adaptations, information architecture catalog, form UX patterns (Wroblewski label research), data-visualization matrix (25 chart types, Okabe-Ito palette), and user-research methodology, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows, lint + schema + frontmatter + stale-ref + shellcheck + gitleaks + injection-scan + blocking size-budget) and release automation (auto-tag + GitHub Release + release-time smoke test). Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression.",
6
6
  "author": {
7
7
  "name": "hegemonart",
package/CHANGELOG.md CHANGED
@@ -4,6 +4,60 @@ All notable changes to get-design-done are documented here. Versions follow [sem
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.19.6] — 2026-04-24
8
+
9
+ ### Added — Design Philosophy Layer
10
+
11
+ Adds a generative reasoning spine on top of the defensive (anti-patterns) and descriptive (heuristics) layers. Purely additive knowledge + lens integration — no new agents, skills, or commands.
12
+
13
+ **New `reference/first-principles.md`:** 3-invariant framework (body / attention / memory) with grep-able principle→code pairs and a reducibility test for every design element. Wired into `design-discussant` as Step 0.5 — three invariant questions prepended to the brief-stage interview; answers recorded as `[Invariant]` D-XX decisions in STATE.md.
14
+
15
+ **New `reference/emotional-design.md`:** Don Norman's visceral / behavioral / reflective three-level framework as a cross-cutting scoring lens. Per-level scoring rubrics (1–4) and a cross-level conflict table. Wired into `design-auditor` (Step 4.5 Emotional Design Overlay appended to DESIGN-AUDIT.md) and `design-reflector` (visceral/behavioral divergence check in Section 1).
16
+
17
+ **New `reference/component-authoring.md`:** Emil Kowalski / Sonner 6-principle component quality standard — P-01 Minimal API, P-02 Composability, P-03 Defaults, P-04 Animation as State, P-05 Accessibility First, P-06 Edge Honesty — with grep-able audit signals and an ARIA contract table by component type. Wired into design-auditor (Pillar 7 sub-check), design-discussant (`--spec` mode question), and design-verifier must-have checklist.
18
+
19
+ **`reference/heuristics.md` extended:** Added Peak-End Rule, Loss Aversion, Cognitive Load Theory (intrinsic / extraneous / germane), Aesthetic-Usability Effect, Doherty Threshold (400ms), and Flow (Csikszentmihalyi) — completing the psychology foundations layer.
20
+
21
+ **`reference/motion-advanced.md`:** Disney's 12 Principles UX mapping stub replaced with full authoring — all 12 principles translated to interface motion with code examples (Squash and Stretch, Anticipation, Staging, Straight Ahead vs Pose to Pose, Follow Through, Slow In/Slow Out, Arcs, Secondary Action, Timing, Exaggeration, Solid Drawing, Appeal).
22
+
23
+ **`reference/checklists.md`:** Added Rams Lens (10 questions mapping Dieter Rams's principles) and Sonner / Component-Authoring Lens (6 P-0N questions) as post-audit self-checks.
24
+
25
+ **`reference/shared-preamble.md`:** Added Design Philosophy Layer block pointing to the three new reference files — ensures all agents are aware of the philosophy spine.
26
+
27
+ **`reference/authority-feeds.md`:** Added `jnd.org` (Don Norman) and `vitsoe.com` (Dieter Rams / Vitsœ) as named-practitioner feeds. Feed count: 26 → 28.
28
+
29
+ **`design-auditor`:** Required reading expanded with `reference/emotional-design.md` and `reference/component-authoring.md`. Step 4.5 (Emotional Design Overlay) added to execution steps.
30
+
31
+ **`design-discussant`:** Step 0.5 (First-Principles Invariants) prepends three invariant questions during brief/discover stage.
32
+
33
+ **`design-reflector`:** Section 1 extended with four principles-check prompts: reducibility, memory-load, peak-end, and error-redemption.
34
+
35
+ ---
36
+
37
+ ## [1.19.5] — 2026-04-24
38
+
39
+ ### Added — Cross-Cycle Memory: Recall, Checkpoints, Experience Archive
40
+
41
+ Turns write-only learnings and reflections into a queryable, ranked, self-pruning memory layer.
42
+
43
+ **Search backend (`scripts/lib/design-search.cjs`):** Priority chain — FTS5 via `better-sqlite3` (optional dep, runtime-probed) → ripgrep → Node fs scan. `/gdd:recall --reindex` rebuilds the index. `scripts/lib/probe-optional.cjs` wraps optional native deps for future reuse.
44
+
45
+ **Cross-cycle recall (`/gdd:recall <query>`):** `skills/recall/SKILL.md` — searches `.design/archive/`, `.design/learnings/LEARNINGS.md`, `.design/CYCLES.md`, and STATE.md decision blocks; signals `surfaced` for matched L-NN IDs via `relevance-counter.cjs`.
46
+
47
+ **Numbered checkpoints (pause/resume rewrite):** `skills/pause/SKILL.md` atomic-appends to `.design/checkpoints/NN-<stage>-<ISO-date>.md` instead of clobbering `HANDOFF.md`; `HANDOFF.md` becomes a pointer to the latest checkpoint. `skills/resume/SKILL.md` gains listing mode with `AskUserQuestion` picker when no arg; `/gdd:resume N` restores checkpoint N. `skills/continue/SKILL.md` — alias for `/gdd:resume` (discoverability).
48
+
49
+ **Per-cycle EXPERIENCE.md:** `skills/complete-cycle/SKILL.md` extended — Haiku-tier writer reads cycle STATE + DESIGN-VERIFICATION + reflections, emits `.design/archive/cycle-N/EXPERIENCE.md` (~100–200 lines, declarative-fact framing: Goal / Decisions made / Learnings graduated / What died / Surprises / Handoff to next cycle). Highest-priority source for decision-injector.
50
+
51
+ **Timeline retrospective (`/gdd:timeline`):** `skills/timeline/SKILL.md` — narrative view across EXPERIENCE.md files + git log; sections Opened with / Key decisions / Surprises / What we'd do differently.
52
+
53
+ **Relevance counter (`scripts/lib/relevance-counter.cjs`):** `record(id, signal, designDir)` under atomic-write + `.lock`; signals: `cited`, `surfaced`, `dismissed`. `shouldPromote` at 8+ cites; `shouldPrune` at 0 cites + 4 cycles.
54
+
55
+ **Decision-injector FTS5 upgrade:** `hooks/gdd-decision-injector.js` backend-swaps to FTS5 transparently when `design-search.cjs` is available — zero surface-level output change, backend label shown in footer.
56
+
57
+ **Record contract (mandatory for all agents):** `agents/README.md` authoring template gains mandatory `## Record` step — every agent appends one JSONL line to `.design/intel/insights.jsonl`. `reference/schemas/insight-line.schema.json` — schema with 6 required fields (`ts`, `agent`, `cycle`, `stage`, `one_line_insight`, `artifacts_written`). `tests/record-contract.test.cjs` enforces presence of `## Record` section in every `agents/*.md`. All 36 existing agents updated with stub Record sections.
58
+
59
+ ---
60
+
7
61
  ## [1.19.0] — 2026-04-24
8
62
 
9
63
  ### Added — Platform, Inclusive Design & UX Research References (knowledge-layer complete)
package/SKILL.md CHANGED
@@ -2,7 +2,7 @@
2
2
  name: get-design-done
3
3
  short_name: gdd
4
4
  description: "Master design pipeline for Claude Code. 5-stage workflow: Brief → Explore → Plan → Design → Verify. Run 'brief' first in any new project to capture the design problem, then 'explore' to inventory the codebase and interview for context. Invoke without arguments for status and auto-routing."
5
- argument-hint: "[brief|explore|plan|design|verify|handoff|map|next|help|status|style|darkmode|compare|figma-write|graphify|discuss|list-assumptions|progress|health|todo|stats|note|plant-seed|add-backlog|review-backlog|scan|discover|settings|update|reapply-patches|audit|pause|resume|new-cycle|debug|quick|new-project|complete-cycle|fast|do|ship|undo|pr-branch|sketch|sketch-wrap-up|spike|spike-wrap-up|reflect|apply-reflections|analyze-dependencies|extract-learnings|skill-manifest|warm-cache|optimize|cache-manager|watch-authorities|check-update|benchmark]"
5
+ argument-hint: "[brief|explore|plan|design|verify|handoff|map|next|help|status|style|darkmode|compare|figma-write|graphify|discuss|list-assumptions|progress|health|todo|stats|note|plant-seed|add-backlog|review-backlog|scan|discover|settings|update|reapply-patches|audit|pause|resume|new-cycle|debug|quick|new-project|complete-cycle|fast|do|ship|undo|pr-branch|sketch|sketch-wrap-up|spike|spike-wrap-up|reflect|apply-reflections|analyze-dependencies|extract-learnings|skill-manifest|warm-cache|optimize|cache-manager|watch-authorities|check-update|benchmark|recall|timeline|continue]"
6
6
  user-invocable: true
7
7
  ---
8
8
 
@@ -42,8 +42,11 @@ Each stage produces artifacts in `.design/` inside the current project.
42
42
  | `audit [--retroactive] [--quick] [--no-reflect]` | `get-design-done:gdd-audit` | Wraps design-verifier + design-auditor + design-reflector; `--retroactive` audits full cycle scope |
43
43
  | `reflect [--dry-run] [--cycle <slug>]` | `get-design-done:gdd-reflect` | On-demand reflection — reads cycle data, produces improvement proposals → `.design/reflections/<slug>.md` |
44
44
  | `apply-reflections [--filter <type>] [--dry-run]` | `get-design-done:gdd-apply-reflections` | Review + selectively apply reflection proposals (FRONTMATTER/REFERENCE/BUDGET/QUESTION/GLOBAL-SKILL) |
45
- | `pause [context]` | `get-design-done:gdd-pause` | Write session handoff to `.design/HANDOFF.md` |
46
- | `resume` | `get-design-done:gdd-resume` | Restore session context from `.design/HANDOFF.md` and route to next step |
45
+ | `pause [context]` | `get-design-done:gdd-pause` | Write numbered checkpoint to `.design/checkpoints/NN-*.md` |
46
+ | `resume [N]` | `get-design-done:gdd-resume` | Restore session from checkpoint N (or list checkpoints if no arg) |
47
+ | `continue [N]` | `get-design-done:gdd-continue` | Alias for `/gdd:resume` |
48
+ | `recall <query>` | `get-design-done:gdd-recall` | Search cross-cycle memory (decisions, learnings, experience archives) |
49
+ | `timeline [N\|N-M\|all]` | `get-design-done:gdd-timeline` | Narrative retrospective across completed cycles |
47
50
  | **Lifecycle** | | |
48
51
  | `start [--budget <t>] [--skip-interview] [--dismiss-nudge]` | `get-design-done:start` | First-Run Proof Path — scans UI code, returns one concrete first fix. No STATE.md writes. |
49
52
  | `new-project [--name <n>]` | `get-design-done:gdd-new-project` | Initialize project — PROJECT.md + STATE.md + cycle-1 |
@@ -207,7 +210,10 @@ If `$ARGUMENTS` is a stage or command name — invoke it directly, no state chec
207
210
  /gdd:watch-authorities → Skill("get-design-done:gdd-watch-authorities")
208
211
  /gdd:benchmark → Skill("get-design-done:gdd-benchmark")
209
212
  /gdd:pause → Skill("get-design-done:gdd-pause")
210
- /gdd:resume → Skill("get-design-done:gdd-resume")
213
+ /gdd:resume → Skill("get-design-done:gdd-resume")
214
+ /gdd:continue → Skill("get-design-done:gdd-continue")
215
+ /gdd:recall → Skill("get-design-done:gdd-recall")
216
+ /gdd:timeline → Skill("get-design-done:gdd-timeline")
211
217
  # --- Lifecycle ---
212
218
  /gdd:start → Skill("get-design-done:start") # leaf command, no STATE.md
213
219
  /gdd:new-project → Skill("get-design-done:gdd-new-project")
package/agents/README.md CHANGED
@@ -188,6 +188,59 @@ Constraints: do not modify any file other than .design/example-output.md.
188
188
 
189
189
  ---
190
190
 
191
+ ## Mandatory Record Step (Phase 19.5)
192
+
193
+ Every agent **must** end its run by appending one JSONL line to `.design/intel/insights.jsonl`. This feeds `/gdd:reflect`, `/gdd:extract-learnings`, and the decision-injector relevance counter.
194
+
195
+ ### Format
196
+
197
+ ```json
198
+ {"ts":"2026-01-15T14:23:00.000Z","agent":"design-planner","cycle":"cycle-1","stage":"plan","one_line_insight":"Produced 7-task DESIGN-PLAN.md targeting typography and spacing","artifacts_written":[".design/DESIGN-PLAN.md"]}
199
+ ```
200
+
201
+ ### Schema
202
+
203
+ `reference/schemas/insight-line.schema.json` — all six fields are required.
204
+
205
+ | Field | Type | Notes |
206
+ |-------|------|-------|
207
+ | `ts` | ISO 8601 string | Current UTC time |
208
+ | `agent` | string | Must match frontmatter `name` field |
209
+ | `cycle` | string | From `STATE.md cycle:` — empty string if no active cycle |
210
+ | `stage` | string | From `STATE.md stage:` |
211
+ | `one_line_insight` | string ≤200 chars | Declarative fact: what was produced or learned |
212
+ | `artifacts_written` | string[] | Relative paths written; `[]` for read-only agents |
213
+
214
+ ### Implementation pattern
215
+
216
+ At the very end of your run (after all writes, before emitting the COMPLETE marker):
217
+
218
+ ```bash
219
+ echo '{"ts":"...","agent":"...","cycle":"...","stage":"...","one_line_insight":"...","artifacts_written":[...]}' >> .design/intel/insights.jsonl
220
+ ```
221
+
222
+ Or via Bash + `node -e` when quoting is complex. Always append (>>), never overwrite. Create `.design/intel/` with `mkdir -p` first.
223
+
224
+ ### Authoring template
225
+
226
+ Every new agent body must include a `## Record` section before the `## <NAME> COMPLETE` footer:
227
+
228
+ ```markdown
229
+ ## Record
230
+
231
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
232
+
233
+ \`\`\`json
234
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle>","stage":"<stage>","one_line_insight":"<what was produced>","artifacts_written":["<files>"]}
235
+ \`\`\`
236
+
237
+ Schema: `reference/schemas/insight-line.schema.json`.
238
+ ```
239
+
240
+ `tests/record-contract.test.cjs` enforces this section is present in every `agents/*.md` file.
241
+
242
+ ---
243
+
191
244
  ## Size Budgets
192
245
 
193
246
  Agents should be kept small — long instruction bodies burn context at every spawn and drift from their single-responsibility role. Per-tier soft limits:
@@ -141,3 +141,13 @@ Total: N findings. (0 = clean)
141
141
  No modifications outside `.design/map/`. No live browser. No git. No agent spawning.
142
142
 
143
143
  ## A11Y MAP COMPLETE
144
+
145
+ ## Record
146
+
147
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
148
+
149
+ ```json
150
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
151
+ ```
152
+
153
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
@@ -105,6 +105,17 @@ This pre-analysis seeds the synthesizer's convergence analysis.
105
105
  End your response with:
106
106
 
107
107
  ```
108
+
109
+ ## Record
110
+
111
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
112
+
113
+ ```json
114
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
115
+ ```
116
+
117
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
118
+
108
119
  ## HARVEST COMPLETE
109
120
  Component: <name>
110
121
  Sources harvested: <N>
@@ -80,6 +80,17 @@ Update `reference/components/README.md`:
80
80
  End your response with:
81
81
 
82
82
  ```
83
+
84
+ ## Record
85
+
86
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
87
+
88
+ ```json
89
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
90
+ ```
91
+
92
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
93
+
83
94
  ## SYNTHESIS COMPLETE
84
95
  Component: <name>
85
96
  Spec: reference/components/<name>.md
@@ -85,4 +85,14 @@ dominant_styling: [CSS Modules | Tailwind | styled-components | mixed]
85
85
 
86
86
  Do not modify anything outside `.design/map/`. No git. No agent spawning.
87
87
 
88
+ ## Record
89
+
90
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
91
+
92
+ ```json
93
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
94
+ ```
95
+
96
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
97
+
88
98
  ## COMPONENT MAP COMPLETE
@@ -136,4 +136,14 @@ You MUST NOT:
136
136
 
137
137
  ---
138
138
 
139
+ ## Record
140
+
141
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
142
+
143
+ ```json
144
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
145
+ ```
146
+
147
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
148
+
139
149
  ## ADVICE COMPLETE
@@ -168,4 +168,14 @@ You MUST NOT:
168
168
 
169
169
  ---
170
170
 
171
+ ## Record
172
+
173
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
174
+
175
+ ```json
176
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
177
+ ```
178
+
179
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
180
+
171
181
  ## ANALYSIS COMPLETE
@@ -62,6 +62,8 @@ Minimum expected files:
62
62
  - `reference/data-visualization.md` — chart-choice matrix, color-blind palettes, axis conventions (use for chart-heavy projects)
63
63
  - `reference/rtl-cjk-cultural.md` — RTL mirroring, CJK typography, cultural color meanings (use when i18n or multi-locale is in scope)
64
64
  - `reference/information-architecture.md` — nav pattern catalog, menu-depth rules, wayfinding (use when nav structure is in scope)
65
+ - `reference/emotional-design.md` — Norman's visceral/behavioral/reflective cross-cutting lens; apply after pillar scoring as an informational overlay (see Emotional Design Overlay section below)
66
+ - `reference/component-authoring.md` (if present) — Kowalski/Sonner P-01–P-06 principles; apply as sub-check within Pillar 7 (Micro-Polish) for component-heavy UIs
65
67
 
66
68
  ---
67
69
 
@@ -334,6 +336,16 @@ For each of the 7 pillars:
334
336
 
335
337
  Write `.design/DESIGN-AUDIT.md` using the output format below.
336
338
 
339
+ ### Step 4.5: Emotional Design Overlay
340
+
341
+ After pillar scoring, apply the three-level lens from `reference/emotional-design.md`:
342
+
343
+ 1. **Visceral** — map Pillar 3 (Color) + Pillar 2 (Visual Hierarchy) → does the aesthetic surface convey the intended emotional register within 3 seconds?
344
+ 2. **Behavioral** — map Pillar 6 (Experience Design) + H-01/H-09 signals → does feedback arrive within 400ms? Are errors human-readable?
345
+ 3. **Reflective** — is there a designed peak moment in the primary flow? Does brand voice carry through to empty states?
346
+
347
+ Emit a `## Emotional Design Overlay` section in DESIGN-AUDIT.md (informational; does not affect /28 score). Flag any cross-level conflict (e.g., high behavioral + low visceral) as a priority finding.
348
+
337
349
  ### Step 5: Emit Completion Marker
338
350
 
339
351
  After writing the file, emit `## AUDIT COMPLETE` as the final line of the response.
@@ -528,4 +540,14 @@ If `reference/components/` does not exist or contains no specs, skip this sectio
528
540
 
529
541
  ---
530
542
 
543
+ ## Record
544
+
545
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
546
+
547
+ ```json
548
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
549
+ ```
550
+
551
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
552
+
531
553
  ## AUDIT COMPLETE
@@ -205,4 +205,14 @@ On contract violation (schema mismatch, hash format violation, over-200 entries)
205
205
 
206
206
  Terminate every response with:
207
207
 
208
+ ## Record
209
+
210
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
211
+
212
+ ```json
213
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
214
+ ```
215
+
216
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
217
+
208
218
  ## WATCH COMPLETE
@@ -219,3 +219,13 @@ Written: src/components/<ComponentName>.tsx
219
219
  DS: <design_system>
220
220
  [Preview: <preview_url>]
221
221
  ```
222
+
223
+ ## Record
224
+
225
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
226
+
227
+ ```json
228
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
229
+ ```
230
+
231
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
@@ -87,4 +87,14 @@ You MAY:
87
87
 
88
88
  Per 10.1-CONTEXT decision **D-21** (Lazy Checker Spawning): "Cheap Haiku gate agents at `agents/*-gate.md` decide whether to spawn full checker. If false, skip full checker, log as `lazy_skipped: true` in telemetry." This gate is the context-checker-specific instance of that pattern — the full `design-context-checker` runs a 6-dimension rubric against `.design/DESIGN-CONTEXT.md`. If the builder made no changes to that file in this phase (a no-op re-run of discover, for example), the prior verdict still holds and the spawn is wasted cost.
89
89
 
90
+ ## Record
91
+
92
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
93
+
94
+ ```json
95
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
96
+ ```
97
+
98
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
99
+
90
100
  ## GATE COMPLETE
@@ -257,4 +257,14 @@ You MUST NOT:
257
257
 
258
258
  ---
259
259
 
260
+ ## Record
261
+
262
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
263
+
264
+ ```json
265
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
266
+ ```
267
+
268
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
269
+
260
270
  ## CONTEXT CHECK COMPLETE
@@ -32,6 +32,20 @@ The spawning prompt supplies `<required_reading>`. Read every listed file before
32
32
 
33
33
  If `<connections>` in STATE.md shows `figma: available`, read the `prefix=` field on that line (call it `{P}`). Then `ToolSearch({ query: "figma get_variable_defs", max_results: 5 })` and call `{P}get_variable_defs`. For each returned variable, draft a *tentative* D-XX decision (mark "tentative — confirm with user"). Silently skip on any error. Do NOT grep the codebase.
34
34
 
35
+ ## Step 0.5 — First-Principles Invariants (brief stage only)
36
+
37
+ If `<stage>` in the spawning prompt is `brief` or `discover`, prepend these three invariant questions **before** the main design interview. Record answers as D-XX decisions prefixed `[Invariant]` in STATE.md.
38
+
39
+ Read `reference/first-principles.md` before asking. Questions to ask (one at a time, using `AskUserQuestion`):
40
+
41
+ 1. **Body invariant** — "Are there accessibility requirements for motor-impaired users, or will this be used primarily on mobile devices? (This affects minimum touch target sizes and input method assumptions.)"
42
+ 2. **Attention invariant** — "What is the single most important action a user should take on the primary screen? (This will be the only element styled as a primary action.)"
43
+ 3. **Memory invariant** — "Are there any multi-step flows where users must carry information from one screen to the next? (This determines whether we need progress indicators or inline context cues.)"
44
+
45
+ After recording all three answers, apply the **Reducibility Test** framing: note in STATE.md which design elements are invariant-justified (body/attention/memory) and which are decorative.
46
+
47
+ Skip this step if: `<stage>` is not `brief`/`discover`, if `<mode>` is `--from-handoff` (handoff decisions already encode invariants), or if D-XX decisions prefixed `[Invariant]` already exist in STATE.md.
48
+
35
49
  ## Step 1 — Mode dispatch
36
50
 
37
51
  Inspect the orchestrator prompt for `<mode>`:
@@ -95,4 +109,14 @@ Write quality log after every exchange. This data feeds `design-reflector`'s que
95
109
  - Never grep or glob the codebase — you are a discussant, not a detector.
96
110
  - Never spawn other agents.
97
111
 
112
+ ## Record
113
+
114
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
115
+
116
+ ```json
117
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
118
+ ```
119
+
120
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
121
+
98
122
  ## DISCUSS COMPLETE
@@ -6,6 +6,8 @@ color: yellow
6
6
  model: sonnet
7
7
  default-tier: sonnet
8
8
  tier-rationale: "Produces polished prose documentation; Sonnet's style quality is sufficient"
9
+ size_budget: XL
10
+ size_budget_rationale: "Phase 19.5 Record contract added ~11 lines; base doc-writer body is 250-line tier"
9
11
  parallel-safe: always
10
12
  typical-duration-seconds: 45
11
13
  reads-only: false
@@ -247,4 +249,14 @@ This agent MUST NOT:
247
249
 
248
250
  ---
249
251
 
252
+ ## Record
253
+
254
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
255
+
256
+ ```json
257
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
258
+ ```
259
+
260
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
261
+
250
262
  ## DOC COMPLETE
@@ -511,4 +511,14 @@ This agent MUST NOT:
511
511
  @.design/intel/tokens.json (if present)
512
512
  @.design/intel/decisions.json (if present)
513
513
 
514
+ ## Record
515
+
516
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
517
+
518
+ ```json
519
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
520
+ ```
521
+
522
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
523
+
514
524
  ## EXECUTION COMPLETE
@@ -361,3 +361,13 @@ Annotations applied: N/N_total
361
361
  Code Connect mappings registered: M/M_total
362
362
  Failed: <list any failed operations>
363
363
  ```
364
+
365
+ ## Record
366
+
367
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
368
+
369
+ ```json
370
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
371
+ ```
372
+
373
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
@@ -177,4 +177,14 @@ The stage reads the inline summary to determine how many gaps were fixed before
177
177
 
178
178
  ---
179
179
 
180
+ ## Record
181
+
182
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
183
+
184
+ ```json
185
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
186
+ ```
187
+
188
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
189
+
180
190
  ## FIX COMPLETE
@@ -90,4 +90,14 @@ You MAY:
90
90
 
91
91
  Per 10.1-CONTEXT decision **D-21** (Lazy Checker Spawning): "Cheap Haiku gate agents at `agents/*-gate.md` decide whether to spawn full checker. If false, skip full checker, log as `lazy_skipped: true` in telemetry." This gate is the integration-checker-specific instance of that pattern — the full `design-integration-checker` is a LARGE-size post-verification spawn that grep-walks the codebase for D-XX decision application. If no decision or anchor doc moved in the diff, the wiring result is unchanged from the last verify and the spawn is wasted cost.
92
92
 
93
+ ## Record
94
+
95
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
96
+
97
+ ```json
98
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
99
+ ```
100
+
101
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
102
+
93
103
  ## GATE COMPLETE
@@ -323,4 +323,14 @@ Document any ambiguous cases in the per-decision "Notes" field.
323
323
 
324
324
  ---
325
325
 
326
+ ## Record
327
+
328
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
329
+
330
+ ```json
331
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
332
+ ```
333
+
334
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
335
+
326
336
  ## INTEGRATION CHECK COMPLETE
@@ -129,3 +129,13 @@ Applied: N/M operations succeeded
129
129
  Budget used: N/100 (this session)
130
130
  Failed: <list failed operations or "none">
131
131
  ```
132
+
133
+ ## Record
134
+
135
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
136
+
137
+ ```json
138
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
139
+ ```
140
+
141
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
@@ -267,4 +267,14 @@ You MUST NOT:
267
267
 
268
268
  ---
269
269
 
270
+ ## Record
271
+
272
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
273
+
274
+ ```json
275
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
276
+ ```
277
+
278
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
279
+
270
280
  ## MAPPING COMPLETE
@@ -97,3 +97,13 @@ Mode: <mode>
97
97
  Applied: N/M operations (N committed, M failed)
98
98
  Failed: <list or "none">
99
99
  ```
100
+
101
+ ## Record
102
+
103
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
104
+
105
+ ```json
106
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
107
+ ```
108
+
109
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
@@ -226,4 +226,14 @@ flowchart TD
226
226
  @.design/intel/dependencies.json (if present)
227
227
  @.design/intel/graph.json (if present)
228
228
 
229
+ ## Record
230
+
231
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
232
+
233
+ ```json
234
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
235
+ ```
236
+
237
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
238
+
229
239
  ## RESEARCH COMPLETE
@@ -161,4 +161,14 @@ You MUST NOT:
161
161
 
162
162
  ---
163
163
 
164
+ ## Record
165
+
166
+ At run-end, append one JSONL line to `.design/intel/insights.jsonl`:
167
+
168
+ ```json
169
+ {"ts":"<ISO-8601>","agent":"<name>","cycle":"<cycle from STATE.md>","stage":"<stage from STATE.md>","one_line_insight":"<what was produced or learned>","artifacts_written":["<files written>"]}
170
+ ```
171
+
172
+ Schema: `reference/schemas/insight-line.schema.json`. Use an empty `artifacts_written` array for read-only agents.
173
+
164
174
  ## PLAN CHECK COMPLETE