Publish
Every ready experiment lands here. The classifier shows what would change, the
blast-radius scan shows which canonical components reference the touched tokens, and each draft
change gets an explicit decision: promote to the shared registry, or keep it scoped to the
experiment as an audit-only record. Current registry version: v2.7.0.
Drafts move from Design lab to here when an operator flips them to ready. No experiments in lab.
Go to Design labHow publish works
The flow runs validation, classification, blast-radius preview, decision resolution, and either local-fs write (dev) or a GitHub Action dispatch (prod, behind the OAuth credential gate).
Each draft change is classified per the taxonomy: theme-token value changes ship live; structural-token, motion, component, pattern, icon, asset changes ship as a reviewed PR; token rename/removal is breaking and forces a major bump. The classifier is the only thing that decides the path; the operator can only choose promote or scope per change. Scoping doesn't change the class — it just records that the operator decided this change shouldn't land globally yet.
Only promoted records land in CHANGELOG.changes (the consumer-facing wire format). Scoped decisions are recorded in RETIRED_EXPERIMENTS with the operator's rationale, so the
audit trail captures the "no" as fully as the "yes".