baldart 5.1.0 → 5.2.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 (36) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +3 -3
  3. package/VERSION +1 -1
  4. package/framework/.claude/agents/CHANGELOG.md +45 -0
  5. package/framework/.claude/agents/REGISTRY.md +2 -2
  6. package/framework/.claude/agents/coder.md +3 -3
  7. package/framework/.claude/agents/remotion-animator-orchestrator.md +4 -3
  8. package/framework/.claude/agents/ui-expert.md +4 -10
  9. package/framework/.claude/agents/ui-quality-critic.md +27 -11
  10. package/framework/.claude/skills/design-system-init/CHANGELOG.md +5 -0
  11. package/framework/.claude/skills/design-system-init/SKILL.md +2 -2
  12. package/framework/.claude/skills/e2e-review/CHANGELOG.md +5 -0
  13. package/framework/.claude/skills/e2e-review/SKILL.md +2 -2
  14. package/framework/.claude/skills/frontend-design/CHANGELOG.md +20 -0
  15. package/framework/.claude/skills/frontend-design/SKILL.md +39 -216
  16. package/framework/.claude/skills/gamification-design/CHANGELOG.md +5 -0
  17. package/framework/.claude/skills/gamification-design/SKILL.md +2 -2
  18. package/framework/.claude/skills/ui-design/CHANGELOG.md +60 -1
  19. package/framework/.claude/skills/ui-design/SKILL.md +127 -75
  20. package/framework/.claude/skills/ui-design/references/anti-slop.md +106 -0
  21. package/framework/.claude/skills/ui-design/references/craft-standards.md +259 -0
  22. package/framework/.claude/skills/ui-design/references/design-brief.md +92 -0
  23. package/framework/.claude/skills/ui-design/references/design-directions.md +188 -0
  24. package/framework/.claude/skills/ui-design/references/evaluation.md +125 -165
  25. package/framework/.claude/skills/ui-design/references/generation.md +125 -92
  26. package/framework/.claude/skills/ui-design/references/inventory.md +9 -2
  27. package/framework/.claude/skills/ui-design/scripts/craft-check.mjs +248 -0
  28. package/framework/agents/component-manifest-schema.md +1 -1
  29. package/framework/agents/design-system-protocol.md +6 -6
  30. package/framework/agents/index.md +1 -0
  31. package/framework/agents/skills-mapping.md +25 -23
  32. package/framework/docs/PROJECT-CONFIGURATION.md +5 -5
  33. package/package.json +1 -1
  34. package/src/commands/configure.js +1 -1
  35. package/src/utils/__tests__/classify-divergence.test.js +42 -0
  36. package/src/utils/git.js +45 -9
@@ -1,221 +1,44 @@
1
1
  ---
2
2
  name: frontend-design
3
- effort: medium
4
- version: 1.0.0
5
- description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
3
+ effort: low
4
+ version: 2.0.0
5
+ description: "ROUTER (retired generator, since framework v5.2.0). Historically triggered for building web components, pages, dashboards, landing pages, HTML/CSS layouts, or styling/beautifying any web UI those triggers still land here, and this skill immediately routes them to the right BALDART surface: /ui-design (design, mockups, prototyping, restyling), /ui-implement (approved mockup → code), the ui-expert agent (direct in-code UI work). Do not follow this skill for design guidance; its design intelligence moved to ui-design/references/ (craft-standards, anti-slop, design-directions)."
6
6
  license: Complete terms in LICENSE.txt
7
7
  ---
8
8
 
9
- This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
10
-
11
- ## Project Context
12
-
13
- **Reads from `baldart.config.yml`:** `paths.design_system`, `paths.ui_guidelines`, `identity.design_philosophy`, `stack.charting.canonical`, `stack.animation.canonical`.
14
- **Gated by features:** `features.has_design_system` (when `true`, the BLOCKING reads in the next section are mandatory; when `false`, fall back to `paths.ui_guidelines` alone — the BOLD aesthetic direction is then driven by `identity.design_philosophy` only).
15
- **Overlay:** loads `.baldart/overlays/frontend-design.md` if present — project-specific aesthetic mandates, forbidden patterns, illustration-motion contract.
16
- **On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
17
-
18
- The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
19
-
20
- ## Effort
21
-
22
- **Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
23
- `effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
24
- reasoning depth for this run — detect it once at kickoff and strip the token
25
- before consuming user input. Level→behavior mapping, parsing contract, and
26
- precedence caveats: `framework/agents/effort-protocol.md`.
27
-
28
-
29
- ## Design Thinking
30
-
31
- Before coding, understand the context and commit to a BOLD aesthetic direction:
32
- - **Purpose**: What problem does this interface solve? Who uses it?
33
- - **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
34
- - **Constraints**: Technical requirements (framework, performance, accessibility).
35
- - **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
36
-
37
- **CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
38
-
39
- Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
40
- - Production-grade and functional
41
- - Visually striking and memorable
42
- - Cohesive with a clear aesthetic point-of-view
43
- - Meticulously refined in every detail
44
-
45
- ## Frontend Aesthetics Guidelines
46
-
47
- Focus on:
48
- - **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
49
- - **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
50
- - **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
51
- - **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
52
- - **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
53
-
54
- NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
55
-
56
- Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
57
-
58
- **IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
59
-
60
- Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
61
-
62
- ## MANDATORY Pre-Work Read (project design-system override)
63
-
64
- The registry-first cascade below is the consumer view of the SSOT in
65
- [`framework/agents/design-system-protocol.md`](../../../agents/design-system-protocol.md).
66
- When the cascade rules diverge between this file and the protocol module,
67
- the protocol module wins.
68
-
69
- When operating inside a repo that ships a design-system SSOT, the generic
70
- creative guidance above is BLOCKED by the project design-system until the
71
- reads below are complete. MANDATORY pre-work reads (skipping any of them is
72
- a protocol violation when the docs exist):
73
-
74
- 1. **MANDATORY / BLOCKING** — `${paths.design_system}/INDEX.md`. Authoritative component index + Canonical Authority Matrix. Discover existing primitives there BEFORE inventing new ones.
75
- 2. **MANDATORY / BLOCKING** — `${paths.design_system}/tokens-reference.md`. Human-readable token contract (colors, spacing, radius, shadows, typography). Never hardcode hex colors, shadow pixel tuples, or border widths not defined in the design-system doc.
76
- 3. **MANDATORY** — `${paths.design_system}/components/<Name>.md` for every primitive in scope, and `${paths.design_system}/patterns/*.md` (overlays, theming, animations, platform quirks) for the pattern involved.
77
- 4. **MANDATORY / BLOCKING** — `${paths.ui_guidelines}`. Brand philosophy, aesthetic rules, SVG rules, accessibility constraints.
78
- 5. **MANDATORY for generated marketing illustrations/videos** — `the project's illustration-motion pattern doc (listed in `.baldart/overlays/frontend-design.md` if present)` (if your project has one). Canonical illustration language, product-variant vocabulary, and surgical element-by-element video prompt contract.
79
-
80
- Non-negotiable constraints typical of mature design-system SSOTs (adapt to your project):
81
-
82
- - Token consumption: only via the project's design-token mechanism (e.g. CSS custom properties, Tailwind theme, Stitches tokens). Never hardcode values outside this contract.
83
- - **Themed-surface text/bg pairing rule (MANDATORY / BLOCKING)** when the design-system defines a primary theme color: any text rendered over the themed primary background MUST pair with the project's theme-primary-text token (e.g. `text-[var(--theme-primary-text,#000)]` on `bg-[var(--theme-primary)]`).
84
- - Do NOT create new overlay systems if the project already catalogs an overlay decision tree — pick from the existing options.
85
- - **Chart library (MANDATORY / BLOCKING)** when the project standardizes a chart stack: use only the approved library and the project's wrappers, never call the underlying chart library from feature code. Banned libraries (typical): `chart.js`, `echarts`, `victory`, `visx`, `d3` standalone, `observable-plot`, `tremor`. Exceptions require an ADR.
86
-
87
- Within those bounds, creative choices (typography nuance, composition, motion intensity) are welcome — but the design-system token contract and themed-surface pairing are non-negotiable.
88
-
89
- ---
90
-
91
- ## Performance Gates (Core Web Vitals 2026)
92
-
93
- Production-grade frontend is not just "looks good" — it ships within the CWV
94
- thresholds. Every page / component / route MUST be designed against these
95
- budgets, not retrofitted after Lighthouse complains.
96
-
97
- ### Thresholds (p75, CrUX dataset)
98
-
99
- | Metric | Good | Poor | What it measures |
100
- |---|---|---|---|
101
- | **LCP** | ≤ 2.5s | > 4.0s | Largest Contentful Paint — usually the hero image or H1 |
102
- | **INP** | ≤ 200ms | > 500ms | Interaction to Next Paint — replaced FID in Mar 2024 |
103
- | **CLS** | ≤ 0.1 | > 0.25 | Cumulative Layout Shift |
104
- | TTFB | ≤ 0.8s | > 1.8s | Subset of LCP (~40% of budget) |
105
- | FCP | ≤ 1.8s | > 3.0s | Diagnostic only |
106
-
107
- A page passes CWV when all three (LCP/INP/CLS) are *good* at p75. INP is the
108
- hardest of the three on JS-heavy apps and the most commonly failed (~43% of
109
- sites globally).
110
-
111
- ### LCP image: the only correct pattern
112
-
113
- ```html
114
- <!-- in <head> — preload + fetchpriority for the hero -->
115
- <link rel="preload" as="image"
116
- href="/hero.avif"
117
- imagesrcset="/hero-800.avif 800w, /hero-1600.avif 1600w"
118
- imagesizes="100vw"
119
- fetchpriority="high">
120
-
121
- <!-- in body — picture with AVIF/WebP/fallback + explicit dimensions -->
122
- <picture>
123
- <source srcset="/hero.avif" type="image/avif">
124
- <source srcset="/hero.webp" type="image/webp">
125
- <img src="/hero.jpg" alt="..."
126
- fetchpriority="high"
127
- width="1600" height="900">
128
- </picture>
129
- ```
130
-
131
- **Never** apply `loading="lazy"` to the LCP image. **Never** render the LCP
132
- image via client-side JS after hydration — server-render it or preload it.
133
-
134
- ### INP fixes
135
-
136
- - Break any task > 50ms into `await scheduler.yield()` chunks (Chrome 129+;
137
- fallback `await new Promise(r => setTimeout(r, 0))`).
138
- - Debounce input handlers to one frame (~16ms) when they trigger expensive
139
- recomputes. Throttle scroll/resize to `requestAnimationFrame`.
140
- - Move CPU-bound work (parsing, transforming, encoding) off the main thread
141
- with Web Workers when latency matters.
142
- - Avoid `setInterval` polling for data — use SWR / React Query / TanStack
143
- Query with stale-while-revalidate.
144
-
145
- ### CLS budget — zero unexpected shift
146
-
147
- - Every `<img>`, `<iframe>`, `<video>` declares `width` + `height` or
148
- `aspect-ratio` CSS.
149
- - Web fonts: `font-display: optional` (no FOIT/FOUT shift, accept fallback
150
- on first load) OR `size-adjust` + matching `ascent-override` /
151
- `descent-override` / `line-gap-override` to produce a metric-compatible
152
- fallback font.
153
- - Skeleton screens mirror the real layout dimensions exactly — a skeleton
154
- that's the wrong height *causes* CLS instead of preventing it.
155
- - Inserted UI (banners, cookie notices, ads) must reserve space upfront via
156
- `min-height` — never push existing content down post-paint.
157
-
158
- ## Modern CSS (2025–2026)
159
-
160
- Default to platform features instead of JS shims:
161
-
162
- - **Container queries** (`@container` + `container-type: inline-size`) —
163
- default for any component that lives in variable-width contexts (sidebar,
164
- grid cell, modal). Component decides its own breakpoint, independent of
165
- viewport. Use viewport-based `@media` only for app-shell-level layout.
166
- - **`:has()`** — collapse `useState` that exists *only for styling*
167
- (e.g. label color reacting to input invalid state). Never put business
168
- logic into `:has()` — only visual reactions to DOM state.
169
- - **View Transitions API** — `document.startViewTransition()` for SPA
170
- navigation and `view-transition-name` for shared-element morphs. See
171
- `motion-design/reference/accessibility-and-modern-apis.md` for the full
172
- pattern.
173
- - **Subgrid** — children align to the parent grid without re-declaring
174
- tracks. Fixes the long-standing "card content alignment across rows"
175
- problem.
176
- - **Logical properties** — `margin-inline-start` / `padding-block` instead
177
- of `margin-left` / `padding-top` whenever the project might add RTL or
178
- vertical-writing-mode locales. Free i18n with zero overhead.
179
- - **`color-mix()`** — derive hover / focus / disabled states from semantic
180
- tokens without inventing new tokens
181
- (`color-mix(in oklch, var(--color-action-primary) 90%, black)`).
182
- - **`@scope`** — scope CSS to a subtree without selector specificity wars or
183
- CSS-in-JS. Useful when migrating off CSS Modules / styled-components.
184
-
185
- ## Form quality (always-on requirements)
186
-
187
- These apply to every form, every project — they are not "nice to have":
188
-
189
- - `<label>` associated to input via `htmlFor` / `id` (never wrap-only — fails
190
- some screen readers).
191
- - `autocomplete=` filled for every personal-data field
192
- (`email | tel | given-name | family-name | street-address | postal-code |
193
- cc-number | one-time-code` …). Required by WCAG 2.1 SC 1.3.5.
194
- - Validation **on blur**, not on every keystroke. Re-validate on submit.
195
- - Error messages are **actionable** ("Email manca @ — esempio:
196
- nome@dominio.it"), never generic ("Invalid input").
197
- - `aria-invalid` + `aria-describedby` linking the input to its error
198
- element. Error element has `role="alert"` only when it appears
199
- dynamically.
200
- - `inputMode=` set when it differs from `type` (e.g. `type="text"
201
- inputMode="numeric"` for SMS codes — keeps the field text-shaped but
202
- triggers the numeric keypad).
203
- - Paste handling normalizes whitespace and format BEFORE validating
204
- (cc-number without spaces, tel without separators).
205
- - Submit button disabled only **after** a failed attempt — never blocked
206
- pre-emptively; users should be allowed to try and receive feedback.
207
-
208
- ---
209
-
210
- ## Standalone Prototypes and Demos
211
-
212
- When the task calls for an interactive HTML prototype, animated demo, slide deck, iOS/app mockup, or design exploration **not tied to the project codebase**, the `huashu-design` skill can supplement or replace this skill. It provides:
213
- - App Prototype shell (AppPhone state manager, tappable, iPhone frame)
214
- - Tweaks panel for in-page variants
215
- - Animation export → MP4/GIF (25fps base, 60fps interpolated)
216
- - 5 flows × 20 design philosophies for design exploration
217
- - Playwright click-test validation before delivery
218
-
219
- **`huashu-design` is OPTIONAL** — it is a user-installed skill, not shipped with the framework. If it is not present, proceed with this skill alone and notify the user: "huashu-design not found; continuing with frontend-design only. Install huashu-design for advanced prototype tooling."
220
-
221
- **Filesystem Rule (ABSOLUTE):** every HTML output/prototype must be written to disk with the `Write` tool BEFORE opening it in a browser or sharing it with the user. Outputting inline code blocks is not sufficient.
9
+ # frontend-design router (retired generator)
10
+
11
+ Since framework v5.2.0 this skill no longer generates or styles UI. Its
12
+ design intelligence (aesthetic direction, craft rules, anti-slop bans,
13
+ Performance Gates/CWV, Modern CSS, form quality) was superseded and moved to
14
+ the **`ui-design`** skill's references, which are the single SSOT:
15
+
16
+ - `ui-design/references/craft-standards.md` always-on craft + **Performance
17
+ Gates (CWV 2026)** + Modern CSS + form quality (the sections that used to
18
+ live in this file).
19
+ - `ui-design/references/anti-slop.md` — the anti-generic-AI Tells catalog.
20
+ - `ui-design/references/design-directions.md` — aesthetic directions, font
21
+ and palette discipline.
22
+
23
+ ## Route the request (do this instead of proceeding here)
24
+
25
+ | The task is… | Route to |
26
+ |---|---|
27
+ | Designing, prototyping, exploring options, restyling/redesigning a page or component — any *design decision* work | **`/ui-design`** (the local design studio) |
28
+ | Implementing an ALREADY-APPROVED mockup (image / HTML / Claude Design link / `mockups/_src/`) into the codebase | **`/ui-implement`** |
29
+ | A direct in-code UI change with no new design decision (fix a layout, restyle within the existing language, build a specified component) | delegate to the **`ui-expert`** agent per `AGENTS.md` § delegation (registry-first cascade applies) |
30
+ | Motion/animation specs | **`/motion-design`** |
31
+ | A standalone one-off artifact not tied to this project (poster, demo page) | **`/ui-design`** in exploration regime |
32
+
33
+ Announce the reroute in one line (e.g. "frontend-design è stato ritirato a
34
+ router — proseguo con /ui-design") and continue seamlessly with the target
35
+ surface. Do NOT stop to ask permission for the reroute; do NOT apply design
36
+ guidance from any earlier version of this file.
37
+
38
+ ## Consumer overlays
39
+
40
+ If this project carries `.baldart/overlays/frontend-design.md` (aesthetic
41
+ mandates, illustration-motion contract), those opinions belong on the design
42
+ studio now port them to `.baldart/overlays/ui-design.md` (the `/overlay`
43
+ skill scaffolds it). Until ported, honor them when routing lands on
44
+ `/ui-design`.
@@ -2,6 +2,11 @@
2
2
 
3
3
  Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
4
4
 
5
+ ## 1.0.1 — 2026-07-03
6
+
7
+ - Related Skills: `ui-ux-pro-max` (superseded) sostituito con `ui-design` v2
8
+ (design-directions + craft-standards references). Framework v5.2.0.
9
+
5
10
  ## 1.0.0 — 2026-07-01
6
11
 
7
12
  - Baseline: versioning per-skill introdotto al framework v4.82.0.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: gamification-design
3
3
  effort: medium
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  description: Use when designing or analyzing points systems, reward loops, progression mechanics, engagement features, or loyalty programs. Triggers include "points system," "rewards design," "progression," "engagement loop," "battle pass," "loyalty mechanics," "gamification," or "retention hooks." For B2C customer-facing features in this codebase, this skill invokes the hyper-gamification-designer agent.
6
6
  ---
7
7
 
@@ -133,7 +133,7 @@ Before invoking the agent, verify you have:
133
133
 
134
134
  - `prd-planning`: For full PRD with gamification section
135
135
  - `copywriting`: For reward/achievement messaging
136
- - `ui-ux-pro-max`: For gamification UI patterns
136
+ - `ui-design`: For designing gamification UI (mockups/options; its `references/design-directions.md` + `craft-standards.md` replace the retired `ui-ux-pro-max`)
137
137
 
138
138
  ## Project Integration
139
139
 
@@ -2,9 +2,68 @@
2
2
 
3
3
  Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
4
4
 
5
+ ## 2.0.0 — 2026-07-03
6
+
7
+ **The local design studio.** Root-level refactor (framework v5.2.0): the
8
+ skill absorbs top-of-the-line design intelligence distilled from
9
+ [impeccable](https://github.com/pbakaus/impeccable) (Apache-2.0),
10
+ [taste-skill](https://github.com/Leonxlnx/taste-skill) (MIT) and
11
+ [open-design](https://github.com/nexu-io/open-design) (Apache-2.0), and stops
12
+ depending on superseded external skills. Public step contract A–H is
13
+ UNCHANGED (the `/prd` 3a–3e mapping still holds).
14
+
15
+ - **BREAKING — external-skill dependencies removed**: `ui-ux-pro-max`
16
+ (Prerequisite 6, dropped — replaced by the internal references),
17
+ `huashu-design` (optional prototype engine, dropped — the engine rules now
18
+ live in `references/generation.md`), `frontend-design` (linked skill,
19
+ retired to a router at framework level).
20
+ - **NEW Step C.0 — Design Read & Direction Lock** (`references/design-brief.md`):
21
+ register (brand/product), regime (in-context/exploration), the three dials
22
+ (VARIANCE/MOTION/DENSITY), two-altitude slop test, scene sentence,
23
+ color-commitment axis, anti-references, ONE-question ambiguity rule,
24
+ rotation check. Persisted in the state file.
25
+ - **NEW `references/design-directions.md`**: 12-direction aesthetic menu,
26
+ color commitment axis, reflex-reject lists (LILA rule, premium-consumer
27
+ beige ban, cream/sand band, serif discipline, font reflex pool + rotation).
28
+ - **NEW `references/craft-standards.md`**: always-on craft rules (tracking
29
+ table, three-weight system, color proportions + accent rationing ≤2/screen,
30
+ layout-family diversity, 8-state taxonomy + loading thresholds, Laws-of-UX
31
+ numbers, 100/300/500 motion rule, curve-vs-spring) — numeric ranges cite
32
+ `design-system-protocol.md` § Reference Tables. **Canonical new home of the
33
+ Performance Gates (CWV 2026), Modern CSS and Form-quality sections**
34
+ migrated from the retired `frontend-design` generator.
35
+ - **NEW `references/anti-slop.md`**: the Tells catalog — absolute bans,
36
+ rationed patterns (eyebrow ≤ ceil(sections/3), etc.), layout/copy tells,
37
+ every ban with a declared-override path.
38
+ - **NEW `scripts/craft-check.mjs`**: deterministic anti-slop/craft gate
39
+ (~22 rules, zero deps, `--json`, `--strict-palette`), run by the generator
40
+ as self-check and by Step D as Gate 0. Identical on Claude and Codex.
41
+ - **Step D rewritten** (`references/evaluation.md`): Gate 0 (craft-check,
42
+ fail-fast, output hidden from lenses) + **Lens A = `ui-quality-critic`**
43
+ (true evaluator diversity — a different agent definition, rubric SSOT in
44
+ `design-system-protocol.md` § Design Quality Rubric) + **Lens B = fresh
45
+ `ui-expert`** (brief/context conformance B1–B5, evidence-cited scoring,
46
+ worst-sustained-band). Honest **degraded mode** on non-multimodal runtimes
47
+ (mandatory `⚠️ DEGRADED` banner). Max 5 iterations unchanged.
48
+ - **Generation rewritten** (`references/generation.md`): token-first scaffold
49
+ (project tokens embedded in `:root` — the mockup speaks the project token
50
+ language, mirroring the Claude Design channel), `data-region` annotations
51
+ (surgical iteration + deterministic inventory join), real-content
52
+ discipline (image source ladder, copy self-audit, states-as-content),
53
+ responsive-by-construction (375px is evaluated), generator craft self-check.
54
+ - **Routing fix**: frontmatter `description` rewritten to win skill routing
55
+ for design/prototype/restyle work (explicit supersession of
56
+ `frontend-design`/`ui-ux-pro-max`; IT+EN triggers; explicit NOT-list →
57
+ `/ui-implement`, `ui-expert`, `/motion-design`).
58
+ - **Runtime portability**: new § citing
59
+ `agents/runtime-portability-protocol.md` (spawn/decision-gate bindings);
60
+ Codex degradation documented instead of silent.
61
+ - Codex parity: **portable** (same SKILL.md bundle; zero-dep script; visual
62
+ lenses degrade honestly with banner).
63
+
5
64
  ## 1.1.0 — 2026-07-02
6
65
 
7
- - **Analysis-profile contract (framework v4.94.0)**: Step B adjacent-UI analysis passes `PROFILE=ui OUTPUT=terse` to `codebase-architect` (registry-cascade-first per `framework/agents/analysis-profiles.md`).
66
+ - **Analysis-profile contract (framework v4.94.0)**: Step B adjacent-UI analysis passes `PROFILE=ui OUTPUT=terse` a `codebase-architect` (registry-cascade-first per `framework/agents/analysis-profiles.md`).
8
67
 
9
68
  ## 1.0.0 — 2026-07-01
10
69