Resources
Contributing & governance
How Zetta changes, and how to propose a change. The system is intentionally small and AI-generated per project — so contribution is about the spec and the guardrails, not a shared component package.
The model
- The spec is the source of truth. Zetta ships as the
zetta-design-mdskill — DESIGN.md files for the three themes, ten foundations, and the component set. This showcase is generated from a vendored snapshot of that spec; it never forks it. - No shared component library. Components are generated per project by the skill + AI in each project's own stack. There is nothing to
npm install— only the tokens and the spec. - Guardrails are the contract. The 17 guardrails are enforced mechanically. A change that violates a guardrail is a spec change, not a one-off.
Proposing a change
- Open it against the spec. File the proposal on the Zetta_Agent_Skills repo — a new token, a component spec, a guardrail amendment. Describe the problem first, then the proposed values.
- Show all three themes. Any colour or elevation change must resolve in Light, Dark and Accessibility. Include the contrast figures for the Accessibility theme.
- State the migration. If it changes existing tokens or components, note what consumers must do (must-remove vs nice-to-align), as the v0.10→v1.2 brand→primary swap did.
- Designer sign-off. The bundled DESIGN.md mirrors the designer's source; spec changes land there first, then flow into the next vendored snapshot here.
Versioning
- The spec is versioned (currently v1.6). Breaking palette / token changes bump the minor; additive components and fixes ride the same line.
- This showcase pins a vendored snapshot and is renewed per version — see What's New for the changelog and the migration headline of each release.
What stays out of core
Product-specific concerns — business / lifecycle colours, domain compositions — are deliberately not in core. They live in each product's own token layer and never enter the skill. Keep core small; extend locally. See Known gaps for the current boundary.