Versioning
MAJOR.MINOR.PATCH, with a -draft suffix until the text is ratified.
| Part | Bumped when | Class |
|---|---|---|
| PATCH | Clarification or wording with no change in meaning; fixed links; formatting; translation updates; correction of a false statement of fact about the process or the repository | C |
| MINOR | A meaningful change to a derived principle, a canonical question, the center statement, the invariants, or governance | B |
| MAJOR | Restructuring of the constitutional articles within the same four-point lineage (principles added, removed, or merged) | B, 30-day comment period |
Changing any of the four points or the center is not a version. It is a fork and a new lineage (FORKS.md). There is no 2.0 that renames Love.
Draft
-draft means the text is public and stable enough to challenge but has not been ratified by a steward group of at least three (see GOVERNANCE.md). 1.0.0 without the suffix is the first ratified release. Drafts still follow the classes above; 1.0.1-draft is a real, logged change.
A known exception
1.0.1-draft changed a canonical question. Under the table above that is a MINOR change and should have been numbered 1.1.0-draft. The number was assigned before this file existed and is preserved as published, because a version, once tagged, is never renumbered. It is recorded in CHANGELOG.md as a bootstrap exception, not a precedent: the next change to a question or a derived principle bumps MINOR.
What a version refers to
A version names the canonical text as a whole: the four points, the articles, and the specs at that tag. Layer 2 files (website, scripts) may change without a version bump when the text does not. A change to any checksummed document is a change to the text and needs a version.
Every version is a git tag vX.Y.Z[-draft] with a checksum file for the canonical documents. See PROVENANCE.md.
Where the version appears
CONSTITUTION.mdheaderspec/constitution.jsonandspec/constitution.yaml(version)LUMINARY.md- the website footer and the agent block
CHANGELOG.md
They must agree. The checksum script run on every build compares the version in spec/constitution.json against the CONSTITUTION.md header, the LUMINARY.md header, and the website's version constant, and fails if any differ.