The draft/published split is what lets Xema offer fast iteration in authoring tools without compromising determinism at runtime. While you edit a skill, a composition, a workflow, or a biome, the active row is a draft — mutable, never visible to consumers, and never written to a lockfile. Publishing freezes the draft into an immutable version; from that moment, every consumer that resolves the ref by slug gets that exact version. To change behaviour you publish another version. There is no un-publish — that would silently change live behaviour. The one exception across Xema is capability refs, which auto-version like syscalls (@1, @2 coexist indefinitely); see the Versioning page for the full rule. See also lifecycle.