LLMO

Versioning

How LLMO specification versions are numbered, published, and superseded.

Version format

LLMO specification versions use three-part numbering: vMAJOR.MINOR.PATCH.

The llmo_version field in published llmo.json documents matches the specification version.

Path convention

Each minor version has a single canonical path: /spec/v<major>.<minor>/.

Changes within a minor version (patch revisions) happen in place at that path. The changelog records each revision. Git history preserves the exact prior text.

When a new minor version is published, the prior minor’s path is frozen. Documents that conformed to the prior minor continue to reach its frozen state at its path, stable indefinitely.

Patch versions do not get sibling paths. Readers who need exact historical text of a specific patch consult the commit history.

Stability guarantee

Once a minor version is superseded by a newer minor version, its canonical path is frozen. The specification text, JSON schema, and test vectors at that path are not modified. Implementations that depend on a specific minor version can rely on that version’s published text remaining unchanged indefinitely.

Before supersession, a minor version is the active line. Patch revisions are published in place during this period, each recorded in the changelog.

Author and editor roles

Two distinct roles govern changes to the specification:

This distinction matters because the two roles operate under different rules. Authorship is creative and decisive; editorship is custodial and procedural.

Who decides a version bump

Minor and major version bumps from v0.2 forward are governance decisions and follow the LIP process. A minor bump is typically triggered by the acceptance of one or more LIPs that change normative content; the LIP process determines when the bump occurs and what it contains.

Patch revisions from v0.2 forward are editorial and are applied by the editor under the editorial policy described in the governance page.

During v0.1 pre-release, the author decides all changes, including the initial structure and subsequent refinement. See the pre-release section below.

How version bumps are announced

Every version bump produces:

Major version transitions are accompanied by a public announcement. Minor and patch versions rely on the changelog and git tag alone.

Pre-release versioning

LLMO is currently in its pre-v1 initial build. During this period:

The rationale for this posture: LLMO has no external implementers during pre-v1. A governance window whose purpose is protecting implementers from surprising protocol changes serves no function when no implementers exist. The window becomes meaningful at v0.2 and beyond, when the pre-v1 initial build has shipped and implementations depend on stable semantics.

Once v0.1 is superseded by v0.2, this pre-release posture ends. From v0.2 forward, the governance window applies to substantive changes per the LIP process, and the editor role takes over custodial responsibilities from the author.

Relationship to implementations

The reference validator at validate.llmo.org tracks the specification version it implements. When the specification bumps, the validator bumps to match. Validator-only housekeeping (UI improvements, copy changes, non-behavioral fixes) does not produce a version bump.

Alternative implementations of LLMO, when they exist, are expected to declare which specification version they conform to. They are not expected to match the reference validator’s release cadence.