release(canon): 2.0.4 — the 3-practice district, and the one law row it owes - #831
Conversation
…it owes District 3. Twenty-three paths move under 3-practice/; twenty-two of them need no law change at all, and the one that does is the interesting part. MOVES (23) — 8 directories, 15 files session-management-standards/ -> 3-practice/session-management-standards/ outreach/ -> 3-practice/outreach/ ai-instruction/ -> 3-practice/ai-instruction/ publication-pre-flight/ -> 3-practice/publication-pre-flight/ release-pre-flight/ -> 3-practice/release-pre-flight/ accessibility/ -> 3-practice/accessibility/ immaculate-guide/ -> 3-practice/immaculate-guide/ testing-and-benchmarking/ -> 3-practice/testing-and-benchmarking/ CODEOWNERS-POLICY.adoc CODE_OF_CONDUCT.adoc CONTRIBUTING.adoc LANGUAGE-POLICY.adoc LICENCE-POLICY.adoc MAINTAINERS.adoc PROOF-NEEDS.adoc REMOTE-URL-POLICY.adoc SECURITY-ADVISORIES.adoc SECURITY.adoc SECURITY.md TEST-NEEDS.adoc TOOLING-VERSION-INTEGRITY-POLICY.adoc TRUST-DEFAULTS-POLICY.adoc ZIGZAG-TESTING.adoc -> 3-practice/<same name> No pointer stubs in this district: every target is a live in-tree path, and none of these carried an external link contract worth keeping alive. WHY THIS DISTRICT OWES A PATCH `MAINTAINERS.adoc` is one of the four governance-tier rows in the gate table. The move took it out of the only location that row named, so the canon stopped satisfying a capability it declares, and Canon self-conformance went red: MISSING (governance-tier): docs/MAINTAINERS.adoc|MAINTAINERS.adoc The row GAINS the new location; it does not trade one for the other. Dropping the bare `MAINTAINERS.adoc` alternative would have broken every estate repo that carries it at the root — cadastra does — by silently reducing a documented alternative to a single canon-internal path. The precedent is the row above it: `0-canon/GOVERNANCE.adoc` was appended the same way, for the same reason, in the 0-canon release. PATCH, not MINOR: no criterion changes meaning, nothing new becomes required, and every repo that conformed before still conforms. THE FIRST TEST LIED, AND THAT IS WORTH RECORDING With the five artefacts left untouched, `check-canon-lockstep.sh` still reads 8/0/2 — because its row [5], "the canon scores Gold on its own applicable set", is SKIPPED wherever hypatia is absent, which is every local tree. The gate that actually measures this is `scripts/check-rsr-profile.sh` — the "Canon self-conformance" CI job. Trust the gate that runs, not the one that is skipped. The mover had also rewritten three of the five artefacts, because they name moved paths. It rewrote them by REPLACING alternatives: `"SECURITY.md|.github/SECURITY.md"` became `"3-practice/SECURITY.md|.github/SECURITY.md"`, dropping the estate's form. Reverted in full; the only law bytes that change are the two rows above, both by appending. Everything else the artefacts said, they still say. GATES check-standards-map.sh PASSED, entry_count 122 check-canon-lockstep.sh 8 passed / 0 failed / 2 skipped (hypatia, gh) check-rsr-profile.sh rc=0 (was rc=1 before the gate-table row was fixed) lock-selfcheck.sh on this commit, below every scripts/check-*.sh rc IDENTICAL to a control at 81a1966 — all of them stale-reference audit 23 moved-away, 0 leftovers; 7 hits inside the law artefacts, all deliberate estate-facing alternatives
|
Important Review skippedToo many files! This PR contains 285 files, which is 185 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (285)
You can disable this status message by setting the 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 |
|



What
District 3 — the fourth district taken end-to-end, and the first since 2.0.3 that changes law bytes. 23 paths move under
3-practice/; 22 of them need no law change at all, and the one that does is the whole story of this PR.No pointer stubs: every target is a live in-tree path, and none carried an external link contract worth keeping alive.
The one law change — and why it is an append
MAINTAINERS.adocis one of the fourgovernance-tierrows in the gate table. The move took it out of the only location that row named, so the canon stopped satisfying a capability it declares:That is the
Canon self-conformanceCI job — the canon is subject to its own gate table. The row gains the new location; it does not trade one for the other:Dropping the bare
MAINTAINERS.adocalternative would have broken every estate repo that carries it at the root — cadastra does — by silently reducing a documented alternative to a single canon-internal path. The precedent sits directly above it:0-canon/GOVERNANCE.adocwas appended to theGOVERNANCErow the same way, for the same reason, in the 0-canon release.PATCH, not MINOR: no criterion changes meaning, nothing new becomes required, every repo that conformed before still conforms. The estate gains a location and loses nothing — exactly the reading applied to 2.0.2 and 2.0.3.
A first test that lied, recorded so nobody trusts it next time
With the five artefacts left untouched,
check-canon-lockstep.shstill reads 8/0/2 — because its row[5], "the canon scores Gold on its own applicable set", is SKIPPED wherever hypatia is absent, which is every local tree. The gate that actually measures this isscripts/check-rsr-profile.sh. Trust the gate that runs, not the one that is skipped.The mover had also rewritten three of the five artefacts, because they name moved paths — and it rewrote them by replacing alternatives. Reverted in full. Everything else those artefacts said, they still say.
Gates, against a control at
81a1966check-standards-map.shentry_count = 122check-canon-lockstep.shcheck-rsr-profile.shlock-selfcheck.shscripts/check-*.shSequencing
canon.lockrecords the order: the spine re-adopts these hashes first, then this releases. The companion PR pinsgates_sha256 = b65ce75438c42d01…and carries the spine's own 15 references to the moved paths, so the two land together.