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.
- package/CHANGELOG.md +77 -0
- package/README.md +3 -3
- package/VERSION +1 -1
- package/framework/.claude/agents/CHANGELOG.md +45 -0
- package/framework/.claude/agents/REGISTRY.md +2 -2
- package/framework/.claude/agents/coder.md +3 -3
- package/framework/.claude/agents/remotion-animator-orchestrator.md +4 -3
- package/framework/.claude/agents/ui-expert.md +4 -10
- package/framework/.claude/agents/ui-quality-critic.md +27 -11
- package/framework/.claude/skills/design-system-init/CHANGELOG.md +5 -0
- package/framework/.claude/skills/design-system-init/SKILL.md +2 -2
- package/framework/.claude/skills/e2e-review/CHANGELOG.md +5 -0
- package/framework/.claude/skills/e2e-review/SKILL.md +2 -2
- package/framework/.claude/skills/frontend-design/CHANGELOG.md +20 -0
- package/framework/.claude/skills/frontend-design/SKILL.md +39 -216
- package/framework/.claude/skills/gamification-design/CHANGELOG.md +5 -0
- package/framework/.claude/skills/gamification-design/SKILL.md +2 -2
- package/framework/.claude/skills/ui-design/CHANGELOG.md +60 -1
- package/framework/.claude/skills/ui-design/SKILL.md +127 -75
- package/framework/.claude/skills/ui-design/references/anti-slop.md +106 -0
- package/framework/.claude/skills/ui-design/references/craft-standards.md +259 -0
- package/framework/.claude/skills/ui-design/references/design-brief.md +92 -0
- package/framework/.claude/skills/ui-design/references/design-directions.md +188 -0
- package/framework/.claude/skills/ui-design/references/evaluation.md +125 -165
- package/framework/.claude/skills/ui-design/references/generation.md +125 -92
- package/framework/.claude/skills/ui-design/references/inventory.md +9 -2
- package/framework/.claude/skills/ui-design/scripts/craft-check.mjs +248 -0
- package/framework/agents/component-manifest-schema.md +1 -1
- package/framework/agents/design-system-protocol.md +6 -6
- package/framework/agents/index.md +1 -0
- package/framework/agents/skills-mapping.md +25 -23
- package/framework/docs/PROJECT-CONFIGURATION.md +5 -5
- package/package.json +1 -1
- package/src/commands/configure.js +1 -1
- package/src/utils/__tests__/classify-divergence.test.js +42 -0
- package/src/utils/git.js +45 -9
|
@@ -1,221 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design
|
|
3
|
-
effort:
|
|
4
|
-
version:
|
|
5
|
-
description:
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
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.
|
|
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-
|
|
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`
|
|
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
|
|