From f53cecca862799b8cac70f1ecaa72b43b9e6ca50 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Fri, 16 Oct 2026 23:04:46 +0100 Subject: [PATCH 1/9] Update and rename 0-AI-MANIFEST.a2ml to 0-AI-MANIFEST.deed Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com> --- 0-AI-MANIFEST.a2ml | 58 ---------------------------------------------- 0-AI-MANIFEST.deed | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 58 deletions(-) delete mode 100644 0-AI-MANIFEST.a2ml create mode 100644 0-AI-MANIFEST.deed diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml deleted file mode 100644 index 26654a3ca..000000000 --- a/0-AI-MANIFEST.a2ml +++ /dev/null @@ -1,58 +0,0 @@ -# STOP — CANONICAL MACHINE ENTRY POINT (read this first) - -**This is the canonical machine front door for `hyperpolymath/standards`.** -The canonical *human* front door is `README.adoc`. Every other "what is this -repo" doc (EXPLAINME.adoc, TOPOLOGY.adoc, QUICKSTART-*.adoc, llm-warmup-*.md) is a -thin pointer back to one of these two. - -## WHAT IS THIS REPO? - -The organization-wide standards monorepo: ~30 specs that govern every -Hyperpolymath project — K9 self-validating -components, the protocols, the readiness-grading frameworks (ARG/FRG/CRG/TRG), -RSR compliance, and the enforcement/CI that makes them stick. - -## ROUTING — where to go for X (machine index) - -| If you want… | Go to | -|---|---| -| K9 foundation (Stream 1) | `1-formats/k9/`, `1-formats/contractiles/` | -| Language policy (Stream 2) | `.claude/CLAUDE.md` | -| Protocols | `*-protocol/` | -| Readiness grades | `adoption-readiness-grades/`, `foundations-readiness-grades/`, `component-readiness-grades/`, `toolchain-readiness-grades/` | -| Multi-repository task scope | `docs/MULTI-REPOSITORY-SCOPE-STANDARD.adoc`; illustrative declaration: `docs/repo-scope.example.toml` | -| Enforcement / CI | `.github/workflows/`, `hooks/` | -| Drift / staleness automation | `hypatia-rules/`; reusable-pin freshness: `docs/decisions/ADR-003-workflow-pin-staleness-window.adoc`, `scripts/check-workflow-staleness.sh`, `scripts/propagate-workflow-pins.sh` | -| Derived architecture map | `TOPOLOGY.adoc` (do not edit) | -| Current project state | `.machine_readable/descriptiles/STATE.a2ml` | -| Education layer (deep docs, by audience) | `docs/wikis/` (Users / Developers / Maintainers); machine mirror `docs/wikis/0.2-AI-MANIFEST.a2ml` | - -## CORE INVARIANTS - -1. **No A2ML duplication** — root must NOT contain STATE.a2ml, META.a2ml, etc. -2. **Single source of truth** — `.machine_readable/descriptiles/` is authoritative for state. -3. **Licence is Manual-Only for agents** — every file's licence/SPDX is set by - the owner. Agents NEVER edit, sweep, or relicense `LICENSE` files or SPDX - headers; licence drift is FLAG-ONLY (`:review`). See `LICENSE`, - `.machine_readable/licensing-policy.toml`, and `.claude/CLAUDE.md`. -4. **Author attribution** — "Jonathan D.A. Jewell ". - -## SESSION STARTUP CHECKLIST - -- Read THIS file, then `README.adoc`. -- Read `.machine_readable/descriptiles/STATE.a2ml` for current status + blockers. -- Read `.machine_readable/descriptiles/AGENTIC.a2ml` for interaction patterns. -- Read `.claude/CLAUDE.md` for the language + licence policy (binding). - -## ATTESTATION - -After reading, state: **"I have read the standards manifest. The human front -door is README.adoc. -Licence/SPDX is Manual-Only — I will flag, never edit."** - -## META - -- **Format Version:** 2.0.0 -- **Maintained By:** Jonathan D.A. Jewell (hyperpolymath) -- **Licence:** see `LICENSE` -- **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol diff --git a/0-AI-MANIFEST.deed b/0-AI-MANIFEST.deed new file mode 100644 index 000000000..41e53f85f --- /dev/null +++ b/0-AI-MANIFEST.deed @@ -0,0 +1,46 @@ +;; SPDX-FileCopyrightText: © 2026 Jonathan D.A. Jewell (hyperpolymath) +;; SPDX-License-Identifier: CC-BY-SA-4.0 +(repo-deed + :schema-version "1.0.0" + :canonical-name "github.com/hyperpolymath/standards" + :repo-uuid #u8"gv-clade-index:github.com/hyperpolymath/standards" + :beholding-chora #u5"estate/chora" + + (purpose + "The organization-wide standards monorepo: ~30 specs that govern every Hyperpolymath project — K9 self-validating components, the protocols, the readiness-grading frameworks (ARG/FRG/CRG/TRG), RSR compliance, and the enforcement/CI that makes them stick.") + + (front-doors + :machine "standards_chora.deed" + :human "README.adoc") + + (routing + (k9-foundation "1-formats/k9/" "1-formats/contractiles/") + (language-policy ".claude/CLAUDE.md") + (protocols "*-protocol/") + (readiness-grades "adoption-readiness-grades/" "foundations-readiness-grades/" "component-readiness-grades/" "toolchain-readiness-grades/") + (multi-repository-scope "docs/MULTI-REPOSITORY-SCOPE-STANDARD.adoc" "docs/repo-scope.example.toml") + (enforcement-ci ".github/workflows/" "hooks/") + (drift-automation "hypatia-rules/" "docs/decisions/ADR-003-workflow-pin-staleness-window.adoc" "scripts/check-workflow-staleness.sh" "scripts/propagate-workflow-pins.sh") + (derived-architecture-map "TOPOLOGY.adoc") + (current-project-state ".machine_readable/descriptiles/STATE.deed") + (education-layer "docs/wikis/" "docs/wikis/0.2-AI-MANIFEST.deed")) + + (invariants + (rule :priority 10 "No A2ML/DEED duplication — root must NOT contain STATE.deed, META.deed, etc.") + (rule :priority 20 "Single source of truth — .machine_readable/descriptiles/ is authoritative for state.") + (rule :priority 30 "Licence is Manual-Only for agents — every file's licence/SPDX is set by the owner. Agents NEVER edit, sweep, or relicense LICENSE files or SPDX headers; licence drift is FLAG-ONLY (:review). See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") + (rule :priority 40 "Author attribution — Jonathan D.A. Jewell ")) + + (startup-checklist + "Read THIS file, then README.adoc." + "Read .machine_readable/descriptiles/STATE.deed for current status + blockers." + "Read .machine_readable/descriptiles/AGENTIC.deed for interaction patterns." + "Read .claude/CLAUDE.md for the language + licence policy (binding).") + + (attestation + "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX is Manual-Only — I will flag, never edit.") + + (meta + :maintained-by "Jonathan D.A. Jewell (hyperpolymath) " + :protocol "https://github.com/hyperpolymath/0-ai-gatekeeper-protocol") +) From 191e06918161b74f7eed5b88c68a64c082b112f7 Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 22:13:29 +0000 Subject: [PATCH 2/9] docs: fix manifest links and clarify SPDX rules for new files --- 0-AI-MANIFEST.deed | 6 +++--- README.adoc | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/0-AI-MANIFEST.deed b/0-AI-MANIFEST.deed index 41e53f85f..af8ba3e3f 100644 --- a/0-AI-MANIFEST.deed +++ b/0-AI-MANIFEST.deed @@ -10,7 +10,7 @@ "The organization-wide standards monorepo: ~30 specs that govern every Hyperpolymath project — K9 self-validating components, the protocols, the readiness-grading frameworks (ARG/FRG/CRG/TRG), RSR compliance, and the enforcement/CI that makes them stick.") (front-doors - :machine "standards_chora.deed" + :machine "0-AI-MANIFEST.deed" :human "README.adoc") (routing @@ -28,7 +28,7 @@ (invariants (rule :priority 10 "No A2ML/DEED duplication — root must NOT contain STATE.deed, META.deed, etc.") (rule :priority 20 "Single source of truth — .machine_readable/descriptiles/ is authoritative for state.") - (rule :priority 30 "Licence is Manual-Only for agents — every file's licence/SPDX is set by the owner. Agents NEVER edit, sweep, or relicense LICENSE files or SPDX headers; licence drift is FLAG-ONLY (:review). See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") + (rule :priority 30 "Licence changes are Manual-Only, owner-only. Agents may add the correct SPDX header when creating a new file, following the repo's licence classification. Agents NEVER edit, sweep, or relicense existing LICENSE files or SPDX headers; licence drift is FLAG-ONLY (:review). See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") (rule :priority 40 "Author attribution — Jonathan D.A. Jewell ")) (startup-checklist @@ -38,7 +38,7 @@ "Read .claude/CLAUDE.md for the language + licence policy (binding).") (attestation - "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX is Manual-Only — I will flag, never edit.") + "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX changes to existing files are Manual-Only — I will flag, never edit. I may add the correct SPDX header when creating a new file, following the repo's licence classification.") (meta :maintained-by "Jonathan D.A. Jewell (hyperpolymath) " diff --git a/README.adoc b/README.adoc index 18db07c54..70bb5a765 100644 --- a/README.adoc +++ b/README.adoc @@ -23,7 +23,7 @@ routes off them: | You are… | Start at | Then | A **human** | this file (link:README.adoc[README.adoc]) | follow the routing table below -| An **AI agent** | link:0-AI-MANIFEST.a2ml[0-AI-MANIFEST.a2ml] | then follow its routing table +| An **AI agent** | link:0-AI-MANIFEST.deed[0-AI-MANIFEST.deed] | then follow its routing table |=== Every other "what is this repo" doc is now a thin pointer back to these two From 718e149b0b7a52801f85953ef1bd9b22455420b7 Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 22:15:50 +0000 Subject: [PATCH 3/9] fix(must): check for 0-AI-MANIFEST.deed --- .machine_readable/contractiles/must/Mustfile.a2ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.machine_readable/contractiles/must/Mustfile.a2ml b/.machine_readable/contractiles/must/Mustfile.a2ml index 342002f0f..37351062a 100644 --- a/.machine_readable/contractiles/must/Mustfile.a2ml +++ b/.machine_readable/contractiles/must/Mustfile.a2ml @@ -35,8 +35,8 @@ requirements — CI and pre-commit hooks fail if any check fails. - severity: critical ### ai-manifest -- description: 0-AI-MANIFEST.a2ml must exist -- run: test -f 0-AI-MANIFEST.a2ml +- description: 0-AI-MANIFEST.deed must exist +- run: test -f 0-AI-MANIFEST.deed - severity: critical ### machine-readable-dir From a12a559aa897705f89ffa27bf4012d02bf79f17b Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 22:53:23 +0000 Subject: [PATCH 4/9] fix(deed): validate 0-AI-MANIFEST.deed as repo-deed --- 0-AI-MANIFEST.deed | 36 +++++++++++----------- 1-formats/deed/README.adoc | 18 +++++++++-- 1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc | 18 +++++++++-- 1-formats/deed/spec/abnf/deed.abnf | 10 ++++-- 1-formats/deed/tools/README.adoc | 2 +- 1-formats/deed/tools/deed_lint.js | 6 ++-- 1-formats/deed/tools/deed_lint.test.js | 20 ++++++++++++ standards-map.toml | 30 +++++++++--------- 8 files changed, 96 insertions(+), 44 deletions(-) diff --git a/0-AI-MANIFEST.deed b/0-AI-MANIFEST.deed index af8ba3e3f..5586685c2 100644 --- a/0-AI-MANIFEST.deed +++ b/0-AI-MANIFEST.deed @@ -7,38 +7,38 @@ :beholding-chora #u5"estate/chora" (purpose - "The organization-wide standards monorepo: ~30 specs that govern every Hyperpolymath project — K9 self-validating components, the protocols, the readiness-grading frameworks (ARG/FRG/CRG/TRG), RSR compliance, and the enforcement/CI that makes them stick.") + :text "The organization-wide standards monorepo: ~30 specs that govern every Hyperpolymath project — K9 self-validating components, the protocols, the readiness-grading frameworks (ARG/FRG/CRG/TRG), RSR compliance, and the enforcement/CI that makes them stick.") (front-doors :machine "0-AI-MANIFEST.deed" :human "README.adoc") (routing - (k9-foundation "1-formats/k9/" "1-formats/contractiles/") - (language-policy ".claude/CLAUDE.md") - (protocols "*-protocol/") - (readiness-grades "adoption-readiness-grades/" "foundations-readiness-grades/" "component-readiness-grades/" "toolchain-readiness-grades/") - (multi-repository-scope "docs/MULTI-REPOSITORY-SCOPE-STANDARD.adoc" "docs/repo-scope.example.toml") - (enforcement-ci ".github/workflows/" "hooks/") - (drift-automation "hypatia-rules/" "docs/decisions/ADR-003-workflow-pin-staleness-window.adoc" "scripts/check-workflow-staleness.sh" "scripts/propagate-workflow-pins.sh") - (derived-architecture-map "TOPOLOGY.adoc") - (current-project-state ".machine_readable/descriptiles/STATE.deed") - (education-layer "docs/wikis/" "docs/wikis/0.2-AI-MANIFEST.deed")) + (k9-foundation :paths ("1-formats/k9/" "1-formats/contractiles/")) + (language-policy :paths (".claude/CLAUDE.md")) + (protocols :paths ("*-protocol/")) + (readiness-grades :paths ("adoption-readiness-grades/" "foundations-readiness-grades/" "component-readiness-grades/" "toolchain-readiness-grades/")) + (multi-repository-scope :paths ("docs/MULTI-REPOSITORY-SCOPE-STANDARD.adoc" "docs/repo-scope.example.toml")) + (enforcement-ci :paths (".github/workflows/" "hooks/")) + (drift-automation :paths ("hypatia-rules/" "docs/decisions/ADR-003-workflow-pin-staleness-window.adoc" "scripts/check-workflow-staleness.sh" "scripts/propagate-workflow-pins.sh")) + (derived-architecture-map :paths ("TOPOLOGY.adoc")) + (current-project-state :paths (".machine_readable/descriptiles/STATE.deed")) + (education-layer :paths ("docs/wikis/" "docs/wikis/0.2-AI-MANIFEST.deed"))) (invariants - (rule :priority 10 "No A2ML/DEED duplication — root must NOT contain STATE.deed, META.deed, etc.") - (rule :priority 20 "Single source of truth — .machine_readable/descriptiles/ is authoritative for state.") - (rule :priority 30 "Licence changes are Manual-Only, owner-only. Agents may add the correct SPDX header when creating a new file, following the repo's licence classification. Agents NEVER edit, sweep, or relicense existing LICENSE files or SPDX headers; licence drift is FLAG-ONLY (:review). See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") - (rule :priority 40 "Author attribution — Jonathan D.A. Jewell ")) + (rule :priority 10 :text "No A2ML/DEED duplication — root must NOT contain STATE.deed, META.deed, etc.") + (rule :priority 20 :text "Single source of truth — .machine_readable/descriptiles/ is authoritative for state.") + (rule :priority 30 :text "Licence changes are Manual-Only, owner-only. Agents may add the correct SPDX header when creating a new file, following the repo's licence classification. Agents NEVER edit, sweep, or relicense existing LICENSE files or SPDX headers; licence drift is FLAG-ONLY (:review). See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") + (rule :priority 40 :text "Author attribution — Jonathan D.A. Jewell ")) (startup-checklist - "Read THIS file, then README.adoc." + :steps ("Read THIS file, then README.adoc." "Read .machine_readable/descriptiles/STATE.deed for current status + blockers." "Read .machine_readable/descriptiles/AGENTIC.deed for interaction patterns." - "Read .claude/CLAUDE.md for the language + licence policy (binding).") + "Read .claude/CLAUDE.md for the language + licence policy (binding).")) (attestation - "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX changes to existing files are Manual-Only — I will flag, never edit. I may add the correct SPDX header when creating a new file, following the repo's licence classification.") + :text "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX changes to existing files are Manual-Only — I will flag, never edit. I may add the correct SPDX header when creating a new file, following the repo's licence classification.") (meta :maintained-by "Jonathan D.A. Jewell (hyperpolymath) " diff --git a/1-formats/deed/README.adoc b/1-formats/deed/README.adoc index b84792de3..23c8b0cf0 100644 --- a/1-formats/deed/README.adoc +++ b/1-formats/deed/README.adoc @@ -1,5 +1,5 @@ = DEED Grammar Specification -:version: 0.2.2 +:version: 0.2.3 :status: DRAFT :toc: :toclevels: 3 @@ -24,7 +24,7 @@ throughout and is *not* part of the v0.1 conformance surface. parsing. The EBNF in <> is informative. + NOTE (standards#837): owner ruling 2026-09-19 brought the grammar files -together — `deed.abnf` (now v1.1.0) is the sole normative grammar. The v0.1.0 +together — `deed.abnf` (now v1.2.0) is the sole normative grammar. The v0.1.0 DRAFT archive lives at `archive/deed.abnf_v0.1.0-draft` under its true version (it was previously misnamed `deed.abnf_v1.0`). @@ -40,6 +40,12 @@ Compatible with: |=== | Version | Date | Changes +| 0.2.3 +| 2026-10-16 +| Aligned to `deed.abnf` v1.2.0: the exact canonical machine front door + `0-AI-MANIFEST.deed` dispatches to `repo-deed`. Other filename rules + and clause syntax are unchanged. + | 0.2.2 | 2026-10-07 | Aligned to `deed.abnf` v1.1.0 (owner rulings D305/D320): added the @@ -316,6 +322,10 @@ case-sensitive. | `repo-deed` | Noun. What a repo IS. A record. +| `0-AI-MANIFEST.deed` (exact) +| `repo-deed` +| The canonical machine front door, recording repository routing and invariants. + | `ATLAS.deed` (exact) | `estate-atlas-deed` | Noun. The registry of all deeds. @@ -337,6 +347,8 @@ implementation MUST test the exact name `estate_chora.deed` BEFORE the `*_chora.deed` pattern, and MUST NOT parse `estate_chora.deed` as a `repo-deed`. Equivalently, the repo form is `_chora.deed` where `` is any non-empty stem other than the exact string `estate`. +The exact `0-AI-MANIFEST.deed` name also selects `repo-deed`; other plain +`.deed` names remain invalid. [NOTE] ==== @@ -898,7 +910,7 @@ locally. Either the estate chora gains it, or `extends-vocabulary` lands. == References -* link:spec/abnf/deed.abnf[DEED ABNF (v1.1.0, normative)] · +* link:spec/abnf/deed.abnf[DEED ABNF (v1.2.0, normative)] · link:spec/abnf/archive/deed.abnf_v0.1.0-draft[v0.1.0 DRAFT archive] * link:https://www.rfc-editor.org/rfc/rfc7405[RFC 7405] (case-sensitive ABNF strings) * link:https://www.rfc-editor.org/rfc/rfc4122[RFC 4122] §4.3 (UUID v5) diff --git a/1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc b/1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc index 7f6c132c4..1f7fef4d6 100644 --- a/1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc +++ b/1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc @@ -1,5 +1,5 @@ = DEED Grammar Specification -:version: 0.2.2 +:version: 0.2.3 :status: DRAFT :media-type: application/vnd.deed :toc: @@ -25,7 +25,7 @@ throughout and is *not* part of the v0.1 conformance surface. parsing. The EBNF in <> is informative. + NOTE (standards#837): owner ruling 2026-09-19 brought the grammar files -together — `deed.abnf` (now v1.1.0) is the sole normative grammar. The v0.1.0 +together — `deed.abnf` (now v1.2.0) is the sole normative grammar. The v0.1.0 DRAFT archive lives at `archive/deed.abnf_v0.1.0-draft` under its true version (it was previously misnamed `deed.abnf_v1.0`). @@ -41,6 +41,12 @@ Compatible with: |=== | Version | Date | Changes +| 0.2.3 +| 2026-10-16 +| Aligned to `deed.abnf` v1.2.0: the exact canonical machine front door + `0-AI-MANIFEST.deed` dispatches to `repo-deed`. Other filename rules + and clause syntax are unchanged. + | 0.2.2 | 2026-10-07 | Aligned to `deed.abnf` v1.1.0 (owner rulings D305/D320): added the @@ -317,6 +323,10 @@ case-sensitive. | `repo-deed` | Noun. What a repo IS. A record. +| `0-AI-MANIFEST.deed` (exact) +| `repo-deed` +| The canonical machine front door, recording repository routing and invariants. + | `ATLAS.deed` (exact) | `estate-atlas-deed` | Noun. The registry of all deeds. @@ -338,6 +348,8 @@ implementation MUST test the exact name `estate_chora.deed` BEFORE the `*_chora.deed` pattern, and MUST NOT parse `estate_chora.deed` as a `repo-deed`. Equivalently, the repo form is `_chora.deed` where `` is any non-empty stem other than the exact string `estate`. +The exact `0-AI-MANIFEST.deed` name also selects `repo-deed`; other plain +`.deed` names remain invalid. [NOTE] ==== @@ -899,7 +911,7 @@ locally. Either the estate chora gains it, or `extends-vocabulary` lands. == References -* link:./abnf/deed.abnf[DEED ABNF (v1.1.0, normative)] · +* link:./abnf/deed.abnf[DEED ABNF (v1.2.0, normative)] · link:./abnf/archive/deed.abnf_v0.1.0-draft[v0.1.0 DRAFT archive] * link:https://www.rfc-editor.org/rfc/rfc7405[RFC 7405] (case-sensitive ABNF strings) * link:https://www.rfc-editor.org/rfc/rfc4122[RFC 4122] §4.3 (UUID v5) diff --git a/1-formats/deed/spec/abnf/deed.abnf b/1-formats/deed/spec/abnf/deed.abnf index 7b70af580..34f3747b7 100644 --- a/1-formats/deed/spec/abnf/deed.abnf +++ b/1-formats/deed/spec/abnf/deed.abnf @@ -2,7 +2,7 @@ ; SPDX-License-Identifier: MPL-2.0 ; SPDX-License-Identifier: CC-BY-SA-4.0 ; -; DEED grammar, v1.1.0 +; DEED grammar, v1.2.0 ; Normative for parsing. Prose and rationale: ../DEED-GRAMMAR-SPEC.adoc ; ; NOTICE (standards#837): OWNER RULING 2026-09-19 — the grammar files have @@ -17,6 +17,10 @@ ; The only bracket is "(". A file using "=" as a field separator is not a deed. ; ("=" MAY appear INSIDE a symbol, e.g., a comparison operator.) ; +; CHANGELOG (v1.1.0 → v1.2.0, 2026-10-16): +; - Added exact filename 0-AI-MANIFEST.deed -> repo-deed for the canonical +; machine front door. Existing filename dispatch and clause syntax remain. +; ; CHANGELOG (v1.0.0 → v1.1.0, owner rulings D305/D320, 2026-10-07): ; - Added uuid8 (#u8"domain:name"), the ADR-008 profile C literal. Additive: ; uuid5 stays legal until its own cutover, so every v1.0.0 deed is a v1.1.0 deed. @@ -54,6 +58,7 @@ doc-head = %s"estate-deed" ; filename dispatch (see deed-filename below). ; estate_chora.deed → estate-deed ; ATLAS.deed → estate-atlas-deed + ; 0-AI-MANIFEST.deed → repo-deed ; *_praxis.deed → praxis-deed ; *_chora.deed → repo-deed ; A mismatch is a validation error. @@ -66,9 +71,10 @@ doc-head = %s"estate-deed" ; ("_chora.deed", "_praxis.deed", etc.). Do NOT split on "." — the ; stem may contain dots (e.g., "my.project_chora.deed" → stem "my.project"). -deed-filename = estate-file / atlas-file / praxis-file / repo-file +deed-filename = estate-file / atlas-file / manifest-file / praxis-file / repo-file estate-file = %s"estate_chora.deed" ; -> estate-deed atlas-file = %s"ATLAS.deed" ; -> estate-atlas-deed +manifest-file = %s"0-AI-MANIFEST.deed" ; -> repo-deed praxis-file = stem %s"_praxis.deed" ; -> praxis-deed repo-file = stem %s"_chora.deed" ; -> repo-deed stem = 1*( ALPHA / DIGIT / "-" / "." / "_" ) diff --git a/1-formats/deed/tools/README.adoc b/1-formats/deed/tools/README.adoc index 4abf45501..62d041dde 100644 --- a/1-formats/deed/tools/README.adoc +++ b/1-formats/deed/tools/README.adoc @@ -1,6 +1,6 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 = DEED conformance lane — tools -Campaign: standards#837 · Grammar: link:../spec/abnf/deed.abnf[spec/abnf/deed.abnf (v1.1.0, normative)] +Campaign: standards#837 · Grammar: link:../spec/abnf/deed.abnf[spec/abnf/deed.abnf (v1.2.0, normative)] == The lane's one property diff --git a/1-formats/deed/tools/deed_lint.js b/1-formats/deed/tools/deed_lint.js index 1f3cb1392..cb5fecbdf 100755 --- a/1-formats/deed/tools/deed_lint.js +++ b/1-formats/deed/tools/deed_lint.js @@ -1,7 +1,7 @@ #!/usr/bin/env bun // SPDX-License-Identifier: MPL-2.0 // Port of deed_lint.py to plain JavaScript (bun, zero dependencies). -const DOC = String.raw`deed-lint — conformance validator for the DEED grammar (deed.abnf v1.1.0). +const DOC = String.raw`deed-lint — conformance validator for the DEED grammar (deed.abnf v1.2.0). Stdlib-only. Implements the normative grammar faithfully: * header = 1* spdx-line (";;" SP "SPDX-" …) @@ -418,6 +418,8 @@ export function checkFilenameDispatch(filename, head) { want = "estate-deed"; } else if (base === "ATLAS.deed") { want = "estate-atlas-deed"; + } else if (base === "0-AI-MANIFEST.deed") { + want = "repo-deed"; } else if (base.endsWith("_praxis.deed")) { want = "praxis-deed"; } else if (base.endsWith("_chora.deed")) { @@ -428,7 +430,7 @@ export function checkFilenameDispatch(filename, head) { } else { throw new LintError( `filename ${pyRepr(base)} matches no deed dispatch pattern ` + - "(estate_chora.deed | ATLAS.deed | _chora.deed | _praxis.deed)", + "(estate_chora.deed | ATLAS.deed | 0-AI-MANIFEST.deed | _chora.deed | _praxis.deed)", 1, ); } diff --git a/1-formats/deed/tools/deed_lint.test.js b/1-formats/deed/tools/deed_lint.test.js index 91b31e8a0..18a8fea96 100644 --- a/1-formats/deed/tools/deed_lint.test.js +++ b/1-formats/deed/tools/deed_lint.test.js @@ -102,6 +102,20 @@ describe("extra rules", () => { test("filename matching no pattern", () => { expect(verdict(HDR + '(repo-deed :schema-version "1")\n', "x.deed")).toMatch(/no deed dispatch pattern/); }); + test("canonical machine manifest selects repo-deed", () => { + expect(verdict(HDR + '(repo-deed :schema-version "1")\n', "0-AI-MANIFEST.deed")).toBeNull(); + for (const head of ["estate-deed", "estate-atlas-deed", "praxis-deed"]) { + expect(verdict(HDR + `(${head} :schema-version "1")\n`, "0-AI-MANIFEST.deed")).toMatch(/mismatch/); + } + }); + test("machine manifest filename is exact and case-sensitive", () => { + for (const name of ["0-ai-manifest.deed", "0-AI-MANIFEST-copy.deed", "1-AI-MANIFEST.deed"]) { + expect(verdict(HDR + '(repo-deed :schema-version "1")\n', name)).toMatch(/no deed dispatch pattern/); + } + }); + test("machine manifest clauses still require named fields", () => { + expect(verdict(HDR + '(repo-deed :schema-version "1" (purpose "text"))\n', "0-AI-MANIFEST.deed")).toMatch(/expected field/); + }); test("estate_chora.deed needs estate-deed", () => { expect(verdict(HDR + '(estate-deed :schema-version "1")\n', "estate_chora.deed")).toBeNull(); expect(verdict(HDR + '(repo-deed :schema-version "1")\n', "estate_chora.deed")).toMatch(/mismatch/); @@ -157,6 +171,12 @@ function cli(...args) { } describe("CLI", () => { + test("canonical machine manifest passes with its real filename", () => { + const manifest = join(HERE, "../../../0-AI-MANIFEST.deed"); + const r = cli(manifest); + expect(r.code).toBe(0); + expect(r.out).toContain(`OK ${manifest}`); + }); test("valid fixture exits 0", () => { const p = join(FIX, "valid", "minimal_chora.deed"); const r = cli(p); diff --git a/standards-map.toml b/standards-map.toml index 79dc98058..cbe839b1d 100644 --- a/standards-map.toml +++ b/standards-map.toml @@ -1401,17 +1401,17 @@ gate = "" note = "superseded 2026-06-02; retained for provenance, must not read as current" [[entry]] -from = "0-AI-MANIFEST.a2ml" -target = "0-AI-MANIFEST.a2ml" +from = "0-AI-MANIFEST.deed" +target = "0-AI-MANIFEST.deed" district = "onramp" kind = "onramp" files = 1 lifecycle = "versioned" canonical = true canon_slot = "" -canonical_doc = "0-AI-MANIFEST.a2ml" +canonical_doc = "0-AI-MANIFEST.deed" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "AGENTS.adoc" @@ -1424,7 +1424,7 @@ canonical = true canon_slot = "" canonical_doc = "AGENTS.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "CHANGELOG.adoc" @@ -1437,7 +1437,7 @@ canonical = true canon_slot = "" canonical_doc = "CHANGELOG.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "EXPLAINME.adoc" @@ -1450,7 +1450,7 @@ canonical = true canon_slot = "" canonical_doc = "EXPLAINME.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "QUICKSTART-DEV.adoc" @@ -1463,7 +1463,7 @@ canonical = true canon_slot = "" canonical_doc = "QUICKSTART-DEV.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "QUICKSTART-MAINTAINER.adoc" @@ -1476,7 +1476,7 @@ canonical = true canon_slot = "" canonical_doc = "QUICKSTART-MAINTAINER.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "QUICKSTART-USER.adoc" @@ -1489,7 +1489,7 @@ canonical = true canon_slot = "" canonical_doc = "QUICKSTART-USER.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "README.adoc" @@ -1502,7 +1502,7 @@ canonical = true canon_slot = "" canonical_doc = "README.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "ROADMAP.adoc" @@ -1515,7 +1515,7 @@ canonical = true canon_slot = "" canonical_doc = "ROADMAP.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "TOPOLOGY.adoc" @@ -1528,7 +1528,7 @@ canonical = true canon_slot = "" canonical_doc = "TOPOLOGY.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "llm-warmup-dev.adoc" @@ -1541,7 +1541,7 @@ canonical = true canon_slot = "" canonical_doc = "llm-warmup-dev.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "llm-warmup-user.adoc" @@ -1554,7 +1554,7 @@ canonical = true canon_slot = "" canonical_doc = "llm-warmup-user.adoc" gate = "canon-self-conformance" -note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.a2ml machine); every other doc is a thin pointer" +note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" [[entry]] from = "www" From f5aca26e6a4f93f85b342f9d04ab371586d53ba2 Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2026 10:30:25 +0000 Subject: [PATCH 5/9] docs(deed): document filename dispatch rules and errors --- 1-formats/deed/tools/deed_lint.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/1-formats/deed/tools/deed_lint.js b/1-formats/deed/tools/deed_lint.js index cb5fecbdf..2a11adfd7 100755 --- a/1-formats/deed/tools/deed_lint.js +++ b/1-formats/deed/tools/deed_lint.js @@ -410,7 +410,17 @@ export function validate(text, filename = null) { return [head, items]; } -/** estate-file exact-first; stems may contain dots (split on the final suffix). */ +/** + * Check a parsed doc-head against the case-sensitive basename of `filename`. + * Exact names take precedence: estate_chora.deed requires estate-deed, + * ATLAS.deed requires estate-atlas-deed, and 0-AI-MANIFEST.deed requires + * repo-deed. Otherwise, _praxis.deed selects praxis-deed and _chora.deed + * selects repo-deed; stems may contain dots (split on the final suffix). + * Returns undefined on success. + * @throws {LintError} At line 1 for an unrecognised filename, an empty or + * illegal _chora.deed stem (only ASCII letters, digits, hyphens, dots and + * underscores are allowed), or a doc-head mismatch. + */ export function checkFilenameDispatch(filename, head) { const base = basename(filename); let want; From 3bc3678c09ae42bbbd9d8448a7bc36290123ee47 Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2026 10:33:33 +0000 Subject: [PATCH 6/9] fix(manifest): Add 2-protocols/ to protocol routing --- 0-AI-MANIFEST.deed | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/0-AI-MANIFEST.deed b/0-AI-MANIFEST.deed index 5586685c2..33647d2d7 100644 --- a/0-AI-MANIFEST.deed +++ b/0-AI-MANIFEST.deed @@ -16,7 +16,7 @@ (routing (k9-foundation :paths ("1-formats/k9/" "1-formats/contractiles/")) (language-policy :paths (".claude/CLAUDE.md")) - (protocols :paths ("*-protocol/")) + (protocols :paths ("2-protocols/" "*-protocol/")) (readiness-grades :paths ("adoption-readiness-grades/" "foundations-readiness-grades/" "component-readiness-grades/" "toolchain-readiness-grades/")) (multi-repository-scope :paths ("docs/MULTI-REPOSITORY-SCOPE-STANDARD.adoc" "docs/repo-scope.example.toml")) (enforcement-ci :paths (".github/workflows/" "hooks/")) From 702fce8f409cf7c5bcb0cb978b66006dfdd60a0f Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 17 Oct 2026 16:31:23 +0100 Subject: [PATCH 7/9] fix(metadata): add standards repo deed and clarify licence-change authority --- .claude/CLAUDE.md | 2 +- .machine_readable/licensing-policy.toml | 2 +- 0-AI-MANIFEST.deed | 14 ++++++------- 3-practice/LICENCE-POLICY.adoc | 4 ++-- standards_chora.deed | 26 +++++++++++++++++++++++++ 5 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 standards_chora.deed diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index e59ea3929..9f686822c 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -23,7 +23,7 @@ ### Hard rules for agents - **NEVER generate licence-change PRs without prior owner approval.** Manual, - per-file, owner-only. Triggered by neurophone#99 (auto-PR reverting PMPL → + per-file, restricted to registered codeowner-admins. Triggered by neurophone#99 (auto-PR reverting PMPL → MPL-2.0 across ~140 files; closed by owner 2026-06-02). - **NEVER sweep SPDX headers in bulk.** Every prior LLM sweep has scrambled identifiers, mis-licensed third-party code, or reverted owner decisions. diff --git a/.machine_readable/licensing-policy.toml b/.machine_readable/licensing-policy.toml index 7e82ba5d5..514280eae 100644 --- a/.machine_readable/licensing-policy.toml +++ b/.machine_readable/licensing-policy.toml @@ -62,7 +62,7 @@ kept_mit = "(a) third-party — lol/* © Asgari, palimpsest-license tooling © S [automation] # Addendum A2 allowed = false -rule = "no bulk/sed/script/agent licence-SPDX changes ever; remediation is manual, per-file, owner-only" +rule = "no bulk/sed/script/agent licence-SPDX changes ever; remediation is manual, per-file, restricted to registered codeowner-admins" exception = "an agent may author NEW files with correct SPDX; a brand-new repo's own top-level LICENSE may be set" [debt] # Addendum A3 — the ONLY licence debt diff --git a/0-AI-MANIFEST.deed b/0-AI-MANIFEST.deed index 33647d2d7..055a6a5bd 100644 --- a/0-AI-MANIFEST.deed +++ b/0-AI-MANIFEST.deed @@ -10,7 +10,7 @@ :text "The organization-wide standards monorepo: ~30 specs that govern every Hyperpolymath project — K9 self-validating components, the protocols, the readiness-grading frameworks (ARG/FRG/CRG/TRG), RSR compliance, and the enforcement/CI that makes them stick.") (front-doors - :machine "0-AI-MANIFEST.deed" + :machine "standards_chora.deed" :human "README.adoc") (routing @@ -22,23 +22,23 @@ (enforcement-ci :paths (".github/workflows/" "hooks/")) (drift-automation :paths ("hypatia-rules/" "docs/decisions/ADR-003-workflow-pin-staleness-window.adoc" "scripts/check-workflow-staleness.sh" "scripts/propagate-workflow-pins.sh")) (derived-architecture-map :paths ("TOPOLOGY.adoc")) - (current-project-state :paths (".machine_readable/descriptiles/STATE.deed")) + (current-project-state :paths ("standards_chora.deed")) (education-layer :paths ("docs/wikis/" "docs/wikis/0.2-AI-MANIFEST.deed"))) (invariants (rule :priority 10 :text "No A2ML/DEED duplication — root must NOT contain STATE.deed, META.deed, etc.") - (rule :priority 20 :text "Single source of truth — .machine_readable/descriptiles/ is authoritative for state.") - (rule :priority 30 :text "Licence changes are Manual-Only, owner-only. Agents may add the correct SPDX header when creating a new file, following the repo's licence classification. Agents NEVER edit, sweep, or relicense existing LICENSE files or SPDX headers; licence drift is FLAG-ONLY (:review). See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") + (rule :priority 20 :text "The repo deed routes to state evidence; generated metadata does not confer normative authority.") + (rule :priority 30 :text "Initial licence assignment is permitted: agents may add the correct SPDX header to new files under the repository policy and set a brand-new repository's initial LICENSE. Changes to existing licences, LICENSE files or SPDX declarations are Manual-Only and restricted to registered codeowner-admins. Agents must flag licence drift for review; never sweep or relicense existing content. See LICENSE, .machine_readable/licensing-policy.toml, and .claude/CLAUDE.md.") (rule :priority 40 :text "Author attribution — Jonathan D.A. Jewell ")) (startup-checklist :steps ("Read THIS file, then README.adoc." - "Read .machine_readable/descriptiles/STATE.deed for current status + blockers." - "Read .machine_readable/descriptiles/AGENTIC.deed for interaction patterns." + "Read standards_chora.deed for repository metadata and state-source routing." + "Read the legacy .machine_readable/descriptiles/AGENTIC.a2ml for interaction patterns; do not extend it." "Read .claude/CLAUDE.md for the language + licence policy (binding).")) (attestation - :text "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX changes to existing files are Manual-Only — I will flag, never edit. I may add the correct SPDX header when creating a new file, following the repo's licence classification.") + :text "I have read the standards manifest. The human front door is README.adoc. Licence/SPDX changes to existing files are Manual-Only and restricted to registered codeowner-admins — I will flag, never edit. I may add the correct SPDX header when creating a new file, following the repo's licence classification.") (meta :maintained-by "Jonathan D.A. Jewell (hyperpolymath) " diff --git a/3-practice/LICENCE-POLICY.adoc b/3-practice/LICENCE-POLICY.adoc index d492bf154..04dab98cd 100644 --- a/3-practice/LICENCE-POLICY.adoc +++ b/3-practice/LICENCE-POLICY.adoc @@ -310,12 +310,12 @@ act. Never touch, normalise, label, add SPDX to, scan, or include 007 in any report or sweep. Surface to the owner only. This overrides Rules 1–3 for 007. -=== A2 — Licence edits are manual, owner-only, never automated +=== A2 — Licence edits are manual, restricted to registered codeowner-admins No automated or bulk SPDX/licence change (sed sweep, script, agent pass) on any estate repo, ever. Prior automated attempts falsified third-party licence authorship — a legal-integrity hazard. Remediation -is manual, per-file, by the owner. An agent may author *new* files with +is manual, per-file, and restricted to registered codeowner-admins. An agent may author *new* files with the correct SPDX from birth, and may set a brand-new repo's own top-level LICENSE — that is authoring, not relicensing. diff --git a/standards_chora.deed b/standards_chora.deed new file mode 100644 index 000000000..b116359fa --- /dev/null +++ b/standards_chora.deed @@ -0,0 +1,26 @@ +;; SPDX-License-Identifier: MPL-2.0 +;; SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) +(repo-deed + :schema-version "1.0.0" + :canonical-name "standards" + :repo-uuid #u8"gv-clade-index:github.com/hyperpolymath/standards" + :beholding-chora #u5"estate/chora" + (identity :owner "hyperpolymath" :primary-forge github) + (front-doors :human "README.adoc" :agent "0-AI-MANIFEST.deed") + (authority + :constitution "0-canon/constitution/" + :licensing "3-practice/LICENCE-POLICY.adoc" + :agent-policy ".claude/CLAUDE.md") + (routing + :deed "1-formats/deed/" + :contracts "1-formats/k9/" + :coordination "2-protocols/k9-coordination/" + :enforcement ".github/workflows/") + (status + :evidence-source ".machine_readable/descriptiles/STATE.a2ml" + :interaction-source ".machine_readable/descriptiles/AGENTIC.a2ml" + :evidence-status "Legacy source pointers, not revalidated readiness claims; A2ML is retired and must not be extended.") + (policies + (licensing + :initial-assignment "Agents may author new files with the correct SPDX under repository policy, and initialise a brand-new repository's LICENSE." + :existing-declarations "Manual-Only; changes restricted to registered codeowner-admins. Agents flag drift and never sweep or relicense existing content."))) From 38a63f9d3b8aa5b7580d44e57251c8b451e98217 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 17 Oct 2026 16:46:24 +0100 Subject: [PATCH 8/9] fix(metadata): reconcile canonical identity and remaining authority wording --- 0-AI-MANIFEST.deed | 2 +- 3-practice/LICENCE-POLICY.adoc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/0-AI-MANIFEST.deed b/0-AI-MANIFEST.deed index 055a6a5bd..3b1c3fd2e 100644 --- a/0-AI-MANIFEST.deed +++ b/0-AI-MANIFEST.deed @@ -2,7 +2,7 @@ ;; SPDX-License-Identifier: CC-BY-SA-4.0 (repo-deed :schema-version "1.0.0" - :canonical-name "github.com/hyperpolymath/standards" + :canonical-name "standards" :repo-uuid #u8"gv-clade-index:github.com/hyperpolymath/standards" :beholding-chora #u5"estate/chora" diff --git a/3-practice/LICENCE-POLICY.adoc b/3-practice/LICENCE-POLICY.adoc index 04dab98cd..bae89227c 100644 --- a/3-practice/LICENCE-POLICY.adoc +++ b/3-practice/LICENCE-POLICY.adoc @@ -236,7 +236,8 @@ Confirmed by the owner 2026-08-26, verified against each repo's root ==== Execution constraint -Per A2, the four flips above are **manual, per-file, owner-only**. No +Per A2, the four flips above are **manual, per-file, and restricted to +registered codeowner-admins**. No agent or script may perform them. This section records *what* is to change and *why it is correct*; it does not authorise an automated sweep, and the presence of a name in the table above must never be read as one. From 590bbd98de939b3c2995583d319f94cb896ad2ba Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2026 15:50:38 +0000 Subject: [PATCH 9/9] fix(metadata): register standards_chora.deed in standards map --- standards-map.toml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/standards-map.toml b/standards-map.toml index cbe839b1d..900178ff5 100644 --- a/standards-map.toml +++ b/standards-map.toml @@ -33,7 +33,7 @@ [map] repo = "hyperpolymath/standards" version = "1.0.0" -entry_count = 127 +entry_count = 128 generated = false # hand-curated; the district index.adoc files ARE generated checked_by = "scripts/check-standards-map.sh" @@ -1413,6 +1413,19 @@ canonical_doc = "0-AI-MANIFEST.deed" gate = "canon-self-conformance" note = "two canonical front doors (README.adoc human, 0-AI-MANIFEST.deed machine); every other doc is a thin pointer" +[[entry]] +from = "standards_chora.deed" +target = "standards_chora.deed" +district = "5-machine" +kind = "index" +files = 1 +lifecycle = "versioned" +canonical = false +canon_slot = "" +canonical_doc = "standards_chora.deed" +gate = "deed-conformance" +note = "repository identity and state-source routing; evidence pointers do not confer normative authority" + [[entry]] from = "AGENTS.adoc" target = "AGENTS.adoc"