baldart 4.76.0 → 4.76.1
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
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to BALDART will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.76.1] - 2026-06-26
|
|
9
|
+
|
|
10
|
+
**`/design-system-init` offers a render surface (opt-in Storybook scaffold).** The render harness (Stage C) needs a Storybook, and a registry-only project has none — so the harness was a silent no-op with nowhere to go. Now `/design-system-init`, after scaffolding the registry, OFFERS (default-NO, JS/TS stacks only) to run the **official `npx storybook init`** so the harness has a surface. It **never hand-writes a per-stack render surface and never auto-wires the project's providers** — that "auto-provider-shim" is the refuted false-fidelity trap; instead it leaves a `.storybook/preview` decorator TODO so **the user owns the context-shimming** (theme/i18n/router), which is how Storybook does it correctly. `/ds-render`'s no-op message now points here. Declined / Codex / non-JS → skipped (publish still works via static-spec cards).
|
|
11
|
+
|
|
12
|
+
**PATCH** — opt-in, no behaviour change for projects that decline or already have Storybook; no new config key.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- **`/design-system-init` step 7b** (`framework/.claude/skills/design-system-init/SKILL.md`) — opt-in `npx storybook init` offer + the user-owned-decorator TODO; cross-ref `/ds-render`.
|
|
16
|
+
- **`/ds-render` no-Storybook message** (`framework/.claude/skills/ds-render/SKILL.md`) — points to the init offer instead of a dead no-op.
|
|
17
|
+
|
|
8
18
|
## [4.76.0] - 2026-06-26
|
|
9
19
|
|
|
10
20
|
**Closed-loop design system: BALDART ⇄ Claude Design.** BALDART owns the design system; Claude Design is where designers draw mockups. The two **diverge** over time — v4.75 made every new mockup born on the project's tokens, but that alignment decays as the in-repo registry evolves and the satellite stays frozen. This release adds the machinery to keep them in sync with **ONE authority** (the in-repo registry — `.tokens.json` + `components/<Name>.md` HEAD + INDEX/Selection-Policy + `ds-gate`); Claude Design is a **satellite mirror**, never a 2nd SSOT. Planned via a multi-agent workflow (map → per-axis design → adversarial refutation → completeness/SSOT critic → synthesis) which **refuted** the obvious-but-wrong pieces before any code.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.76.
|
|
1
|
+
4.76.1
|
|
@@ -234,9 +234,28 @@ precedence caveats: `framework/agents/effort-protocol.md`.
|
|
|
234
234
|
`paths.design_system: <target>`, and (when tokens bootstrapped)
|
|
235
235
|
`paths.design_tokens` + `design_tokens.outputs`. Use the same YAML write path
|
|
236
236
|
as `configure` (preserve user values, never clobber unrelated keys).
|
|
237
|
+
7b. **Offer a render surface — OPT-IN, never forced (closed-loop Stage C enabler).**
|
|
238
|
+
A registry documents components but cannot RENDER them in isolation — the render
|
|
239
|
+
harness (`baldart render` / `/ds-render`) needs a Storybook. If **no `.storybook/`
|
|
240
|
+
exists** AND the stack is JS/TS (`stack.framework` is react/vue/svelte/etc.),
|
|
241
|
+
ASK the user (one consolidated question, default-NO): *"Vuoi che inizializzi
|
|
242
|
+
Storybook così il render harness può montare i primitivi in isolamento? (serve
|
|
243
|
+
per la verifica di qualità isolata e per il render dei componenti)"*. On YES:
|
|
244
|
+
- **Delegate to the official scaffolder** — run `npx storybook init` (stack-aware;
|
|
245
|
+
installs the right `@storybook/<framework>` devDeps + writes `.storybook/main`
|
|
246
|
+
+ `preview`). NEVER hand-write a per-stack render surface and NEVER auto-wire
|
|
247
|
+
the project's providers — that "auto-provider-shim" is the REFUTED false-fidelity
|
|
248
|
+
trap. Instead leave a **TODO in `.storybook/preview`**: *"add your ThemeProvider
|
|
249
|
+
/ i18n provider / router here as a decorator so isolated primitives render with
|
|
250
|
+
real context"* — **the user owns the decorators** (that is how Storybook does the
|
|
251
|
+
context-shimming correctly).
|
|
252
|
+
- On Codex / non-JS stack / user declines → skip silently; the harness simply
|
|
253
|
+
stays a no-op (publish still works via static-spec cards). This is an offer, not
|
|
254
|
+
a requirement.
|
|
237
255
|
8. **Print next-steps.** Specs needing agentic review (empty fields), the
|
|
238
256
|
round-trip token diff if non-empty, suggested follow-up (`/design-review` on a
|
|
239
|
-
key route)
|
|
257
|
+
key route); if Storybook was initialized, the `.storybook/preview` decorator TODO
|
|
258
|
+
+ `/ds-render` to render the primitives.
|
|
240
259
|
|
|
241
260
|
## Workflow
|
|
242
261
|
|
|
@@ -43,7 +43,11 @@ Baseline `medium`. Honor an inline `effort=<level>` override.
|
|
|
43
43
|
|
|
44
44
|
1. **Build the surface.** `baldart render build [--full]` → emits
|
|
45
45
|
`render-manifest.json` (from the component HEADs) + generates the adapter render
|
|
46
|
-
surface (ephemeral `.baldart.stories.tsx`). No Storybook → STOP (clean no-op)
|
|
46
|
+
surface (ephemeral `.baldart.stories.tsx`). **No Storybook → STOP (clean no-op)**
|
|
47
|
+
and tell the user the harness needs a render surface: offer to run
|
|
48
|
+
`/design-system-init` (which proposes `npx storybook init`, opt-in — § step 7b)
|
|
49
|
+
or to `npx storybook init` directly, then re-run `/ds-render`. Never auto-install
|
|
50
|
+
Storybook from this skill.
|
|
47
51
|
2. **Run the screenshot loop** (this skill owns the browser via `playwright-skill`):
|
|
48
52
|
`npx storybook build -o .harness/storybook-static`, then for each story
|
|
49
53
|
`iframe.html?id=<storyId>&viewMode=story` capture a PNG into `.harness/shots/`.
|