docs(r-a): settle the machine-tree spelling as .machine_readable/ — and cancel the canon's own migration - #817
Merged
Merged
Conversation
…nd cancel the canon's own migration
Owner ruling: `.machine_readable` everywhere. This applies the ruling to the
canon side. The spine side is 678c369 on rsr-template-repo.
WHAT THIS CLOSES: F2, the contradiction this repo could not resolve by reading
itself
F2 recorded that the machine root was under two contradictory rulings:
`STANDARDS-CRITICAL-PATH.adoc` Ruling 10 said correct the spine to
`.machine_readable/`, while `root-allow.txt` and `scripts/check-rsr-profile.sh`
both called `machine-readable/` canonical. Each side cited the other, so the
contradiction was unresolvable from inside the repo.
It resolves from evidence outside it. rsr-template-repo's
docs/governance/TEMPLATE-LINEAGE-AUDIT.adoc records the estate census at the
2026-08 divergence:
48 repositories on .machine_readable/
9 repositories on machine-readable/
The spine was the 9-repo minority. Its 2026-08 un-hiding — "a quarter of the
repo should not be invisible" — did not move the estate, and the only thing
ever offered as evidence for the hyphenated spelling being canonical was this
repo's own tolerance branch. Ruling 10 stands; F2 is closed.
THE HARDER HALF IS NOT A FIND-AND-REPLACE, AND THIS COMMIT IS THE HALF THAT
TOUCHES NO LAW
The canon's law files are hash-pinned in canon.lock [canon.artifacts]. Editing
either of them changes a released identity and obliges a version bump plus a
spine re-adoption, in that order. So this commit deliberately does NOT touch
them. It proves that instead:
criteria 0-canon/rsr/rsr-criteria-v2.a2ml efd024ad… UNCHANGED
gates .machine_readable/template-…toml 8b1a77669c9a… UNCHANGED
applicability TEMPLATE-APPLICABILITY-POLICY.adoc 7a31dc7e… UNCHANGED
HASH-NEUTRAL: no canon release is owed for anything here. The two law files
still name the hyphenated path in five normative places (criteria 3.1.1
descriptiles-dir, 3.2.2 rsr-profile, the freeze and report prose; the gates'
role=canon comment) and those are left to a release that can carry a version
bump properly.
WHAT ACTUALLY CHANGED, AND THE MISTAKE IT CORRECTS
Nine files, and none of them is a spelling sweep. Four are resolvers or
checkers that must keep resolving BOTH spellings, and every one of them stated
the canonical/legacy relationship the wrong way round:
scripts/check-rsr-profile.sh called hyphenated "canonical since
2026-08", dotted "LEGACY", and promised to
delete the dotted branch "once the estate
migration completes" — i.e. it planned to
delete the branch that ~300 repos need and
keep the one 9 need
scripts/check-canon-lockstep.sh same inversion, and it tried the spine's
hyphenated profile first
.githooks/validate-a2ml.sh same inversion. Its own comment says
matching one name produced "16 spurious
missing identity field errors" — the file
already knew why both branches must exist
scripts/check-standards-map.sh comment citing the spine's root-allow path
The resolver ORDER changes (dotted first, hyphenated fallback); the branches do
not. Hyphenated is not rejected, because a repo pinned to the minority spelling
is not a repo with a broken gate.
standards-map.toml THE ENTRY THAT HAD THIS REPO MOVING ITSELF. Its
`.machine_readable` entry carried
`target = "machine-readable/"`: the canon was slated to
adopt the spine's spelling. That migration is cancelled
and target is now the identity path. Also: the self-entry
note said "all 118" against an entry_count of 119.
canon.lock three comments naming the spine's profile/PROVENANCE path
docs/AFFIRMATION.adoc withdraws R-A from "We intend / Not yet true" and adds
it to "We affirm", where it is now checkable
docs/AUDIT.adoc F2 *Blocking* -> *Closed 2026-09-17*
docs/STANDARDS-CRITICAL-PATH.adoc ruling 10 marked RESOLVED, and Lane B's
"Fix rsr-template-repo's root" step marked DONE
WITNESSES — before and after, to prove no behaviour moved
Each gate was run on the unmodified tree first and its output diffed against
the tree with these edits:
check-standards-map.sh rc=0, output IDENTICAL GATE D PASSED
check-canon-lockstep.sh rc=0, output identical but for the lock's own
display digest, which moved because this commit
edits canon.lock's comments. GATE A PASSED
check-rsr-profile.sh rc=0, output IDENTICAL
check-allowed-actions.sh rc=0, output IDENTICAL
.githooks/validate-a2ml.sh rc=1, output IDENTICAL (33 pre-existing errors,
unaffected by this commit)
A match count is not evidence of correctness: the six-corruption incident on
the spine side of this rename came from exactly that assumption. Every edit
here is an exact full-string match asserted to occur exactly once, applied
all-or-nothing, and the complete diff was read before committing.
Contributor
|
Warning Review limit reachedNext included review available in 5 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Owner ruling R-A:
.machine_readable/everywhere. This applies it to the canon side and closes F2.F2 is resolved — and so is a migration nobody had noticed
F2 recorded that the machine root sat under two contradictory rulings that each cited the other: Ruling 10 said correct the spine to
.machine_readable/, whileroot-allow.txtand this repo's owncheck-rsr-profile.shcalledmachine-readable/canonical. It could not be resolved from inside the repo.It resolves from evidence outside it: rsr-template-repo's
docs/governance/TEMPLATE-LINEAGE-AUDIT.adocrecords 48 repositories on the dotted form against 9 hyphenated at the 2026-08 divergence. The spine was the minority.standards-map.tomlwas carrying the exact opposite. Its.machine_readableentry hadtarget = "machine-readable/"— the post-reorg path — so the canon was queued to adopt the spine's spelling.targetis now the identity path: the canon does not move.Ruling 10 already said this.
STANDARDS-CRITICAL-PATH.adoc: "rsr-template-repousesmachine-readable/… Correct it to.machine_readable/?" — now marked RESOLVED, and Lane B's fix marked DONE.Four checkers had the direction backwards
check-rsr-profile.shcalled hyphenated "canonical since 2026-08", dotted "LEGACY", and promised to delete the dotted branch "once the estate migration completes" — i.e. keep the branch 9 repos need and delete the one ~300 need.check-canon-lockstep.sh— same inversion; it tried the spine's hyphenated profile first..githooks/validate-a2ml.sh— same, in a file whose own comment already records that matching one name produced "16 spurious missing identity field errors".check-standards-map.sh— comment citing the dead spine path.The resolver order changes (dotted first, hyphenated fallback); the branches do not. The tooling already said dotted was the dominant reality — "the canon, scaffoldia, the julia variant and ~300 minted repos all still carry it". It just called it legacy.
HASH-NEUTRAL — no canon release is owed for this
canon.lock [canon.artifacts]pins the law by hash, so this commit deliberately does not touch either law file, and proves it:0-canon/rsr/rsr-criteria-v2.a2mlefd024ad….machine_readable/template-capability-gates.toml8b1a77669c9a…TEMPLATE-APPLICABILITY-POLICY.adoc7a31dc7e…The law files still name the hyphenated path in 15 + 3 places; that belongs to a release that can carry a version bump, and it is prepared separately.
Witnesses
Each gate run before and after, output diffed:
check-standards-map.shrc=0 identical (Gate D, 119),check-rsr-profile.shrc=0 identical,check-allowed-actions.shrc=0 identical,validate-a2ml.shrc=1 identical (33 pre-existing errors).check-canon-lockstep.shrc=0, Gate A PASSED, identical but for the lock's own display digest — which moved only because this commit editscanon.lock's comments.