Skip to content

release(canon): 2.0.3 — the 0-canon district, law moved out of the repo root - #823

Merged
hyperpolymath merged 3 commits into
mainfrom
chore/reorg-0-canon
Sep 17, 2026
Merged

hyperpolymath merged 3 commits into
mainfrom
chore/reorg-0-canon

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Executes the 0-canon district of standards-map.toml, which is the spec. The law stops living at the repository root.

constitution/                      -> 0-canon/constitution/   (19 files)
CANONICAL-NAMES.adoc               -> 0-canon/
COMPLIANCE-DASHBOARD.adoc          -> 0-canon/
CRG-SELF-ASSESSMENT.adoc           -> 0-canon/
GOVERNANCE.adoc                    -> 0-canon/
PORT-REGISTRY.adoc                 -> 0-canon/
RSR-PHILOSOPHY.adoc                -> 0-canon/
TEMPLATE-APPLICABILITY-POLICY.adoc -> 0-canon/

References rewritten in the same commit — a move with no reference rewrite is just a broken link. standards-map.toml from values now record the migration as done.

Why PATCH, not the "no bump" relocation the lock already documents

The lock's own 2026-09-17 entry took the escape route because the moved files were byte identical: "every sha256 below is UNCHANGED… The canon's identity is its hash set, and that is identical."

That escape is unavailable here — all five hashes changed, because the law names paths inside itself:

  • template-capability-gates.toml lists "constitution/" among the paths that define the canon;
  • it names TEMPLATE-APPLICABILITY-POLICY.adoc as policy;
  • it resolves GOVERNANCE.adoc as an alternative in the governance-tier rule.

Those references were rewritten when the files moved, so the bytes are not identical, so the identity is not identical, so there is a new release identity for the spine to adopt. The obligation fires and the rule's own menu gives the category:

MAJOR = era change, may remove/redefine criteria   -> no
MINOR = additive only                              -> no, nothing added
PATCH = editorial; no criteria-set change          -> yes

It also resolves a pre-existing inconsistency: authority already read 0-canon/constitution/ESTATE-CONSTITUTION.adoc while the constitution slot still read constitution/.

Gates

GATE A   passed 8, failed 0
GATE D   PASSED — 119/119 mapped, bidirectional
regression battery   check-canonical-names, check-docs-presence,
                     check-implementation-inside-canon, check-rsr-profile
                     all identical to the untouched baseline

Ordering

Per [canon.lockstep].order = spine-adopts-then-canon-releases: the spine adopts first, then this releases. Merge the spine PR first.

…po root

Executes the 0-canon district of standards-map.toml, which is the spec: the map
is the agreed target layout and GATE D verifies the result bidirectionally. The
law stops living at the repository root.

Moves
  constitution/                        -> 0-canon/constitution/       (19 files)
  CANONICAL-NAMES.adoc                 -> 0-canon/
  COMPLIANCE-DASHBOARD.adoc            -> 0-canon/
  CRG-SELF-ASSESSMENT.adoc             -> 0-canon/
  GOVERNANCE.adoc                      -> 0-canon/
  PORT-REGISTRY.adoc                   -> 0-canon/
  RSR-PHILOSOPHY.adoc                  -> 0-canon/
  TEMPLATE-APPLICABILITY-POLICY.adoc   -> 0-canon/

References rewritten in the same commit, because a move with no reference
rewrite is a broken link. `standards-map.toml` `from` values now record the
migration as done.

WHY THIS IS A PATCH AND NOT THE "NO BUMP" RELOCATION THE LOCK ALREADY DOCUMENTS

The 2026-09-17 entry above took the escape route because the moved files were
BYTE IDENTICAL: "every sha256 below is UNCHANGED. ... The canon's identity is
its hash set, and that is identical." That escape is not available here. ALL
FIVE sha256 below changed, because the law names paths inside itself:

  * template-capability-gates.toml lists "constitution/" among the paths that
    define the canon, names TEMPLATE-APPLICABILITY-POLICY.adoc as `policy`,
    and resolves GOVERNANCE.adoc as an alternative in governance-tier;
  * those references were rewritten when the files moved, so the bytes are not
    identical, so the identity is not identical, so there IS a new release
    identity for the spine to adopt.

The obligation therefore fires and the rule's own menu gives the category. No
criterion is added, removed, re-tiered or re-gated; the architecture text of
each file is untouched. PATCH: editorial, no criteria-set change — the same
reading of rsr-criteria [versioning].rule-patch the 2.0.2 entry took.

Note `authority` already read 0-canon/constitution/ESTATE-CONSTITUTION.adoc
before this move while the `constitution` slot still read "constitution/". The
relocation resolves that inconsistency rather than creating one.

Gates
  GATE A (check-canon-lockstep)  7 passed, 0 failed — all five artefacts
                                 verified at their new paths and hashes
  GATE D (check-standards-map)   PASSED — 119/119 mapped, bidirectional
  regression battery             check-canonical-names, check-docs-presence,
                                 check-implementation-inside-canon,
                                 check-rsr-profile all identical to baseline

Sequence, per [canon.lockstep].order = spine-adopts-then-canon-releases: the
spine re-adopts these five hashes first, then this releases.
@coderabbitai

coderabbitai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 54 minutes.

Check out review usage here.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 5f70d24a-481a-4fb6-848a-2c6319681bbc

📥 Commits

Reviewing files that changed from the base of the PR and between 8ec31ed and 885e843.

⛔ Files ignored due to path filters (1)
  • canon.lock is excluded by !**/*.lock
📒 Files selected for processing (85)
  • .github/workflows/canon-spine-lockstep.yml
  • .github/workflows/registry-verify.yml
  • .hypatia-baseline.json
  • .machine_readable/REGISTRY.a2ml
  • .machine_readable/TRUST.contractile
  • .machine_readable/contractiles/trust/Trustfile.a2ml
  • .machine_readable/rsr-profile.a2ml
  • .machine_readable/scorecards/a2ml-templates.scorecard.a2ml
  • .machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml
  • .machine_readable/scorecards/estate-constitution.scorecard.a2ml
  • .machine_readable/scorecards/hypatia-rules.scorecard.a2ml
  • .machine_readable/template-capability-gates.toml
  • 0-canon/CANONICAL-NAMES.adoc
  • 0-canon/COMPLIANCE-DASHBOARD.adoc
  • 0-canon/CRG-SELF-ASSESSMENT.adoc
  • 0-canon/GOVERNANCE.adoc
  • 0-canon/PORT-REGISTRY.adoc
  • 0-canon/RSR-PHILOSOPHY.adoc
  • 0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc
  • 0-canon/constitution/AGENTS.adoc
  • 0-canon/constitution/ASSURANCE-CONSTITUTION.adoc
  • 0-canon/constitution/AUTHORITY-AND-PRECEDENCE.adoc
  • 0-canon/constitution/CHANGE-PROCEDURE.adoc
  • 0-canon/constitution/CONTRIBUTION-CONSTITUTION.adoc
  • 0-canon/constitution/ESTATE-CONSTITUTION.adoc
  • 0-canon/constitution/EXCEPTIONS-AND-ANCHORS.adoc
  • 0-canon/constitution/KNOWN-TENSIONS.adoc
  • 0-canon/constitution/README.adoc
  • 0-canon/rsr/RSR-SPEC-v2.adoc
  • 0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc
  • 0-canon/rsr/TIERS.adoc
  • 0-canon/rsr/VERSION.adoc
  • 0-canon/rsr/rsr-criteria-v2.a2ml
  • AGENTS.adoc
  • EXPLAINME.adoc
  • Justfile
  • README.adoc
  • TOPOLOGY.adoc
  • TRUST-DEFAULTS-POLICY.adoc
  • ai-instruction/opus.adoc
  • ai-instruction/sonnet.adoc
  • axel-protocol/CHARTER.adoc
  • did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc
  • docs/AFFIRMATION.adoc
  • docs/AUDIT.adoc
  • docs/BADGE-CRITERIA-SPEC.adoc
  • docs/archive/reorg-leftovers/TEMPLATE-VERSIONING-SPEC.a2ml
  • docs/decisions/ADR-005-extract-consent-aware-web.adoc
  • docs/wikis/maintainers/index.adoc
  • docs/wikis/users/index.adoc
  • hooks/pre-commit
  • rhodium-standard-repositories/.gitlab-ci.yml
  • rhodium-standard-repositories/.well-known/consent-required.txt
  • rhodium-standard-repositories/.well-known/provenance.json
  • rhodium-standard-repositories/CCCP-MANIFESTO.adoc
  • rhodium-standard-repositories/CHANGELOG.adoc
  • rhodium-standard-repositories/CLAUDE.md
  • rhodium-standard-repositories/COMPLIANCE_CHECKLIST.md
  • rhodium-standard-repositories/CONTRIBUTING.adoc
  • rhodium-standard-repositories/PROJECT-STATUS.adoc
  • rhodium-standard-repositories/README.adoc
  • rhodium-standard-repositories/docs/rhodium-init-design.adoc
  • rhodium-standard-repositories/rsr-check.scm
  • rhodium-standard-repositories/satellites/cccp/satellites/nextgen-languages/7-tentacles/.gitlab-ci.yml
  • rhodium-standard-repositories/satellites/palimpsest-license/GOVERNANCE.adoc
  • rhodium-standard-repositories/satellites/state.scm/.gitlab-ci.yml
  • rhodium-standard-repositories/satellites/state.scm/CHANGELOG.adoc
  • rhodium-standard-repositories/satellites/state.scm/MAINTAINERS.adoc
  • rhodium-standard-repositories/satellites/state.scm/README.adoc
  • rhodium-standard-repositories/spec.scm/compliance-criteria.scm
  • rhodium-standard-repositories/spec.scm/tiers.scm
  • rhodium-standard-repositories/spec.scm/version.scm
  • rhodium-standard-repositories/templates/ETHICS.md.template
  • rhodium-standard-repositories/templates/ROADMAP.md.template
  • rhodium-standard-repositories/templates/TRUST.contractile.template
  • scripts/build-registry.sh
  • scripts/build-scorecards.sh
  • scripts/check-canonical-names.sh
  • scripts/tests/build-registry-test.sh
  • scripts/tests/wave6-canonical-names-test.sh
  • standards-map.toml
  • state-a2ml/.gitlab-ci.yml
  • state-a2ml/README.adoc
  • templates/MAINTAINERS.adoc
  • testing-and-benchmarking/TESTING-TAXONOMY.adoc

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath merged commit 37395b3 into main Sep 17, 2026
14 of 20 checks passed
@hyperpolymath
hyperpolymath deleted the chore/reorg-0-canon branch September 17, 2026 19:57
@sonarqubecloud

Copy link
Copy Markdown

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.

1 participant