rfc(0001): v0.5.0 — freeze the §6.3 versioning rule (threads-vfk) - #10
Conversation
Adds §6.3.1: a release that changes §6.3 MUST ship with no other normative change, MUST be classified under the previously ratified rule (never the rule it introduces), a changed rule governs only later releases, and ambiguous classification takes the larger bump. Closes the self-ratification pattern (PR #4 finding A-1; A-7 in the PR #3 review) ratified retroactively in f70c796. This release is itself classified under the v0.4.1 §6.3 rule: additive normative change → draft minor, shipped alone. Migration impact: none — no directory-level conformance requirements change. §9 gap bullet added (release-process property). Final v0.4.x text preserved as rfcs/RFC-0001-v0.4.md (byte-exact copy of tag v0.4.1, md5-verified). Full version sweep. Conformance: positive 6/6, negative 36/36, READY; examples/minimal + examples/sage PASS. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds RFC-0001 §6.3.1 to “freeze” amendments to the versioning rule itself (i.e., a §6.3 change must ship alone and be classified under the previously ratified rule), and bumps the current contract version references to v0.5.0 accordingly.
Changes:
- Added §6.3.1 “Amendment rule for this section” to RFC-0001 and recorded it in §9 testing gaps + §11 changelog.
- Preserved the final v0.4.x text as a historical snapshot (
rfcs/RFC-0001-v0.4.md). - Swept current-version references across docs, validator banner/README, conformance README, and package metadata to v0.5.0.
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| validators/validate.js | Updates the CLI banner version string to v0.5.0. |
| validators/README.md | Updates validator docs to reference v0.5.0. |
| tests/conformance/README.md | Updates conformance suite README to v0.5.0 wording. |
| SPEC.md | Updates “current normative specification” pointer to RFC-0001 v0.5.0. |
| schemas/ward.schema.json | Updates schema description string to reference v0.5 subset. |
| rfcs/RFC-0001-v0.4.md | Adds a historical snapshot of the v0.4.1 RFC text. |
| rfcs/RFC-0001-familiar-contract.md | Bumps RFC version/date to v0.5.0; adds §6.3.1 + changelog/testing-gap notes. |
| rfcs/README.md | Updates the RFC index, snapshot table, and versioning process paragraph to include the §6.3.1 freeze. |
| README.md | Updates badges and “how to use” instructions to v0.5.0. |
| PRIMER.md | Updates the normative-spec pointer to v0.5.0. |
| package.json | Bumps package version to 0.5.0. |
| package-lock.json | Bumps lockfile package version fields to 0.5.0. |
| docs/faq.md | Updates FAQ references/citations to RFC-0001 v0.5.0. |
| CHANGELOG.md | Adds a 0.5.0 entry describing §6.3.1 and the version-reference sweep. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| console.log(`\n${bold('familiar-contract validator')} ${dim('v0.4.1')}`); | ||
| console.log(`\n${bold('familiar-contract validator')} ${dim('v0.5.0')}`); | ||
| console.log(dim(`Checking: ${dirPath}\n`)); |
|
|
||
| - **Migration impact:** none. Directories structurally conformant with v0.4.1 remain structurally conformant with v0.5.0; the new MUSTs bind the RFC's own release process, not implementations. | ||
| - **Security rationale:** §6.3 is the specification's own authority boundary; a release blessed by the versioning rule it introduces is self-ratifying — the specification-layer analogue of the Ward-mutation loophole Gate 4 closes. The freeze makes the amendment rule a protected surface of the spec itself. | ||
| - **README.md, PRIMER.md, SPEC.md, rfcs/README.md, docs/faq.md, tests/conformance/README.md, validators/README.md, validators/validate.js, schemas/ward.schema.json (description string), package.json** — Updated current-version references to v0.5.0. |
… ship-alone (review N-1) Fresh-context review N-1: clause 1 read hyper-literally would make every future §6.3-only amendment non-compliant, since each release necessarily rewrites current-version anchors inside normative sentences (§6.1 conformance claims). Make the intended carve-out explicit; mirror in §11 + CHANGELOG entries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fresh-context review — v0.5.0 §6.3 freeze @
|
| ID | Finding | Disposition |
|---|---|---|
| N-1 | Clause 1 had no carve-out for inherent version-anchor substitutions — hyper-literal reading makes every future §6.3-only amendment non-compliant | ✅ Fixed in 30f59af (pre-ratification, so amendable in-release); mirrored in §11 + CHANGELOG |
Runs at both heads: npm test → positive 6/6, negative 36/36, unexpected 0, READY; examples/minimal + examples/sage PASS; git diff --check clean.
Human gate (not simulated)
Val: approve + merge; tag v0.5.0 at merge per rfcs/README.md convention. Merging unblocks threads-5vn's normative §5.6 hash amendment (next draft minor, design merged as #9).
What
Adds §6.3.1 Amendment rule for this section — the §6.3 freeze required by threads-vfk before any v0.5.0 normative work:
Why
PR #4 review finding A-1 (pattern first flagged as A-7 in the PR #3 review): the §6.3 draft-versioning rule was redefined in the same PR that relied on it — a bootstrap no validator can bless. Val ratified it retroactively in the
f70c796merge record and directed the freeze before v0.5.0 (bead threads-vfk).§6.3 is the spec's own authority boundary. The freeze makes it a protected surface: version-rule changes are validated by the previously ratified rule, in a release that carries nothing else — the specification-layer analogue of Gate 4 validating mutations against the committed Ward, never the proposed one.
Self-compliance
This release satisfies the rule it introduces, classified under the v0.4.1 rule (not self-ratified):
Mechanics
rfcs/RFC-0001-v0.4.md— byte-exact snapshot of tagv0.4.1(md5843042f…verified againstgit show v0.4.1:…), per the minor-boundary convention (v0.3 snapshot precedent)schemas/ward.schema.jsondescription string, package metadata, rfcs/README (index, snapshot table, citations, process paragraph now mirrors the freeze)Verification
npm test≡run-conformance.sh: positive 6/6, negative 36/36, unexpected 0, READYexamples/minimal+examples/sage: PASSgit diff --check: cleanv0.4.1references remain (historical §11/CHANGELOG entries + snapshot table untouched)Gates
v0.5.0at merge perrfcs/README.mdconvention.Bead:
threads-vfk· Evidence: PR #4 issuecomment-5041705447, merge f70c796