From c3409a1a7f060504c2708ba023c9fe35ebe60803 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 17 Sep 2026 19:20:36 +0000 Subject: [PATCH] chore(canon): re-adopt canon 2.0.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The canon's 2.0.2 release corrects the machine tree's spelling in its two normative artefacts: `machine-readable/` → `.machine_readable/`. Ruling R-A settled the spelling; the law had been naming the minority form. Re-pinned, all three values: version 2.0.1 -> 2.0.2 criteria_sha256 efd024ad… -> 7804d77127001ed50263f0783d8a11f7211e72cb5e9f6443f2acde4b08d9ab1e gates_sha256 8b1a77669c9a… -> 6a8b9b420519dccdd2c586da06a9a302bdbbb3dc917f49e4a7b308882471d68a ORDER MATTERS, AND THIS HALF GOES FIRST [canon].order is spine-adopts-then-canon-releases: the canon cannot land 2.0.2 while pinning hashes this repo has not adopted. Gate A fails the canon until this is in. So **this change is red until the canon releases** — the `Canon lockstep` job compares all six values (the F8 fix) and canon main still says 2.0.1. The two land together, as the Phase 1 pair did. That is the ordering rule working, not a broken gate. F8 is why this is safe to attempt at all: before it, `gates_sha256` was recorded and never compared, so a half-done re-pin would have been invisible. Six values, two directions, empty reads refused. Witness: the spine's own extractors, run against the canon tree at the 2.0.2 release, print MATCH for all three pins. --- .machine_readable/rsr-profile.a2ml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.machine_readable/rsr-profile.a2ml b/.machine_readable/rsr-profile.a2ml index 22c03c6f..39f60ec3 100644 --- a/.machine_readable/rsr-profile.a2ml +++ b/.machine_readable/rsr-profile.a2ml @@ -96,15 +96,15 @@ capabilities = [ # build/just/repo-init.just: every minted repo records the canon it was cut # from, so "which repos are on canon 1.x?" becomes a grep instead of a campaign. # --------------------------------------------------------------------------- -version = "2.0.1" +version = "2.0.2" # MUST equal canon.lock [canon.artifacts].criteria.sha256 -criteria_sha256 = "efd024ad9cbdf0d36d4dbce7e491531dd4ccccbfc747a04223ce4149f4b9a53d" +criteria_sha256 = "7804d77127001ed50263f0783d8a11f7211e72cb5e9f6443f2acde4b08d9ab1e" # MUST equal canon.lock [canon.artifacts].gates.sha256 # NB this hash is the gate table WITH the role = "canon" section (canon PR # "feat(gates): add role=canon"). Before that section existed the canon could # not be scored by the checker it ships, so a spine pinning the older table # would be pinning a canon whose law was not subject to itself. -gates_sha256 = "8b1a77669c9ab78e9081669dbb2ab141d8af29700affc327f3dcde99f3dcd243" +gates_sha256 = "6a8b9b420519dccdd2c586da06a9a302bdbbb3dc917f49e4a7b308882471d68a" lockstep_since = "2026-09-17" # The order matters and is enforced server-side: a canon change that this repo # cannot satisfy is a change made in the WRONG ORDER, not a rejected change.