Skip to content

rfc(0001): v0.5.0 — freeze the §6.3 versioning rule (threads-vfk) - #10

Merged
BunsDev merged 2 commits into
mainfrom
rfc/v0.5.0-freeze-6.3
Jul 26, 2026
Merged

rfc(0001): v0.5.0 — freeze the §6.3 versioning rule (threads-vfk)#10
BunsDev merged 2 commits into
mainfrom
rfc/v0.5.0-freeze-6.3

Conversation

@BunsDev

@BunsDev BunsDev commented Jul 24, 2026

Copy link
Copy Markdown
Member

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:

  • A release that changes §6.3 (including §6.3.1 itself) MUST NOT contain any other normative change.
  • It MUST be classified under the §6.3 rule ratified in the most recent prior release — never the rule it introduces.
  • A changed rule governs only later releases.
  • Ambiguous classification under the prior rule MUST take the larger bump.

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 f70c796 merge 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):

  • v0.4.1 §6.3: "documented additive or breaking conformance changes MUST use a draft minor version bump" → additive normative MUSTs → draft minor v0.5.0
  • Ships alone: the only normative change is §6.3.1 itself. Everything else is version-anchor sweep, §9 gap bookkeeping, snapshot preservation, changelog ✓
  • Migration impact: none — directories conformant with v0.4.1 remain conformant; the MUSTs bind the RFC's release process, not implementations ✓
  • Security rationale: in §11 + CHANGELOG ✓

Mechanics

  • rfcs/RFC-0001-v0.4.md — byte-exact snapshot of tag v0.4.1 (md5 843042f… verified against git show v0.4.1:…), per the minor-boundary convention (v0.3 snapshot precedent)
  • Version sweep: README, PRIMER, SPEC, faq, conformance README, validator README + banner, schemas/ward.schema.json description string, package metadata, rfcs/README (index, snapshot table, citations, process paragraph now mirrors the freeze)
  • §11 + CHANGELOG entries with migration impact + security rationale per §6.3

Verification

  • npm testrun-conformance.sh: positive 6/6, negative 36/36, unexpected 0, READY
  • examples/minimal + examples/sage: PASS
  • git diff --check: clean
  • No non-historical v0.4.1 references remain (historical §11/CHANGELOG entries + snapshot table untouched)

Gates

Bead: threads-vfk · Evidence: PR #4 issuecomment-5041705447, merge f70c796

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>
Copilot AI review requested due to automatic review settings July 24, 2026 10:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread validators/validate.js
Comment on lines 407 to 409

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`));
Comment thread CHANGELOG.md

- **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>
@BunsDev

BunsDev commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

Fresh-context review — v0.5.0 §6.3 freeze @ cc9b332, N-1 fix @ 30f59af

Fresh-context reviewer (reviewer ≠ author) informing Val's gate — this informs, does not simulate, sign-off.

VERDICT: SIGN-OFF RECOMMENDED — zero blocking findings

  • Ships-alone audit: CONFIRMED. Every normative-sentence change is §6.3.1 itself, the §9 gap bullet (no RFC 2119 keywords), or v0.4.1→v0.5.0 anchor substitution inside otherwise-unchanged MUST sentences. rfcs/README.md process paragraph is a faithful restatement citing §6.3.1, not an additional rule. Schema/validator changes are description/display strings only.
  • Classification: sound under the OLD rule alone. v0.4.1 draft-patch class affirmatively excludes new MUSTs ("clarifications… that do not change conformance requirements"); draft minor is the only remaining class, and migration impact + security rationale are documented as it requires. No dependence on the incoming ambiguity clause.
  • Snapshot: byte-exact. RFC-0001-v0.4.md md5 843042f…git show v0.4.1:rfcs/RFC-0001-familiar-contract.md; v0.4.1^{commit} = 8a2dfd2 as the table row states.
  • Sweep: complete. All remaining v0.4.1 refs are historical (§11, CHANGELOG, snapshot table/file, docs/superpowers per N-5 disposition) or classification-context. No historical entry rewritten.
  • Recursion probes: clean. Deleting/rewording §6.3.1 triggers the freeze ("including this subsection"); README-only laundering fails (clause 2 anchors to the §6.3 rule; rfcs/README subordinates itself: "The RFC is the spec").
  • f70c796 citation verified: "§6.3 to be revisited for freeze before v0.5.0" — this PR fulfills the recorded commitment.
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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants