Release v0.2.0: Vault Lab ships; release and method versions split - #1
Merged
Conversation
The public record was stale: tag v0.1.0 certified a repo with no Lab in it
while main's README led with the Lab. Cutting v0.2.0 was blocked by a defect
in the release machinery itself: check_version_parity.py welded eight files
to one version string, so bumping to 0.2.0 forced templates' method_version
out of the 0.1.x series that bvm-lint accepts — the checker rejected its own
templates (BVM002) and two conformance tests failed. Verified empirically
before this change.
The split: RELEASE version (pyproject, bvm_lint __version__, CITATION.cff,
README badge, CHANGELOG) names what ships from the repo and moves to 0.2.0.
METHOD version (SPEC.md, templates/vault.toml, examples vault.toml) names
the specification contract vaults declare conformance to and stays 0.1.0 —
honestly: SPEC.md, src/ and schemas/ are byte-identical to v0.1.0 except the
SPEC.md status line ("release candidate" was stale).
check_version_parity.py now enforces the two tracks separately and pins the
method version to the 0.1.x series (BVM002 contract), with a regression test
for the series-escape case. lab/README.md gains the governing-contract
section: sealed build spec v0.3.0 cited by SHA-256, plus the two verbatim
statements (opening boundary, final bounded claim) matching lab/tools/lab.py.
REPOSITORY VERIFY PASS: 68 tests, version parity (release 0.2.0, method
0.1.0), diagnostic parity 49 codes, release surface, vault lab check.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Tag
v0.1.0certifies a repository with no Lab in it;main's README leads with the Lab. Anyone downloading the release gets a different product than anyone browsing the repo. This is the GPT surface review's Priority 1 ("cut v0.2.0, not v0.1.1 — Vault Lab is a substantial new public surface").The defect that blocked it
GPT's instruction was not executable as written, and this PR fixes why.
check_version_parity.pywelded eight files to one version string — includingtemplates/vault.toml'smethod_version. Bumping everything to 0.2.0 pushesmethod_versionout of the0.1.xseries thatbvm-lintitself enforces (lint.py, BVM002), so the checker rejects its own templates and two conformance tests fail. Verified empirically before changing anything.The weld was invisible at v0.1.0 because the method and the release were born together; the Lab is the first release where the two genuinely diverge.
The split
pyproject.toml,bvm_lint.__version__,CITATION.cff, README badge,CHANGELOG.mdmethod_versionSPEC.md,templates/vault.toml,examples/…/vault.tomlThis is honest, not cosmetic: since
v0.1.0,SPEC.md,src/, andschemas/are byte-identical except for the SPEC.md status line (which said "release candidate" — stale since 2026-07-15). The method did not change; a teaching surface was added.check_version_parity.pynow enforces the two tracks separately and pins the method version to the0.1.xseries, with a new regression test for the series-escape case (all method files agreeing on0.2.0must still fail).Against the review's five release items
[0.2.0]documents the Lab, the fail-closed runner, the version-model split, and boundaries.**Version:**stays 0.1.0.lab/README.mdgains a contract section: sealed build spec v0.3.0 cited by SHA-256 (2afb782d…), with the two required verbatim statements reproduced — checked againstlab/tools/lab.py's actual strings.v0.2.0and cut the GitHub release with notes linking the tag's CI run.Verification
After merge
I'll tag
v0.2.0on the merge commit and publish the GitHub release. Until then the safe public claim is unchanged: Vault Lab is available on unreleasedmain.