Reference tooling ships, and a five-lens adversarial audit (47 findings, all fixed) hardens the spec, schema, examples, and scripts.
Reference tooling
scripts/export_design.py— emits theexports.*artifacts from any.designfile: CSS custom properties with mode strategies (media query /data-themeattribute / both, explicit toggle beats OS preference), Tailwind v4@theme, DTCG JSON, and a shadcnregistry:themeitem installable in any project.scripts/diff_design.py— SPEC §18 made real: added / removed / modified per token group, component/variant/locked changes, a regression flag, and--fail-on-regressionfor CI.- Both smoke-tested in CI alongside the schema-validating linter.
Audit fixes (highlights)
- One canonical
agent.instructionstemplate — SPEC §8, docs, converter, and every shipped.designfile now carry the identical self-teaching block (themes duty, figma rule, §18 verify format, NEVER section); the patch tool re-stamps all files idempotently. - Spec correctness: the §15.1.1 example was invalid YAML against the spec's own schema (
"transition: all"now quoted);versionnow validates as real SemVer; write-safety duties are testable and consistent (§3/§23); heading hierarchy and field docs cleaned up. - Schema hardening: malformed catalog entries (
variants/whenas strings) no longer validate through the property-bag branch; nestedzIndex; opensources[].type. - Safe tooling: the example converter no longer deletes all examples before discovering its inputs are missing on a fresh clone — it aborts with instructions; the linter survives malformed files and reports them instead of crashing; depth checks,
omittedparent-path suppression, and{components.*}reference resolution fixed. - Example hygiene: descriptions readable (no
\uXXXXescapes, no mid-word truncation, refs rewritten, uniform independent-analysis framing); dangling private-pipeline references scrubbed from one upstream analysis. - Docs: shadcn diagrams render their line breaks; contradictory claims reconciled; PHILOSOPHY matches the required-
agent.instructionsreality.
Full details: CHANGELOG.
🤖 Generated with Claude Code