arkaos 4.28.0 → 4.29.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 (42) hide show
  1. package/THE-ARKAOS-GUIDE.md +1 -1
  2. package/VERSION +1 -1
  3. package/arka/skills/refine/SKILL.md +7 -0
  4. package/config/claude-agents/brand-director.md +1 -1
  5. package/config/claude-agents/design-ops-lead.md +1 -1
  6. package/config/claude-agents/frontend-dev.md +1 -1
  7. package/config/claude-agents/ux-designer.md +1 -1
  8. package/config/claude-agents/ux-strategist.md +1 -1
  9. package/config/claude-agents/visual-designer.md +1 -1
  10. package/config/claude-agents/wcag-auditor.md +1 -1
  11. package/config/skills-provenance.yaml +14 -2
  12. package/departments/brand/agents/brand-director.yaml +2 -0
  13. package/departments/brand/agents/design-ops/design-ops-lead.yaml +2 -0
  14. package/departments/brand/agents/design-ops/wcag-auditor.yaml +2 -0
  15. package/departments/brand/agents/ux-designer.yaml +2 -0
  16. package/departments/brand/agents/ux-strategist.yaml +2 -0
  17. package/departments/brand/agents/visual-designer.yaml +2 -0
  18. package/departments/brand/references/uiux-knowledge-and-tools.md +185 -2
  19. package/departments/brand/skills/design-review/SKILL.md +25 -0
  20. package/departments/brand/skills/design-review/references/anti-patterns.md +420 -0
  21. package/departments/brand/skills/design-review/references/critique-protocol.md +169 -0
  22. package/departments/brand/skills/design-review/references/design-registers.md +181 -0
  23. package/departments/brand/skills/design-review/references/genres/atmospheric.md +71 -0
  24. package/departments/brand/skills/design-review/references/genres/editorial.md +74 -0
  25. package/departments/brand/skills/design-review/references/genres/modern-minimal.md +73 -0
  26. package/departments/brand/skills/design-review/references/genres/playful.md +72 -0
  27. package/departments/brand/skills/design-review/references/hallmark.LICENSE +21 -0
  28. package/departments/brand/skills/design-review/references/impeccable.LICENSE +191 -0
  29. package/departments/brand/skills/design-review/references/impeccable.NOTICE +11 -0
  30. package/departments/brand/skills/design-review/references/slop-test.md +194 -0
  31. package/departments/brand/skills/ux-audit/SKILL.md +25 -4
  32. package/departments/dev/agents/frontend-dev.yaml +2 -0
  33. package/harness/codex/AGENTS.md +1 -1
  34. package/harness/copilot/copilot-instructions.md +1 -1
  35. package/harness/cursor/rules/arkaos.mdc +2 -2
  36. package/harness/gemini/GEMINI.md +1 -1
  37. package/harness/opencode/AGENTS.md +1 -1
  38. package/harness/zed/.rules +1 -1
  39. package/knowledge/agents-registry-v2.json +19 -5
  40. package/knowledge/skills-manifest.json +7 -3
  41. package/package.json +1 -1
  42. package/pyproject.toml +1 -1
@@ -1,6 +1,6 @@
1
1
  # The ArkaOS Guide
2
2
 
3
- > v4.28.0 — 89 agents, 17 departments, 329 skills, 297 commands, 16 ADRs.
3
+ > v4.29.0 — 89 agents, 17 departments, 329 skills, 297 commands, 16 ADRs.
4
4
  > One file, everything you need to start. Generated by `scripts/guide_gen.py` — never hand-edited.
5
5
 
6
6
  ## What it is
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.28.0
1
+ 4.29.0
@@ -73,6 +73,13 @@ input clear enough to build the right thing."*
73
73
  - Be critical: if the request is technically wrong or would ship a worse
74
74
  product, challenge it here (pushback protocol, `arkaos-not-yes-man`)
75
75
  before compiling.
76
+ - **Redesign asks have hard boundaries.** When the rough idea is
77
+ "redesign X", the compiled prompt states them explicitly: preserve
78
+ routes, information architecture, and copy INTENT — the visual layer is
79
+ the scope; a full rebuild (structure or content changes) requires its
80
+ own explicit confirmation, never rides along silently. The visual loop
81
+ after dispatch belongs to `brand/design-review` (slop gates + register
82
+ discipline in its `references/`).
76
83
 
77
84
  ## Related
78
85
 
@@ -48,4 +48,4 @@ You are Valentina, Creative Director of the brand squad (Tier 1). What drives yo
48
48
 
49
49
  ## Grounding
50
50
 
51
- Recommendations cite the framework behind them — yours: Primal Branding (Hanlon), StoryBrand (Miller), Brand Archetypes (Jung), Wheeler Process, Atomic Design (Frost), Nielsen Heuristics, Dieter Rams 10 Principles, Double Diamond. A recommendation without a named framework or reference is an opinion; label it as such.
51
+ Recommendations cite the framework behind them — yours: Primal Branding (Hanlon), StoryBrand (Miller), Brand Archetypes (Jung), Wheeler Process, Atomic Design (Frost), Nielsen Heuristics, Dieter Rams 10 Principles, Double Diamond, Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -48,4 +48,4 @@ You are Iris, Design Ops Lead of the brand squad (Tier 1). What drives you: Make
48
48
 
49
49
  ## Grounding
50
50
 
51
- Recommendations cite the framework behind them — yours: Atomic Design (Frost), Design Tokens Community Group, WCAG 2.2, Style Dictionary, shadcn/ui conventions, Tailwind CSS configuration. A recommendation without a named framework or reference is an opinion; label it as such.
51
+ Recommendations cite the framework behind them — yours: Atomic Design (Frost), Design Tokens Community Group, WCAG 2.2, Style Dictionary, shadcn/ui conventions, Tailwind CSS configuration, Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -48,4 +48,4 @@ You are Diana, Senior Frontend Developer of the dev squad (Tier 2). What drives
48
48
 
49
49
  ## Grounding
50
50
 
51
- Recommendations cite the framework behind them — yours: Atomic Design, Component-Driven Development, Laws of UX, Nielsen Heuristics, CWV Optimization, ArkaOS Motion System, Design Tokens (DTCG), runtime:frontend-design (Anthropic skill), runtime:ui-ux-pro-max (community skill). A recommendation without a named framework or reference is an opinion; label it as such.
51
+ Recommendations cite the framework behind them — yours: Atomic Design, Component-Driven Development, Laws of UX, Nielsen Heuristics, CWV Optimization, ArkaOS Motion System, Design Tokens (DTCG), Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product), runtime:frontend-design (Anthropic skill), runtime:ui-ux-pro-max (community skill). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -47,4 +47,4 @@ You are Sofia D., UX/UI Designer of the brand squad (Tier 2). What drives you: C
47
47
 
48
48
  ## Grounding
49
49
 
50
- Recommendations cite the framework behind them — yours: Don Norman — Human-Centered Design (affordances, signifiers, feedback, mapping), Nielsen 10 Heuristics, Steve Krug — Don't Make Me Think (self-evidence, guerrilla testing), Dieter Rams — 10 Principles of Good Design, Laws of UX (Yablonski), Garrett's 5 Planes (strategy, scope, structure, skeleton, surface), Design Studio (Gothelf — collaborative multidisciplinary ideation, sketch → critique → converge), Double Diamond, Design Thinking (IDEO), Atomic Design, WCAG 2.1 AA, Two-Part Conversion Formula, Microinteractions (trigger-rules-feedback-loops), runtime:frontend-design (Anthropic skill). A recommendation without a named framework or reference is an opinion; label it as such.
50
+ Recommendations cite the framework behind them — yours: Don Norman — Human-Centered Design (affordances, signifiers, feedback, mapping), Nielsen 10 Heuristics, Steve Krug — Don't Make Me Think (self-evidence, guerrilla testing), Dieter Rams — 10 Principles of Good Design, Laws of UX (Yablonski), Garrett's 5 Planes (strategy, scope, structure, skeleton, surface), Design Studio (Gothelf — collaborative multidisciplinary ideation, sketch → critique → converge), Double Diamond, Design Thinking (IDEO), Atomic Design, WCAG 2.1 AA, Two-Part Conversion Formula, Microinteractions (trigger-rules-feedback-loops), Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product), runtime:frontend-design (Anthropic skill). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -48,4 +48,4 @@ You are Júlia, UX Strategist of the brand squad (Tier 2). What drives you: Brid
48
48
 
49
49
  ## Grounding
50
50
 
51
- Recommendations cite the framework behind them — yours: 4 Elements of UX Strategy (Levy), Blue Ocean / Value Innovation, Provisional Personas, Lean UX. A recommendation without a named framework or reference is an opinion; label it as such.
51
+ Recommendations cite the framework behind them — yours: 4 Elements of UX Strategy (Levy), Blue Ocean / Value Innovation, Provisional Personas, Lean UX, Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -47,4 +47,4 @@ You are Isabel, Visual Designer of the brand squad (Tier 2). What drives you: Cr
47
47
 
48
48
  ## Grounding
49
49
 
50
- Recommendations cite the framework behind them — yours: Dieter Rams 10 Principles, Atomic Design (visual layer), Color Theory, Typography Hierarchy, Brand Identity Process (Wheeler), ArkaOS Design Tokens, WCAG AA contrast, runtime:frontend-design (Anthropic skill), runtime:ui-ux-pro-max (community skill). A recommendation without a named framework or reference is an opinion; label it as such.
50
+ Recommendations cite the framework behind them — yours: Dieter Rams 10 Principles, Atomic Design (visual layer), Color Theory, Typography Hierarchy, Brand Identity Process (Wheeler), ArkaOS Design Tokens, WCAG AA contrast, Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product), runtime:frontend-design (Anthropic skill), runtime:ui-ux-pro-max (community skill). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -48,4 +48,4 @@ You are Oren, Accessibility Auditor of the brand squad (Tier 2). What drives you
48
48
 
49
49
  ## Grounding
50
50
 
51
- Recommendations cite the framework behind them — yours: WCAG 2.2, WAI-ARIA 1.2, ATAG 2.0, EAA / EN 301 549, axe-core ruleset, Section 508. A recommendation without a named framework or reference is an opinion; label it as such.
51
+ Recommendations cite the framework behind them — yours: WCAG 2.2, WAI-ARIA 1.2, ATAG 2.0, EAA / EN 301 549, axe-core ruleset, Section 508, Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V), Impeccable design laws + registers (brand vs product). A recommendation without a named framework or reference is an opinion; label it as such.
@@ -60,6 +60,20 @@
60
60
  baseline_date: 2026-07-14
61
61
 
62
62
  derived:
63
+ # Design absorption campaign W1 — slop gates, anti-patterns, critique
64
+ # protocol and registers derived from nutlope/hallmark (MIT, primary
65
+ # source in frontmatter) and pbakaus/impeccable (Apache-2.0, second
66
+ # source recorded in docs/THIRD-PARTY-NOTICES.md). Both skills were
67
+ # reclassified OUT of first_party deliberately: their bodies now carry
68
+ # substantial ported content.
69
+ departments/brand/skills/design-review:
70
+ origin: community
71
+ source: https://github.com/nutlope/hallmark
72
+ license: MIT
73
+ departments/brand/skills/ux-audit:
74
+ origin: community
75
+ source: https://github.com/nutlope/hallmark
76
+ license: MIT
63
77
  # Marketing skills integration campaign — derived from
64
78
  # coreyhaines31/marketingskills (MIT). Frontmatter metadata must match
65
79
  # each entry field-for-field (test_registry_matches_frontmatter_field_for_field).
@@ -272,7 +286,6 @@ first_party:
272
286
  - departments/brand
273
287
  - departments/brand/skills/archetype-finder
274
288
  - departments/brand/skills/colors
275
- - departments/brand/skills/design-review
276
289
  - departments/brand/skills/design-system
277
290
  - departments/brand/skills/identity-system
278
291
  - departments/brand/skills/logo-brief
@@ -280,7 +293,6 @@ first_party:
280
293
  - departments/brand/skills/naming-evaluate
281
294
  - departments/brand/skills/positioning-statement
282
295
  - departments/brand/skills/primal-audit
283
- - departments/brand/skills/ux-audit
284
296
  - departments/brand/skills/voice-guide
285
297
  - departments/brand/skills/wireframe
286
298
  - departments/community
@@ -66,6 +66,8 @@ expertise:
66
66
  - Nielsen Heuristics
67
67
  - Dieter Rams 10 Principles
68
68
  - Double Diamond
69
+ - Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V)
70
+ - Impeccable design laws + registers (brand vs product)
69
71
  depth: master
70
72
  years_equivalent: 14
71
73
 
@@ -64,6 +64,8 @@ expertise:
64
64
  - Style Dictionary
65
65
  - shadcn/ui conventions
66
66
  - Tailwind CSS configuration
67
+ - Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V)
68
+ - Impeccable design laws + registers (brand vs product)
67
69
  depth: master
68
70
  years_equivalent: 12
69
71
 
@@ -62,6 +62,8 @@ expertise:
62
62
  - EAA / EN 301 549
63
63
  - axe-core ruleset
64
64
  - Section 508
65
+ - Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V)
66
+ - Impeccable design laws + registers (brand vs product)
65
67
  depth: master
66
68
  years_equivalent: 11
67
69
 
@@ -70,6 +70,8 @@ expertise:
70
70
  - WCAG 2.1 AA
71
71
  - Two-Part Conversion Formula
72
72
  - Microinteractions (trigger-rules-feedback-loops)
73
+ - Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V)
74
+ - Impeccable design laws + registers (brand vs product)
73
75
  - runtime:frontend-design (Anthropic skill)
74
76
  knowledge_sources:
75
77
  - "[[Area 02 - Design]]"
@@ -54,6 +54,8 @@ expertise:
54
54
  - Blue Ocean / Value Innovation
55
55
  - Provisional Personas
56
56
  - Lean UX
57
+ - Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V)
58
+ - Impeccable design laws + registers (brand vs product)
57
59
  knowledge_sources:
58
60
  - "[[Personas/Jaime Levy]]"
59
61
  - "[[4 Elementos Centrais da UX Strategy]]"
@@ -57,6 +57,8 @@ expertise:
57
57
  - Brand Identity Process (Wheeler)
58
58
  - ArkaOS Design Tokens
59
59
  - WCAG AA contrast
60
+ - Hallmark slop gates (58) + pre-emit critique (P/H/E/S/R/V)
61
+ - Impeccable design laws + registers (brand vs product)
60
62
  - runtime:frontend-design (Anthropic skill)
61
63
  - runtime:ui-ux-pro-max (community skill)
62
64
  depth: expert
@@ -6,7 +6,8 @@
6
6
  >
7
7
  > Read this BEFORE any UI/UX work. It defines the non-negotiable KB-first
8
8
  > rule, the canonical knowledge sources, the concrete design tokens, the
9
- > motion system, the new tooling, and the squad validation order.
9
+ > motion system, the new tooling, the squad validation order, the canonical
10
+ > reflex-reject lists (§11) and the hard design laws (§12).
10
11
 
11
12
  ---
12
13
 
@@ -132,7 +133,10 @@ write material findings back to `[[Area 02 - Design]]`:
132
133
  - Dieter Rams' 10 principles
133
134
  - Atomic Design (full atoms→pages)
134
135
  - Microinteractions (trigger→rules→feedback→loops/modes)
135
- - Color theory & typography science (OKLCH, harmony, modular scale)
136
+ - Color theory & typography science (OKLCH, harmony, modular scale)
137
+ **partially filled in-repo**: hard floors/ceilings now live in §12 and
138
+ the reflex-reject discipline in §11; deeper craft references live under
139
+ `departments/brand/skills/design-review/references/`.
136
140
  - Gestalt & visual hierarchy (F/Z scanning, proximity, contrast)
137
141
 
138
142
  ---
@@ -168,6 +172,23 @@ for any other brief?"* If yes, revise and state what changed and why.
168
172
  Quality floor, never announced: responsive to mobile, visible keyboard
169
173
  focus, `prefers-reduced-motion` respected, WCAG AA contrast.
170
174
 
175
+ **Pre-emit critique (scored — hallmark protocol).** Before handing back
176
+ any design artifact, score it 1–5 on six axes:
177
+
178
+ | Axis | Question |
179
+ |---|---|
180
+ | **P** Philosophy | Does the design have a stated POV the brief earns? |
181
+ | **H** Hierarchy | Does the eye land where the content says it should? |
182
+ | **E** Execution | Are spacing, contrast, states, and breakpoints finished? |
183
+ | **S** Specificity | Does this look like *this brief* — or a generic page? |
184
+ | **R** Restraint | Is every bold move deliberate; is everything else quiet? |
185
+ | **V** Variety | Does it differ structurally from the previous output? |
186
+
187
+ Any axis **< 3 triggers a revision pass** — never ship and explain.
188
+ Stamp the six scores in the artifact via the `[arka:design-dna]` companion
189
+ stamp (§9). The 58 pass/fail slop gates that operationalize this rubric
190
+ live in `departments/brand/skills/design-review/references/slop-test.md`.
191
+
171
192
  ## 9. Design Marker Contract (`[arka:design]`)
172
193
 
173
194
  Every UI/design-producing turn MUST emit the structured marker on its own
@@ -192,6 +213,21 @@ A bare `[arka:design] <token>` is a LEGACY marker: tolerated in WARN mode,
192
213
  counted separately in telemetry, and treated as missing once the frontend
193
214
  gate goes hard.
194
215
 
216
+ **Companion stamp `[arka:design-dna]` (informational).** Design-producing
217
+ work additionally stamps the first non-empty line of produced CSS with:
218
+
219
+ ```
220
+ /* [arka:design-dna] macrostructure=<name> genre=<genre> anchor=<oklch|hex> display=<font> body=<font> critique=P#H#E#S#R#V# */
221
+ ```
222
+
223
+ Key=value, single line, greppable. It records the structural choice, the
224
+ palette anchor, the type pairing, and the six pre-emit critique scores
225
+ (§8), and feeds the structural-diversification rule (consecutive outputs
226
+ must differ on at least one axis; project memory at
227
+ `.arka/design/log.json`). This stamp is **NOT parsed by the frontend gate**
228
+ (`core/workflow/frontend_gate.py`) and carries no gate semantics — the
229
+ structured `[arka:design]` marker above remains the only enforced line.
230
+
195
231
  ## 10. Aesthetic Directions Catalog (optional, curated)
196
232
 
197
233
  When a project has NO design system yet and the brief leaves the visual
@@ -207,3 +243,150 @@ job: load `gsap-core` + `gsap-timeline` for any animation work,
207
243
  `gsap-scrolltrigger`/`gsap-plugins` as the work demands, `gsap-react` on
208
244
  React, and treat `gsap-performance` as the review bar
209
245
  (`npx skills add https://github.com/greensock/gsap-skills` when absent).
246
+
247
+ ## 11. Canonical Reflex-Reject (fonts + aesthetic lanes)
248
+
249
+ > Derived from [impeccable](https://github.com/pbakaus/impeccable)
250
+ > (Apache-2.0) and [hallmark](https://github.com/nutlope/hallmark) (MIT) —
251
+ > license texts at `departments/brand/skills/design-review/references/`.
252
+ > This section is the SINGLE canonical home of the list. Skills and gates
253
+ > point here; they never restate it (drift risk).
254
+
255
+ These are **training-data defaults**: every LLM reaches for them by
256
+ reflex, which is exactly why using them by reflex produces monoculture.
257
+ The semantics are **never-by-reflex**, not never:
258
+
259
+ 1. **Identity-preservation carve-out** — when the existing brand has
260
+ already committed to a font or lane, identity wins. The list governs
261
+ greenfield decisions only.
262
+ 2. **Deliberate-pick carve-out** — a listed font may be used when a named
263
+ theme or brief *deliberately* selects it and the choice is stated with
264
+ its reason (e.g. Playfair Display as display-only in an editorial
265
+ theme; Space Grotesk in a brutalist direction). Reflex is the crime,
266
+ not the font.
267
+ 3. **Product-register carve-out** — product UI (design SERVES the task)
268
+ has explicit permission for system fonts and familiar sans defaults
269
+ (Inter, SF Pro, system-ui). The ban list bites on BRAND surfaces
270
+ (design IS the product). See
271
+ `departments/brand/skills/design-review/references/design-registers.md`.
272
+
273
+ ### Reflex-reject fonts
274
+
275
+ **Sans:** Inter · DM Sans · Space Grotesk · Outfit · Plus Jakarta Sans ·
276
+ Instrument Sans · Syne · Roboto · Open Sans · Lato · Poppins · Source Sans ·
277
+ Nunito · Montserrat · Raleway · Work Sans · system-ui-as-brand · Arial ·
278
+ Helvetica-as-default
279
+ **Serif:** Fraunces · Newsreader · Lora · Crimson / Crimson Pro / Crimson
280
+ Text · Playfair Display · Cormorant / Cormorant Garamond · DM Serif Display ·
281
+ DM Serif Text · Instrument Serif · Merriweather · Source Serif ·
282
+ Georgia-as-default
283
+ **Mono:** IBM Plex Mono · Space Mono · Courier New · Consolas-as-default ·
284
+ system-mono-as-brand
285
+ **Family-wide:** IBM Plex Sans · IBM Plex Serif
286
+
287
+ Selection discipline when rejecting a reflex pick: run the 4-step
288
+ physical-object font procedure in `design-registers.md` (three concrete
289
+ brand-voice words → reject reflex picks → browse a real catalog for the
290
+ brand as a physical object → cross-check).
291
+
292
+ ### Reflex-reject aesthetic lanes
293
+
294
+ - **Editorial-typographic** — display serif (often italic) + small mono
295
+ labels + ruled separators + monochromatic restraint. The 2026 fingerprint:
296
+ three rule-separated columns, an italic serif headline, lowercase
297
+ track-spaced metadata, no imagery. Every Stripe-adjacent and
298
+ Notion-adjacent brand has landed here. Requires a register reason that
299
+ *demands* it (a literal magazine), not a mood.
300
+
301
+ Lanes saturate and desaturate over time — entries move in and out on
302
+ evidence, mirroring upstream. The **second-order slop check** applies: if
303
+ the aesthetic family is guessable from category-plus-anti-references
304
+ ("fintech that's not navy-and-gold → terminal-native dark mode"), it is
305
+ the trap one tier deeper. Rework until neither the first-order nor the
306
+ second-order answer is obvious.
307
+
308
+ ## 12. Design Laws (hard floors and ceilings)
309
+
310
+ > Derived from [impeccable](https://github.com/pbakaus/impeccable)
311
+ > (Apache-2.0) and [hallmark](https://github.com/nutlope/hallmark) (MIT).
312
+ > Compact canonical table — one law per line. The enforcement surfaces
313
+ > (slop gates, design-slop detector, QG visual review) cite these; deeper
314
+ > rationale lives in `design-review/references/`.
315
+
316
+ **Typography**
317
+ - Body contrast ≥ 4.5:1; large text (≥18px, or bold ≥14px) ≥ 3:1;
318
+ placeholders need 4.5:1 too — muted-gray-on-tinted-near-white is the
319
+ single biggest readability failure.
320
+ - Prose line length 65–75ch (dense data UI may run denser).
321
+ - Hero/display ceiling: `clamp()` max ≤ 6rem. Above that the page shouts.
322
+ - Display letter-spacing floor ≥ −0.04em — tighter and letters touch.
323
+ - `text-wrap: balance` on h1–h3; `text-wrap: pretty` on long prose.
324
+ - Max 3 font families per page (display + body + one outlier). Four = slop.
325
+ - Pair on a contrast axis (serif+sans, geometric+humanist) or use one
326
+ family with committed weight contrast — never two similar sans.
327
+ - Light-on-dark compensation runs on three axes: line-height +0.05–0.1,
328
+ letter-spacing +0.01–0.02em, optionally body weight one notch up.
329
+ - Commit to extremes: weight 200 next to 800 reads as intentional;
330
+ 400 next to 600 reads as a default setting.
331
+
332
+ **Color**
333
+ - OKLCH for new palettes. Pure gray is dead: tint neutrals 0.005–0.015
334
+ chroma toward the brand hue (never default-tint warm/cool).
335
+ - The warm-neutral band (L 0.84–0.97, C < 0.06, hue 40–100) is the
336
+ saturated AI default — cream/sand/paper by any token name
337
+ (`--paper`, `--cream`, `--sand`, `--linen`, `--parchment`…) is a tell.
338
+ Warmth is carried by accent + typography + imagery, not body bg.
339
+ - Pick a color strategy BEFORE colors, on the commitment axis:
340
+ **Restrained** (neutrals + one accent ≤10%) · **Committed** (one
341
+ saturated color, 30–60% of surface) · **Full palette** (3–4 named
342
+ roles) · **Drenched** (the surface IS the color).
343
+ - Gray text on colored backgrounds washes out: use a darker shade of the
344
+ background's own hue or a transparency of the text color.
345
+ - Button text vs fill must differ by > 5% lightness or > 0.05 chroma in
346
+ OKLCH (catches the black-on-black bug).
347
+ - Heavy alpha/transparency is a design smell — it usually means an
348
+ incomplete palette.
349
+
350
+ **Layout**
351
+ - Nested cards are always wrong; cards only when truly the best affordance.
352
+ - Flexbox for 1D, Grid for 2D; breakpoint-free grids via
353
+ `repeat(auto-fit, minmax(280px, 1fr))`.
354
+ - Semantic z-index scale (dropdown → sticky → modal-backdrop → modal →
355
+ toast → tooltip); never 999/9999.
356
+ - Vary spacing for rhythm: generous separations, tight groupings —
357
+ monotonous spacing is a tell.
358
+ - Touch targets ≥ 44×44 (extend hit area via `::before { inset: -10px }`
359
+ when the visual must stay smaller).
360
+
361
+ **Motion**
362
+ - Ease out with exponential curves (ease-out-quart/quint/expo); no bounce,
363
+ no elastic, no browser-default `ease`.
364
+ - Exits run ~75% of the enter duration.
365
+ - `prefers-reduced-motion` alternative is mandatory for every animation.
366
+ - Never animate CSS layout properties without real need; motion conveys
367
+ state on product surfaces, never decoration.
368
+ - The uniform fade-and-rise reveal on every scrolled section is a tell —
369
+ each reveal fits what it reveals; zero motion is not the fix either.
370
+ - Reveal animations enhance an already-visible default — never gate
371
+ content visibility on a class-triggered transition (ships blank in
372
+ hidden tabs and headless renderers).
373
+
374
+ **Interaction**
375
+ - Every interactive element ships all 8 states: default, hover,
376
+ focus-visible, active, disabled, loading, error, success. Missing any =
377
+ unfinished.
378
+ - Skeletons for loading, not spinners in content; empty states teach the
379
+ interface.
380
+ - Modal as first thought is laziness — exhaust inline/progressive
381
+ alternatives first.
382
+
383
+ **Absolute bans (match-and-refuse — rewrite the element, never ship):**
384
+ side-stripe borders (`border-left/right` > 1px as accent) · gradient text
385
+ (`background-clip: text`) · glassmorphism-as-default · the hero-metric
386
+ template (big number + small label + gradient accent) · identical
387
+ icon+heading+text card grids · tiny uppercase tracked eyebrow above every
388
+ section · numbered section markers (01/02/03) as default scaffolding ·
389
+ text overflowing its container at any breakpoint.
390
+
391
+ These laws are floors, not aspirations: §8's three default looks plus any
392
+ absolute-ban hit are constitution violations under `excellence-mandate`.
@@ -13,6 +13,10 @@ description: >
13
13
  dev/clean-code-review wins; trying to break flows or find abuse vectors ->
14
14
  dev/adversarial-review wins.
15
15
  allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent]
16
+ metadata:
17
+ origin: community
18
+ source: https://github.com/nutlope/hallmark
19
+ license: MIT
16
20
  ---
17
21
 
18
22
  # Design Review — `/brand design-review`
@@ -41,6 +45,12 @@ Do this BEFORE reviewing, in this order, and record what actually loaded:
41
45
  3. **Read the brand guidelines / design system** — the review compares
42
46
  against the project's OWN tokens (`design-system.yaml`, brandbook,
43
47
  or §3 of the squad reference as fallback).
48
+ 4. **Load the review references in this directory** —
49
+ `references/design-registers.md` (pick the register FIRST: brand vs
50
+ product changes what "good" means), `references/critique-protocol.md`
51
+ (two-isolated-subagent orchestration for deep reviews),
52
+ `references/slop-test.md` + `references/anti-patterns.md` (the
53
+ mechanical gates and the named-tell dictionary used below).
44
54
 
45
55
  ### Graceful degradation (honest, never silent)
46
56
 
@@ -102,11 +112,26 @@ For every captured surface, annotate deviations with exact values
102
112
  - **Benchmark contrast** — for each major finding, one line on what the
103
113
  named benchmark does instead.
104
114
 
115
+ ## Slop gates (pre-verdict — MANDATORY)
116
+
117
+ Before issuing any verdict, run the reviewed surfaces through
118
+ `references/slop-test.md`: 58 pass/fail gates (every answer must be
119
+ **no**) plus the six-axis pre-emit rubric (P/H/E/S/R/V, squad reference
120
+ §8). Anti-pattern findings are named from
121
+ `references/anti-patterns.md` with their Critical/Major/Minor severity —
122
+ never described vaguely. When produced CSS carries the
123
+ `[arka:design-dna]` stamp, verify the recorded critique scores against
124
+ what the screenshots actually show; a stamp that flatters the artifact
125
+ is itself a finding.
126
+
105
127
  ## Verdict
106
128
 
107
129
  `ON-BRAND` / `DEVIATIONS (n)` / `OFF-BRAND` — with the annotated
108
130
  screenshot list, exact-value deviation table, and fix list ranked by
109
131
  visual impact. A review with zero captured screenshots is INVALID.
132
+ `OFF-BRAND` and every rejected surface MUST cite the failed slop-gate
133
+ numbers and named anti-patterns (e.g. "gates 12, 41; purple-gradient
134
+ hero [Critical]") — verdicts on evidence, never on vibes.
110
135
 
111
136
  ## Output
112
137