From 165dec8dbedfb081c2e31835d224f9944eb0a357 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 17 Sep 2026 19:52:32 +0000 Subject: [PATCH] =?UTF-8?q?release(canon):=202.0.3=20=E2=80=94=20the=200-c?= =?UTF-8?q?anon=20district,=20law=20moved=20out=20of=20the=20repo=20root?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .github/workflows/canon-spine-lockstep.yml | 8 +-- .github/workflows/registry-verify.yml | 2 +- .hypatia-baseline.json | 2 +- .machine_readable/REGISTRY.a2ml | 4 +- .machine_readable/TRUST.contractile | 2 +- .../contractiles/trust/Trustfile.a2ml | 2 +- .machine_readable/rsr-profile.a2ml | 4 +- .../scorecards/a2ml-templates.scorecard.a2ml | 2 +- .../did-you-actually-do-that.scorecard.a2ml | 6 +- .../estate-constitution.scorecard.a2ml | 8 +-- .../scorecards/hypatia-rules.scorecard.a2ml | 2 +- .../template-capability-gates.toml | 8 +-- .../CANONICAL-NAMES.adoc | 0 .../COMPLIANCE-DASHBOARD.adoc | 4 +- .../CRG-SELF-ASSESSMENT.adoc | 0 GOVERNANCE.adoc => 0-canon/GOVERNANCE.adoc | 0 .../PORT-REGISTRY.adoc | 0 .../RSR-PHILOSOPHY.adoc | 4 +- .../TEMPLATE-APPLICABILITY-POLICY.adoc | 2 +- .../constitution}/AGENTS.adoc | 0 .../constitution}/ASSURANCE-CONSTITUTION.adoc | 0 .../AUTHORITY-AND-PRECEDENCE.adoc | 0 .../constitution}/CHANGE-PROCEDURE.adoc | 0 .../CONTRIBUTION-CONSTITUTION.adoc | 0 .../constitution}/ESTATE-CONSTITUTION.adoc | 0 .../constitution}/EXCEPTIONS-AND-ANCHORS.adoc | 0 .../constitution}/KNOWN-TENSIONS.adoc | 0 .../constitution}/README.adoc | 0 0-canon/rsr/RSR-SPEC-v2.adoc | 4 +- 0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc | 2 +- 0-canon/rsr/TIERS.adoc | 2 +- 0-canon/rsr/VERSION.adoc | 4 +- 0-canon/rsr/rsr-criteria-v2.a2ml | 4 +- AGENTS.adoc | 4 +- EXPLAINME.adoc | 2 +- Justfile | 2 +- README.adoc | 2 +- TOPOLOGY.adoc | 2 +- TRUST-DEFAULTS-POLICY.adoc | 4 +- ai-instruction/opus.adoc | 2 +- ai-instruction/sonnet.adoc | 2 +- axel-protocol/CHARTER.adoc | 2 +- canon.lock | 61 ++++++++++++++++--- .../docs/NAMING-RESOLUTION.adoc | 2 +- docs/AFFIRMATION.adoc | 2 +- docs/AUDIT.adoc | 2 +- docs/BADGE-CRITERIA-SPEC.adoc | 2 +- .../TEMPLATE-VERSIONING-SPEC.a2ml | 6 +- .../ADR-005-extract-consent-aware-web.adoc | 2 +- docs/wikis/maintainers/index.adoc | 2 +- docs/wikis/users/index.adoc | 2 +- hooks/pre-commit | 4 +- rhodium-standard-repositories/.gitlab-ci.yml | 2 +- .../.well-known/consent-required.txt | 2 +- .../.well-known/provenance.json | 4 +- .../CCCP-MANIFESTO.adoc | 2 +- rhodium-standard-repositories/CHANGELOG.adoc | 2 +- rhodium-standard-repositories/CLAUDE.md | 4 +- .../COMPLIANCE_CHECKLIST.md | 6 +- .../CONTRIBUTING.adoc | 6 +- .../PROJECT-STATUS.adoc | 6 +- rhodium-standard-repositories/README.adoc | 2 +- .../docs/rhodium-init-design.adoc | 4 +- rhodium-standard-repositories/rsr-check.scm | 6 +- .../7-tentacles/.gitlab-ci.yml | 2 +- .../palimpsest-license/GOVERNANCE.adoc | 2 +- .../satellites/state.scm/.gitlab-ci.yml | 2 +- .../satellites/state.scm/CHANGELOG.adoc | 2 +- .../satellites/state.scm/MAINTAINERS.adoc | 2 +- .../satellites/state.scm/README.adoc | 2 +- .../spec.scm/compliance-criteria.scm | 2 +- .../spec.scm/tiers.scm | 2 +- .../spec.scm/version.scm | 2 +- .../templates/ETHICS.md.template | 4 +- .../templates/ROADMAP.md.template | 2 +- .../templates/TRUST.contractile.template | 2 +- scripts/build-registry.sh | 2 +- scripts/build-scorecards.sh | 12 ++-- scripts/check-canonical-names.sh | 8 +-- scripts/tests/build-registry-test.sh | 12 ++-- scripts/tests/wave6-canonical-names-test.sh | 4 +- standards-map.toml | 16 ++--- state-a2ml/.gitlab-ci.yml | 2 +- state-a2ml/README.adoc | 2 +- templates/MAINTAINERS.adoc | 2 +- .../TESTING-TAXONOMY.adoc | 2 +- 86 files changed, 180 insertions(+), 137 deletions(-) rename CANONICAL-NAMES.adoc => 0-canon/CANONICAL-NAMES.adoc (100%) rename COMPLIANCE-DASHBOARD.adoc => 0-canon/COMPLIANCE-DASHBOARD.adoc (96%) rename CRG-SELF-ASSESSMENT.adoc => 0-canon/CRG-SELF-ASSESSMENT.adoc (100%) rename GOVERNANCE.adoc => 0-canon/GOVERNANCE.adoc (100%) rename PORT-REGISTRY.adoc => 0-canon/PORT-REGISTRY.adoc (100%) rename RSR-PHILOSOPHY.adoc => 0-canon/RSR-PHILOSOPHY.adoc (98%) rename TEMPLATE-APPLICABILITY-POLICY.adoc => 0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc (98%) rename {constitution => 0-canon/constitution}/AGENTS.adoc (100%) rename {constitution => 0-canon/constitution}/ASSURANCE-CONSTITUTION.adoc (100%) rename {constitution => 0-canon/constitution}/AUTHORITY-AND-PRECEDENCE.adoc (100%) rename {constitution => 0-canon/constitution}/CHANGE-PROCEDURE.adoc (100%) rename {constitution => 0-canon/constitution}/CONTRIBUTION-CONSTITUTION.adoc (100%) rename {constitution => 0-canon/constitution}/ESTATE-CONSTITUTION.adoc (100%) rename {constitution => 0-canon/constitution}/EXCEPTIONS-AND-ANCHORS.adoc (100%) rename {constitution => 0-canon/constitution}/KNOWN-TENSIONS.adoc (100%) rename {constitution => 0-canon/constitution}/README.adoc (100%) diff --git a/.github/workflows/canon-spine-lockstep.yml b/.github/workflows/canon-spine-lockstep.yml index c36d730ce..e1a8ab708 100644 --- a/.github/workflows/canon-spine-lockstep.yml +++ b/.github/workflows/canon-spine-lockstep.yml @@ -28,9 +28,9 @@ on: - 'standards-map.toml' - '0-canon/rsr/rsr-criteria-v2.a2ml' - '.machine_readable/template-capability-gates.toml' - - 'TEMPLATE-APPLICABILITY-POLICY.adoc' + - '0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc' - '0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc' - - 'constitution/**' + - '0-canon/constitution/**' - 'scripts/check-canon-lockstep.sh' - 'scripts/check-standards-map.sh' - '.github/workflows/canon-spine-lockstep.yml' @@ -41,8 +41,8 @@ on: - 'standards-map.toml' - '0-canon/rsr/**' - '.machine_readable/**' - - 'TEMPLATE-APPLICABILITY-POLICY.adoc' - - 'constitution/**' + - '0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc' + - '0-canon/constitution/**' - 'scripts/check-canon-lockstep.sh' - 'scripts/check-standards-map.sh' workflow_dispatch: diff --git a/.github/workflows/registry-verify.yml b/.github/workflows/registry-verify.yml index 4e7264da2..99ca79e6f 100644 --- a/.github/workflows/registry-verify.yml +++ b/.github/workflows/registry-verify.yml @@ -90,7 +90,7 @@ jobs: { echo "### Compliance dashboard drift" echo "" - echo "COMPLIANCE-DASHBOARD.adoc is stale, a scorecard is malformed/orphaned," + echo "0-canon/COMPLIANCE-DASHBOARD.adoc is stale, a scorecard is malformed/orphaned," echo "or a registered spec has no scorecard. Fix locally:" echo "" echo '```sh' diff --git a/.hypatia-baseline.json b/.hypatia-baseline.json index 3c3505f52..ead4f22b1 100644 --- a/.hypatia-baseline.json +++ b/.hypatia-baseline.json @@ -792,7 +792,7 @@ "severity": "medium", "rule_module": "structural_drift", "type": "SD022", - "file": "TEMPLATE-APPLICABILITY-POLICY.adoc", + "file": "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc", "note": "TEMPORARY REVIEW BASELINE (2026-08-29): classify the policy's target-relative src/interface example before correction or rule refinement.", "expires_at": "2026-11-29", "tracking_issue": "hyperpolymath/standards#687" diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 9f919a146..24e09e992 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -34,8 +34,8 @@ integration = "Registry, hypatia rules, templates — the wiring (Stream 3)" id = "estate-constitution" name = "Hyperpolymath Estate Constitution" stream = "governance" -home = "constitution/" -canonical_doc = "constitution/README.adoc" +home = "0-canon/constitution/" +canonical_doc = "0-canon/constitution/README.adoc" source_hash = "sha256:7fbd1015a184d33391957e73f6348c7409b6298e15ef9c8bcd26bf1a6fd7d739" route = "the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions" diff --git a/.machine_readable/TRUST.contractile b/.machine_readable/TRUST.contractile index d951cc1ea..0db145954 100644 --- a/.machine_readable/TRUST.contractile +++ b/.machine_readable/TRUST.contractile @@ -20,7 +20,7 @@ ; ; Scope: ; TRUST governs AI agent behaviour only. It does not affect human -; contributors — humans follow CONTRIBUTING.md and GOVERNANCE.adoc. +; contributors — humans follow CONTRIBUTING.md and 0-canon/GOVERNANCE.adoc. ; ; Relationship to other contractiles: ; - MUST: Trust never overrides MUST. Even at maximal trust, MUST diff --git a/.machine_readable/contractiles/trust/Trustfile.a2ml b/.machine_readable/contractiles/trust/Trustfile.a2ml index 124035b4e..ef19b6867 100644 --- a/.machine_readable/contractiles/trust/Trustfile.a2ml +++ b/.machine_readable/contractiles/trust/Trustfile.a2ml @@ -1085,7 +1085,7 @@ proven_library: hash_attestation: "{{PROVEN_HASH}}" source: "verification-ecosystem/proven" verification: "libproven_ffi.a rebuilt on source change; downstream relink verified" -crg_contractile: "tracked under CRG grade requirements — see CRG-SELF-ASSESSMENT.adoc" +crg_contractile: "tracked under CRG grade requirements — see 0-canon/CRG-SELF-ASSESSMENT.adoc" security: proof: "SupplyChain.Deps.idr" diff --git a/.machine_readable/rsr-profile.a2ml b/.machine_readable/rsr-profile.a2ml index d5fa6bcc5..1d51880a0 100644 --- a/.machine_readable/rsr-profile.a2ml +++ b/.machine_readable/rsr-profile.a2ml @@ -61,7 +61,7 @@ role = "canon" capabilities = [ "bash", // scripts/ — 107 files; the gate implementations (check-*.sh) "docs-site", // .github/workflows/casket-pages.yml + pages.yml - "governance-tier", // constitution/ + docs/{AUDIT,AFFIRMATION}.adoc + GOVERNANCE + MAINTAINERS + "governance-tier", // 0-canon/constitution/ + docs/{AUDIT,AFFIRMATION}.adoc + GOVERNANCE + MAINTAINERS "reproducible-build", // guix.scm — a real Guix manifest, pins the canon's own tooling ] @@ -122,7 +122,7 @@ omitted-rationale = "The canon defines conformance; it is not an instance of it. // named in the gate table's [canon] section rather than declared here ────── // the criteria themselves (0-canon/rsr/rsr-criteria-v2.a2ml) // the gate table (.machine_readable/template-capability-gates.toml) -// the applicability policy (TEMPLATE-APPLICABILITY-POLICY.adoc) +// the applicability policy (0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc) // the reusable workflows (.github/workflows/*-reusable.yml) // docs/proofs/ — proof artefacts of the estate, not proofs of this repo // rhodium-standard-repositories/ — VENDORED, to be deleted (finding F4) diff --git a/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml b/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml index 8b781090c..7dfbd6cfc 100644 --- a/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml +++ b/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml @@ -44,7 +44,7 @@ text = "The spec MUST be tracked in the estate compliance dashboard with a score system = "COMPLIANCE-DASHBOARD.md rollup table (line 52) plus .machine_readable/scorecards/a2ml-templates.scorecard.a2ml" status = "pass" evidence = "COMPLIANCE-DASHBOARD.md line 52 lists `a2ml-templates` with real must/should/could scores (1/5, 1/3, 0/2) rather than the 'no scorecard' placeholder, and this file (.machine_readable/scorecards/a2ml-templates.scorecard.a2ml) is the tracked scorecard; rollup states 'Specs with a scorecard: 30 / 30'." -check = "grep -F '| `+a2ml-templates+`' COMPLIANCE-DASHBOARD.adoc | grep -qv 'no scorecard' && test -f .machine_readable/scorecards/a2ml-templates.scorecard.a2ml" +check = "grep -F '| `+a2ml-templates+`' 0-canon/COMPLIANCE-DASHBOARD.adoc | grep -qv 'no scorecard' && test -f .machine_readable/scorecards/a2ml-templates.scorecard.a2ml" effects = "The estate-wide rollup (1/28 specs scored, 50% system coverage) cannot include this spec's real compliance state, so any regression here is invisible at the estate level until this scorecard is produced and merged." [[should]] diff --git a/.machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml b/.machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml index aeb6fbe9e..38d3d75ad 100644 --- a/.machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml +++ b/.machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml @@ -66,10 +66,10 @@ effects = "Verification without memory cannot escalate on a repeatedly-over-clai [[should]] id = "S2" text = "The PLASMA naming collision SHOULD be resolved and recorded in canon." -system = "did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc + CANONICAL-NAMES.adoc entry" +system = "did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc + 0-canon/CANONICAL-NAMES.adoc entry" status = "pass" -evidence = "NAMING-RESOLUTION.adoc splits DYADT (claim verification) from PLASMA (licence/exactness); a DYADT/PLASMA entry is added to CANONICAL-NAMES.adoc." -check = "test -f did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc && grep -q 'DYADT' CANONICAL-NAMES.adoc && grep -q 'PLASMA' CANONICAL-NAMES.adoc" +evidence = "NAMING-RESOLUTION.adoc splits DYADT (claim verification) from PLASMA (licence/exactness); a DYADT/PLASMA entry is added to 0-canon/CANONICAL-NAMES.adoc." +check = "test -f did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc && grep -q 'DYADT' 0-canon/CANONICAL-NAMES.adoc && grep -q 'PLASMA' 0-canon/CANONICAL-NAMES.adoc" effects = "Ambiguous 'grounded by PLASMA' references would keep entangling licence exactness with claim verification." [[should]] diff --git a/.machine_readable/scorecards/estate-constitution.scorecard.a2ml b/.machine_readable/scorecards/estate-constitution.scorecard.a2ml index 81dd26690..708e61584 100644 --- a/.machine_readable/scorecards/estate-constitution.scorecard.a2ml +++ b/.machine_readable/scorecards/estate-constitution.scorecard.a2ml @@ -12,8 +12,8 @@ id = "M1" text = "The constitutional district MUST contain its declared canonical documents." system = "test: expected-path existence" status = "pass" -evidence = "constitution/ contains README, estate, authority, assurance, contribution, exceptions, tensions, change-procedure, and agent-instruction sources." -check = "test -f constitution/README.adoc && test -f constitution/ESTATE-CONSTITUTION.adoc && test -f constitution/AUTHORITY-AND-PRECEDENCE.adoc && test -f constitution/ASSURANCE-CONSTITUTION.adoc && test -f constitution/CONTRIBUTION-CONSTITUTION.adoc && test -f constitution/EXCEPTIONS-AND-ANCHORS.adoc && test -f constitution/KNOWN-TENSIONS.adoc && test -f constitution/CHANGE-PROCEDURE.adoc && test -f constitution/AGENTS.adoc" +evidence = "0-canon/constitution/ contains README, estate, authority, assurance, contribution, exceptions, tensions, change-procedure, and agent-instruction sources." +check = "test -f 0-canon/constitution/README.adoc && test -f 0-canon/constitution/ESTATE-CONSTITUTION.adoc && test -f 0-canon/constitution/AUTHORITY-AND-PRECEDENCE.adoc && test -f 0-canon/constitution/ASSURANCE-CONSTITUTION.adoc && test -f 0-canon/constitution/CONTRIBUTION-CONSTITUTION.adoc && test -f 0-canon/constitution/EXCEPTIONS-AND-ANCHORS.adoc && test -f 0-canon/constitution/KNOWN-TENSIONS.adoc && test -f 0-canon/constitution/CHANGE-PROCEDURE.adoc && test -f 0-canon/constitution/AGENTS.adoc" effects = "Missing sources would make the authority route incomplete." [[must]] @@ -44,6 +44,6 @@ id = "S1" text = "Known tensions SHOULD identify class, priority, containment, next action, and evidence status." system = "manual document review" status = "pass" -evidence = "constitution/KNOWN-TENSIONS.adoc supplies all six fields for the twelve required tensions." -check = "test $(grep -c '^|.*|.*|.*|.*|.*|' constitution/KNOWN-TENSIONS.adoc) -eq 13" +evidence = "0-canon/constitution/KNOWN-TENSIONS.adoc supplies all six fields for the twelve required tensions." +check = "test $(grep -c '^|.*|.*|.*|.*|.*|' 0-canon/constitution/KNOWN-TENSIONS.adoc) -eq 13" effects = "Omission would allow unresolved policy questions to masquerade as implementation completion." diff --git a/.machine_readable/scorecards/hypatia-rules.scorecard.a2ml b/.machine_readable/scorecards/hypatia-rules.scorecard.a2ml index 624638c23..edba94096 100644 --- a/.machine_readable/scorecards/hypatia-rules.scorecard.a2ml +++ b/.machine_readable/scorecards/hypatia-rules.scorecard.a2ml @@ -70,7 +70,7 @@ text = "hypatia-rules COULD have its own scorecards/*.scorecard.a2ml entry feedi system = "scripts/build-scorecards.sh (invoked via `just scorecards`) generates COMPLIANCE-DASHBOARD.md rows from .machine_readable/scorecards/*.scorecard.a2ml; this scorecard file feeds that generator directly." status = "pass" evidence = "hypatia-rules.scorecard.a2ml now exists at .machine_readable/scorecards/ and COMPLIANCE-DASHBOARD.md contains a real scored row for it ('| `hypatia-rules` | ❌ gap | 2/4 | 1/3 | 0/3 | 100% | 0/3 | 2026-07-03 |'), not a '⚠️ no scorecard' placeholder; the dashboard's own rollup now reads 'Specs with a scorecard: 30 / 30' with no remaining 'no scorecard' references. Verified via grep on 2026-07-17." -check = "test -f .machine_readable/scorecards/hypatia-rules.scorecard.a2ml && grep -Fq '| `+hypatia-rules+` |' COMPLIANCE-DASHBOARD.adoc" +check = "test -f .machine_readable/scorecards/hypatia-rules.scorecard.a2ml && grep -Fq '| `+hypatia-rules+` |' 0-canon/COMPLIANCE-DASHBOARD.adoc" effects = "COMPLIANCE-DASHBOARD.md explicitly lists hypatia-rules among the 27 (of 28) specs still needing a scorecard (line 58); its dashboard row reads '⚠️ no scorecard' with all dash placeholders (line 49), so estate rollup metrics (2/28 specs with scorecards after this one is added) undercount actual compliance posture." [[could]] diff --git a/.machine_readable/template-capability-gates.toml b/.machine_readable/template-capability-gates.toml index 5125ba98a..addeae8f8 100644 --- a/.machine_readable/template-capability-gates.toml +++ b/.machine_readable/template-capability-gates.toml @@ -11,7 +11,7 @@ [meta] version = "0.2.0" -policy = "TEMPLATE-APPLICABILITY-POLICY.adoc" +policy = "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc" [capabilities] # Every capability a profile may declare. @@ -55,7 +55,7 @@ paths = ["README.adoc", "EXPLAINME.adoc|docs/EXPLAINME.adoc", "LICENSE", "SECURI ".github/workflows/release.yml" = "published-package" "docs/AUDIT.adoc|AUDIT.adoc" = "governance-tier" "docs/AFFIRMATION.adoc|AFFIRMATION.adoc" = "governance-tier" -"docs/GOVERNANCE.adoc|GOVERNANCE.adoc|.github/GOVERNANCE.md" = "governance-tier" +"docs/GOVERNANCE.adoc|0-canon/GOVERNANCE.adoc|.github/GOVERNANCE.md" = "governance-tier" "docs/MAINTAINERS.adoc|MAINTAINERS.adoc" = "governance-tier" [carrier] @@ -109,8 +109,8 @@ paths = [ "0-canon/rsr/archive/", # frozen prior majors "0-canon/rsr/RSR-SPEC-v2.adoc", # prose authority ".machine_readable/template-capability-gates.toml", # this file - "TEMPLATE-APPLICABILITY-POLICY.adoc", - "constitution/", + "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc", + "0-canon/constitution/", ".github/workflows/governance-reusable.yml", # gates other repos CALL ".machine_readable/REGISTRY.a2ml", # generated index "docs/proofs/", # proof artefacts OF THE ESTATE diff --git a/CANONICAL-NAMES.adoc b/0-canon/CANONICAL-NAMES.adoc similarity index 100% rename from CANONICAL-NAMES.adoc rename to 0-canon/CANONICAL-NAMES.adoc diff --git a/COMPLIANCE-DASHBOARD.adoc b/0-canon/COMPLIANCE-DASHBOARD.adoc similarity index 96% rename from COMPLIANCE-DASHBOARD.adoc rename to 0-canon/COMPLIANCE-DASHBOARD.adoc index d3643c211..42e8ed586 100644 --- a/COMPLIANCE-DASHBOARD.adoc +++ b/0-canon/COMPLIANCE-DASHBOARD.adoc @@ -1,5 +1,5 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 -// COMPLIANCE-DASHBOARD.adoc — DERIVED from .machine_readable/scorecards/*.scorecard.a2ml +// 0-canon/COMPLIANCE-DASHBOARD.adoc — DERIVED from .machine_readable/scorecards/*.scorecard.a2ml // GENERATED FILE — DO NOT EDIT BY HAND. Run: just scorecards (scripts/build-scorecards.sh) = Standards Compliance Dashboard (derived) @@ -64,7 +64,7 @@ ____ == How this dashboard stays honest .... -scorecards/*.scorecard.a2ml ──► scripts/build-scorecards.sh ──► COMPLIANCE-DASHBOARD.adoc +scorecards/*.scorecard.a2ml ──► scripts/build-scorecards.sh ──► 0-canon/COMPLIANCE-DASHBOARD.adoc (hand-authored) │ validated vs scorecard.schema.json ▼ just scorecards-check (CI) diff --git a/CRG-SELF-ASSESSMENT.adoc b/0-canon/CRG-SELF-ASSESSMENT.adoc similarity index 100% rename from CRG-SELF-ASSESSMENT.adoc rename to 0-canon/CRG-SELF-ASSESSMENT.adoc diff --git a/GOVERNANCE.adoc b/0-canon/GOVERNANCE.adoc similarity index 100% rename from GOVERNANCE.adoc rename to 0-canon/GOVERNANCE.adoc diff --git a/PORT-REGISTRY.adoc b/0-canon/PORT-REGISTRY.adoc similarity index 100% rename from PORT-REGISTRY.adoc rename to 0-canon/PORT-REGISTRY.adoc diff --git a/RSR-PHILOSOPHY.adoc b/0-canon/RSR-PHILOSOPHY.adoc similarity index 98% rename from RSR-PHILOSOPHY.adoc rename to 0-canon/RSR-PHILOSOPHY.adoc index 9ebdf9008..4a47d7f55 100644 --- a/RSR-PHILOSOPHY.adoc +++ b/0-canon/RSR-PHILOSOPHY.adoc @@ -82,7 +82,7 @@ not assumed. Prefer a build that breaks to a build that lies. * *Propagation:* This principle MUST NOT be treated as canonical or added to the estate-common `CLAUDE.md` policy until the owner decision, dissent, effective version/hash, superseded material, and migration limits are recorded under - `constitution/CHANGE-PROCEDURE.adoc`. + `0-canon/constitution/CHANGE-PROCEDURE.adoc`. ==== *Treat the most elegant and correct long-term solution as the default choice — and say @@ -133,5 +133,5 @@ this list only after the proposal record above is complete. == See also * `hyperpolymath/manifesto` — the doctrine in the owner's voice. -* `hyperpolymath/rsr-template-repo` — `RSR-PHILOSOPHY.adoc` and the arrival-pack +* `hyperpolymath/rsr-template-repo` — `0-canon/RSR-PHILOSOPHY.adoc` and the arrival-pack that projects the Doctrine summary into every `CLAUDE.md`. diff --git a/TEMPLATE-APPLICABILITY-POLICY.adoc b/0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc similarity index 98% rename from TEMPLATE-APPLICABILITY-POLICY.adoc rename to 0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc index 34402064c..128e8ba5d 100644 --- a/TEMPLATE-APPLICABILITY-POLICY.adoc +++ b/0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc @@ -110,7 +110,7 @@ and the SPDX licence invariant (`LICENCE-POLICY.adoc`). | mobile shell (Tauri/Dioxus) | `mobile` | `affinescript/` subtree | `affinescript` | `benches/` | `benchmarks` -| `AUDIT.adoc`, `AFFIRMATION.adoc`, `GOVERNANCE.adoc`, `MAINTAINERS.adoc` | `governance-tier` +| `AUDIT.adoc`, `AFFIRMATION.adoc`, `0-canon/GOVERNANCE.adoc`, `MAINTAINERS.adoc` | `governance-tier` | `.github/workflows/release.yml`, registry metadata | `published-package` |=== diff --git a/constitution/AGENTS.adoc b/0-canon/constitution/AGENTS.adoc similarity index 100% rename from constitution/AGENTS.adoc rename to 0-canon/constitution/AGENTS.adoc diff --git a/constitution/ASSURANCE-CONSTITUTION.adoc b/0-canon/constitution/ASSURANCE-CONSTITUTION.adoc similarity index 100% rename from constitution/ASSURANCE-CONSTITUTION.adoc rename to 0-canon/constitution/ASSURANCE-CONSTITUTION.adoc diff --git a/constitution/AUTHORITY-AND-PRECEDENCE.adoc b/0-canon/constitution/AUTHORITY-AND-PRECEDENCE.adoc similarity index 100% rename from constitution/AUTHORITY-AND-PRECEDENCE.adoc rename to 0-canon/constitution/AUTHORITY-AND-PRECEDENCE.adoc diff --git a/constitution/CHANGE-PROCEDURE.adoc b/0-canon/constitution/CHANGE-PROCEDURE.adoc similarity index 100% rename from constitution/CHANGE-PROCEDURE.adoc rename to 0-canon/constitution/CHANGE-PROCEDURE.adoc diff --git a/constitution/CONTRIBUTION-CONSTITUTION.adoc b/0-canon/constitution/CONTRIBUTION-CONSTITUTION.adoc similarity index 100% rename from constitution/CONTRIBUTION-CONSTITUTION.adoc rename to 0-canon/constitution/CONTRIBUTION-CONSTITUTION.adoc diff --git a/constitution/ESTATE-CONSTITUTION.adoc b/0-canon/constitution/ESTATE-CONSTITUTION.adoc similarity index 100% rename from constitution/ESTATE-CONSTITUTION.adoc rename to 0-canon/constitution/ESTATE-CONSTITUTION.adoc diff --git a/constitution/EXCEPTIONS-AND-ANCHORS.adoc b/0-canon/constitution/EXCEPTIONS-AND-ANCHORS.adoc similarity index 100% rename from constitution/EXCEPTIONS-AND-ANCHORS.adoc rename to 0-canon/constitution/EXCEPTIONS-AND-ANCHORS.adoc diff --git a/constitution/KNOWN-TENSIONS.adoc b/0-canon/constitution/KNOWN-TENSIONS.adoc similarity index 100% rename from constitution/KNOWN-TENSIONS.adoc rename to 0-canon/constitution/KNOWN-TENSIONS.adoc diff --git a/constitution/README.adoc b/0-canon/constitution/README.adoc similarity index 100% rename from constitution/README.adoc rename to 0-canon/constitution/README.adoc diff --git a/0-canon/rsr/RSR-SPEC-v2.adoc b/0-canon/rsr/RSR-SPEC-v2.adoc index 9d2157d97..5fade8560 100644 --- a/0-canon/rsr/RSR-SPEC-v2.adoc +++ b/0-canon/rsr/RSR-SPEC-v2.adoc @@ -82,7 +82,7 @@ record dialect* (link:../../a2ml/RECORD-DIALECT-SPEC.adoc[`RECORD-DIALECT-SPEC.a * any k9 kennel data, — MUST be GENERATED from that file and MUST NOT be hand-maintained. This is -"solutions at source" (RSR-PHILOSOPHY.adoc) applied to RSR itself: a criterion +"solutions at source" (0-canon/RSR-PHILOSOPHY.adoc) applied to RSR itself: a criterion is added or changed in one place, and the checklist, checker, and badges follow. Hand-editing a generated artefact is a defect. @@ -112,7 +112,7 @@ SSOT `[tiers]` block. v1.0 scored every repository against all 11 categories, so a small Rust CLI was marked non-compliant for lacking a mobile shell, an ABI proof tree, and a web UI it was never meant to have. v2.0 adopts the capability-gate model of -link:../../TEMPLATE-APPLICABILITY-POLICY.adoc[`TEMPLATE-APPLICABILITY-POLICY.adoc`]: +link:../../TEMPLATE-APPLICABILITY-POLICY.adoc[`0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc`]: . A repository declares its capabilities in `.machine_readable/rsr-profile.a2ml` (directly or via a preset). diff --git a/0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc b/0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc index b95c15dc8..5211a5caf 100644 --- a/0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc +++ b/0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc @@ -34,7 +34,7 @@ solutions at source). | *Canon* | `hyperpolymath/standards` | WHAT a conforming repo is: `rsr-criteria-v2.a2ml` (the criteria SSOT), - `TEMPLATE-APPLICABILITY-POLICY.adoc` + `template-capability-gates.toml` + `0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc` + `template-capability-gates.toml` (the capability vocabulary and presets), this document, the reusable workflows every repo calls. diff --git a/0-canon/rsr/TIERS.adoc b/0-canon/rsr/TIERS.adoc index 5f33268e9..71966874b 100644 --- a/0-canon/rsr/TIERS.adoc +++ b/0-canon/rsr/TIERS.adoc @@ -46,7 +46,7 @@ image:../badges/rsr-silver.svg[RSR Silver,64] .Includes all Bronze requirements, plus: * [ ] CODE_OF_CONDUCT.adoc * [ ] CONTRIBUTING.adoc -* [ ] GOVERNANCE.adoc +* [ ] 0-canon/GOVERNANCE.adoc * [ ] MAINTAINERS.md * [ ] FUNDING.yml * [ ] OpenSSF Scorecard >= 7.0 diff --git a/0-canon/rsr/VERSION.adoc b/0-canon/rsr/VERSION.adoc index 3aa7c4c20..85eb822ab 100644 --- a/0-canon/rsr/VERSION.adoc +++ b/0-canon/rsr/VERSION.adoc @@ -56,7 +56,7 @@ The following components are locked in v1.0. Any changes require a new specifica | image:../badges/rsr-silver.svg[Silver,24] Silver | 90-99% -| +GOVERNANCE.adoc, MAINTAINERS.md, Scorecard ≥7.0 +| +0-canon/GOVERNANCE.adoc, MAINTAINERS.md, Scorecard ≥7.0 | *LOCKED* | image:../badges/rsr-gold.svg[Gold,24] Gold @@ -142,7 +142,7 @@ The following components are locked in v1.0. Any changes require a new specifica | `SECURITY.md` | Bronze | Vulnerability policy | `CODE_OF_CONDUCT.md` or `.adoc` | Bronze (rec.) | Community standards | `CONTRIBUTING.md` or `.adoc` | Bronze (rec.) | Contribution guide -| `GOVERNANCE.adoc` | Silver | Decision-making process +| `0-canon/GOVERNANCE.adoc` | Silver | Decision-making process | `MAINTAINERS.md` | Silver | Who maintains what | `FUNDING.yml` | Silver | Funding sources | `.gitignore` | Bronze | Ignored files diff --git a/0-canon/rsr/rsr-criteria-v2.a2ml b/0-canon/rsr/rsr-criteria-v2.a2ml index e728ac263..bbb9cb3d6 100644 --- a/0-canon/rsr/rsr-criteria-v2.a2ml +++ b/0-canon/rsr/rsr-criteria-v2.a2ml @@ -46,7 +46,7 @@ scale = "X F E D C B A maps onto the readiness-grade scale; RSR tiers are the re [scoring] # The capability-gated model (replaces v1.0's flat 'every repo needs all 11 categories'). -applicable-set = "A criterion is APPLICABLE to a repo iff its `gate` is `universal` OR the repo's .machine_readable/rsr-profile.a2ml declares the gating capability (per TEMPLATE-APPLICABILITY-POLICY.adoc). Non-applicable criteria are scored `na` and excluded from the denominator." +applicable-set = "A criterion is APPLICABLE to a repo iff its `gate` is `universal` OR the repo's .machine_readable/rsr-profile.a2ml declares the gating capability (per 0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc). Non-applicable criteria are scored `na` and excluded from the denominator." denominator = "sum of weights of APPLICABLE criteria" numerator = "sum of weights of APPLICABLE criteria whose `detect` returns pass" partial = "A criterion MAY return `partial` (e.g. some but not all files present); partial contributes half its weight and is reported explicitly." @@ -108,7 +108,7 @@ criteria = [ { id = "2.1.5", name = "contributing-md", desc = "CONTRIBUTING.md", tier = "silver", gate = "universal", detect = "root_hygiene/contributing", template_ref = ".github/CONTRIBUTING.md" }, { id = "2.1.6", name = "changelog", desc = "CHANGELOG.adoc, or .md (Keep a Changelog)", tier = "silver", gate = "universal", detect = "root_hygiene/changelog", template_ref = "CHANGELOG.adoc" }, { id = "2.1.7", name = "maintainers", desc = "MAINTAINERS.adoc", tier = "silver", gate = "governance-tier", detect = "root_hygiene/maintainers", template_ref = "docs/MAINTAINERS.adoc" }, - { id = "2.1.8", name = "governance", desc = "GOVERNANCE.adoc", tier = "gold", gate = "governance-tier", detect = "root_hygiene/governance", template_ref = "docs/GOVERNANCE.adoc" }, + { id = "2.1.8", name = "governance", desc = "0-canon/GOVERNANCE.adoc", tier = "gold", gate = "governance-tier", detect = "root_hygiene/governance", template_ref = "docs/GOVERNANCE.adoc" }, { id = "2.1.9", name = "funding", desc = "FUNDING.yml / .github/FUNDING.yml", tier = "gold", gate = "governance-tier", detect = "manual", template_ref = ".github/FUNDING.yml" }, { id = "2.1.10", name = "gitignore", desc = ".gitignore and .gitattributes present", tier = "bronze", gate = "universal", detect = "manual", template_ref = ".gitignore, .gitattributes" }, { id = "2.2.1", name = "wellknown-core", desc = ".well-known/{security.txt,ai.txt,humans.txt}", tier = "silver", gate = "universal", detect = "structural_drift/SD020", template_ref = ".well-known/" }, diff --git a/AGENTS.adoc b/AGENTS.adoc index 46a25a109..5c53f141d 100644 --- a/AGENTS.adoc +++ b/AGENTS.adoc @@ -2,7 +2,7 @@ This repository is the canonical general standards authority for the Hyperpolymath estate. Read `+0-AI-MANIFEST.a2ml+`, `+README.adoc+`, -`+constitution/README.adoc+`, and `+.machine_readable/REGISTRY.a2ml+` in +`+0-canon/constitution/README.adoc+`, and `+.machine_readable/REGISTRY.a2ml+` in that order before changing normative material. Constitutional, normative, profile, local-policy, guidance, template, @@ -12,7 +12,7 @@ applicable change procedure is completed. Evidence records what currently holds; it does not gain authority merely by being generated or machine-readable. -Canonical sources include `+constitution/+`, domain standard sources, +Canonical sources include `+0-canon/constitution/+`, domain standard sources, profile sources, and the registry source consumed by `+scripts/build-registry.sh+`. `+.machine_readable/REGISTRY.a2ml+` and `+TOPOLOGY.adoc+` are generated: never edit them directly. Preserve diff --git a/EXPLAINME.adoc b/EXPLAINME.adoc index 2ef9907f0..8535ae738 100644 --- a/EXPLAINME.adoc +++ b/EXPLAINME.adoc @@ -53,7 +53,7 @@ link:REGISTRY.adoc[REGISTRY.adoc]). | Guix-first package management | Reproducible builds via Guix. | Elegance is the default arm (proposed) -| Provisional methodology pending the ratification record in link:RSR-PHILOSOPHY.adoc[RSR-PHILOSOPHY.adoc]; it is not yet an effective architecture decision. +| Provisional methodology pending the ratification record in link:0-canon/RSR-PHILOSOPHY.adoc[0-canon/RSR-PHILOSOPHY.adoc]; it is not yet an effective architecture decision. |=== == How to use this repo diff --git a/Justfile b/Justfile index 00c84daf8..eae95fd32 100644 --- a/Justfile +++ b/Justfile @@ -99,7 +99,7 @@ hooks-install: scorecards: @bash scripts/build-scorecards.sh -# Fail if COMPLIANCE-DASHBOARD.adoc has drifted from the scorecards +# Fail if 0-canon/COMPLIANCE-DASHBOARD.adoc has drifted from the scorecards scorecards-check: @bash scripts/build-scorecards.sh --check diff --git a/README.adoc b/README.adoc index 25f040420..6782be191 100644 --- a/README.adoc +++ b/README.adoc @@ -36,7 +36,7 @@ Every other "what is this repo" doc is now a thin pointer back to these two | If you want… | Go to | The estate's highest rules, authority precedence, assurance constitution, and tension register -| link:constitution/[Constitutional district] +| link:0-canon/constitution/[Constitutional district] | The complete, verifiable index of every spec + its home + source hash | link:.machine_readable/REGISTRY.a2ml[REGISTRY.a2ml] (machine) · link:REGISTRY.adoc[REGISTRY.adoc] (prose) diff --git a/TOPOLOGY.adoc b/TOPOLOGY.adoc index ce1ef6762..48c1ecfd3 100644 --- a/TOPOLOGY.adoc +++ b/TOPOLOGY.adoc @@ -62,7 +62,7 @@ ____ [cols="34%,33%,33%",options="header"] |=== | Spec | Home | If you want… -| Hyperpolymath Estate Constitution | link:constitution/[`+constitution/+`] | the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions +| Hyperpolymath Estate Constitution | link:0-canon/constitution/[`+0-canon/constitution/+`] | the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions | RSR — Rhodium Standard Repositories | link:rhodium-standard-repositories/[`+rhodium-standard-repositories/+`] | the repository-compliance standard every repo is graded against | Session Management Standards | link:session-management-standards/[`+session-management-standards/+`] | continuity / verify / handover protocols | DYADT — Did-You-Actually-Do-That | link:did-you-actually-do-that/[`+did-you-actually-do-that/+`] | post-action agent-claim verification (Tier 4 accountability) diff --git a/TRUST-DEFAULTS-POLICY.adoc b/TRUST-DEFAULTS-POLICY.adoc index 355b907cb..599c8abeb 100644 --- a/TRUST-DEFAULTS-POLICY.adoc +++ b/TRUST-DEFAULTS-POLICY.adoc @@ -65,7 +65,7 @@ RSR template carries a copy of this document under `docs/standards/`. attack surface: the listening service is the surface, not the number, and malware-associated ports attract intrusion-detection false alarms and clashes. Record the choice in the port registry - (link:PORT-REGISTRY.adoc[PORT-REGISTRY.adoc], migrating to + (link:0-canon/PORT-REGISTRY.adoc[0-canon/PORT-REGISTRY.adoc], migrating to `hyperpolymath/verisim-data`). Example: BerryWiki uses 23779, keypad "BERRY", loopback only. * *Loopback for local tools.* Single-user local tools bind `127.0.0.1` or @@ -872,7 +872,7 @@ now dated and proposing the switch? Ruling recorded here: * link:ACCESSIBILITY-DEFAULTS-POLICY.adoc[Accessibility Defaults Policy] * link:LANGUAGE-POLICY.adoc[Language Policy] (Python ban; permitted languages) * link:TOOLING-VERSION-INTEGRITY-POLICY.adoc[Tooling Version Integrity Policy] -* link:PORT-REGISTRY.adoc[Port Registry] +* link:0-canon/PORT-REGISTRY.adoc[Port Registry] * `.machine_readable/contractiles/trust/Trustfile.a2ml` (exemplar) * `metadatastician/authority-watch`, `metadatastician/consent-aware-web`, `hyperpolymath/proven-servers`, `hyperpolymath/boj-server`, diff --git a/ai-instruction/opus.adoc b/ai-instruction/opus.adoc index a2439f768..d293f92dc 100644 --- a/ai-instruction/opus.adoc +++ b/ai-instruction/opus.adoc @@ -196,7 +196,7 @@ both arms and state in the offer itself why you depart on this occasion; an unexplained departure is a defect in the question, not a matter of style. This binds unasked design calls too: where you take the non-elegant arm without asking, report it rather than absorb it. See -`+RSR-PHILOSOPHY.adoc+`, _Elegance by default_. +`+0-canon/RSR-PHILOSOPHY.adoc+`, _Elegance by default_. === Trust level & verification diff --git a/ai-instruction/sonnet.adoc b/ai-instruction/sonnet.adoc index dba0ebc8a..ca1fbca4d 100644 --- a/ai-instruction/sonnet.adoc +++ b/ai-instruction/sonnet.adoc @@ -141,7 +141,7 @@ correctness and the absence of deferred breakage, never on which is quickest — and where you take a different one, say which and why. A design decision recorded without the arm it rejected is exactly the plausible-looking fabrication the rule above warns about. See -`+RSR-PHILOSOPHY.adoc+`, _Elegance by default_. +`+0-canon/RSR-PHILOSOPHY.adoc+`, _Elegance by default_. === Trust level & verification diff --git a/axel-protocol/CHARTER.adoc b/axel-protocol/CHARTER.adoc index 768e324c5..ee7e43c07 100644 --- a/axel-protocol/CHARTER.adoc +++ b/axel-protocol/CHARTER.adoc @@ -123,7 +123,7 @@ ASPEC explicitly does NOT aim to: == Governance Structure -See link:GOVERNANCE.adoc[GOVERNANCE.adoc] for details. +See link:0-canon/GOVERNANCE.adoc[0-canon/GOVERNANCE.adoc] for details. *Summary*: diff --git a/canon.lock b/canon.lock index b3a5beaeb..38f447845 100644 --- a/canon.lock +++ b/canon.lock @@ -113,11 +113,54 @@ # # --------------------------------------------------------------------------- +# --------------------------------------------------------------------------- +# +# 2026-09-17 - PATCH 2.0.2 -> 2.0.3. THE 0-CANON RELOCATION. +# +# The 0-canon district exists. The law moves into it: constitution/ becomes +# 0-canon/constitution/, and CANONICAL-NAMES, COMPLIANCE-DASHBOARD, +# CRG-SELF-ASSESSMENT, GOVERNANCE, PORT-REGISTRY, RSR-PHILOSOPHY and +# TEMPLATE-APPLICABILITY-POLICY leave the repo root for 0-canon/. Executed +# from standards-map.toml, which is the spec; GATE D (check-standards-map.sh) +# verifies the result bidirectionally. +# +# WHY THIS ONE IS PATCH AND THE EARLIER RELOCATION WAS A NO-BUMP. +# +# 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. 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 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 therefore fires and the rule's own menu gives the category: +# * no criterion is added, removed, re-tiered or re-gated; +# * no previously-conforming repo is made non-conforming by the criteria +# set (which is what MINOR is forbidden to do, and what would have made +# this MINOR had it happened) - the criteria text is architecturally +# unchanged, only the path it names; +# * MAJOR is an era change and does not apply. +# PATCH: editorial, no criteria-set change. Same reading of +# rsr-criteria [versioning].rule-patch as the 2.0.2 entry took. +# +# `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. +# +# Sequence, per [canon].order: the SPINE re-adopts these five hashes first, +# then this releases. Gate A enforces the order. +# +# --------------------------------------------------------------------------- + [canon] # A released major is immutable. Bumping `version` to a new MAJOR means the # prior major's criteria file is copied to 0-canon/rsr/archive/ and pinned # there; a freeze guard fails any PR that mutates a frozen major. -version = "2.0.2" +version = "2.0.3" spec_family = "rhodium-standard-repositories" status = "draft" # draft | stable released = "2026-09-17" @@ -126,7 +169,7 @@ authority = "0-canon/constitution/ESTATE-CONSTITUTION.adoc" # The full git ref that realises this canon. A tag alone is not sufficient # (tags move); a commit alone is not sufficient (it has no version). Both. commit = "0000000000000000000000000000000000000000" # ← fill at release -tag = "canon-v2.0.2" +tag = "canon-v2.0.3" # --------------------------------------------------------------------------- # THE ARTEFACT SET — the files that ARE the canon. @@ -139,25 +182,25 @@ tag = "canon-v2.0.2" [canon.artifacts] criteria = { path = "0-canon/rsr/rsr-criteria-v2.a2ml", # relocated from the vendored copy - sha256 = "7804d77127001ed50263f0783d8a11f7211e72cb5e9f6443f2acde4b08d9ab1e", + sha256 = "37cb5f679b414f6ee99c6bb62c460fd5349ff7d50cc1dab25b1e1a8e8d3c7bb9", slot = "criteria", normative = true } gates = { path = ".machine_readable/template-capability-gates.toml", # from .machine_readable/ - sha256 = "6a8b9b420519dccdd2c586da06a9a302bdbbb3dc917f49e4a7b308882471d68a", + sha256 = "b927ab0e54a0f75b20ca182afe4e48d26765ac486eef603bfc4a5e3d00281220", slot = "gates", normative = true } -applicability = { path = "TEMPLATE-APPLICABILITY-POLICY.adoc", - sha256 = "7a31dc7e555b05c16a755c5ee599105572f023a2c72f85ec0fb0097436d627b5", +applicability = { path = "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc", + sha256 = "ecf6d7be771379a03b50bbe0d9fa98d082be0dad44738cad2eadd15514539181", slot = "applicability", normative = true } lifecycle = { path = "0-canon/rsr/SCAFFOLD-LIFECYCLE.adoc", - sha256 = "0b25b3d8f2d4ce57fa2c1861b5c7e155383979c03bfcc55bc61c63a929721fdd", + sha256 = "2ef660ee2acef29148b697097ca1f676ee791a4b83aebb7d7794f461bcf6d048", slot = "lifecycle", normative = true } -constitution = { path = "constitution/", +constitution = { path = "0-canon/constitution/", # directory slots use the registry's own method: # sha256 over `git ls-files -s ` - sha256 = "7fbd1015a184d33391957e73f6348c7409b6298e15ef9c8bcd26bf1a6fd7d739", + sha256 = "e0f2c790f01b05bd331748918f197e7df0273ec0aa745908a109db3b2113bca7", method = "sha256(git ls-files -s )", slot = "constitution", normative = true } diff --git a/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc b/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc index a30e1ee1a..3384b0541 100644 --- a/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc +++ b/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc @@ -47,7 +47,7 @@ Concretely: == Recorded in canon -This resolution is to be reflected in `CANONICAL-NAMES.adoc` at the standards +This resolution is to be reflected in `0-canon/CANONICAL-NAMES.adoc` at the standards repo root (the canonical registry of estate naming decisions) so that future tooling and agents inherit the disambiguation. Until that entry lands, this document is the authority for the DYADT/PLASMA split. diff --git a/docs/AFFIRMATION.adoc b/docs/AFFIRMATION.adoc index e0815f521..0eac8bf1d 100644 --- a/docs/AFFIRMATION.adoc +++ b/docs/AFFIRMATION.adoc @@ -17,7 +17,7 @@ applies; profile A (evidential) is for implementation repos. **Status: DRAFT — UNSIGNED.** This file was added to give the canon the `governance-tier` artefact trio it declared a capability for but did not carry (`docs/AUDIT.adoc` and `docs/AFFIRMATION.adoc` were both absent, while -`GOVERNANCE.adoc` and `MAINTAINERS.adoc` were present at root). +`0-canon/GOVERNANCE.adoc` and `MAINTAINERS.adoc` were present at root). An affirmation is *signed* by the owner. That signature is not an agent's to give. Every claim below is measured and reproducible; the attestation block at diff --git a/docs/AUDIT.adoc b/docs/AUDIT.adoc index a58617c31..5171d6859 100644 --- a/docs/AUDIT.adoc +++ b/docs/AUDIT.adoc @@ -11,7 +11,7 @@ This root document exists so humans and bots can see the hard audit posture of *this* repository without having to discover the standards for the standards. Canonical source documents live in -`0-canon/rsr/` and `constitution/`. This file is the +`0-canon/rsr/` and `0-canon/constitution/`. This file is the repo-local audit gate summary for the canon itself, and it is one of the four `governance-tier` artefacts required by link:../.machine_readable/template-capability-gates.toml[`template-capability-gates.toml`] diff --git a/docs/BADGE-CRITERIA-SPEC.adoc b/docs/BADGE-CRITERIA-SPEC.adoc index d5075fbb4..189f79f72 100644 --- a/docs/BADGE-CRITERIA-SPEC.adoc +++ b/docs/BADGE-CRITERIA-SPEC.adoc @@ -213,7 +213,7 @@ H7 — Measured versus estimated is marked per criterion:: Every criterion row records which it is. `grounded` (a check ran and exited 0) is measured. `self-asserted`, `manual-only` and `aspirational` are estimated. A badge MUST publish the count of each. Source: the -`Grounded passes` column of `COMPLIANCE-DASHBOARD.adoc`. +`Grounded passes` column of `0-canon/COMPLIANCE-DASHBOARD.adoc`. [[H8]] H8 — Honest low beats dishonest high:: Where evidence is absent, the diff --git a/docs/archive/reorg-leftovers/TEMPLATE-VERSIONING-SPEC.a2ml b/docs/archive/reorg-leftovers/TEMPLATE-VERSIONING-SPEC.a2ml index 561518586..b0a178802 100644 --- a/docs/archive/reorg-leftovers/TEMPLATE-VERSIONING-SPEC.a2ml +++ b/docs/archive/reorg-leftovers/TEMPLATE-VERSIONING-SPEC.a2ml @@ -71,7 +71,7 @@ (examples (item "justfile.template") (item "setup.sh.template") - (item "GOVERNANCE.adoc.template")) + (item "0-canon/GOVERNANCE.adoc.template")) (versioning (item "Tied to RSR specification version") (item "Independent version for template improvements"))) @@ -147,7 +147,7 @@ (item " \"rsr\": {") (item " \"version\": \"3.0.0\",") (item " \"path\": \"./templates\",") - (item " \"templates\": [\"justfile\", \"setup.sh\", \"GOVERNANCE.adoc\"]") + (item " \"templates\": [\"justfile\", \"setup.sh\", \"0-canon/GOVERNANCE.adoc\"]") (item " }") (item "}"))) @@ -256,7 +256,7 @@ (item "; Compatibility: RSR Gold+")) (markdown (item "---") - (item "template: GOVERNANCE.adoc") + (item "template: 0-canon/GOVERNANCE.adoc") (item "version: 2.1.0") (item "rsr-tier: Silver+") (item "---")) diff --git a/docs/decisions/ADR-005-extract-consent-aware-web.adoc b/docs/decisions/ADR-005-extract-consent-aware-web.adoc index 9ebeb959c..b19bf9427 100644 --- a/docs/decisions/ADR-005-extract-consent-aware-web.adoc +++ b/docs/decisions/ADR-005-extract-consent-aware-web.adoc @@ -79,7 +79,7 @@ its own protocol, and is validated in CI. === Salvaged -The satellite copy carried a 418-line `GOVERNANCE.adoc` — Tri-Perimeter +The satellite copy carried a 418-line `0-canon/GOVERNANCE.adoc` — Tri-Perimeter Contribution Framework, decision authority, funding model, IETF coordination — that existed nowhere else. The live copy's `docs/governance.md` is an unrelated essay on consent in institutions; the two share a name and nothing else. It was diff --git a/docs/wikis/maintainers/index.adoc b/docs/wikis/maintainers/index.adoc index 29220f284..19e621a6b 100644 --- a/docs/wikis/maintainers/index.adoc +++ b/docs/wikis/maintainers/index.adoc @@ -44,7 +44,7 @@ NOTE: Scaffold. The link spine is complete; the connective prose is `TODO`. === 3. Readiness-grade governance -* `component-readiness-grades/` (+ ARG/FRG/TRG), `CRG-SELF-ASSESSMENT.adoc`, +* `component-readiness-grades/` (+ ARG/FRG/TRG), `0-canon/CRG-SELF-ASSESSMENT.adoc`, the demotion/overclaim detectors in `hypatia-rules/`. === 4. Decision records & policy diff --git a/docs/wikis/users/index.adoc b/docs/wikis/users/index.adoc index 8978f4c1b..8bf8e0a1c 100644 --- a/docs/wikis/users/index.adoc +++ b/docs/wikis/users/index.adoc @@ -32,7 +32,7 @@ Every Hyperpolymath repo carries six A2ML files (`STATE`, `META`, `ECOSYSTEM`, * `A2ML-REPO-TEMPLATE.adoc` — the template to stand a repo up. * `setup.sh` — bootstrap. -* `TEMPLATE-APPLICABILITY-POLICY.adoc` — which parts apply to which repo shapes. +* `0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc` — which parts apply to which repo shapes. * TODO: a 10-minute "adopt on an existing repo" worked example. === 4. Consume the reusable workflows diff --git a/hooks/pre-commit b/hooks/pre-commit index 3b03c87ad..2ce2c13b2 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -92,11 +92,11 @@ if [ -f scripts/build-registry.sh ]; then fi # Canonical-names guard: block reintroduction of the deprecated names listed in -# CANONICAL-NAMES.adoc within the staged diff. Only added lines are checked, so +# 0-canon/CANONICAL-NAMES.adoc within the staged diff. Only added lines are checked, so # not-yet-migrated existing occurrences do not trip it. if [ -f scripts/check-canonical-names.sh ]; then if ! bash scripts/check-canonical-names.sh HEAD >/dev/null 2>&1; then - echo -e "${RED}✗ Deprecated name reintroduced (see CANONICAL-NAMES.adoc):${NC}" + echo -e "${RED}✗ Deprecated name reintroduced (see 0-canon/CANONICAL-NAMES.adoc):${NC}" bash scripts/check-canonical-names.sh HEAD 2>&1 | grep '❌' || true ERRORS=$((ERRORS + 1)) fi diff --git a/rhodium-standard-repositories/.gitlab-ci.yml b/rhodium-standard-repositories/.gitlab-ci.yml index d5c2d741a..d3c469b1a 100644 --- a/rhodium-standard-repositories/.gitlab-ci.yml +++ b/rhodium-standard-repositories/.gitlab-ci.yml @@ -207,7 +207,7 @@ create-release: SECURITY.md \ CODE_OF_CONDUCT.adoc \ CONTRIBUTING.adoc \ - GOVERNANCE.adoc \ + 0-canon/GOVERNANCE.adoc \ MAINTAINERS.md \ CHANGELOG.md \ FUNDING.yml \ diff --git a/rhodium-standard-repositories/.well-known/consent-required.txt b/rhodium-standard-repositories/.well-known/consent-required.txt index 9df73b0c2..8ced3dc93 100644 --- a/rhodium-standard-repositories/.well-known/consent-required.txt +++ b/rhodium-standard-repositories/.well-known/consent-required.txt @@ -98,7 +98,7 @@ We reserve the right to revoke consent for specific bad actors who: - Strip attribution maliciously - Engage in predatory commercial practices -Revocation process documented in GOVERNANCE.adoc +Revocation process documented in 0-canon/GOVERNANCE.adoc ## Legal Basis diff --git a/rhodium-standard-repositories/.well-known/provenance.json b/rhodium-standard-repositories/.well-known/provenance.json index f423b4703..199f73a6b 100644 --- a/rhodium-standard-repositories/.well-known/provenance.json +++ b/rhodium-standard-repositories/.well-known/provenance.json @@ -122,11 +122,11 @@ "scheme": "SemVer 2.0", "currentVersion": "1.0.0", "changelog": "CHANGELOG.md", - "releasePolicy": "See GOVERNANCE.adoc" + "releasePolicy": "See 0-canon/GOVERNANCE.adoc" }, "governance": { "model": "TPCF (Tri-Perimeter Contribution Framework)", - "document": "GOVERNANCE.adoc", + "document": "0-canon/GOVERNANCE.adoc", "decisionMaking": "Consensus with maintainer veto", "contributionLevels": ["Community", "Regular", "Trusted", "Maintainer"] }, diff --git a/rhodium-standard-repositories/CCCP-MANIFESTO.adoc b/rhodium-standard-repositories/CCCP-MANIFESTO.adoc index bdd799e5d..08a419b49 100644 --- a/rhodium-standard-repositories/CCCP-MANIFESTO.adoc +++ b/rhodium-standard-repositories/CCCP-MANIFESTO.adoc @@ -75,7 +75,7 @@ metaphorically). * *Inclusive by design*: WCAG 2.1 AA accessibility, i18n from day one * *Graduated trust*: TPCF allows contribution without chaos * *No toxic meritocracy*: Recognition for quality, not quantity -* *Conflict resolution*: Clear, documented processes (GOVERNANCE.adoc) +* *Conflict resolution*: Clear, documented processes (0-canon/GOVERNANCE.adoc) *Result*: A community that’s *welcoming but not overheated*. diff --git a/rhodium-standard-repositories/CHANGELOG.adoc b/rhodium-standard-repositories/CHANGELOG.adoc index ebda862c4..c6bae3857 100644 --- a/rhodium-standard-repositories/CHANGELOG.adoc +++ b/rhodium-standard-repositories/CHANGELOG.adoc @@ -36,7 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **LICENSE.txt**: Dual MIT + Palimpsest-0.8 license - **SECURITY.md**: Security policy with 10+ dimension security architecture - **MAINTAINERS.md**: Maintainer attribution and TPCF progression path -- **GOVERNANCE.adoc**: Complete governance structure with TPCF framework +- **0-canon/GOVERNANCE.adoc**: Complete governance structure with TPCF framework - **CODE_OF_CONDUCT.adoc**: Community standards and enforcement procedures - **CONTRIBUTING.adoc**: Contribution guidelines with tri-perimeter model - **FUNDING.yml**: Funding transparency configuration diff --git a/rhodium-standard-repositories/CLAUDE.md b/rhodium-standard-repositories/CLAUDE.md index fb3f16225..961f9790b 100644 --- a/rhodium-standard-repositories/CLAUDE.md +++ b/rhodium-standard-repositories/CLAUDE.md @@ -194,7 +194,7 @@ repository-root/ ├── CODE_OF_CONDUCT.md # or .adoc ├── CONTRIBUTING.md # or .adoc ├── FUNDING.yml # MUST be .yml -├── GOVERNANCE.adoc +├── 0-canon/GOVERNANCE.adoc ├── MAINTAINERS.md ├── .gitignore # NOT "gitignore" ├── .gitattributes @@ -485,7 +485,7 @@ This is **graduated trust without gatekeeping**—everyone can contribute, but s - ✅ Conflict resolution process #### Governance Model -- ✅ GOVERNANCE.adoc defining decision-making +- ✅ 0-canon/GOVERNANCE.adoc defining decision-making - ✅ Maintainer succession process - ✅ Voting procedures if applicable - ✅ Financial transparency if funded diff --git a/rhodium-standard-repositories/COMPLIANCE_CHECKLIST.md b/rhodium-standard-repositories/COMPLIANCE_CHECKLIST.md index abe760f5d..df49e1813 100644 --- a/rhodium-standard-repositories/COMPLIANCE_CHECKLIST.md +++ b/rhodium-standard-repositories/COMPLIANCE_CHECKLIST.md @@ -61,7 +61,7 @@ Core documentation must exist with exact filenames: - [ ] `CODE_OF_CONDUCT.md` or `CODE_OF_CONDUCT.adoc` - [ ] `CONTRIBUTING.md` or `CONTRIBUTING.adoc` - [ ] `FUNDING.yml` (not `.yaml`) -- [ ] `GOVERNANCE.adoc` +- [ ] `0-canon/GOVERNANCE.adoc` - [ ] `MAINTAINERS.md` - [ ] `.gitignore` (not `gitignore`) - [ ] `.gitattributes` @@ -532,12 +532,12 @@ Must include: ### 10.3 Governance Model -- [ ] `GOVERNANCE.adoc` defining decision-making +- [ ] `0-canon/GOVERNANCE.adoc` defining decision-making - [ ] Maintainer succession process - [ ] Voting procedures (if applicable) - [ ] Financial transparency (if funded) -**Automation**: `test -f GOVERNANCE.adoc` +**Automation**: `test -f 0-canon/GOVERNANCE.adoc` --- diff --git a/rhodium-standard-repositories/CONTRIBUTING.adoc b/rhodium-standard-repositories/CONTRIBUTING.adoc index 3b1c22118..ac02e1c66 100644 --- a/rhodium-standard-repositories/CONTRIBUTING.adoc +++ b/rhodium-standard-repositories/CONTRIBUTING.adoc @@ -44,7 +44,7 @@ Please read: * link:README.adoc[README.adoc] - Project overview * link:CODE_OF_CONDUCT.adoc[CODE_OF_CONDUCT.adoc] - Community standards -* link:GOVERNANCE.adoc[GOVERNANCE.adoc] - Decision-making process +* link:0-canon/GOVERNANCE.adoc[0-canon/GOVERNANCE.adoc] - Decision-making process * link:SECURITY.md[SECURITY.md] - Security policies == Tri-Perimeter Contribution Framework (TPCF) @@ -347,7 +347,7 @@ Related: #42 [source,git] ---- -docs(readme): fix broken link to GOVERNANCE.adoc +docs(readme): fix broken link to 0-canon/GOVERNANCE.adoc The link was using .md extension instead of .adoc. ---- @@ -661,7 +661,7 @@ Violations can be reported to code-of-conduct@rhodium-standard.org == Additional Resources * link:README.adoc[README] - Project overview -* link:GOVERNANCE.adoc[GOVERNANCE] - How decisions are made +* link:0-canon/GOVERNANCE.adoc[GOVERNANCE] - How decisions are made * link:SECURITY.md[SECURITY] - Security policies * link:MAINTAINERS.adoc[MAINTAINERS] - Team structure * link:CLAUDE.md[CLAUDE.md] - AI assistant guidance diff --git a/rhodium-standard-repositories/PROJECT-STATUS.adoc b/rhodium-standard-repositories/PROJECT-STATUS.adoc index 983ec4400..f66d25576 100644 --- a/rhodium-standard-repositories/PROJECT-STATUS.adoc +++ b/rhodium-standard-repositories/PROJECT-STATUS.adoc @@ -52,7 +52,7 @@ Ideological/philosophical foundation * SECURITY.md with 10+ dimension security policy * CODE_OF_CONDUCT.adoc * CONTRIBUTING.adoc -* GOVERNANCE.adoc +* 0-canon/GOVERNANCE.adoc * MAINTAINERS.md * CHANGELOG.md * CCCP-MANIFESTO.md @@ -149,7 +149,7 @@ All templates now exist in `+templates/+`: * [x] *FEEDBACK.md.template* – Community input mechanism * [x] *SECURITY.md.template* – Vulnerability reporting, SLA * [x] *CODE_OF_CONDUCT.adoc.template* – Community standards -* [x] *GOVERNANCE.adoc.template* – Decision-making, roles, TPCF +* [x] *0-canon/GOVERNANCE.adoc.template* – Decision-making, roles, TPCF * [x] *CONTRIBUTING.adoc.template* – Workflow, commit standards ===== 1.2 Directory Structure Standards (✓ All Created) @@ -377,7 +377,7 @@ Registry) ===== 5.1 Establish Governance -* [ ] *GOVERNANCE.adoc* (finalized, not just template) +* [ ] *0-canon/GOVERNANCE.adoc* (finalized, not just template) ** Decision-making process (lazy consensus, RFCs) ** Roles: *** Maintainer (Perimeter 1 access) diff --git a/rhodium-standard-repositories/README.adoc b/rhodium-standard-repositories/README.adoc index 2df9955a9..d052b2452 100644 --- a/rhodium-standard-repositories/README.adoc +++ b/rhodium-standard-repositories/README.adoc @@ -349,7 +349,7 @@ We welcome contributions! Please read our contribution guidelines: * link:CONTRIBUTING.adoc[Contributing Guide] - How to contribute * link:CODE_OF_CONDUCT.adoc[Code of Conduct] - Community standards -* link:GOVERNANCE.adoc[Governance] - Decision-making process +* link:0-canon/GOVERNANCE.adoc[Governance] - Decision-making process * link:SECURITY.md[Security Policy] - Reporting vulnerabilities === Tri-Perimeter Contribution Framework (TPCF) diff --git a/rhodium-standard-repositories/docs/rhodium-init-design.adoc b/rhodium-standard-repositories/docs/rhodium-init-design.adoc index e014ca0c8..6fb279cd3 100644 --- a/rhodium-standard-repositories/docs/rhodium-init-design.adoc +++ b/rhodium-standard-repositories/docs/rhodium-init-design.adoc @@ -373,7 +373,7 @@ end Rhodium.Init.Types; │ [X] CODE_OF_CONDUCT.adoc │ │ [X] CONTRIBUTING.adoc │ │ [X] FUNDING.yml │ -│ [X] GOVERNANCE.adoc │ +│ [X] 0-canon/GOVERNANCE.adoc │ │ [X] REVERSIBILITY.md │ │ [X] DEPENDENCIES.md │ │ [X] ROADMAP.md │ @@ -412,7 +412,7 @@ end Rhodium.Init.Types; │ ├── CODE_OF_CONDUCT.adoc │ │ ├── CONTRIBUTING.adoc │ │ ├── FUNDING.yml │ -│ ├── GOVERNANCE.adoc │ +│ ├── 0-canon/GOVERNANCE.adoc │ │ ├── REVERSIBILITY.md │ │ ├── .well-known/ │ │ │ ├── security.txt │ diff --git a/rhodium-standard-repositories/rsr-check.scm b/rhodium-standard-repositories/rsr-check.scm index a568a6528..0d6e1ef91 100644 --- a/rhodium-standard-repositories/rsr-check.scm +++ b/rhodium-standard-repositories/rsr-check.scm @@ -210,8 +210,8 @@ (file-exists? (repo-file ".github/FUNDING.yml"))))) ;; 2.1.7 - Governance - (check 2 "2.1.7" "GOVERNANCE.adoc present" - (lambda () (or (file-exists? (repo-file "GOVERNANCE.adoc")) + (check 2 "2.1.7" "0-canon/GOVERNANCE.adoc present" + (lambda () (or (file-exists? (repo-file "0-canon/GOVERNANCE.adoc")) (file-exists? (repo-file "GOVERNANCE.md"))))) ;; 2.1.8 - Maintainers @@ -350,7 +350,7 @@ ;; Governance (check 10 "10.2.1" "GOVERNANCE document present" - (lambda () (or (file-exists? (repo-file "GOVERNANCE.adoc")) + (lambda () (or (file-exists? (repo-file "0-canon/GOVERNANCE.adoc")) (file-exists? (repo-file "GOVERNANCE.md"))))) ;; TPCF framework diff --git a/rhodium-standard-repositories/satellites/cccp/satellites/nextgen-languages/7-tentacles/.gitlab-ci.yml b/rhodium-standard-repositories/satellites/cccp/satellites/nextgen-languages/7-tentacles/.gitlab-ci.yml index 52e1244f2..a7f843943 100644 --- a/rhodium-standard-repositories/satellites/cccp/satellites/nextgen-languages/7-tentacles/.gitlab-ci.yml +++ b/rhodium-standard-repositories/satellites/cccp/satellites/nextgen-languages/7-tentacles/.gitlab-ci.yml @@ -21,7 +21,7 @@ validate: - test -f SECURITY.md - test -f CODE_OF_CONDUCT.adoc - test -f CONTRIBUTING.adoc - - test -f GOVERNANCE.adoc + - test -f 0-canon/GOVERNANCE.adoc - test -d curriculum - test -d agents - test -d tools diff --git a/rhodium-standard-repositories/satellites/palimpsest-license/GOVERNANCE.adoc b/rhodium-standard-repositories/satellites/palimpsest-license/GOVERNANCE.adoc index 60a1fddba..5d42627e4 100644 --- a/rhodium-standard-repositories/satellites/palimpsest-license/GOVERNANCE.adoc +++ b/rhodium-standard-repositories/satellites/palimpsest-license/GOVERNANCE.adoc @@ -2,7 +2,7 @@ ____ *Note:* This Markdown version is maintained for backwards compatibility. -The canonical version is now link:./GOVERNANCE.adoc[GOVERNANCE.adoc] +The canonical version is now link:./GOVERNANCE.adoc[0-canon/GOVERNANCE.adoc] (AsciiDoc format) for RSR Gold compliance. ____ diff --git a/rhodium-standard-repositories/satellites/state.scm/.gitlab-ci.yml b/rhodium-standard-repositories/satellites/state.scm/.gitlab-ci.yml index c478de47a..2c5efdf20 100644 --- a/rhodium-standard-repositories/satellites/state.scm/.gitlab-ci.yml +++ b/rhodium-standard-repositories/satellites/state.scm/.gitlab-ci.yml @@ -69,7 +69,7 @@ pages: - asciidoctor README.adoc -o public/index.html - asciidoctor USAGE.adoc -o public/usage.html - asciidoctor CONTRIBUTING.adoc -o public/contributing.html - - asciidoctor GOVERNANCE.adoc -o public/governance.html + - asciidoctor 0-canon/GOVERNANCE.adoc -o public/governance.html - asciidoctor CODE_OF_CONDUCT.adoc -o public/code-of-conduct.html artifacts: paths: diff --git a/rhodium-standard-repositories/satellites/state.scm/CHANGELOG.adoc b/rhodium-standard-repositories/satellites/state.scm/CHANGELOG.adoc index ea73aab69..969a160cc 100644 --- a/rhodium-standard-repositories/satellites/state.scm/CHANGELOG.adoc +++ b/rhodium-standard-repositories/satellites/state.scm/CHANGELOG.adoc @@ -37,7 +37,7 @@ https://semver.org/spec/v2.0.0.html[Semantic Versioning]. ** SECURITY.md ** CODE_OF_CONDUCT.adoc ** CONTRIBUTING.adoc -** GOVERNANCE.adoc +** 0-canon/GOVERNANCE.adoc ** flake.nix for Nix reproducibility ** Justfile for task automation ** Containerfile for Podman/Docker diff --git a/rhodium-standard-repositories/satellites/state.scm/MAINTAINERS.adoc b/rhodium-standard-repositories/satellites/state.scm/MAINTAINERS.adoc index df768dbcf..7af6fee56 100644 --- a/rhodium-standard-repositories/satellites/state.scm/MAINTAINERS.adoc +++ b/rhodium-standard-repositories/satellites/state.scm/MAINTAINERS.adoc @@ -23,7 +23,7 @@ Special thanks to all contributors who have helped shape STATE. == Becoming a Maintainer -See GOVERNANCE.adoc for the process of becoming a core contributor +See 0-canon/GOVERNANCE.adoc for the process of becoming a core contributor or maintainer. == Historical Maintainers diff --git a/rhodium-standard-repositories/satellites/state.scm/README.adoc b/rhodium-standard-repositories/satellites/state.scm/README.adoc index 8d26d9d25..2b24f17ca 100644 --- a/rhodium-standard-repositories/satellites/state.scm/README.adoc +++ b/rhodium-standard-repositories/satellites/state.scm/README.adoc @@ -189,7 +189,7 @@ Comparison: * `USAGE.adoc` - Comprehensive usage guide * `CHANGELOG.adoc` - Version history * `CONTRIBUTING.adoc` - Contribution guidelines -* `GOVERNANCE.adoc` - Project governance +* `0-canon/GOVERNANCE.adoc` - Project governance * `CODE_OF_CONDUCT.adoc` - Community standards === Infrastructure diff --git a/rhodium-standard-repositories/spec.scm/compliance-criteria.scm b/rhodium-standard-repositories/spec.scm/compliance-criteria.scm index 9392dd798..425b4a722 100644 --- a/rhodium-standard-repositories/spec.scm/compliance-criteria.scm +++ b/rhodium-standard-repositories/spec.scm/compliance-criteria.scm @@ -43,7 +43,7 @@ ((id . "2.1.4") (name . "coc") (description . "CODE_OF_CONDUCT.md/.adoc")) ((id . "2.1.5") (name . "contributing") (description . "CONTRIBUTING.md/.adoc")) ((id . "2.1.6") (name . "funding") (description . "FUNDING.yml")) - ((id . "2.1.7") (name . "governance") (description . "GOVERNANCE.adoc")) + ((id . "2.1.7") (name . "governance") (description . "0-canon/GOVERNANCE.adoc")) ((id . "2.1.8") (name . "maintainers") (description . "MAINTAINERS.md")) ((id . "2.1.9") (name . "gitignore") (description . ".gitignore")) ((id . "2.1.10") (name . "gitattributes") (description . ".gitattributes")) diff --git a/rhodium-standard-repositories/spec.scm/tiers.scm b/rhodium-standard-repositories/spec.scm/tiers.scm index e4330ac83..a55d8a8f6 100644 --- a/rhodium-standard-repositories/spec.scm/tiers.scm +++ b/rhodium-standard-repositories/spec.scm/tiers.scm @@ -52,7 +52,7 @@ (required-files "CODE_OF_CONDUCT.md" "CODE_OF_CONDUCT.adoc" "CONTRIBUTING.md" "CONTRIBUTING.adoc" - "GOVERNANCE.adoc" + "0-canon/GOVERNANCE.adoc" "MAINTAINERS.md" "FUNDING.yml") (well-known-files diff --git a/rhodium-standard-repositories/spec.scm/version.scm b/rhodium-standard-repositories/spec.scm/version.scm index e0308c8b4..206c2de86 100644 --- a/rhodium-standard-repositories/spec.scm/version.scm +++ b/rhodium-standard-repositories/spec.scm/version.scm @@ -79,7 +79,7 @@ ;; ;; 4. REQUIRED FILES (by tier) ;; - Bronze: README, LICENSE.txt, SECURITY.md, .gitignore, .gitattributes -;; - Silver: +GOVERNANCE.adoc, MAINTAINERS.md, FUNDING.yml, .well-known/security.txt +;; - Silver: +0-canon/GOVERNANCE.adoc, MAINTAINERS.md, FUNDING.yml, .well-known/security.txt ;; - Gold: +STATE.scm, META.scm, ECOSYSTEM.scm, .well-known/{ai,humans,provenance} ;; - Rhodium: +Formal verification, community recognition ;; diff --git a/rhodium-standard-repositories/templates/ETHICS.md.template b/rhodium-standard-repositories/templates/ETHICS.md.template index 8dd9208e1..25d5ea958 100644 --- a/rhodium-standard-repositories/templates/ETHICS.md.template +++ b/rhodium-standard-repositories/templates/ETHICS.md.template @@ -78,7 +78,7 @@ See link:LICENSE-PALIMPSEST[LICENSE-PALIMPSEST] for full terms. === Transparent Decision-Making -- **Governance model**: link:GOVERNANCE.adoc[GOVERNANCE.adoc] +- **Governance model**: link:0-canon/GOVERNANCE.adoc[0-canon/GOVERNANCE.adoc] - **Public roadmap**: link:ROADMAP.md[ROADMAP.md] - **Open discussions**: link:{repo-url}/-/discussions[Discussions] @@ -234,7 +234,7 @@ If you observe unethical use or development: == 📞 Contact - **Ethical concerns**: {ethics-email} -- **Governance questions**: link:GOVERNANCE.adoc[GOVERNANCE.adoc] +- **Governance questions**: link:0-canon/GOVERNANCE.adoc[0-canon/GOVERNANCE.adoc] - **General questions**: link:{repo-url}/-/discussions[Discussions] --- diff --git a/rhodium-standard-repositories/templates/ROADMAP.md.template b/rhodium-standard-repositories/templates/ROADMAP.md.template index 8f631bb5e..8f8b7eb7d 100644 --- a/rhodium-standard-repositories/templates/ROADMAP.md.template +++ b/rhodium-standard-repositories/templates/ROADMAP.md.template @@ -282,7 +282,7 @@ How we measure progress: 1. **Discussions**: link:{repo-url}/-/discussions[Propose new features] 2. **Issues**: link:{repo-url}/-/issues[Request features or report pain points] 3. **Merge Requests**: link:{repo-url}/-/merge_requests[Contribute implementations] -4. **Governance**: See link:GOVERNANCE.adoc[GOVERNANCE.adoc] for decision-making process +4. **Governance**: See link:0-canon/GOVERNANCE.adoc[0-canon/GOVERNANCE.adoc] for decision-making process == 📞 Contact diff --git a/rhodium-standard-repositories/templates/TRUST.contractile.template b/rhodium-standard-repositories/templates/TRUST.contractile.template index 5a717dced..9a0f67a52 100644 --- a/rhodium-standard-repositories/templates/TRUST.contractile.template +++ b/rhodium-standard-repositories/templates/TRUST.contractile.template @@ -20,7 +20,7 @@ ; ; Scope: ; TRUST governs AI agent behaviour only. It does not affect human -; contributors — humans follow CONTRIBUTING.md and GOVERNANCE.adoc. +; contributors — humans follow CONTRIBUTING.md and 0-canon/GOVERNANCE.adoc. ; ; Relationship to other contractiles: ; - MUST: Trust never overrides MUST. Even at maximal trust, MUST diff --git a/scripts/build-registry.sh b/scripts/build-registry.sh index dbc65cd41..8b3e9692c 100755 --- a/scripts/build-registry.sh +++ b/scripts/build-registry.sh @@ -59,7 +59,7 @@ TOPOLOGY="TOPOLOGY.adoc" # Add a row here when a new spec lands; the hash + topology follow automatically. # --------------------------------------------------------------------------- read -r -d '' SPECS <<'TSV' || true -estate-constitution|governance|constitution/|Hyperpolymath Estate Constitution|the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions +estate-constitution|governance|0-canon/constitution/|Hyperpolymath Estate Constitution|the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions k9-svc|foundation|k9-svc/|K9 Self-Validating Components|the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) contractiles|foundation|contractiles/|Contractiles (Must/Trust/Dust/Intend)|policy-enforcement primitives the K9 layer is built from meta-a2ml|foundation|meta-a2ml/|META.a2ml spec|architecture decisions / governance metadata format diff --git a/scripts/build-scorecards.sh b/scripts/build-scorecards.sh index 4f64216e5..578681eee 100644 --- a/scripts/build-scorecards.sh +++ b/scripts/build-scorecards.sh @@ -2,13 +2,13 @@ # SPDX-License-Identifier: MPL-2.0 # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # -# build-scorecards.sh — regenerate COMPLIANCE-DASHBOARD.adoc from the per-spec +# build-scorecards.sh — regenerate 0-canon/COMPLIANCE-DASHBOARD.adoc from the per-spec # scorecards under .machine_readable/scorecards/. # # This mirrors scripts/build-registry.sh exactly in spirit: # * The SCORECARDS are the hand-authored source of truth (one per LOCAL spec # in REGISTRY.a2ml, keyed by spec_id, validated by scorecard.schema.json). -# * COMPLIANCE-DASHBOARD.adoc is DERIVED and MUST NOT be hand-edited. +# * 0-canon/COMPLIANCE-DASHBOARD.adoc is DERIVED and MUST NOT be hand-edited. # * Deterministic + idempotent (no timestamps in generated output — the # assessed_date lives in each source scorecard). Run twice → identical. # * Honest. A `pass` requires evidence; an `aspirational` requirement is NEVER @@ -22,7 +22,7 @@ # * every scorecard MUST key to a registered spec (orphan → hard error). # # Usage: -# bash scripts/build-scorecards.sh # write COMPLIANCE-DASHBOARD.adoc +# bash scripts/build-scorecards.sh # write 0-canon/COMPLIANCE-DASHBOARD.adoc # bash scripts/build-scorecards.sh --check # verify in sync; non-zero on drift # bash scripts/build-scorecards.sh --strict # also fail if any spec lacks a scorecard # bash scripts/build-scorecards.sh --verify # RUN every pass-row's `check`; @@ -44,7 +44,7 @@ done REGISTRY=".machine_readable/REGISTRY.a2ml" SCDIR=".machine_readable/scorecards" -DASHBOARD="COMPLIANCE-DASHBOARD.adoc" +DASHBOARD="0-canon/COMPLIANCE-DASHBOARD.adoc" SCHEMA="$SCDIR/scorecard.schema.json" [ -f "$REGISTRY" ] || { echo "error: $REGISTRY not found (run: just registry)" >&2; exit 2; } @@ -274,7 +274,7 @@ emit_dashboard() { cat <<'HEADER' // SPDX-License-Identifier: CC-BY-SA-4.0 -// COMPLIANCE-DASHBOARD.adoc — DERIVED from .machine_readable/scorecards/*.scorecard.a2ml +// 0-canon/COMPLIANCE-DASHBOARD.adoc — DERIVED from .machine_readable/scorecards/*.scorecard.a2ml // GENERATED FILE — DO NOT EDIT BY HAND. Run: just scorecards (scripts/build-scorecards.sh) = Standards Compliance Dashboard (derived) @@ -364,7 +364,7 @@ HEADER == How this dashboard stays honest .... -scorecards/*.scorecard.a2ml ──► scripts/build-scorecards.sh ──► COMPLIANCE-DASHBOARD.adoc +scorecards/*.scorecard.a2ml ──► scripts/build-scorecards.sh ──► 0-canon/COMPLIANCE-DASHBOARD.adoc (hand-authored) │ validated vs scorecard.schema.json ▼ just scorecards-check (CI) diff --git a/scripts/check-canonical-names.sh b/scripts/check-canonical-names.sh index 30d102301..4b2f0ec17 100755 --- a/scripts/check-canonical-names.sh +++ b/scripts/check-canonical-names.sh @@ -3,7 +3,7 @@ # # check-canonical-names.sh — block REINTRODUCTION of deprecated names. # -# CANONICAL-NAMES.adoc (owner mandate 2026-06-30) deprecates: +# 0-canon/CANONICAL-NAMES.adoc (owner mandate 2026-06-30) deprecates: # * 6a2 -> descriptiles # * agent_instructions -> bot_directives # The bulk migration of existing occurrences is chartered separately; this guard @@ -30,7 +30,7 @@ declare -A REPL=( ["6a2"]="descriptiles" ["agent_instructions"]="bot_directives" # guard, migration/charter docs). Excluded from the check. is_excluded() { case "$1" in - CANONICAL-NAMES.adoc|scripts/check-canonical-names.sh|scripts/tests/*|\ + 0-canon/CANONICAL-NAMES.adoc|scripts/check-canonical-names.sh|scripts/tests/*|\ *MIGRATION*|*migration*|*CHANGELOG*|\ standards-update/.machine_readable/6scm-archive/.machine_readable/6a2/*) return 0 ;; esac @@ -48,7 +48,7 @@ while IFS= read -r line; do current_file="${line#+++ b/}" if ! is_excluded "$current_file" && [[ "/$current_file/" == */.machine_readable/6a2/* ]]; then - echo "❌ $current_file: reintroduces deprecated '.machine_readable/6a2/' — use '.machine_readable/descriptiles/' (CANONICAL-NAMES.adoc)" + echo "❌ $current_file: reintroduces deprecated '.machine_readable/6a2/' — use '.machine_readable/descriptiles/' (0-canon/CANONICAL-NAMES.adoc)" rc=1 fi ;; @@ -64,7 +64,7 @@ while IFS= read -r line; do for tok in "${!REPL[@]}"; do # word-ish boundary so e.g. 'v6a2ml' style false hits are limited if printf '%s' "$body" | grep -Eq "(^|[^A-Za-z0-9])$tok([^A-Za-z0-9]|$)"; then - echo "❌ $current_file: reintroduces deprecated '$tok' — use '${REPL[$tok]}' (CANONICAL-NAMES.adoc)" + echo "❌ $current_file: reintroduces deprecated '$tok' — use '${REPL[$tok]}' (0-canon/CANONICAL-NAMES.adoc)" echo " + $body" rc=1 fi diff --git a/scripts/tests/build-registry-test.sh b/scripts/tests/build-registry-test.sh index 8b2cd1707..14d2d23bc 100755 --- a/scripts/tests/build-registry-test.sh +++ b/scripts/tests/build-registry-test.sh @@ -77,8 +77,8 @@ echo "== --check detects a tree change the artefacts do not yet record ==" # forgets `just registry`. source_hash is sha256 over `git ls-files -s `, # which reads the INDEX — so the file must be STAGED for this to bite, which is # also why --check belongs after `git add`, never on a dirty worktree. -printf 'planted registry probe\n' > constitution/zzz-registry-probe.adoc -git add constitution/zzz-registry-probe.adoc +printf 'planted registry probe\n' > 0-canon/constitution/zzz-registry-probe.adoc +git add 0-canon/constitution/zzz-registry-probe.adoc out="$(bash scripts/build-registry.sh --check 2>&1)"; rc=$? if [ "$rc" -eq 1 ] && printf '%s' "$out" | grep -qF "DRIFT:"; then ok "a newly-tracked file under a spec home makes the artefacts stale" @@ -91,8 +91,8 @@ echo "== the gate's scope is the spec homes, not the whole tree ==" # Worth pinning down so nobody later mistakes this gate for whole-tree coverage: # a tracked file outside every declared home legitimately does NOT drift the # registry, because no source_hash covers it. -git rm -q --cached constitution/zzz-registry-probe.adoc >/dev/null 2>&1 -rm -f constitution/zzz-registry-probe.adoc +git rm -q --cached 0-canon/constitution/zzz-registry-probe.adoc >/dev/null 2>&1 +rm -f 0-canon/constitution/zzz-registry-probe.adoc mkdir -p .machine_readable/scorecards printf '[metadata]\nname = "zzz-probe"\n' > .machine_readable/scorecards/zzz-registry-probe.scorecard.a2ml git add .machine_readable/scorecards/zzz-registry-probe.scorecard.a2ml @@ -109,8 +109,8 @@ rm -f .machine_readable/scorecards/zzz-registry-probe.scorecard.a2ml echo echo "== regenerating clears the drift ==" # Re-plant the in-scope drift, then prove the generator resolves it. -printf 'planted registry probe\n' > constitution/zzz-registry-probe.adoc -git add constitution/zzz-registry-probe.adoc +printf 'planted registry probe\n' > 0-canon/constitution/zzz-registry-probe.adoc +git add 0-canon/constitution/zzz-registry-probe.adoc bash scripts/build-registry.sh >/dev/null 2>&1 out="$(bash scripts/build-registry.sh --check 2>&1)"; rc=$? if [ "$rc" -eq 0 ] && printf '%s' "$out" | grep -qF "OK:"; then diff --git a/scripts/tests/wave6-canonical-names-test.sh b/scripts/tests/wave6-canonical-names-test.sh index ef9cc137d..64aae9167 100755 --- a/scripts/tests/wave6-canonical-names-test.sh +++ b/scripts/tests/wave6-canonical-names-test.sh @@ -52,8 +52,8 @@ git add "$f" 2>/dev/null bash "$CHK" HEAD >/dev/null 2>&1 && ok "canonical names pass" || bad "canonical names wrongly blocked" git reset -q "$f" 2>/dev/null; rm -f "$f" -echo "== the guard excludes CANONICAL-NAMES.adoc itself ==" -grep -q 'CANONICAL-NAMES.adoc' "$CHK" && ok "mandate doc is excluded from the guard" || bad "mandate doc not excluded" +echo "== the guard excludes 0-canon/CANONICAL-NAMES.adoc itself ==" +grep -q '0-canon/CANONICAL-NAMES.adoc' "$CHK" && ok "mandate doc is excluded from the guard" || bad "mandate doc not excluded" echo echo "Wave-6 canonical-names regression: $pass passed, $fail failed" diff --git a/standards-map.toml b/standards-map.toml index 901c87ca8..4cf18f8fc 100644 --- a/standards-map.toml +++ b/standards-map.toml @@ -95,7 +95,7 @@ gate = "canon-spine-lockstep" note = "ARCHIVE, NOT A DELETABLE DUPLICATE. Earlier revisions of this map called it a vendored copy to extract and DELETE, on the assumption that the upstream repos still existed. They do not: hyperpolymath/rhodium-standard-repositories 404s, and 8 of its 10 satellites (rsr-certifier, rsr-deployer, mustfile, robot-repo-automaton, META.scm, ECOSYSTEM.scm, state.scm, well-known-ecosystem) have no external home - this is the LAST COPY. The 2 that do exist (cccp, palimpsest-license) are stale snapshots, not mirrors. Carries its own .gitmodules naming satellites/rsr-template-repo. NOT moved wholesale: actions-allowlist/ is a live published interface (raw.githubusercontent.com/.../rhodium-standard-repositories/actions-allowlist/allowed-actions.json) consumed estate-wide by allowlist-preflight-reusable.yml, so relocating it is a breaking change to consumers outside this repo." [[entry]] -from = "constitution" +from = "0-canon/constitution/" target = "0-canon/constitution/" district = "0-canon" kind = "law" @@ -108,7 +108,7 @@ gate = "canon-self-conformance" note = "highest estate rules, authority precedence, assurance" [[entry]] -from = "CANONICAL-NAMES.adoc" +from = "0-canon/CANONICAL-NAMES.adoc" target = "0-canon/CANONICAL-NAMES.adoc" district = "0-canon" kind = "law" @@ -120,7 +120,7 @@ canonical_doc = "0-canon/CANONICAL-NAMES.adoc" gate = "canon-spine-lockstep" [[entry]] -from = "COMPLIANCE-DASHBOARD.adoc" +from = "0-canon/COMPLIANCE-DASHBOARD.adoc" target = "0-canon/COMPLIANCE-DASHBOARD.adoc" district = "0-canon" kind = "law" @@ -132,7 +132,7 @@ canonical_doc = "0-canon/COMPLIANCE-DASHBOARD.adoc" gate = "canon-spine-lockstep" [[entry]] -from = "CRG-SELF-ASSESSMENT.adoc" +from = "0-canon/CRG-SELF-ASSESSMENT.adoc" target = "0-canon/CRG-SELF-ASSESSMENT.adoc" district = "0-canon" kind = "law" @@ -144,7 +144,7 @@ canonical_doc = "0-canon/CRG-SELF-ASSESSMENT.adoc" gate = "canon-spine-lockstep" [[entry]] -from = "GOVERNANCE.adoc" +from = "0-canon/GOVERNANCE.adoc" target = "0-canon/GOVERNANCE.adoc" district = "0-canon" kind = "law" @@ -156,7 +156,7 @@ canonical_doc = "0-canon/GOVERNANCE.adoc" gate = "canon-spine-lockstep" [[entry]] -from = "PORT-REGISTRY.adoc" +from = "0-canon/PORT-REGISTRY.adoc" target = "0-canon/PORT-REGISTRY.adoc" district = "0-canon" kind = "law" @@ -168,7 +168,7 @@ canonical_doc = "0-canon/PORT-REGISTRY.adoc" gate = "canon-spine-lockstep" [[entry]] -from = "RSR-PHILOSOPHY.adoc" +from = "0-canon/RSR-PHILOSOPHY.adoc" target = "0-canon/RSR-PHILOSOPHY.adoc" district = "0-canon" kind = "law" @@ -180,7 +180,7 @@ canonical_doc = "0-canon/RSR-PHILOSOPHY.adoc" gate = "canon-spine-lockstep" [[entry]] -from = "TEMPLATE-APPLICABILITY-POLICY.adoc" +from = "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc" target = "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc" district = "0-canon" kind = "law" diff --git a/state-a2ml/.gitlab-ci.yml b/state-a2ml/.gitlab-ci.yml index c478de47a..2c5efdf20 100644 --- a/state-a2ml/.gitlab-ci.yml +++ b/state-a2ml/.gitlab-ci.yml @@ -69,7 +69,7 @@ pages: - asciidoctor README.adoc -o public/index.html - asciidoctor USAGE.adoc -o public/usage.html - asciidoctor CONTRIBUTING.adoc -o public/contributing.html - - asciidoctor GOVERNANCE.adoc -o public/governance.html + - asciidoctor 0-canon/GOVERNANCE.adoc -o public/governance.html - asciidoctor CODE_OF_CONDUCT.adoc -o public/code-of-conduct.html artifacts: paths: diff --git a/state-a2ml/README.adoc b/state-a2ml/README.adoc index ae25d6f20..2335e26fc 100644 --- a/state-a2ml/README.adoc +++ b/state-a2ml/README.adoc @@ -188,7 +188,7 @@ updated = "2025-12-08" * `USAGE.adoc` - Comprehensive usage guide * `CHANGELOG.adoc` - Version history * `CONTRIBUTING.adoc` - Contribution guidelines -* `GOVERNANCE.adoc` - Project governance +* `0-canon/GOVERNANCE.adoc` - Project governance * `CODE_OF_CONDUCT.adoc` - Community standards === Infrastructure diff --git a/templates/MAINTAINERS.adoc b/templates/MAINTAINERS.adoc index 9910dd8f3..4821bfa87 100644 --- a/templates/MAINTAINERS.adoc +++ b/templates/MAINTAINERS.adoc @@ -60,6 +60,6 @@ For questions about project governance: == See Also -* link:GOVERNANCE.adoc[Governance Model] +* link:0-canon/GOVERNANCE.adoc[Governance Model] * link:CODE_OF_CONDUCT.md[Code of Conduct] * link:CONTRIBUTING.adoc[Contributing Guide] diff --git a/testing-and-benchmarking/TESTING-TAXONOMY.adoc b/testing-and-benchmarking/TESTING-TAXONOMY.adoc index 9830e5d5f..c66e8c2de 100644 --- a/testing-and-benchmarking/TESTING-TAXONOMY.adoc +++ b/testing-and-benchmarking/TESTING-TAXONOMY.adoc @@ -91,7 +91,7 @@ how a suite quietly becomes evidence for something nobody checked. This is the proposed estate doctrine _elegance by default_ applied to testing; it remains provisional until the ratification record in -link:../RSR-PHILOSOPHY.adoc[`RSR-PHILOSOPHY.adoc`] has an owner decision, dissent +link:../RSR-PHILOSOPHY.adoc[`0-canon/RSR-PHILOSOPHY.adoc`] has an owner decision, dissent record, and effective version or hash. == Part I: Test Categories