reorg(1-formats): move the estate's read/write formats under 1-formats/ - #827
Conversation
District 1 of the canon reorg — the second district taken end-to-end, after 0-canon (2.0.3). 11 plain moves, 261 inbound references rewritten, the map updated, GATE D green at entry_count 120. MOVED (11) did-you-actually-do-that -> 1-formats/sub-specs/did-you-actually-do-that/ a2ml-templates -> 1-formats/templates/ inline-annotations -> 1-formats/sub-specs/inline-annotations/ contractiles -> 1-formats/contractiles/ [COUPLED to the spine] deed -> 1-formats/deed/ [COUPLED to the spine] panll-panels -> 1-formats/sub-specs/panll-panels/ ensaid-config -> 1-formats/sub-specs/ensaid-config/ cartridges -> 1-formats/sub-specs/cartridges/ A2ML-REPO-TEMPLATE.adoc -> 1-formats/A2ML-REPO-TEMPLATE.adoc SATELLITES.a2ml -> 1-formats/SATELLITES.a2ml bindings-haskell -> 1-formats/sub-specs/bindings-haskell/ NO POINTERS YET (8, deliberately untouched): k9-svc -> 1-formats/k9/ and the seven *-a2ml profile dirs -> 1-formats/a2ml/. The map annotates these "(pointer)" — the standard relocates and the old path keeps a stub — but no pointer artefact exists in this repo to copy: a2ml/ was evicted outright on 2026-08-28 by 24a12d6 (the map's note says "finish the eviction or revert it") and no stub convention is defined anywhere in this tree. The mover reports and skips them rather than inventing one. Their paths are unchanged and still resolve, so this commit leaves no dangling state. NO VERSION BUMP. None of the five [canon.artifacts] bytes changed; GATE A assertion 1 confirms all five hashes still match, and the lock's own recorded precedent is that a relocation whose sha256 values are unchanged needs no bump. GATE A assertion 2 reports the no-change case rather than a violation. canon.lock: hand-edited, two lines (the mover protects this file because it mixes identifiers with paths — a sweep rewrites the slot KEY and doubles the slash; district 0 proved that). [canon.split-candidates] path values follow the move: deed-grammar path -> 1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc contractile-spec path -> 1-formats/contractiles/README.adoc Key names, slot names and sha256 values are untouched. Also fixed here, because the move exposed it: the ecosystem-a2ml scorecard named `.machine_readable/6a2/ECOSYSTEM.a2ml`. That directory no longer exists (it is `.machine_readable/descriptiles/`), and because this move rewrites another path on the same line, the line counts as ADDED — which scripts/check-canonical-names.sh correctly flags as reintroducing a deprecated name. The stale path is corrected to the real one rather than grandfathered. GATES (all run in this tree) scripts/check-standards-map.sh PASSED, entry_count 120 scripts/check-canon-lockstep.sh 8 passed / 0 failed / 2 skipped (4+5 skipped: no gh, no hypatia — advertised) check-canonical-names.sh rc=0 (rc=1 before the scorecard fix) check-manifest-ply.sh rc=0 (control rc=1: the moved manifest's declared ply was deeper than its home) every other scripts/check-*.sh identical rc to the pristine control at 176d1f7 except the two above, both explained The map gains a record for the district root itself: GATE D assertion 2 requires every TOP-LEVEL entry to appear as some record's `from`, and a district move creates a new top-level entry. entry_count moves 119 -> 120 with it (assertion 5 counts records). Reference rewrite is path-shaped only: a bare word is never rewritten, so identifiers (`constitution` the canon.lock slot key, loop variables) are safe. Audit: 2647 files scanned, 0 references left pointing at an old path.
|
Important Review skippedToo many files! This PR contains 143 files, which is 43 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (143)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
## What Four references to the canon's DEED grammar, following the move in **hyperpolymath/standards#827**: ``` deed/spec/DEED-GRAMMAR-SPEC.adoc -> 1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc ``` | file | line | |---|---| | `.machine_readable/README.adoc` | 13 | | `.machine_readable/contractiles/README.adoc` | 16 | | `.machine_readable/descriptiles/README.adoc` | 14 | | `.machine_readable/rsr-profile.a2ml` | 11 | ## Why these four and not the other hits Each names the path as the **normative source *in hyperpolymath/standards*** — the coupling is in the sentence, not in the word. A name-match pass is not enough: the district-0 pass flagged `GOVERNANCE.adoc` as coupled when all nine hits turned out to be this repo's own file, a relative link, historical audit text, or `validate-template.sh` checking the *target* repo. The `contractiles/` hits in this repo (`.machine_readable/README.adoc`, `coaptation/verify.sh`, `Dustfile.a2ml`, `descriptiles/PLAYBOOK.a2ml`, `Justfile`, `build/just/assess.just`) are **not** coupling: they are this repo's own `.machine_readable/contractiles/` directory — its Mustfile/Dustfile — never the canon's. ## Verification * Every occurrence of `deed/spec/DEED-GRAMMAR-SPEC.adoc` in the tree is one of these four files (checked with `git grep -l`), and each occurrence is attributed to `hyperpolymath/standards` in its surrounding text. * `scripts/validate-template.sh` → **rc=0, 6 warnings — byte-identical to a pristine `origin/main` control** (both are the pre-existing placeholder/SPDX/compiler-absent warnings). * Diff is exactly 4 lines, one per file. ## Ordering `canon.lock [canon.lockstep].order` is `spine-adopts-then-canon-releases`, so this may land either side of #827. The referenced path only becomes live when #827 merges; until then it points at a path the canon has not yet published, which is the same window the ordering rule already tolerates for the pins. No version bump is involved on either side: district 1 changed none of the five `[canon.artifacts]` bytes, so the spine's `criteria_sha256` / `gates_sha256` pins are untouched and `Canon lockstep` stays green.
## What The **remainder of district 1** — the 8 `(pointer)` entries. #827 merged at 20:08:21Z from the branch's first commit; this commit was pushed moments later, so it never reached `main`. Cherry-picked onto current `main` cleanly (`15af5b0`), no conflicts. `1-formats/deed` and `1-formats/contractiles` are in `main`; `1-formats/k9/` and `1-formats/a2ml/` are not, and there are no `POINTER.adoc` stubs yet. This PR supplies them. ## The convention (owner ruling, 2026-09-17) Each old path keeps ONE `POINTER.adoc` — SPDX lines, title, a relative link to the new home, and a stable, greppable TOML block: ```toml moved-to = "1-formats/a2ml/meta/" pointer = true district = "1-formats" ``` Nothing in it is normative. No other content remains in the old directory. ``` k9-svc 41 -> 1-formats/k9/ meta-a2ml 38 -> 1-formats/a2ml/meta/ agentic-a2ml 37 -> 1-formats/a2ml/agentic/ state-a2ml 30 -> 1-formats/a2ml/state/ anchor-a2ml 25 -> 1-formats/a2ml/anchor/ ecosystem-a2ml 23 -> 1-formats/a2ml/ecosystem/ neurosym-a2ml 23 -> 1-formats/a2ml/neurosym/ playbook-a2ml 15 -> 1-formats/a2ml/playbook/ ``` **232 files relocated, 183 references rewritten, 8 stubs.** ## Two things the map is silent on — resolved and recorded, not decided silently 1. **All seven `*-a2ml` dirs carried the same target, `1-formats/a2ml/`.** Taken literally that merges seven directories into one, and **34 relative paths collide**: seven `README.adoc`, seven `.editorconfig`, seven `.gitattributes`, seven `.gitignore`, seven `.machine_readable/descriptiles/*.a2ml`, and 28 more. `docs/reorg/STREAM-PROMPTS.adoc` names the seven homes normatively — *"the descriptiles family becomes A2ML profiles: a2ml/state, a2ml/meta, a2ml/ecosystem, a2ml/agentic, a2ml/neurosym, a2ml/playbook, a2ml/anchor"* — so each profile becomes a subdirectory and each record's `target` records the refinement. `k9-svc`'s target already named its own directory and is unchanged. 2. **A pointer entry's `from` is NOT rewritten**, unlike a plain move. The old path still exists — it holds the stub — so GATE D assertions 1 and 2 keep holding, and the record keeps stating where the migration started. A plain move rewrites `from` because there the old path stops existing. ## Also here Three re-added scorecard lines named `.machine_readable/6a2/`, a directory that has not existed since the rename to `.machine_readable/descriptiles/` (`playbook-a2ml` ×2, `state-a2ml` ×3). Corrected — added lines only, so the chartered wider migration is untouched. `check-canonical-names.sh` rc=1 → **rc=0**. ## Gates, run in this tree against current `main` | gate | result | |---|---| | `scripts/check-standards-map.sh` | **PASSED**, `entry_count = 120`, 8 records annotated with the stub | | `scripts/check-canon-lockstep.sh` | **8 passed / 0 failed / 2 skipped** — assertion 3 confirms the spine's merged pins still match (`37cb5f67…`) | | `check-canonical-names.sh` | rc=0 | | every other `scripts/check-*.sh` | identical rc to the `3cdaa69` control |
## What District 2 — the third district taken end-to-end, after `0-canon` (2.0.3) and `1-formats` (#827 + #829). **7 plain moves, 162 inbound references rewritten, map updated, GATE D green at `entry_count` 121.** ``` axel-protocol 110 files -> 2-protocols/axel/ 0-ai-gatekeeper-protocol 50 files -> 2-protocols/0-ai-gatekeeper/ k9-coordination-protocol 19 files -> 2-protocols/k9-coordination/ overlay-protocol 10 files -> 2-protocols/overlay/ groove-protocol 2 files -> 2-protocols/groove/ chora 2 files -> 2-protocols/chora/ avow-protocol 1 file -> 2-protocols/avow/ ``` No `(pointer)` entries in this district and no unintelligible entries — all seven are plain moves, so nothing needed a convention call. ## No version bump, and `canon.lock` is untouched None of the five `[canon.artifacts]` bytes changed (GATE A assertion 1 confirms all five hashes still match the lock), and no `[canon.split-candidates]` path pointed into any of these directories — so there is nothing to hand-edit this time. Assertion 3 confirms the spine's merged pins still agree. ## References reach further than the directory names `.hypatia-baseline.json`, `.machine_readable/REGISTRY.a2ml`, six scorecards, `.well-known/ai.txt`, `.gitignore` / `.gitleaksignore`, `.claude/CLAUDE.md`, the `Justfile`, `TOPOLOGY.adoc`, and two workflow files (`echidna-verify.yml`, `secret-scanner-reusable.yml`). The workflow edits are **path rewrites only** — no `uses:` line moved, which is what the lock keys — and `scripts/lock-selfcheck.sh` on this commit returns **SELF-CONSISTENT (rc=0)**, i.e. this commit is safe to pin to. ## One stale path fixed, same class as districts 0 and 1 Rewriting a path in `overlay-protocol.scorecard.a2ml` makes that line **added**, and the line named `.machine_readable/6a2/{META,STATE,ECOSYSTEM}.a2ml` — a directory that has not existed since the rename to `.machine_readable/descriptiles/`. Corrected in place; `check-canonical-names.sh` rc=1 → rc=0. The bare `6a2/PLAYBOOK.a2ml` in prose about sibling repos is left alone deliberately (the gate treats a line describing the deprecation as descriptive). ## Gates, run in this tree against a clean copy of `main` (`92e25e2`) | gate | result | |---|---| | `scripts/check-standards-map.sh` | **PASSED**, `entry_count = 121` | | `scripts/check-canon-lockstep.sh` | **8 passed / 0 failed / 2 skipped** | | `scripts/check-canonical-names.sh` | rc=0 | | `scripts/lock-selfcheck.sh` | **SELF-CONSISTENT** rc=0 | | every `scripts/check-*.sh` | **rc identical to the control — all of them, no exceptions to explain** | | stale-reference audit | 7 moved-away sources, **0 leftovers** (2655 files scanned) | The control was a real copy of `main`, not a linked worktree — a linked worktree makes `check-workflow-staleness.sh` report false failures, because `.git` there is a file and the script's `[ -d "$REPO_ROOT/.git" ]` fallback never runs.
Bring main at 6054f0f (feat deed conformance lane) into PR #833. Resolved: - .gitignore, INTENT, scorecards, CRG, QUICKSTART-DEV, README, TOPOLOGY, INNERVATION, developers/index, build-registry, standards-map: took origin/main (theirs) — it reflects the 2-protocols (2-protocols/) and 3-practice reorgs that landed after PR branched at 176d1f7. - 1-formats/a2ml/*/.editorconfig etc (AA): both added identical RSR template files at same destination — kept theirs (identical to ours). - agentic/anchor/ecosystem/k9/meta/neurosym/playbook old dirs (DD): both deleted after move — removed. - 2-protocols/* (UA): added by origin/main — kept (the 7 plain moves of district 2). The 1-formats district itself (11 plain moves in 0718580/cfbb66 and 8 pointer moves in 6358451/92e25e2) is already on main via #827 and #829, so this merge is a no-op for that district except for the 2-protocols gap. After this, PR #833 is mergeable via squash (merge commits are forbidden).



What
District 1 of the canon reorg, taken end-to-end like 0-canon before it: 11 moves, 261 inbound references rewritten, the map updated, GATE D green at
entry_count120.No version bump
None of the five
[canon.artifacts]bytes changed; GATE A assertion 1 confirms all five hashes still match, and the lock's own recorded precedent is that a relocation whosesha256values are unchanged needs no bump. Assertion 2 reports the no-change case rather than a violation.The 8
(pointer)entries are deliberately NOT in this PRk9-svc -> 1-formats/k9/and the seven*-a2mlprofile dirs-> 1-formats/a2ml/. The map annotates them(pointer): the standard relocates and the old path keeps a stub. No pointer artefact exists in this repo to copy —a2ml/was evicted outright on 2026-08-28 by24a12d6f(the map's own note: "finish the eviction or revert it") and no stub convention is defined anywhere in the tree. Rather than invent one, their paths are left exactly as they are: they still resolve, so this PR leaves no dangling state. A convention proposal follows separately.canon.lock, hand-edited — two linesThe mover protects this file because it mixes identifiers with paths (a sweep rewrites the slot key and doubles the slash — district 0 proved that).
[canon.split-candidates]path values follow the move:Key names, slot names and
sha256values untouched.One more fix, because the move exposed it
The
ecosystem-a2mlscorecard named.machine_readable/6a2/ECOSYSTEM.a2ml. That directory no longer exists (it is.machine_readable/descriptiles/), and since this move rewrites another path on the same line, the line counts as added — whichscripts/check-canonical-names.shcorrectly flags as reintroducing a deprecated name. The stale path is corrected to the real one rather than grandfathered.Gates, all run in this tree
scripts/check-standards-map.sh(GATE D)entry_count = 120scripts/check-canon-lockstep.sh(GATE A)gh, no hypatia — the script advertises what did not run)check-canonical-names.shrc=1before the scorecard fix)check-manifest-ply.shscripts/check-*.sh176d1f7control, except the two above, both explainedReference rewriting is path-shaped only — a bare word is never rewritten, so
constitutionthe canon.lock slot key and loop variables stay identifiers. Audit: 2647 files scanned, 0 references left pointing at an old path.The map gains a district-root record
GATE D assertion 2 requires every top-level entry to appear as some record's
from, and a district move creates a new top-level entry.entry_countmoves 119 → 120 with it (assertion 5 counts records).