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.