From 0718580adad421476009472f0659147d42fdfcb7 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 17 Sep 2026 20:07:14 +0000 Subject: [PATCH 1/2] reorg(1-formats): move the estate's read/write formats under 1-formats/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 24a12d6f (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. --- .github/CODEOWNERS | 2 +- .github/workflows/dyadt-verify.yml | 2 +- .gitignore | 4 +- .hypatia-baseline.json | 2 +- .machine_readable/INTENT.contractile | 4 +- .machine_readable/MUST.contractile | 4 +- .machine_readable/REGISTRY.a2ml | 16 ++++---- .machine_readable/descriptiles/PLAYBOOK.a2ml | 2 +- .machine_readable/licensing-policy.toml | 2 +- .../contractile-layout-2026-04-18.a2ml | 4 +- .../scorecards/a2ml-templates.scorecard.a2ml | 2 +- .../scorecards/agentic-a2ml.scorecard.a2ml | 4 +- .../scorecards/anchor-a2ml.scorecard.a2ml | 4 +- .../scorecards/contractiles.scorecard.a2ml | 24 ++++++------ .../did-you-actually-do-that.scorecard.a2ml | 16 ++++---- .../scorecards/ecosystem-a2ml.scorecard.a2ml | 4 +- .../scorecards/ensaid-config.scorecard.a2ml | 4 +- .verisimdb/config.toml | 2 +- 0-AI-MANIFEST.a2ml | 2 +- .../contractiles/README.adoc | 2 +- 0-canon/CANONICAL-NAMES.adoc | 4 +- .../A2ML-REPO-TEMPLATE.adoc | 2 +- SATELLITES.a2ml => 1-formats/SATELLITES.a2ml | 0 .../contractiles}/CANONICAL-TEMPLATES.adoc | 24 ++++++------ .../contractiles}/README.adoc | 2 +- .../contractiles}/dust/Dustfile | 0 .../contractiles}/intend/Intentfile.a2ml | 0 .../contractiles}/must/Mustfile | 0 .../contractiles}/trust/Trustfile.a2ml | 0 {deed => 1-formats/deed}/README.adoc | 0 .../application-vnd.deed-registration.txt | 0 .../deed}/spec/DEED-GRAMMAR-SPEC.adoc | 0 .../deed}/spec/DEED-GRAMMAR-SPEC_v0.1.adoc | 0 .../deed}/spec/abnf/deed.abnf_v1.0 | 0 {deed => 1-formats/deed}/spec/abnf/deed.anbf | 0 .../.devcontainer/Containerfile | 0 .../cartridges}/0.2-AI-MANIFEST.a2ml | 0 .../cartridges}/CARTRIDGE-FORMAT.adoc | 4 +- .../sub-specs/cartridges}/cartridge-v1.json | 4 +- .../did-you-actually-do-that}/README.adoc | 4 +- .../docs/NAMING-RESOLUTION.adoc | 0 .../spec/CLAIM-FORMAT.adoc | 0 .../spec/CONSEQUENCE-LEDGER.adoc | 2 +- .../spec/VERIFICATION-PROTOCOL.adoc | 0 .../spec/conformance/README.adoc | 2 +- .../spec/conformance/always-match.a2ml | 0 .../spec/conformance/always-match.expected | 0 .../spec/conformance/confirmed-command.a2ml | 0 .../conformance/confirmed-command.expected | 0 .../spec/conformance/contains-fixture.a2ml | 2 +- .../conformance/contains-fixture.expected | 0 .../spec/conformance/fixture.txt | 0 .../conformance/incompatible-verifier.a2ml | 0 .../incompatible-verifier.expected | 0 .../conformance/licence-in-statement.a2ml | 0 .../conformance/licence-in-statement.expected | 0 .../spec/conformance/manual-licence.a2ml | 0 .../spec/conformance/manual-licence.expected | 0 .../spec/conformance/missing-field.a2ml | 0 .../spec/conformance/missing-field.expected | 0 .../spec/conformance/refuted-command.a2ml | 0 .../spec/conformance/refuted-command.expected | 0 .../spec/conformance/run-conformance.sh | 0 .../spec/conformance/unsafe-path.a2ml | 0 .../spec/conformance/unsafe-path.expected | 0 .../conformance/unverifiable-network.a2ml | 0 .../conformance/unverifiable-network.expected | 0 .../ensaid-config}/0-AI-MANIFEST.a2ml | 0 .../sub-specs/ensaid-config}/README.adoc | 0 .../spec/ENSAID-CONFIG-SPEC.adoc | 0 .../sub-specs/ensaid-config}/spec/README.adoc | 0 .../sub-specs/inline-annotations}/README.adoc | 0 .../sub-specs/inline-annotations}/SPEC.adoc | 2 +- .../examples/octad-mapping.a2ml | 0 .../inline-annotations}/examples/output.a2ml | 0 .../inline-annotations}/examples/sources.adoc | 0 .../inline-annotations}/extractor/Cargo.toml | 0 .../extractor/batch-extract.sh | 0 .../inline-annotations}/extractor/src/main.rs | 2 +- .../sub-specs/panll-panels}/README.adoc | 2 +- .../sub-specs/panll-panels}/manifest.json | 0 .../src/ComplianceMonitor.affine | 0 .../panll-panels}/src/CrgDashboard.affine | 0 .../panll-panels}/src/ProofHub.affine | 0 .../panll-panels}/src/VcldbClient.affine | 0 .../templates}/AGENTIC.a2ml.template | 0 .../templates}/ECOSYSTEM.a2ml.template | 0 .../templates}/META.a2ml.template | 0 .../templates}/NEUROSYM.a2ml.template | 0 .../templates}/PLAYBOOK.a2ml.template | 0 .../templates}/STATE.a2ml.template | 2 +- .../templates}/STATE.a2ml.v2.spec.adoc | 0 .../templates}/STATE.a2ml.v2.template | 0 .../templates}/state-migrate-v1-to-v2.sh | 2 +- .../templates}/state-scm-to-v2.jl | 0 CLAIMS.a2ml | 12 +++--- EXPLAINME.adoc | 2 +- Justfile | 2 +- LICENCE-POLICY.adoc | 2 +- QUICKSTART-USER.adoc | 4 +- README.adoc | 28 +++++++------- REORGANIZATION-PLAN.adoc | 4 +- TOOLING-VERSION-INTEGRITY-POLICY.adoc | 8 ++-- TOPOLOGY.adoc | 8 ++-- agentic-a2ml/contractiles/README.adoc | 2 +- ai-instruction/README.adoc | 2 +- anchor-a2ml/contractiles/README.adoc | 2 +- audits/assail-classifications.a2ml | 2 +- audits/licence-flags-2026-07.adoc | 2 +- axel-protocol/contractiles/README.adoc | 2 +- canon.lock | 4 +- docs/ADR-001-k9-relocation-to-svc.adoc | 18 ++++----- docs/AUDIT.adoc | 2 +- docs/CONTRACTILE-SPEC.adoc | 18 ++++----- docs/DESCRIPTILE-SPEC.adoc | 2 +- docs/INNERVATION.adoc | 18 ++++----- docs/STANDARDS-CRITICAL-PATH.adoc | 6 +-- .../provenance/coord-mcp/COORD-MCP-TODO.adoc | 6 +-- docs/archive/scaffolding/contractile.just | 24 ++++++------ docs/audits/2026-03-30/STATISTEASE-PLAN.adoc | 2 +- docs/audits/dogfooding-matrix-2026-04-04.adoc | 8 ++-- .../spec-templates/T2-high/boj-server.adoc | 4 +- docs/reorg/STREAM-PROMPTS.adoc | 2 +- docs/wikis/developers/index.adoc | 2 +- docs/wikis/maintainers/index.adoc | 2 +- docs/wikis/users/index.adoc | 2 +- ecosystem-a2ml/README.adoc | 2 +- ecosystem-a2ml/contractiles/README.adoc | 2 +- immaculate-guide/IMMACULATE-GUIDE.adoc | 4 +- k9-svc/DOGFOODING-OPPORTUNITIES.adoc | 22 +++++------ llm-warmup-user.adoc | 4 +- meta-a2ml/README.adoc | 4 +- playbook-a2ml/README.adoc | 2 +- rhodium-standard-repositories/CLAUDE.md | 2 +- .../contractiles/README.adoc | 2 +- .../templates/MUST.contractile.template | 4 +- scripts/build-registry.sh | 8 ++-- scripts/verify-claims.sh | 2 +- .../substantial-completion/CHECKLIST.adoc | 4 +- standards-map.toml | 37 +++++++++++++------ standards-update/README.adoc | 18 ++++----- state-a2ml/README.adoc | 2 +- state-a2ml/spec/STATE-FORMAT-SPEC.adoc | 2 +- templates/CODEOWNERS | 2 +- 144 files changed, 252 insertions(+), 239 deletions(-) rename A2ML-REPO-TEMPLATE.adoc => 1-formats/A2ML-REPO-TEMPLATE.adoc (99%) rename SATELLITES.a2ml => 1-formats/SATELLITES.a2ml (100%) rename {contractiles => 1-formats/contractiles}/CANONICAL-TEMPLATES.adoc (93%) rename {contractiles => 1-formats/contractiles}/README.adoc (97%) rename {contractiles => 1-formats/contractiles}/dust/Dustfile (100%) rename {contractiles => 1-formats/contractiles}/intend/Intentfile.a2ml (100%) rename {contractiles => 1-formats/contractiles}/must/Mustfile (100%) rename {contractiles => 1-formats/contractiles}/trust/Trustfile.a2ml (100%) rename {deed => 1-formats/deed}/README.adoc (100%) rename {deed => 1-formats/deed}/docs/iana/application-vnd.deed-registration.txt (100%) rename {deed => 1-formats/deed}/spec/DEED-GRAMMAR-SPEC.adoc (100%) rename {deed => 1-formats/deed}/spec/DEED-GRAMMAR-SPEC_v0.1.adoc (100%) rename {deed => 1-formats/deed}/spec/abnf/deed.abnf_v1.0 (100%) rename {deed => 1-formats/deed}/spec/abnf/deed.anbf (100%) rename {bindings-haskell => 1-formats/sub-specs/bindings-haskell}/.devcontainer/Containerfile (100%) rename {cartridges => 1-formats/sub-specs/cartridges}/0.2-AI-MANIFEST.a2ml (100%) rename {cartridges => 1-formats/sub-specs/cartridges}/CARTRIDGE-FORMAT.adoc (98%) rename {cartridges => 1-formats/sub-specs/cartridges}/cartridge-v1.json (94%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/README.adoc (98%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/docs/NAMING-RESOLUTION.adoc (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/CLAIM-FORMAT.adoc (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/CONSEQUENCE-LEDGER.adoc (97%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/VERIFICATION-PROTOCOL.adoc (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/README.adoc (89%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/always-match.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/always-match.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/confirmed-command.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/confirmed-command.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/contains-fixture.a2ml (70%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/contains-fixture.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/fixture.txt (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/incompatible-verifier.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/incompatible-verifier.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/licence-in-statement.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/licence-in-statement.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/manual-licence.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/manual-licence.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/missing-field.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/missing-field.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/refuted-command.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/refuted-command.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/run-conformance.sh (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/unsafe-path.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/unsafe-path.expected (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/unverifiable-network.a2ml (100%) rename {did-you-actually-do-that => 1-formats/sub-specs/did-you-actually-do-that}/spec/conformance/unverifiable-network.expected (100%) rename {ensaid-config => 1-formats/sub-specs/ensaid-config}/0-AI-MANIFEST.a2ml (100%) rename {ensaid-config => 1-formats/sub-specs/ensaid-config}/README.adoc (100%) rename {ensaid-config => 1-formats/sub-specs/ensaid-config}/spec/ENSAID-CONFIG-SPEC.adoc (100%) rename {ensaid-config => 1-formats/sub-specs/ensaid-config}/spec/README.adoc (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/README.adoc (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/SPEC.adoc (98%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/examples/octad-mapping.a2ml (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/examples/output.a2ml (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/examples/sources.adoc (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/extractor/Cargo.toml (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/extractor/batch-extract.sh (100%) rename {inline-annotations => 1-formats/sub-specs/inline-annotations}/extractor/src/main.rs (99%) rename {panll-panels => 1-formats/sub-specs/panll-panels}/README.adoc (93%) rename {panll-panels => 1-formats/sub-specs/panll-panels}/manifest.json (100%) rename {panll-panels => 1-formats/sub-specs/panll-panels}/src/ComplianceMonitor.affine (100%) rename {panll-panels => 1-formats/sub-specs/panll-panels}/src/CrgDashboard.affine (100%) rename {panll-panels => 1-formats/sub-specs/panll-panels}/src/ProofHub.affine (100%) rename {panll-panels => 1-formats/sub-specs/panll-panels}/src/VcldbClient.affine (100%) rename {a2ml-templates => 1-formats/templates}/AGENTIC.a2ml.template (100%) rename {a2ml-templates => 1-formats/templates}/ECOSYSTEM.a2ml.template (100%) rename {a2ml-templates => 1-formats/templates}/META.a2ml.template (100%) rename {a2ml-templates => 1-formats/templates}/NEUROSYM.a2ml.template (100%) rename {a2ml-templates => 1-formats/templates}/PLAYBOOK.a2ml.template (100%) rename {a2ml-templates => 1-formats/templates}/STATE.a2ml.template (98%) rename {a2ml-templates => 1-formats/templates}/STATE.a2ml.v2.spec.adoc (100%) rename {a2ml-templates => 1-formats/templates}/STATE.a2ml.v2.template (100%) rename {a2ml-templates => 1-formats/templates}/state-migrate-v1-to-v2.sh (96%) rename {a2ml-templates => 1-formats/templates}/state-scm-to-v2.jl (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2ca42e90b..23d2fee5e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -31,7 +31,7 @@ SECURITY.md @hyperpolymath @JoshuaJewell .github/workflows/ @hyperpolymath @JoshuaJewell .machine_readable/ @hyperpolymath @JoshuaJewell -contractiles/ @hyperpolymath @JoshuaJewell +1-formats/contractiles/ @hyperpolymath @JoshuaJewell # License files LICENSE @hyperpolymath @JoshuaJewell diff --git a/.github/workflows/dyadt-verify.yml b/.github/workflows/dyadt-verify.yml index 2a37a4984..c3889ce18 100644 --- a/.github/workflows/dyadt-verify.yml +++ b/.github/workflows/dyadt-verify.yml @@ -33,7 +33,7 @@ jobs: - name: DYADT conformance vectors run: | - bash did-you-actually-do-that/spec/conformance/run-conformance.sh + bash 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh - name: Verify this change's own claims (dogfood) env: diff --git a/.gitignore b/.gitignore index c513f1e11..cba971955 100644 --- a/.gitignore +++ b/.gitignore @@ -93,10 +93,10 @@ htmlcov/ .tool-versions # Rust build artefacts (innervation tools) -inline-annotations/extractor/target/ +1-formats/sub-specs/inline-annotations/extractor/target/ k9-coordination-protocol/tools/k9-init/target/ hooks/playbook-to-recipe/target/ -inline-annotations/extractor/Cargo.lock +1-formats/sub-specs/inline-annotations/extractor/Cargo.lock k9-coordination-protocol/tools/k9-init/Cargo.lock hooks/playbook-to-recipe/Cargo.lock .verisimdb/ecosystem-ingest/target/ diff --git a/.hypatia-baseline.json b/.hypatia-baseline.json index ead4f22b1..c3aa4179e 100644 --- a/.hypatia-baseline.json +++ b/.hypatia-baseline.json @@ -673,7 +673,7 @@ "severity": "medium", "rule_module": "structural_drift", "type": "SD022", - "file": "panll-panels/README.adoc", + "file": "1-formats/sub-specs/panll-panels/README.adoc", "note": "FALSE POSITIVE (hypatia triage 2026-07-21): Explicitly a path in the external PanLL repo (future destination), not this tree. Intentional cross-repo reference." }, { diff --git a/.machine_readable/INTENT.contractile b/.machine_readable/INTENT.contractile index 55ef51bf9..b8752934b 100644 --- a/.machine_readable/INTENT.contractile +++ b/.machine_readable/INTENT.contractile @@ -76,7 +76,7 @@ ; === Sensitive Areas (if in doubt, ask) === (ask-before-touching - "contractiles/ — changes here propagate to every repo that has copied the templates" + "1-formats/contractiles/ — changes here propagate to every repo that has copied the templates" "component-readiness-grades/ — CRG grade semantics are intentionally stable" "rhodium-standard-repositories/ — RSR requirements affect all 500+ estate repos" ".machine_readable/ — format is specified; do not add files outside the contractile schema" @@ -88,7 +88,7 @@ (ecosystem (belongs-to "standalone — standards is its own top-level repo, not a monorepo subdirectory") (depended-on-by - ("all hyperpolymath repos" "copy contractiles/ templates as compliance baseline") + ("all hyperpolymath repos" "copy 1-formats/contractiles/ templates as compliance baseline") ("gitbot-fleet" "reads RSR requirements to automate compliance checks") ("hypatia" "references CRG, RSR, and contractile specs for CI rule definitions") ("rsr-template-repo" "is the materialised form of RSR requirements defined here")) diff --git a/.machine_readable/MUST.contractile b/.machine_readable/MUST.contractile index 8a94cc90e..95647e530 100644 --- a/.machine_readable/MUST.contractile +++ b/.machine_readable/MUST.contractile @@ -26,7 +26,7 @@ ; remain active until the feature is fully removed. ; ; Enforcement: -; K9 validators in contractiles/k9/ machine-check MUST constraints. +; K9 validators in 1-formats/contractiles/k9/ machine-check MUST constraints. ; CI runs these on every PR. Violations block merge. ; ; ── End Definitions ────────────────────────────────────────────── @@ -117,7 +117,7 @@ (must "banned_language_file honours documented path_allow_prefixes (bindings/deno, *.d.ts, vitest.config.ts, ...)"))) (enforcement - (k9-validator "contractiles/k9/must-check.k9.ncl") + (k9-validator "1-formats/contractiles/k9/must-check.k9.ncl") (ci "quality.yml runs must-check on every PR") ) ) diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 24e09e992..66bcfc642 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -52,8 +52,8 @@ route = "the K9 specification, security analysis and adoption guidance (implemen id = "contractiles" name = "Contractiles (Must/Trust/Dust/Intend)" stream = "foundation" -home = "contractiles/" -canonical_doc = "contractiles/README.adoc" +home = "1-formats/contractiles/" +canonical_doc = "1-formats/contractiles/README.adoc" source_hash = "sha256:196b51cb7efbe7c9dc775513e45e46d5b88404dd8c0cf50391a466cba3b53a34" route = "policy-enforcement primitives the K9 layer is built from" @@ -223,8 +223,8 @@ route = "continuity / verify / handover protocols" id = "did-you-actually-do-that" name = "DYADT — Did-You-Actually-Do-That" stream = "governance" -home = "did-you-actually-do-that/" -canonical_doc = "did-you-actually-do-that/README.adoc" +home = "1-formats/sub-specs/did-you-actually-do-that/" +canonical_doc = "1-formats/sub-specs/did-you-actually-do-that/README.adoc" source_hash = "sha256:453bf00d0dfac71576b5e7b4068fb8987abc3337d4bc3bf75c081e0332ae1dff" route = "post-action agent-claim verification (Tier 4 accountability)" @@ -232,8 +232,8 @@ route = "post-action agent-claim verification (Tier 4 accountability)" id = "ensaid-config" name = "ENSAID Config" stream = "governance" -home = "ensaid-config/" -canonical_doc = "ensaid-config/README.adoc" +home = "1-formats/sub-specs/ensaid-config/" +canonical_doc = "1-formats/sub-specs/ensaid-config/README.adoc" source_hash = "sha256:c56e9784c957b9bd29704d41cbf7d88b1495789e0ad1c628de42abe900d319ef" route = "the ensaid configuration standard" @@ -277,8 +277,8 @@ route = "the dogfooding rules that scan THIS repo (incl. drift detection)" id = "a2ml-templates" name = "A2ML Templates" stream = "integration" -home = "a2ml-templates/" -canonical_doc = "a2ml-templates/STATE.a2ml.v2.spec.adoc" +home = "1-formats/templates/" +canonical_doc = "1-formats/templates/STATE.a2ml.v2.spec.adoc" source_hash = "sha256:16fc9e6b38b1bf06a3fdc1069127af42985562381f3ef126d0dcd0370f774783" route = "copy-in templates for the 7 A2ML files" diff --git a/.machine_readable/descriptiles/PLAYBOOK.a2ml b/.machine_readable/descriptiles/PLAYBOOK.a2ml index f5cbe97c6..b138f2597 100644 --- a/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ b/.machine_readable/descriptiles/PLAYBOOK.a2ml @@ -34,7 +34,7 @@ last-updated = "2026-04-11" [docs-format] # Estate docs are .adoc-canonical, no duplicate formats. Sole exception: the # Glama README.md carve-out (gated on glama.json). See -# contractiles/CANONICAL-TEMPLATES.adoc "Documentation carve-out — Glama README.md". +# 1-formats/contractiles/CANONICAL-TEMPLATES.adoc "Documentation carve-out — Glama README.md". [maintenance-operations] # Baseline audit: just maint-audit diff --git a/.machine_readable/licensing-policy.toml b/.machine_readable/licensing-policy.toml index 82dce15e6..d56f44008 100644 --- a/.machine_readable/licensing-policy.toml +++ b/.machine_readable/licensing-policy.toml @@ -75,7 +75,7 @@ sentinel = ["PLMP-1.0-or-later", "PMLP-1.0-or-later"] classification = "unsubstituted scaffold placeholder (process bug) — NOT licence debt" remediation = "re-run contractiles scaffold substitution; NEVER hand-edit as licence work" family = "PMPL-1.0-or-later-or-later (doubled suffix) is the same scaffold-substituter family" -tripwire = "contractiles/must/Mustfile (groups with REPLACE-WITH-*)" +tripwire = "1-formats/contractiles/must/Mustfile (groups with REPLACE-WITH-*)" [guard] location = "rsr-template-repo/.github/workflows/spdx-policy-guard.yml" diff --git a/.machine_readable/migrations/contractile-layout-2026-04-18.a2ml b/.machine_readable/migrations/contractile-layout-2026-04-18.a2ml index 37f645709..93a576b60 100644 --- a/.machine_readable/migrations/contractile-layout-2026-04-18.a2ml +++ b/.machine_readable/migrations/contractile-layout-2026-04-18.a2ml @@ -14,7 +14,7 @@ Migration { what-applied: [ "Added .machine_readable/contractiles/bust/ (Bustfile.a2ml + bust.ncl) where missing", "Moved .machine_readable/contractiles/k9/ to .machine_readable/svc/k9/ where present", - "Removed duplicate k9 in contractiles/ when svc/k9/ already existed" + "Removed duplicate k9 in 1-formats/contractiles/ when svc/k9/ already existed" ] scope-totals { @@ -44,7 +44,7 @@ Migration { next-waves: [ "wave-3: remaining ~100 canonical-home repos not yet attempted", - "home-consolidation: 287 root-home contractiles/ → .machine_readable/contractiles/", + "home-consolidation: 287 root-home 1-formats/contractiles/ → .machine_readable/contractiles/", "stale-hook sweep: 150 repos need pre-commit hook updated to 6-verb set", "diverged-repos: 11 repos need manual ff-reconciliation before layout sweep retries them" ] diff --git a/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml b/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml index 7dfbd6cfc..5d4cd64b1 100644 --- a/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml +++ b/.machine_readable/scorecards/a2ml-templates.scorecard.a2ml @@ -68,7 +68,7 @@ text = "The migration scripts SHOULD emit non-zero exit codes and clear diagnost system = "none" status = "pass" evidence = "state-scm-to-v2.jl documents and implements distinct exit codes (0 ok, 2 parse/usage error, 3 not a (state ...) form) per its header comment and main()/convert() logic; state-migrate-v1-to-v2.sh uses `set -eu` and exits 1 with a message when the v1 file is missing (line 16)." -check = "sh a2ml-templates/state-migrate-v1-to-v2.sh /nonexistent-repo-path >/dev/null 2>&1; test $? -eq 1 && grep -q \"exit(2)\" a2ml-templates/state-scm-to-v2.jl && grep -q \"exit(3)\" a2ml-templates/state-scm-to-v2.jl" +check = "sh 1-formats/templates/state-migrate-v1-to-v2.sh /nonexistent-repo-path >/dev/null 2>&1; test $? -eq 1 && grep -q \"exit(2)\" 1-formats/templates/state-scm-to-v2.jl && grep -q \"exit(3)\" 1-formats/templates/state-scm-to-v2.jl" effects = "Callers (CI or a future k9-init tool) can branch on exit code to decide whether to retry, prompt a human, or abort; without this, migration failures could pass silently and produce corrupt STATE.a2ml files downstream." [[could]] diff --git a/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml b/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml index dd798c114..ff546daa5 100644 --- a/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml @@ -84,9 +84,9 @@ effects = "No downstream impact today; this is a stretch goal beyond the project [[could]] id = "C2" text = "Contractile templates (Mustfile/Dustfile) COULD be filled in with agentic-a2ml-specific invariants and rollback handlers rather than left as generic copy-in templates." -system = "none — contractiles/must/Mustfile and contractiles/dust/Dustfile reference generic placeholder paths (config/service.yaml, policy/policy.ncl, logs/decisions.json) that do not exist in this repo" +system = "none — 1-formats/contractiles/must/Mustfile and 1-formats/contractiles/dust/Dustfile reference generic placeholder paths (config/service.yaml, policy/policy.ncl, logs/decisions.json) that do not exist in this repo" status = "aspirational" -effects = "Minor: these are explicitly documented in contractiles/README.adoc as a template set meant to be copied and customised per-repo, so their generic state is expected, but as shipped they provide zero enforceable invariant for agentic-a2ml itself." +effects = "Minor: these are explicitly documented in 1-formats/contractiles/README.adoc as a template set meant to be copied and customised per-repo, so their generic state is expected, but as shipped they provide zero enforceable invariant for agentic-a2ml itself." [[could]] id = "C3" diff --git a/.machine_readable/scorecards/anchor-a2ml.scorecard.a2ml b/.machine_readable/scorecards/anchor-a2ml.scorecard.a2ml index 18c9b9400..7b9beb099 100644 --- a/.machine_readable/scorecards/anchor-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/anchor-a2ml.scorecard.a2ml @@ -60,10 +60,10 @@ effects = "No validator enforces presence of an 'expires' field or checks expiry [[should]] id = "S3" -text = "The repository SHOULD supply the 'contractiles' operational/trust/recovery framework wired into this repo's own layout (per contractiles/README.adoc's fill-in instructions) rather than leaving it as an unfilled generic template." +text = "The repository SHOULD supply the 'contractiles' operational/trust/recovery framework wired into this repo's own layout (per 1-formats/contractiles/README.adoc's fill-in instructions) rather than leaving it as an unfilled generic template." system = "/home/user/standards/audit-contractiles.sh (checks for .machine_readable/contractiles/{must,trust,dust,bust,adjust,intend})" status = "fail" -effects = "Running audit-contractiles.sh against this repo reports '❌ No contractiles directory' and '❌ K9 missing' because contractiles/ lives at repo root (contractiles/must/Mustfile, contractiles/dust/Dustfile) rather than under .machine_readable/contractiles/, and only 'must' and 'dust' are present (trust/bust/adjust/intend absent, and Trustfile.hs/Intentfile mentioned in contractiles/README.adoc do not exist on disk). Any monorepo-wide contractile audit will flag this spec as non-compliant; downstream tooling relying on the audit script's monorepo-standard path will not find this repo's contractile files at all." +effects = "Running audit-contractiles.sh against this repo reports '❌ No contractiles directory' and '❌ K9 missing' because 1-formats/contractiles/ lives at repo root (1-formats/contractiles/must/Mustfile, 1-formats/contractiles/dust/Dustfile) rather than under .machine_readable/contractiles/, and only 'must' and 'dust' are present (trust/bust/adjust/intend absent, and Trustfile.hs/Intentfile mentioned in 1-formats/contractiles/README.adoc do not exist on disk). Any monorepo-wide contractile audit will flag this spec as non-compliant; downstream tooling relying on the audit script's monorepo-standard path will not find this repo's contractile files at all." [[should]] id = "S4" diff --git a/.machine_readable/scorecards/contractiles.scorecard.a2ml b/.machine_readable/scorecards/contractiles.scorecard.a2ml index d39c213df..92dcd7a51 100644 --- a/.machine_readable/scorecards/contractiles.scorecard.a2ml +++ b/.machine_readable/scorecards/contractiles.scorecard.a2ml @@ -11,31 +11,31 @@ assessor = "estate-audit" [[must]] id = "M1" -text = "The filled-in contractile instance at contractiles/ MUST have every template placeholder replaced with project-specific content (CANONICAL-TEMPLATES.adoc Fill-In Rule 1: \"Every placeholder string in a template must be replaced with project-specific content before the repo is considered compliant\")." -system = "none — the no-template-residue check inside contractiles/must/Mustfile (line 39-41) is never executed against this path by any CI job (see M2); it is aspirational text, not a running gate" +text = "The filled-in contractile instance at 1-formats/contractiles/ MUST have every template placeholder replaced with project-specific content (CANONICAL-TEMPLATES.adoc Fill-In Rule 1: \"Every placeholder string in a template must be replaced with project-specific content before the repo is considered compliant\")." +system = "none — the no-template-residue check inside 1-formats/contractiles/must/Mustfile (line 39-41) is never executed against this path by any CI job (see M2); it is aspirational text, not a running gate" status = "fail" -effects = "contractiles/must/Mustfile still contains 'REPLACE-WITH-REPO-NAME' (line 10, metadata.name) and 'REPLACE with a real description' (line 12); contractiles/dust/Dustfile still contains 'REPLACE-WITH-REAL-CONFIG-PATH' (lines 23-24) and a wholly generic 'example-deprecated-surface' entry with 'REPLACE with the real API, module, or command' (lines 35-38). By the standard's own Rule 1 this directory is not yet compliant with itself." +effects = "1-formats/contractiles/must/Mustfile still contains 'REPLACE-WITH-REPO-NAME' (line 10, metadata.name) and 'REPLACE with a real description' (line 12); 1-formats/contractiles/dust/Dustfile still contains 'REPLACE-WITH-REAL-CONFIG-PATH' (lines 23-24) and a wholly generic 'example-deprecated-surface' entry with 'REPLACE with the real API, module, or command' (lines 35-38). By the standard's own Rule 1 this directory is not yet compliant with itself." [[must]] id = "M2" -text = "The invariants declared in the repo-top-level Mustfile (contractiles/must/Mustfile) MUST be executed and gate CI for this repository, matching CANONICAL-TEMPLATES.adoc's description of Must as \"release-blocking\" and \"machine-checked\"." -system = "scripts/run-mustfile.sh and scripts/check-mustfile-structure.sh, wired into .github/workflows/boj-build.yml job 'validate-contractiles' — but both scripts default to .machine_readable/contractiles/must/Mustfile.a2ml, a separate/different file tree, not contractiles/must/Mustfile" +text = "The invariants declared in the repo-top-level Mustfile (1-formats/contractiles/must/Mustfile) MUST be executed and gate CI for this repository, matching CANONICAL-TEMPLATES.adoc's description of Must as \"release-blocking\" and \"machine-checked\"." +system = "scripts/run-mustfile.sh and scripts/check-mustfile-structure.sh, wired into .github/workflows/boj-build.yml job 'validate-contractiles' — but both scripts default to .machine_readable/contractiles/must/Mustfile.a2ml, a separate/different file tree, not 1-formats/contractiles/must/Mustfile" status = "fail" -effects = "The contractiles/must/Mustfile reviewed here (the 'repo-top-level copy' meant to be copied into new repos, per its own README) is never invoked by any CI step; its checks (tests-pass, format-ok, license-present, spdx-headers-present, no-template-residue, tooling-version-integrity) are declared but not enforced for this directory. Downstream repos that copy contractiles/ verbatim and assume 'the estate validates this' inherit a false sense of gating unless they separately wire it themselves." +effects = "The 1-formats/contractiles/must/Mustfile reviewed here (the 'repo-top-level copy' meant to be copied into new repos, per its own README) is never invoked by any CI step; its checks (tests-pass, format-ok, license-present, spdx-headers-present, no-template-residue, tooling-version-integrity) are declared but not enforced for this directory. Downstream repos that copy 1-formats/contractiles/ verbatim and assume 'the estate validates this' inherit a false sense of gating unless they separately wire it themselves." [[must]] id = "M3" -text = "Intentfile (contractiles/intend/Intentfile.a2ml) MUST implement the [[intents]] (tracked next-actions with probes) and [[wishes]] (near/mid/far horizon aspirations) structure documented as the canonical Intend schema in CANONICAL-TEMPLATES.adoc §1/§2 and CANONICAL-TEMPLATES.adoc's fill-in rule 5." +text = "Intentfile (1-formats/contractiles/intend/Intentfile.a2ml) MUST implement the [[intents]] (tracked next-actions with probes) and [[wishes]] (near/mid/far horizon aspirations) structure documented as the canonical Intend schema in CANONICAL-TEMPLATES.adoc §1/§2 and CANONICAL-TEMPLATES.adoc's fill-in rule 5." system = "none" status = "fail" effects = "The actual file contains only @abstract / Purpose / Anti-Purpose / If-In-Doubt prose sections and has neither an [[intents]] nor a [[wishes]] block. Any k9 automation or estate audit tool that expects to parse probes off [[intents]] entries (as the separate .machine_readable/contractiles/intend/intend.k9.ncl runner is built to do) finds nothing to act on for this copy of the template." [[must]] id = "M4" -text = "The repo-top-level contractiles/ directory MUST provide all six verbs (must/trust/adjust/dust/bust/intend) plus the k9/ automation surface, as tabulated in its own README.adoc §Template Roles and reiterated by CANONICAL-TEMPLATES.adoc §1." +text = "The repo-top-level 1-formats/contractiles/ directory MUST provide all six verbs (must/trust/adjust/dust/bust/intend) plus the k9/ automation surface, as tabulated in its own README.adoc §Template Roles and reiterated by CANONICAL-TEMPLATES.adoc §1." system = "none" status = "fail" -effects = "On disk, contractiles/ contains only must/, trust/, dust/, and intend/ (matching the registry's narrower name 'Contractiles (Must/Trust/Dust/Intend)' in scripts/build-registry.sh line 64) — adjust/, bust/, and k9/ are absent. A consumer repo following the literal instruction 'Copy this contractiles/ directory into a new repo' (README.adoc line 13) gets an incomplete verb set: no drift-tolerance/corrective-action surface (Adjust) and no hard-stop/expiry declarations (Bust), both of which CANONICAL-TEMPLATES.adoc calls gating." +effects = "On disk, 1-formats/contractiles/ contains only must/, trust/, dust/, and intend/ (matching the registry's narrower name 'Contractiles (Must/Trust/Dust/Intend)' in scripts/build-registry.sh line 64) — adjust/, bust/, and k9/ are absent. A consumer repo following the literal instruction 'Copy this 1-formats/contractiles/ directory into a new repo' (README.adoc line 13) gets an incomplete verb set: no drift-tolerance/corrective-action surface (Adjust) and no hard-stop/expiry declarations (Bust), both of which CANONICAL-TEMPLATES.adoc calls gating." [[must]] id = "M5" @@ -46,21 +46,21 @@ effects = "Downstream repos and licence-scanning tooling rely on accurate SPDX h [[should]] id = "S1" -text = "Trustfile (contractiles/trust/Trustfile.a2ml) SHOULD name real, repo-specific keys, policies, and authority boundaries rather than generic reassurance (CANONICAL-TEMPLATES.adoc §Trust, Fill-In Rule 3)." +text = "Trustfile (1-formats/contractiles/trust/Trustfile.a2ml) SHOULD name real, repo-specific keys, policies, and authority boundaries rather than generic reassurance (CANONICAL-TEMPLATES.adoc §Trust, Fill-In Rule 3)." system = "none — no automated check runs the Trustfile's own declared 'run:' probes (license-content, no-secrets-committed) against this repo" status = "manual-only" effects = "On manual reading the content is concrete for this repo (trust-level: maximal, explicit trust-actions/trust-deny lists, two named integrity checks referencing the real LICENSE file), so the intent of Rule 3 appears satisfied — but since nothing executes the declared 'run:' lines, this can silently drift out of sync with the actual repo state (e.g. if a .env file were added) without anything noticing." [[should]] id = "S2" -text = "Dustfile (contractiles/dust/Dustfile) SHOULD describe real rollback / deprecation behaviour with concrete paths, per CANONICAL-TEMPLATES.adoc §Dust and Fill-In Rule 4." +text = "Dustfile (1-formats/contractiles/dust/Dustfile) SHOULD describe real rollback / deprecation behaviour with concrete paths, per CANONICAL-TEMPLATES.adoc §Dust and Fill-In Rule 4." system = "none" status = "fail" effects = "The 'config-rollback' recovery entry still targets the placeholder path 'REPLACE-WITH-REAL-CONFIG-PATH' (lines 23-24) and the 'deprecation' entry is a templated 'example-deprecated-surface' with 'REPLACE with the real API...' (lines 35-38). Only the 'preserve: glama-readme' and 'source-rollback'/'regen-outputs' entries are genuinely filled in. A consumer reading this Dustfile for actual rollback guidance on config changes gets a template stub, not a working procedure." [[should]] id = "S3" -text = "The Glama README.md carve-out SHOULD be consistently wired across its three coupled checks — doc-format.yml, contractiles/must/Mustfile's readme-md-glama-carveout, and contractiles/dust/Dustfile's preserve:glama-readme — as CANONICAL-TEMPLATES.adoc §1 'Documentation carve-out' promises." +text = "The Glama README.md carve-out SHOULD be consistently wired across its three coupled checks — doc-format.yml, 1-formats/contractiles/must/Mustfile's readme-md-glama-carveout, and 1-formats/contractiles/dust/Dustfile's preserve:glama-readme — as CANONICAL-TEMPLATES.adoc §1 'Documentation carve-out' promises." system = "none — no automated cross-file consistency check exists; verified here only by direct reading" status = "manual-only" effects = "Currently consistent by inspection: Mustfile line 31-33 (readme-md-glama-carveout, gated on glama.json) and Dustfile lines 27-32 (preserve: glama-readme, same gate) agree with each other and with the doc's description. Because nothing automates the cross-check, the three could drift apart in a future edit without CI catching it." 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 38d3d75ad..9aa13b694 100644 --- a/.machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml +++ b/.machine_readable/scorecards/did-you-actually-do-that.scorecard.a2ml @@ -12,10 +12,10 @@ assessor = "estate-audit" [[must]] id = "M1" text = "DYADT MUST define a typed, machine-checkable claim format." -system = "did-you-actually-do-that/spec/CLAIM-FORMAT.adoc (normative claim classes + required fields)" +system = "1-formats/sub-specs/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc (normative claim classes + required fields)" status = "pass" evidence = "spec/CLAIM-FORMAT.adoc present; 7 claim classes and required-field table defined; example CLAIMS.a2ml shipped." -check = "test -f did-you-actually-do-that/spec/CLAIM-FORMAT.adoc && grep -c '^| ' did-you-actually-do-that/spec/CLAIM-FORMAT.adoc | grep -q '^[1-9]'" +check = "test -f 1-formats/sub-specs/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc && grep -c '^| ' 1-formats/sub-specs/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc | grep -q '^[1-9]'" effects = "Without a fixed claim format the parallel production verifier has no contract to build against." [[must]] @@ -39,10 +39,10 @@ effects = "Silent 'assumed pass' would reintroduce the false-green disease DYADT [[must]] id = "M4" text = "A conformance vector suite MUST exist so any verifier can be validated against shared ground truth." -system = "did-you-actually-do-that/spec/conformance/run-conformance.sh (+ 6 vector pairs)" +system = "1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh (+ 6 vector pairs)" status = "pass" evidence = "run-conformance.sh passes 6/6 vectors covering confirmed/refuted/unverifiable/incompatible-verifier/manual-only." -check = "bash did-you-actually-do-that/spec/conformance/run-conformance.sh" +check = "bash 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh" effects = "Without shared vectors the reference and production verifiers could silently diverge." [[must]] @@ -57,19 +57,19 @@ effects = "If a claim here were false, CI is refuted and fails loudly — the sp [[should]] id = "S1" text = "DYADT SHOULD specify an append-only, dual-signed consequence ledger and a per-actor confirmation rate." -system = "did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc + .machine_readable/ledger/ format" +system = "1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc + .machine_readable/ledger/ format" status = "pass" evidence = "CONSEQUENCE-LEDGER.adoc defines the entry format, the confirmation-rate formula, and how Tier 3 MAY gate on it." -check = "test -f did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc && grep -q 'confirmation rate' did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc && grep -q 'Tier 3' did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc" +check = "test -f 1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc && grep -q 'confirmation rate' 1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc && grep -q 'Tier 3' 1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc" effects = "Verification without memory cannot escalate on a repeatedly-over-claiming actor." [[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 + 0-canon/CANONICAL-NAMES.adoc entry" +system = "1-formats/sub-specs/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 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" +check = "test -f 1-formats/sub-specs/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/ecosystem-a2ml.scorecard.a2ml b/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml index fc7fe794d..4fa929d61 100644 --- a/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml @@ -64,10 +64,10 @@ effects = "No .github/workflows exist under ecosystem-a2ml/, and no repo-root wo [[should]] id = "S3" -text = "Governance contractiles (Mustfile/Dustfile/Trustfile/Intentfile under contractiles/) SHOULD be filled in with this project's real invariants rather than left as generic templates." +text = "Governance contractiles (Mustfile/Dustfile/Trustfile/Intentfile under 1-formats/contractiles/) SHOULD be filled in with this project's real invariants rather than left as generic templates." system = "none (root scripts/check-mustfile-structure.sh and scripts/run-mustfile.sh default to .machine_readable/contractiles/must/Mustfile.a2ml at repo root and are not wired to ecosystem-a2ml/contractiles/must/Mustfile, which uses a different path/naming convention)" status = "fail" -effects = "contractiles/must/Mustfile still contains the literal template checks (config-valid, gateway-exposes-port, etc.) unrelated to an A2ML spec repo, and .machine_readable/6a2/ECOSYSTEM.a2ml has empty purpose/role/category fields and 'No related projects recorded' — none of it reflects real invariants, so the framework provides no actual governance signal for this repo, and the monorepo's boj-build.yml CI job validates only the top-level repo's own contractiles, not this subdirectory's." +effects = "1-formats/contractiles/must/Mustfile still contains the literal template checks (config-valid, gateway-exposes-port, etc.) unrelated to an A2ML spec repo, and .machine_readable/descriptiles/ECOSYSTEM.a2ml has empty purpose/role/category fields and 'No related projects recorded' — none of it reflects real invariants, so the framework provides no actual governance signal for this repo, and the monorepo's boj-build.yml CI job validates only the top-level repo's own contractiles, not this subdirectory's." [[should]] id = "S4" diff --git a/.machine_readable/scorecards/ensaid-config.scorecard.a2ml b/.machine_readable/scorecards/ensaid-config.scorecard.a2ml index 470f83cdf..4cd767511 100644 --- a/.machine_readable/scorecards/ensaid-config.scorecard.a2ml +++ b/.machine_readable/scorecards/ensaid-config.scorecard.a2ml @@ -33,7 +33,7 @@ effects = "Consumers relying on this spec (PanLL and any future eNSAID tool) hav [[must]] id = "M4" text = "eNSAID tools MUST ignore unrecognised ENSAID_CONFIG.a2ml sections/fields (forward compatibility) and MUST reject files whose major version is unsupported (Versioning / Version Negotiation sections)." -system = "none — no parser, conformance test suite, or fixture corpus (valid/invalid ENSAID_CONFIG.a2ml samples) exists in ensaid-config/ or elsewhere to exercise this behaviour" +system = "none — no parser, conformance test suite, or fixture corpus (valid/invalid ENSAID_CONFIG.a2ml samples) exists in 1-formats/sub-specs/ensaid-config/ or elsewhere to exercise this behaviour" status = "fail" effects = "Without an executable conformance suite, forward/backward compatibility across future spec minor/major bumps is unverifiable; any consumer tool's version-negotiation logic is untested against the spec's own examples." @@ -68,7 +68,7 @@ effects = "No audit-log mechanism or protection-level enforcement exists anywher [[could]] id = "C1" text = "The spec COULD ship a machine-checkable JSON Schema (or equivalent) for ENSAID_CONFIG.a2ml so tools and CI can validate section/field/enum correctness automatically." -system = "none — no .schema.json or equivalent exists under ensaid-config/ (contrast with, e.g., k9-svc/receipt/receipt.schema.json and .machine_readable/scorecards/scorecard.schema.json which do exist for other artefacts)" +system = "none — no .schema.json or equivalent exists under 1-formats/sub-specs/ensaid-config/ (contrast with, e.g., k9-svc/receipt/receipt.schema.json and .machine_readable/scorecards/scorecard.schema.json which do exist for other artefacts)" status = "fail" effects = "Without a schema, the enum-mismatch gap found in M2 (deployed files using gold/silver/bronze instead of the documented rhodium/everything/code/bespoke) went undetected by any tooling and will recur for every future adopting repository." diff --git a/.verisimdb/config.toml b/.verisimdb/config.toml index 03720045a..b340a8f8a 100644 --- a/.verisimdb/config.toml +++ b/.verisimdb/config.toml @@ -61,7 +61,7 @@ graph = ["dependency_chain", "transitive_consumers"] provenance = ["detection_method", "evidence_file", "evidence_line"] # Inline annotations — @trust/@contract/@grade from code -# See: inline-annotations/SPEC.adoc (v0.1.0 draft, 2026-04-05) +# See: 1-formats/sub-specs/inline-annotations/SPEC.adoc (v0.1.0 draft, 2026-04-05) [[octad_schema]] entity = "inline-annotation" description = "Machine-readable annotation extracted from source code" diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index 15fdb5736..40bc82099 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -21,7 +21,7 @@ content-addressed `source_hash`. Prose explanation: `REGISTRY.adoc`. | If you want… | Go to | |---|---| | Every spec + home + source hash | `.machine_readable/REGISTRY.a2ml` | -| A2ML / K9 foundation (Stream 1) | `a2ml/`, `k9-svc/`, `contractiles/`, `*-a2ml/` | +| A2ML / K9 foundation (Stream 1) | `a2ml/`, `k9-svc/`, `1-formats/contractiles/`, `*-a2ml/` | | Language policy (Stream 2) | `.claude/CLAUDE.md` | | Protocols | `*-protocol/` (registry stream `protocol`) | | Readiness grades | `adoption-readiness-grades/`, `foundations-readiness-grades/`, `component-readiness-grades/`, `toolchain-readiness-grades/` | diff --git a/0-ai-gatekeeper-protocol/contractiles/README.adoc b/0-ai-gatekeeper-protocol/contractiles/README.adoc index d19a38774..4d7f0c058 100644 --- a/0-ai-gatekeeper-protocol/contractiles/README.adoc +++ b/0-ai-gatekeeper-protocol/contractiles/README.adoc @@ -2,7 +2,7 @@ :toc: :sectnums: -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. +This directory contains the generalized contractiles templates. Copy the `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. == Fill-In Instructions diff --git a/0-canon/CANONICAL-NAMES.adoc b/0-canon/CANONICAL-NAMES.adoc index ec46b2b5a..515f8bb23 100644 --- a/0-canon/CANONICAL-NAMES.adoc +++ b/0-canon/CANONICAL-NAMES.adoc @@ -72,14 +72,14 @@ DEPRECATED NAMES — DO NOT REINTRODUCE (estate mandate 2026-06-30): agent-claim verifier. Post-action verification of an agent's asserted outcomes is *DYADT* (see below), which subsumes the former "claim-grounder" concept and drops the PLASMA name. See - `did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc`. + `1-formats/sub-specs/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc`. | **DYADT** | Did-You-Actually-Do-That | "PLASMA", "the grounder" | Post-action agent-claim verification (Tier 4 of the accountability pipeline): takes an agent's asserted outcomes and mechanically confirms/refutes each - against primary evidence. Home: `did-you-actually-do-that/`. + against primary evidence. Home: `1-formats/sub-specs/did-you-actually-do-that/`. | **The Joinery** | The three-layer connective system: cleave / groove / spline diff --git a/A2ML-REPO-TEMPLATE.adoc b/1-formats/A2ML-REPO-TEMPLATE.adoc similarity index 99% rename from A2ML-REPO-TEMPLATE.adoc rename to 1-formats/A2ML-REPO-TEMPLATE.adoc index f24bc05bd..d9cf517ab 100644 --- a/A2ML-REPO-TEMPLATE.adoc +++ b/1-formats/A2ML-REPO-TEMPLATE.adoc @@ -95,7 +95,7 @@ Every A2ML specification repository MUST have: ├── SECURITY.md # Security policy ├── CODE_OF_CONDUCT.md # Community standards ├── LICENSE.txt # PMPL-1.0-or-later -├── SATELLITES.a2ml # List of satellite projects (if hub) +├── 1-formats/SATELLITES.a2ml # List of satellite projects (if hub) ├── Justfile # Build/test automation └── Mustfile # Mandatory checks ---- diff --git a/SATELLITES.a2ml b/1-formats/SATELLITES.a2ml similarity index 100% rename from SATELLITES.a2ml rename to 1-formats/SATELLITES.a2ml diff --git a/contractiles/CANONICAL-TEMPLATES.adoc b/1-formats/contractiles/CANONICAL-TEMPLATES.adoc similarity index 93% rename from contractiles/CANONICAL-TEMPLATES.adoc rename to 1-formats/contractiles/CANONICAL-TEMPLATES.adoc index c000676a6..d2ce79d5e 100644 --- a/contractiles/CANONICAL-TEMPLATES.adoc +++ b/1-formats/contractiles/CANONICAL-TEMPLATES.adoc @@ -5,7 +5,7 @@ Jonathan D.A. Jewell :toc: macro :sectnums: -This document defines the estate-level meaning of the canonical `contractiles/` +This document defines the estate-level meaning of the canonical `1-formats/contractiles/` templates and the `k9` Kennel/Yard/Hunt tiers. Use it when auditing whether a repository's declared invariants, trust boundaries, rollback story, and future intent are real rather than template residue. @@ -23,32 +23,32 @@ toc::[] | Role | Canonical Template Path | What It Means | Audit Question | Must -| `contractiles/must/Mustfile` +| `1-formats/contractiles/must/Mustfile` | Release-blocking invariants and validations. This is where a repo declares the checks that must hold before it can claim a given state. | Do the checks encode real repo invariants, or are they still generic placeholders? | Trust -| `contractiles/trust/Trustfile.a2ml` +| `1-formats/contractiles/trust/Trustfile.a2ml` | Provenance, allowed/denied actions, trust boundary, and integrity checks. | Does the trust posture match the actual keys, policies, and authority boundaries in the repo? | Dust -| `contractiles/dust/Dustfile` +| `1-formats/contractiles/dust/Dustfile` | Recovery, rollback, deprecation, and traceability semantics. | If something goes wrong, does this file explain how the repo rolls back or retires behavior without losing the audit trail? | Adjust -| `contractiles/adjust/Adjustfile.a2ml` +| `1-formats/contractiles/adjust/Adjustfile.a2ml` | Drift tolerances and corrective actions the repo commits to when observed state deviates from declared state. | Are the tolerances realistic, and does each one have a defined corrective action rather than a silent shrug? | Bust -| `contractiles/bust/Bustfile.a2ml` +| `1-formats/contractiles/bust/Bustfile.a2ml` | Hard-stop and expiry conditions. Declares "this is broken / expired / must-not-run" rather than "this must stay healthy". | Are the stop conditions enforced at runtime, or only documented as wishes? | Intend -| `contractiles/intend/Intentfile.a2ml` +| `1-formats/contractiles/intend/Intentfile.a2ml` | North-star: committed next-actions ([[intents]] with probes, declared → in_progress → done/deferred/retired) AND horizon aspirations ([[wishes]] grouped near/mid/far, declared → in_progress → achieved/abandoned). | Does each intent have an observable probe? Does the declared scope match the README, roadmap, and actual implementation boundary? Are wishes clearly aspirational rather than masquerading as commitments? |=== @@ -81,9 +81,9 @@ of a `glama.json` at the repo root. without a `glama.json`. * Enforced by three coupled checks, all keyed on `glama.json`: `doc-format.yml` (skips the duplicate error for `README`), - `contractiles/must/Mustfile` (`readme-md-glama-carveout` — requires the + `1-formats/contractiles/must/Mustfile` (`readme-md-glama-carveout` — requires the `README.md` when `glama.json` is present), and - `contractiles/dust/Dustfile` (`preserve: glama-readme` — forbids cleanup + `1-formats/contractiles/dust/Dustfile` (`preserve: glama-readme` — forbids cleanup from deleting it). ==== @@ -159,17 +159,17 @@ not be presented elsewhere as already-shipped work. | Tier | Canonical Template | Capability | Audit Expectation | Kennel -| `contractiles/k9/template-kennel.k9.ncl` +| `1-formats/contractiles/k9/template-kennel.k9.ncl` | Pure data. No subprocesses, no filesystem writes, no network access. | Safe for metadata, declarative settings, and other read-only structured outputs. | Yard -| `contractiles/k9/template-yard.k9.ncl` +| `1-formats/contractiles/k9/template-yard.k9.ncl` | Nickel evaluation with contracts and validation, but no side effects. | Use for validated configuration, schemas, and policies that need machine-checked structure. | Hunt -| `contractiles/k9/template-hunt.k9.ncl` +| `1-formats/contractiles/k9/template-hunt.k9.ncl` | Full execution surface with recipes and side effects. | Must declare side effects clearly, support dry-run review, and be signed before the estate treats it as trustworthy automation. |=== diff --git a/contractiles/README.adoc b/1-formats/contractiles/README.adoc similarity index 97% rename from contractiles/README.adoc rename to 1-formats/contractiles/README.adoc index fc77311bc..38fe1b212 100644 --- a/contractiles/README.adoc +++ b/1-formats/contractiles/README.adoc @@ -10,7 +10,7 @@ full verb and audit-semantics reference, and link:CANONICAL-TEMPLATES.adoc[Canonical Contractiles And K9 Guide] for the estate-level audit semantics. -Copy this `contractiles/` directory into a new repo to establish a +Copy this `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, aspiration, and service-automation framework. diff --git a/contractiles/dust/Dustfile b/1-formats/contractiles/dust/Dustfile similarity index 100% rename from contractiles/dust/Dustfile rename to 1-formats/contractiles/dust/Dustfile diff --git a/contractiles/intend/Intentfile.a2ml b/1-formats/contractiles/intend/Intentfile.a2ml similarity index 100% rename from contractiles/intend/Intentfile.a2ml rename to 1-formats/contractiles/intend/Intentfile.a2ml diff --git a/contractiles/must/Mustfile b/1-formats/contractiles/must/Mustfile similarity index 100% rename from contractiles/must/Mustfile rename to 1-formats/contractiles/must/Mustfile diff --git a/contractiles/trust/Trustfile.a2ml b/1-formats/contractiles/trust/Trustfile.a2ml similarity index 100% rename from contractiles/trust/Trustfile.a2ml rename to 1-formats/contractiles/trust/Trustfile.a2ml diff --git a/deed/README.adoc b/1-formats/deed/README.adoc similarity index 100% rename from deed/README.adoc rename to 1-formats/deed/README.adoc diff --git a/deed/docs/iana/application-vnd.deed-registration.txt b/1-formats/deed/docs/iana/application-vnd.deed-registration.txt similarity index 100% rename from deed/docs/iana/application-vnd.deed-registration.txt rename to 1-formats/deed/docs/iana/application-vnd.deed-registration.txt diff --git a/deed/spec/DEED-GRAMMAR-SPEC.adoc b/1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc similarity index 100% rename from deed/spec/DEED-GRAMMAR-SPEC.adoc rename to 1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc diff --git a/deed/spec/DEED-GRAMMAR-SPEC_v0.1.adoc b/1-formats/deed/spec/DEED-GRAMMAR-SPEC_v0.1.adoc similarity index 100% rename from deed/spec/DEED-GRAMMAR-SPEC_v0.1.adoc rename to 1-formats/deed/spec/DEED-GRAMMAR-SPEC_v0.1.adoc diff --git a/deed/spec/abnf/deed.abnf_v1.0 b/1-formats/deed/spec/abnf/deed.abnf_v1.0 similarity index 100% rename from deed/spec/abnf/deed.abnf_v1.0 rename to 1-formats/deed/spec/abnf/deed.abnf_v1.0 diff --git a/deed/spec/abnf/deed.anbf b/1-formats/deed/spec/abnf/deed.anbf similarity index 100% rename from deed/spec/abnf/deed.anbf rename to 1-formats/deed/spec/abnf/deed.anbf diff --git a/bindings-haskell/.devcontainer/Containerfile b/1-formats/sub-specs/bindings-haskell/.devcontainer/Containerfile similarity index 100% rename from bindings-haskell/.devcontainer/Containerfile rename to 1-formats/sub-specs/bindings-haskell/.devcontainer/Containerfile diff --git a/cartridges/0.2-AI-MANIFEST.a2ml b/1-formats/sub-specs/cartridges/0.2-AI-MANIFEST.a2ml similarity index 100% rename from cartridges/0.2-AI-MANIFEST.a2ml rename to 1-formats/sub-specs/cartridges/0.2-AI-MANIFEST.a2ml diff --git a/cartridges/CARTRIDGE-FORMAT.adoc b/1-formats/sub-specs/cartridges/CARTRIDGE-FORMAT.adoc similarity index 98% rename from cartridges/CARTRIDGE-FORMAT.adoc rename to 1-formats/sub-specs/cartridges/CARTRIDGE-FORMAT.adoc index 33d6bb481..17693eeb0 100644 --- a/cartridges/CARTRIDGE-FORMAT.adoc +++ b/1-formats/sub-specs/cartridges/CARTRIDGE-FORMAT.adoc @@ -77,7 +77,7 @@ Cartridge registries (canonically `hyperpolymath/boj-server-cartridges`) lay out their contents as the *Hybrid taxonomy*: ---- -cartridges/ +1-formats/sub-specs/cartridges/ ├── domains/ │ ├── cloud/ │ │ ├── mcp.cartridge/ ← cloud-mcp @@ -167,7 +167,7 @@ a worked example. Key files in that repository: -* `schemas/cartridge-v1.json` — SHA-pinned mirror of `cartridges/cartridge-v1.json` +* `schemas/cartridge-v1.json` — SHA-pinned mirror of `1-formats/sub-specs/cartridges/cartridge-v1.json` from this repo. * `schemas/PINNED-SHA` — exact upstream commit the mirror tracks. * `schemas/SCHEMA-MIRROR.md` — in-tree authority documenting the refresh diff --git a/cartridges/cartridge-v1.json b/1-formats/sub-specs/cartridges/cartridge-v1.json similarity index 94% rename from cartridges/cartridge-v1.json rename to 1-formats/sub-specs/cartridges/cartridge-v1.json index fd2ac6704..e6cc96593 100644 --- a/cartridges/cartridge-v1.json +++ b/1-formats/sub-specs/cartridges/cartridge-v1.json @@ -37,7 +37,7 @@ "category": { "type": "string", "enum": ["domain", "cross-cutting", "template"], - "description": "Taxonomy category. Domain cartridges live under cartridges/domains//. Cross-cutting under cartridges/cross-cutting/. Templates under cartridges/templates/." + "description": "Taxonomy category. Domain cartridges live under 1-formats/sub-specs/cartridges/domains//. Cross-cutting under 1-formats/sub-specs/cartridges/cross-cutting/. Templates under 1-formats/sub-specs/cartridges/templates/." }, "tier": { "type": "string", @@ -125,7 +125,7 @@ }, "path": { "type": "string", - "description": "Path within the registry, e.g. cartridges/domains/cloud/mcp.cartridge" + "description": "Path within the registry, e.g. 1-formats/sub-specs/cartridges/domains/cloud/mcp.cartridge" }, "sha256": { "type": "string", diff --git a/did-you-actually-do-that/README.adoc b/1-formats/sub-specs/did-you-actually-do-that/README.adoc similarity index 98% rename from did-you-actually-do-that/README.adoc rename to 1-formats/sub-specs/did-you-actually-do-that/README.adoc index 372cd35d3..6d2cdf573 100644 --- a/did-you-actually-do-that/README.adoc +++ b/1-formats/sub-specs/did-you-actually-do-that/README.adoc @@ -43,11 +43,11 @@ green*. | 3. In-session invariant gates | Contractile MUST/TRUST/BUST/DUST/ADJUST/INTEND — block at session-close / pre-push / pre-merge. -| `contractiles/` +| `1-formats/contractiles/` | **4. Post-action verification (this spec)** | **Take the agent's claimed outcomes and mechanically confirm each against primary evidence; record the verdicts in an append-only consequence ledger.** -| **`did-you-actually-do-that/`** +| **`1-formats/sub-specs/did-you-actually-do-that/`** |=== Tiers 1–3 answer "should this happen / may this happen". Tier 4 answers the diff --git a/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc b/1-formats/sub-specs/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc similarity index 100% rename from did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc rename to 1-formats/sub-specs/did-you-actually-do-that/docs/NAMING-RESOLUTION.adoc diff --git a/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc b/1-formats/sub-specs/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc similarity index 100% rename from did-you-actually-do-that/spec/CLAIM-FORMAT.adoc rename to 1-formats/sub-specs/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc diff --git a/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc b/1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc similarity index 97% rename from did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc rename to 1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc index 2b1cfd01b..66a2de9d7 100644 --- a/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc +++ b/1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc @@ -37,7 +37,7 @@ refuted = 0 unverifiable = 1 verifier = "scripts/verify-claims.sh@" # Dual signature: BOTH the actor and the verifier attest. Reuses the contractile -# pledge-signing mechanism (contractiles/ TRUST/INTEND). A missing signature +# pledge-signing mechanism (1-formats/contractiles/ TRUST/INTEND). A missing signature # makes the entry advisory-only (it is recorded, but MUST NOT be used to gate). actor_sig = "ssh-ed25519 …" verifier_sig = "ssh-ed25519 …" diff --git a/did-you-actually-do-that/spec/VERIFICATION-PROTOCOL.adoc b/1-formats/sub-specs/did-you-actually-do-that/spec/VERIFICATION-PROTOCOL.adoc similarity index 100% rename from did-you-actually-do-that/spec/VERIFICATION-PROTOCOL.adoc rename to 1-formats/sub-specs/did-you-actually-do-that/spec/VERIFICATION-PROTOCOL.adoc diff --git a/did-you-actually-do-that/spec/conformance/README.adoc b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/README.adoc similarity index 89% rename from did-you-actually-do-that/spec/conformance/README.adoc rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/README.adoc index b405b9697..e3d485695 100644 --- a/did-you-actually-do-that/spec/conformance/README.adoc +++ b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/README.adoc @@ -17,4 +17,4 @@ The vectors deliberately use base-independent conditions (fixed commands, fixture-file contents, verifier/class mismatches, licence claims) so the expected verdicts are stable regardless of git history. -Run: `bash did-you-actually-do-that/spec/conformance/run-conformance.sh` +Run: `bash 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh` diff --git a/did-you-actually-do-that/spec/conformance/always-match.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/always-match.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/always-match.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/always-match.a2ml diff --git a/did-you-actually-do-that/spec/conformance/always-match.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/always-match.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/always-match.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/always-match.expected diff --git a/did-you-actually-do-that/spec/conformance/confirmed-command.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/confirmed-command.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/confirmed-command.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/confirmed-command.a2ml diff --git a/did-you-actually-do-that/spec/conformance/confirmed-command.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/confirmed-command.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/confirmed-command.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/confirmed-command.expected diff --git a/did-you-actually-do-that/spec/conformance/contains-fixture.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/contains-fixture.a2ml similarity index 70% rename from did-you-actually-do-that/spec/conformance/contains-fixture.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/contains-fixture.a2ml index c036f451e..e74ed2f0e 100644 --- a/did-you-actually-do-that/spec/conformance/contains-fixture.a2ml +++ b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/contains-fixture.a2ml @@ -5,6 +5,6 @@ actor = "conformance" id = "C1" claim_class = "file-changed" statement = "the fixture contains the marker" -target = "did-you-actually-do-that/spec/conformance/fixture.txt" +target = "1-formats/sub-specs/did-you-actually-do-that/spec/conformance/fixture.txt" expect = "contains:DYADT fixture" verifier = "git-diff" diff --git a/did-you-actually-do-that/spec/conformance/contains-fixture.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/contains-fixture.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/contains-fixture.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/contains-fixture.expected diff --git a/did-you-actually-do-that/spec/conformance/fixture.txt b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/fixture.txt similarity index 100% rename from did-you-actually-do-that/spec/conformance/fixture.txt rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/fixture.txt diff --git a/did-you-actually-do-that/spec/conformance/incompatible-verifier.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/incompatible-verifier.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/incompatible-verifier.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/incompatible-verifier.a2ml diff --git a/did-you-actually-do-that/spec/conformance/incompatible-verifier.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/incompatible-verifier.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/incompatible-verifier.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/incompatible-verifier.expected diff --git a/did-you-actually-do-that/spec/conformance/licence-in-statement.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/licence-in-statement.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/licence-in-statement.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/licence-in-statement.a2ml diff --git a/did-you-actually-do-that/spec/conformance/licence-in-statement.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/licence-in-statement.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/licence-in-statement.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/licence-in-statement.expected diff --git a/did-you-actually-do-that/spec/conformance/manual-licence.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/manual-licence.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/manual-licence.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/manual-licence.a2ml diff --git a/did-you-actually-do-that/spec/conformance/manual-licence.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/manual-licence.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/manual-licence.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/manual-licence.expected diff --git a/did-you-actually-do-that/spec/conformance/missing-field.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/missing-field.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/missing-field.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/missing-field.a2ml diff --git a/did-you-actually-do-that/spec/conformance/missing-field.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/missing-field.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/missing-field.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/missing-field.expected diff --git a/did-you-actually-do-that/spec/conformance/refuted-command.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/refuted-command.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/refuted-command.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/refuted-command.a2ml diff --git a/did-you-actually-do-that/spec/conformance/refuted-command.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/refuted-command.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/refuted-command.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/refuted-command.expected diff --git a/did-you-actually-do-that/spec/conformance/run-conformance.sh b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh similarity index 100% rename from did-you-actually-do-that/spec/conformance/run-conformance.sh rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh diff --git a/did-you-actually-do-that/spec/conformance/unsafe-path.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unsafe-path.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/unsafe-path.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unsafe-path.a2ml diff --git a/did-you-actually-do-that/spec/conformance/unsafe-path.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unsafe-path.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/unsafe-path.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unsafe-path.expected diff --git a/did-you-actually-do-that/spec/conformance/unverifiable-network.a2ml b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unverifiable-network.a2ml similarity index 100% rename from did-you-actually-do-that/spec/conformance/unverifiable-network.a2ml rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unverifiable-network.a2ml diff --git a/did-you-actually-do-that/spec/conformance/unverifiable-network.expected b/1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unverifiable-network.expected similarity index 100% rename from did-you-actually-do-that/spec/conformance/unverifiable-network.expected rename to 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/unverifiable-network.expected diff --git a/ensaid-config/0-AI-MANIFEST.a2ml b/1-formats/sub-specs/ensaid-config/0-AI-MANIFEST.a2ml similarity index 100% rename from ensaid-config/0-AI-MANIFEST.a2ml rename to 1-formats/sub-specs/ensaid-config/0-AI-MANIFEST.a2ml diff --git a/ensaid-config/README.adoc b/1-formats/sub-specs/ensaid-config/README.adoc similarity index 100% rename from ensaid-config/README.adoc rename to 1-formats/sub-specs/ensaid-config/README.adoc diff --git a/ensaid-config/spec/ENSAID-CONFIG-SPEC.adoc b/1-formats/sub-specs/ensaid-config/spec/ENSAID-CONFIG-SPEC.adoc similarity index 100% rename from ensaid-config/spec/ENSAID-CONFIG-SPEC.adoc rename to 1-formats/sub-specs/ensaid-config/spec/ENSAID-CONFIG-SPEC.adoc diff --git a/ensaid-config/spec/README.adoc b/1-formats/sub-specs/ensaid-config/spec/README.adoc similarity index 100% rename from ensaid-config/spec/README.adoc rename to 1-formats/sub-specs/ensaid-config/spec/README.adoc diff --git a/inline-annotations/README.adoc b/1-formats/sub-specs/inline-annotations/README.adoc similarity index 100% rename from inline-annotations/README.adoc rename to 1-formats/sub-specs/inline-annotations/README.adoc diff --git a/inline-annotations/SPEC.adoc b/1-formats/sub-specs/inline-annotations/SPEC.adoc similarity index 98% rename from inline-annotations/SPEC.adoc rename to 1-formats/sub-specs/inline-annotations/SPEC.adoc index 396d64b3a..33f0adfa8 100644 --- a/inline-annotations/SPEC.adoc +++ b/1-formats/sub-specs/inline-annotations/SPEC.adoc @@ -182,7 +182,7 @@ the annotation octad. It does not mutate the original annotation. == Reference Implementation -A Rust reference extractor lives in `inline-annotations/extractor/` (to be +A Rust reference extractor lives in `1-formats/sub-specs/inline-annotations/extractor/` (to be written). It parses comments for all languages listed in the language table and emits conformant A2ML. diff --git a/inline-annotations/examples/octad-mapping.a2ml b/1-formats/sub-specs/inline-annotations/examples/octad-mapping.a2ml similarity index 100% rename from inline-annotations/examples/octad-mapping.a2ml rename to 1-formats/sub-specs/inline-annotations/examples/octad-mapping.a2ml diff --git a/inline-annotations/examples/output.a2ml b/1-formats/sub-specs/inline-annotations/examples/output.a2ml similarity index 100% rename from inline-annotations/examples/output.a2ml rename to 1-formats/sub-specs/inline-annotations/examples/output.a2ml diff --git a/inline-annotations/examples/sources.adoc b/1-formats/sub-specs/inline-annotations/examples/sources.adoc similarity index 100% rename from inline-annotations/examples/sources.adoc rename to 1-formats/sub-specs/inline-annotations/examples/sources.adoc diff --git a/inline-annotations/extractor/Cargo.toml b/1-formats/sub-specs/inline-annotations/extractor/Cargo.toml similarity index 100% rename from inline-annotations/extractor/Cargo.toml rename to 1-formats/sub-specs/inline-annotations/extractor/Cargo.toml diff --git a/inline-annotations/extractor/batch-extract.sh b/1-formats/sub-specs/inline-annotations/extractor/batch-extract.sh similarity index 100% rename from inline-annotations/extractor/batch-extract.sh rename to 1-formats/sub-specs/inline-annotations/extractor/batch-extract.sh diff --git a/inline-annotations/extractor/src/main.rs b/1-formats/sub-specs/inline-annotations/extractor/src/main.rs similarity index 99% rename from inline-annotations/extractor/src/main.rs rename to 1-formats/sub-specs/inline-annotations/extractor/src/main.rs index b406cfb5d..ee743f1a3 100644 --- a/inline-annotations/extractor/src/main.rs +++ b/1-formats/sub-specs/inline-annotations/extractor/src/main.rs @@ -4,7 +4,7 @@ // inline-annotations extractor — reference implementation // // Reads source files, finds @trust/@contract/@grade annotations in comments, -// emits an A2ML document to stdout (or --out file). See inline-annotations/SPEC.adoc. +// emits an A2ML document to stdout (or --out file). See 1-formats/sub-specs/inline-annotations/SPEC.adoc. use std::collections::HashMap; use std::env; diff --git a/panll-panels/README.adoc b/1-formats/sub-specs/panll-panels/README.adoc similarity index 93% rename from panll-panels/README.adoc rename to 1-formats/sub-specs/panll-panels/README.adoc index 5a3108b9f..5ff9d365a 100644 --- a/panll-panels/README.adoc +++ b/1-formats/sub-specs/panll-panels/README.adoc @@ -41,4 +41,4 @@ They do NOT yet: - `@rescript/react` for JSX - VeriSimDB running at `http://localhost:8097` (standards instance) -- PanLL workspace manifest must include `panll-panels/manifest.json` +- PanLL workspace manifest must include `1-formats/sub-specs/panll-panels/manifest.json` diff --git a/panll-panels/manifest.json b/1-formats/sub-specs/panll-panels/manifest.json similarity index 100% rename from panll-panels/manifest.json rename to 1-formats/sub-specs/panll-panels/manifest.json diff --git a/panll-panels/src/ComplianceMonitor.affine b/1-formats/sub-specs/panll-panels/src/ComplianceMonitor.affine similarity index 100% rename from panll-panels/src/ComplianceMonitor.affine rename to 1-formats/sub-specs/panll-panels/src/ComplianceMonitor.affine diff --git a/panll-panels/src/CrgDashboard.affine b/1-formats/sub-specs/panll-panels/src/CrgDashboard.affine similarity index 100% rename from panll-panels/src/CrgDashboard.affine rename to 1-formats/sub-specs/panll-panels/src/CrgDashboard.affine diff --git a/panll-panels/src/ProofHub.affine b/1-formats/sub-specs/panll-panels/src/ProofHub.affine similarity index 100% rename from panll-panels/src/ProofHub.affine rename to 1-formats/sub-specs/panll-panels/src/ProofHub.affine diff --git a/panll-panels/src/VcldbClient.affine b/1-formats/sub-specs/panll-panels/src/VcldbClient.affine similarity index 100% rename from panll-panels/src/VcldbClient.affine rename to 1-formats/sub-specs/panll-panels/src/VcldbClient.affine diff --git a/a2ml-templates/AGENTIC.a2ml.template b/1-formats/templates/AGENTIC.a2ml.template similarity index 100% rename from a2ml-templates/AGENTIC.a2ml.template rename to 1-formats/templates/AGENTIC.a2ml.template diff --git a/a2ml-templates/ECOSYSTEM.a2ml.template b/1-formats/templates/ECOSYSTEM.a2ml.template similarity index 100% rename from a2ml-templates/ECOSYSTEM.a2ml.template rename to 1-formats/templates/ECOSYSTEM.a2ml.template diff --git a/a2ml-templates/META.a2ml.template b/1-formats/templates/META.a2ml.template similarity index 100% rename from a2ml-templates/META.a2ml.template rename to 1-formats/templates/META.a2ml.template diff --git a/a2ml-templates/NEUROSYM.a2ml.template b/1-formats/templates/NEUROSYM.a2ml.template similarity index 100% rename from a2ml-templates/NEUROSYM.a2ml.template rename to 1-formats/templates/NEUROSYM.a2ml.template diff --git a/a2ml-templates/PLAYBOOK.a2ml.template b/1-formats/templates/PLAYBOOK.a2ml.template similarity index 100% rename from a2ml-templates/PLAYBOOK.a2ml.template rename to 1-formats/templates/PLAYBOOK.a2ml.template diff --git a/a2ml-templates/STATE.a2ml.template b/1-formats/templates/STATE.a2ml.template similarity index 98% rename from a2ml-templates/STATE.a2ml.template rename to 1-formats/templates/STATE.a2ml.template index 241721c8c..6c70068b5 100644 --- a/a2ml-templates/STATE.a2ml.template +++ b/1-formats/templates/STATE.a2ml.template @@ -6,7 +6,7 @@ # It is machine-readable and used by RSR tooling for validation. # # SUPERSEDED SURFACE: the key-value surface below is v1. The normative grammar -# for this family is now DEED -- see deed/spec/DEED-GRAMMAR-SPEC.adoc in +# for this family is now DEED -- see 1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc in # hyperpolymath/standards. DEED is an s-expression format: it has no # "key = value" production. This template is retained until the conversion # campaign regenerates it; do not treat its surface as the specification. diff --git a/a2ml-templates/STATE.a2ml.v2.spec.adoc b/1-formats/templates/STATE.a2ml.v2.spec.adoc similarity index 100% rename from a2ml-templates/STATE.a2ml.v2.spec.adoc rename to 1-formats/templates/STATE.a2ml.v2.spec.adoc diff --git a/a2ml-templates/STATE.a2ml.v2.template b/1-formats/templates/STATE.a2ml.v2.template similarity index 100% rename from a2ml-templates/STATE.a2ml.v2.template rename to 1-formats/templates/STATE.a2ml.v2.template diff --git a/a2ml-templates/state-migrate-v1-to-v2.sh b/1-formats/templates/state-migrate-v1-to-v2.sh similarity index 96% rename from a2ml-templates/state-migrate-v1-to-v2.sh rename to 1-formats/templates/state-migrate-v1-to-v2.sh index 3bd78b89f..764a35011 100755 --- a/a2ml-templates/state-migrate-v1-to-v2.sh +++ b/1-formats/templates/state-migrate-v1-to-v2.sh @@ -3,7 +3,7 @@ # Migrate a repo's STATE.a2ml from v1 (Scheme, bloated) to v2 (thin journal). # # Extracts: phase, next_action, last_action, blockers. -# See: a2ml-templates/STATE.a2ml.v2.spec.adoc +# See: 1-formats/templates/STATE.a2ml.v2.spec.adoc # # Usage: state-migrate-v1-to-v2.sh diff --git a/a2ml-templates/state-scm-to-v2.jl b/1-formats/templates/state-scm-to-v2.jl similarity index 100% rename from a2ml-templates/state-scm-to-v2.jl rename to 1-formats/templates/state-scm-to-v2.jl diff --git a/CLAIMS.a2ml b/CLAIMS.a2ml index 391ca0b55..387e5e29b 100644 --- a/CLAIMS.a2ml +++ b/CLAIMS.a2ml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: CC-BY-SA-4.0 # CLAIMS.a2ml — DYADT dogfood: what this change claims to have done. -# Verified in CI by scripts/verify-claims.sh (did-you-actually-do-that/). +# Verified in CI by scripts/verify-claims.sh (1-formats/sub-specs/did-you-actually-do-that/). # Every claim below is re-derived from primary evidence, not from this text. # Claims use content markers (not "created") so they stay true after the change # merges into the base branch — a claim must describe a durable fact. @@ -15,7 +15,7 @@ emitted_commit = "HEAD" id = "C1" claim_class = "file-changed" statement = "the DYADT front door defines the Tier-4 accountability pipeline" -target = "did-you-actually-do-that/README.adoc" +target = "1-formats/sub-specs/did-you-actually-do-that/README.adoc" expect = "contains:Post-Action Claim Verification" verifier = "git-diff" @@ -23,7 +23,7 @@ verifier = "git-diff" id = "C2" claim_class = "file-changed" statement = "the claim format spec defines typed claim classes" -target = "did-you-actually-do-that/spec/CLAIM-FORMAT.adoc" +target = "1-formats/sub-specs/did-you-actually-do-that/spec/CLAIM-FORMAT.adoc" expect = "contains:claim_class" verifier = "git-diff" @@ -31,7 +31,7 @@ verifier = "git-diff" id = "C3" claim_class = "file-changed" statement = "the verification protocol fixes the three-verdict contract" -target = "did-you-actually-do-that/spec/VERIFICATION-PROTOCOL.adoc" +target = "1-formats/sub-specs/did-you-actually-do-that/spec/VERIFICATION-PROTOCOL.adoc" expect = "contains:unverifiable" verifier = "git-diff" @@ -39,7 +39,7 @@ verifier = "git-diff" id = "C4" claim_class = "file-changed" statement = "the consequence ledger defines a per-actor confirmation rate" -target = "did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc" +target = "1-formats/sub-specs/did-you-actually-do-that/spec/CONSEQUENCE-LEDGER.adoc" expect = "contains:confirmation rate" verifier = "git-diff" @@ -55,7 +55,7 @@ verifier = "git-diff" id = "C6" claim_class = "command-ran" statement = "the DYADT conformance vector suite passes" -target = "bash did-you-actually-do-that/spec/conformance/run-conformance.sh" +target = "bash 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh" expect = "exit==0" verifier = "command-transcript" diff --git a/EXPLAINME.adoc b/EXPLAINME.adoc index 8535ae738..10c6705c3 100644 --- a/EXPLAINME.adoc +++ b/EXPLAINME.adoc @@ -58,7 +58,7 @@ link:REGISTRY.adoc[REGISTRY.adoc]). == How to use this repo -. *New project?* See link:A2ML-REPO-TEMPLATE.adoc[A2ML-REPO-TEMPLATE.adoc] and the *Usage* section of link:README.adoc[README.adoc]. +. *New project?* See link:1-formats/A2ML-REPO-TEMPLATE.adoc[1-formats/A2ML-REPO-TEMPLATE.adoc] and the *Usage* section of link:README.adoc[README.adoc]. . *Looking for a specific spec?* link:.machine_readable/REGISTRY.a2ml[REGISTRY.a2ml]. . *Language question?* link:.claude/CLAUDE.md[.claude/CLAUDE.md]. . *CI / enforcement?* link:.github/workflows/[.github/workflows/] + link:hooks/[hooks/]. diff --git a/Justfile b/Justfile index eae95fd32..09b91eabc 100644 --- a/Justfile +++ b/Justfile @@ -118,7 +118,7 @@ verify-claims path="CLAIMS.a2ml": # DYADT: run the conformance vector suite dyadt-conformance: - @bash did-you-actually-do-that/spec/conformance/run-conformance.sh + @bash 1-formats/sub-specs/did-you-actually-do-that/spec/conformance/run-conformance.sh # DYADT regression test (confirm/refute/unverifiable + guards) dyadt-test: diff --git a/LICENCE-POLICY.adoc b/LICENCE-POLICY.adoc index 5585a9a8f..0444eed93 100644 --- a/LICENCE-POLICY.adoc +++ b/LICENCE-POLICY.adoc @@ -345,7 +345,7 @@ substitution step must rewrite them to `MPL-2.0`. Their survival into a repo is an *unsubstituted-scaffold leak* (a process bug), *not licence debt*. They must NEVER be hand-edited as licence remediation; the fix is re-running scaffold substitution. The -canonical tripwire is `contractiles/must/Mustfile` (groups the +canonical tripwire is `1-formats/contractiles/must/Mustfile` (groups the sentinel with `REPLACE-WITH-*`); `spdx-policy-guard.yml` hard-fails it as a real SPDX value (and surfaces A3 variants as non-failing warnings). Evidence: `LICENCE-DEBT-LEDGER-2026-05-18`. diff --git a/QUICKSTART-USER.adoc b/QUICKSTART-USER.adoc index a4a7025b7..e2160fdae 100644 --- a/QUICKSTART-USER.adoc +++ b/QUICKSTART-USER.adoc @@ -25,9 +25,9 @@ them stick. See link:README.adoc[README.adoc] for the full overview and the git clone https://github.com/hyperpolymath/standards.git ---- -. *Scaffold a compliant repo:* follow link:A2ML-REPO-TEMPLATE.adoc[A2ML-REPO-TEMPLATE.adoc] +. *Scaffold a compliant repo:* follow link:1-formats/A2ML-REPO-TEMPLATE.adoc[1-formats/A2ML-REPO-TEMPLATE.adoc] and the *Usage* section of link:README.adoc[README.adoc]. -. *Add the 7 A2ML files:* copy from link:a2ml-templates/[`a2ml-templates/`] into +. *Add the 7 A2ML files:* copy from link:1-formats/templates/[`1-formats/templates/`] into your repo's `.machine_readable/`. . *Adopt enforcement:* copy the relevant link:.github/workflows/[workflows] and link:hooks/[hooks] (language policy, doc-format, Makefile blocker, registry-verify). diff --git a/README.adoc b/README.adoc index 6782be191..6fa009280 100644 --- a/README.adoc +++ b/README.adoc @@ -42,7 +42,7 @@ Every other "what is this repo" doc is now a thin pointer back to these two | link:.machine_readable/REGISTRY.a2ml[REGISTRY.a2ml] (machine) · link:REGISTRY.adoc[REGISTRY.adoc] (prose) | The **A2ML / K9 foundation** (Stream 1) — the 7-format family, K9, contractiles -| link:a2ml/[a2ml/], link:k9-svc/[k9-svc/], link:contractiles/[contractiles/] and the `*-a2ml/` spec dirs +| link:a2ml/[a2ml/], link:k9-svc/[k9-svc/], link:1-formats/contractiles/[1-formats/contractiles/] and the `*-a2ml/` spec dirs | The **language policy** (Stream 2) — allowed/banned languages, AffineScript stance | link:.claude/CLAUDE.md[.claude/CLAUDE.md] (canonical) + the <> table below @@ -63,7 +63,7 @@ Every other "what is this repo" doc is now a thin pointer back to these two | link:TOPOLOGY.adoc[TOPOLOGY.adoc] (generated from STATE + registry) | To **stand up a new repo** to these standards -| link:A2ML-REPO-TEMPLATE.adoc[A2ML-REPO-TEMPLATE.adoc] + <> +| link:1-formats/A2ML-REPO-TEMPLATE.adoc[1-formats/A2ML-REPO-TEMPLATE.adoc] + <> | The **education layer** — audience-split deep docs (beyond quickstart) | link:docs/wikis/[docs/wikis/] — link:docs/wikis/users/index.adoc[Users] · link:docs/wikis/developers/index.adoc[Developers] · link:docs/wikis/maintainers/index.adoc[Maintainers] @@ -80,12 +80,12 @@ This repository serves as the canonical source for policies, templates, and spec * **Language Policy** -- Which languages and tools are permitted across the ecosystem * **Language-Maturation Grades** -- link:adoption-readiness-grades/[ARG (Adoption Readiness)] + link:foundations-readiness-grades/[FRG (Foundations Readiness)] per-language profile templates; aggregated into the link:https://github.com/hyperpolymath/nextgen-languages[nextgen-languages] dashboard. TRG (Trust) + CRG (Compliance) profile templates live under each framework's `templates/` directory. -* **Decriptiles Family** -- 7 machine-readable project metadata formats in A2ML (see link:SATELLITES.a2ml[SATELLITES.a2ml]) +* **Decriptiles Family** -- 7 machine-readable project metadata formats in A2ML (see link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml]) * **Build System** -- Mustfile/justfile (no Makefiles) * **Stable Release Gate** -- link:release-pre-flight/V1-GATE.adoc[hard `v1.0.0` audit requirements] for all repos and multi-repo systems * **Publication Pre-Flight** -- link:publication-pre-flight/PREFLIGHT.adoc[submission gate] plus link:publication-pre-flight/HOL-SUITABILITY-CHECKLIST.adoc[HOL] and link:publication-pre-flight/ZENODO-DEPOSIT-CHECKLIST.adoc[Zenodo] checklists * **Session Management Standards** -- link:session-management-standards/README.adoc[canonical continuity, verify, and handover protocols] -* **Contractiles / K9** -- link:contractiles/CANONICAL-TEMPLATES.adoc[canonical Must/Trust/Dust/Intent semantics] and Kennel/Yard/Hunt guidance +* **Contractiles / K9** -- link:1-formats/contractiles/CANONICAL-TEMPLATES.adoc[canonical Must/Trust/Dust/Intent semantics] and Kennel/Yard/Hunt guidance * **Governance Templates** -- Reusable CODE_OF_CONDUCT, CONTRIBUTING, and SECURITY documents * **CODEOWNERS Policy** -- link:CODEOWNERS-POLICY.adoc[canonical `CODEOWNERS` rules] (no catch-all/workflow lines on solo-owned repos) * **Licensing** -- MPL-2.0 (see link:LICENSE[LICENSE]); licence/SPDX changes are owner-only (see link:.claude/CLAUDE.md[.claude/CLAUDE.md]) @@ -138,9 +138,9 @@ RSR boilerplate (LICENSE, CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, MAINTAINERS) |Standards update tooling and documentation |=== -Satellite registry is still machine-readable in link:SATELLITES.a2ml[SATELLITES.a2ml]. +Satellite registry is still machine-readable in link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml]. -For detailed repository structure requirements, see link:A2ML-REPO-TEMPLATE.adoc[A2ML-REPO-TEMPLATE.adoc]. +For detailed repository structure requirements, see link:1-formats/A2ML-REPO-TEMPLATE.adoc[1-formats/A2ML-REPO-TEMPLATE.adoc]. === A2ML Format Family (7 Formats) @@ -186,11 +186,11 @@ Every Hyperpolymath repository must include these machine-readable A2ML files in |link:anchor-a2ml/[anchor-a2ml] |=== -Templates available in `a2ml-templates/` directory. +Templates available in `1-formats/templates/` directory. === Execution Pipeline -All implementations MUST respect this ordering (defined in link:SATELLITES.a2ml[SATELLITES.a2ml]): +All implementations MUST respect this ordering (defined in link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml]): [source] ---- @@ -376,7 +376,7 @@ standards/ +-- hooks/ # Git hooks | +-- pre-commit # Language policy enforcement | +-- validate-*.sh # Validation scripts -+-- a2ml-templates/ # A2ML file templates ++-- 1-formats/templates/ # A2ML file templates | +-- STATE.a2ml.template | +-- META.a2ml.template | +-- ECOSYSTEM.a2ml.template @@ -395,7 +395,7 @@ standards/ | +-- README.adoc | +-- spec/ | +-- examples/ -| +-- contractiles/ +| +-- 1-formats/contractiles/ | +-- ncl/ +-- neurosym-a2ml/ # NEUROSYM.a2ml specification | +-- README.adoc @@ -406,7 +406,7 @@ standards/ | +-- README.adoc | +-- spec/ | +-- examples/ -| +-- contractiles/ +| +-- 1-formats/contractiles/ +-- state-a2ml/ # STATE.a2ml specification | +-- README.adoc | +-- spec/ @@ -418,8 +418,8 @@ standards/ | +-- docs/ +-- standards-update/ # Standards update tooling | +-- README.adoc -+-- SATELLITES.a2ml # Hub-satellite registry (machine-readable) -+-- A2ML-REPO-TEMPLATE.adoc # Canonical structure for -a2ml repos ++-- 1-formats/SATELLITES.a2ml # Hub-satellite registry (machine-readable) ++-- 1-formats/A2ML-REPO-TEMPLATE.adoc # Canonical structure for -a2ml repos +-- CODE_OF_CONDUCT.md # Template +-- CONTRIBUTING.md # Template +-- SECURITY.md # Template @@ -450,7 +450,7 @@ standards/ **Standards Monorepo (this repository):** -* link:SATELLITES.a2ml[SATELLITES.a2ml] -- Machine-readable satellite registry +* link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml] -- Machine-readable satellite registry * link:docs/UX-standards/[docs/UX-standards] -- UX standards and E-Grade launcher specification **A2ML Format Family (local subdirectories):** diff --git a/REORGANIZATION-PLAN.adoc b/REORGANIZATION-PLAN.adoc index b7fd81b47..ce97aca8d 100644 --- a/REORGANIZATION-PLAN.adoc +++ b/REORGANIZATION-PLAN.adoc @@ -51,7 +51,7 @@ per subdir) - ==== 3. Overlapping Specifications -*Issue:* A2ML templates exist in both: - `+a2ml-templates/+` (6 files) - +*Issue:* A2ML templates exist in both: - `+1-formats/templates/+` (6 files) - `+rhodium-standard-repositories/templates/+` (20+ files with some overlap) @@ -69,7 +69,7 @@ categorization: .... k9-svc-repo/ templates/ - contractiles/ + 1-formats/contractiles/ dust/ intend/ lust/ diff --git a/TOOLING-VERSION-INTEGRITY-POLICY.adoc b/TOOLING-VERSION-INTEGRITY-POLICY.adoc index 862c4a3a9..05f9b0d91 100644 --- a/TOOLING-VERSION-INTEGRITY-POLICY.adoc +++ b/TOOLING-VERSION-INTEGRITY-POLICY.adoc @@ -79,7 +79,7 @@ A "passed" check MUST assert that the underlying work actually ran, not merely that nothing returned non-zero. Concretely: * The canonical `must` contract carries a `tooling-version-integrity` - check (see `contractiles/must/Mustfile`) that asserts the installed + check (see `1-formats/contractiles/must/Mustfile`) that asserts the installed `just` satisfies the declared floor *and* runs the workflow lint. This check runs after `just` is on `PATH`, so it catches the parse-time class that an in-file guard structurally cannot. @@ -120,7 +120,7 @@ the failure mode this policy exists to end. Promote R4 to blocking == Rule 5 — Resolve at source, never per-repo Fixes to any of the above are made in the canonical source -(`contractile` source under `contractiles/`, the canonical CI/Justfile +(`contractile` source under `1-formats/contractiles/`, the canonical CI/Justfile templates in `rsr-template-repo` → `v3-templater` / `reposystem`) and propagated by re-adoption. Per-repo patches recreate the drift this policy exists to prevent. @@ -128,7 +128,7 @@ policy exists to prevent. NOTE: The `contractile` generator itself is currently out-of-band (the generator repository is not part of the working estate). Until it is in-tree, changes to generated `contractile.just` content are made in the -`contractiles/` *source* fragments and regenerated by whoever holds the +`1-formats/contractiles/` *source* fragments and regenerated by whoever holds the generator; consumers must re-run `contractile gen-just --dir contractiles` to pick them up. This gap is tracked estate-wide (see the Tooling Version Integrity sweep tracking issue). @@ -139,7 +139,7 @@ Integrity sweep tracking issue). unversioned family-tool installs (Rule 1) and bare `continue-on-error` (Rule 4). R1 is always blocking; R4 is advisory by default and blocking with `--strict`. -* `contractiles/must/Mustfile` (canonical template) carries a default +* `1-formats/contractiles/must/Mustfile` (canonical template) carries a default `tooling-version-integrity` mandatory check so every repo adopting the canonical `must` contract inherits the R0/R1 gate (Rule 3, Rule 5). This repo's live `Mustfile` runs the lint with `--strict` because its diff --git a/TOPOLOGY.adoc b/TOPOLOGY.adoc index 48c1ecfd3..3cde9a896 100644 --- a/TOPOLOGY.adoc +++ b/TOPOLOGY.adoc @@ -23,7 +23,7 @@ ____ |=== | Spec | Home | If you want… | K9 Self-Validating Components | link:k9-svc/[`+k9-svc/+`] | the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) -| Contractiles (Must/Trust/Dust/Intend) | link:contractiles/[`+contractiles/+`] | policy-enforcement primitives the K9 layer is built from +| Contractiles (Must/Trust/Dust/Intend) | link:1-formats/contractiles/[`+1-formats/contractiles/+`] | policy-enforcement primitives the K9 layer is built from | META.a2ml spec | link:meta-a2ml/[`+meta-a2ml/+`] | architecture decisions / governance metadata format | STATE.a2ml spec | link:state-a2ml/[`+state-a2ml/+`] | project-state metadata format (drives this registry's topology) | ECOSYSTEM.a2ml spec | link:ecosystem-a2ml/[`+ecosystem-a2ml/+`] | ecosystem-positioning metadata format @@ -65,8 +65,8 @@ ____ | 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) -| ENSAID Config | link:ensaid-config/[`+ensaid-config/+`] | the ensaid configuration standard +| DYADT — Did-You-Actually-Do-That | link:1-formats/sub-specs/did-you-actually-do-that/[`+1-formats/sub-specs/did-you-actually-do-that/+`] | post-action agent-claim verification (Tier 4 accountability) +| ENSAID Config | link:1-formats/sub-specs/ensaid-config/[`+1-formats/sub-specs/ensaid-config/+`] | the ensaid configuration standard | Accessibility Standard | link:accessibility/[`+accessibility/+`] | estate accessibility requirements | Publication Pre-Flight | link:publication-pre-flight/[`+publication-pre-flight/+`] | submission gate (HOL + Zenodo checklists) | Release Pre-Flight (V1 Gate) | link:release-pre-flight/[`+release-pre-flight/+`] | hard v1.0.0 audit requirements @@ -89,7 +89,7 @@ ____ |=== | Spec | Home | If you want… | Standards Hypatia Rules | link:hypatia-rules/[`+hypatia-rules/+`] | the dogfooding rules that scan THIS repo (incl. drift detection) -| A2ML Templates | link:a2ml-templates/[`+a2ml-templates/+`] | copy-in templates for the 7 A2ML files +| A2ML Templates | link:1-formats/templates/[`+1-formats/templates/+`] | copy-in templates for the 7 A2ML files |=== == How this map stays honest diff --git a/agentic-a2ml/contractiles/README.adoc b/agentic-a2ml/contractiles/README.adoc index d19a38774..4d7f0c058 100644 --- a/agentic-a2ml/contractiles/README.adoc +++ b/agentic-a2ml/contractiles/README.adoc @@ -2,7 +2,7 @@ :toc: :sectnums: -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. +This directory contains the generalized contractiles templates. Copy the `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. == Fill-In Instructions diff --git a/ai-instruction/README.adoc b/ai-instruction/README.adoc index 43da70ff2..b8c59b7ae 100644 --- a/ai-instruction/README.adoc +++ b/ai-instruction/README.adoc @@ -29,7 +29,7 @@ channel. delegation prompts |Markdown prose |*Repo-local machine-readable directives* |`+/.machine_readable/+` -(`+descriptiles/+`, `+contractiles/+`, `+anchors/+`, etc.) |`+gitbot-fleet+`, +(`+descriptiles/+`, `+1-formats/contractiles/+`, `+anchors/+`, etc.) |`+gitbot-fleet+`, `+hypatia+`, `+coordination.k9+`, MCP guardian |A2ML |=== diff --git a/anchor-a2ml/contractiles/README.adoc b/anchor-a2ml/contractiles/README.adoc index d19a38774..4d7f0c058 100644 --- a/anchor-a2ml/contractiles/README.adoc +++ b/anchor-a2ml/contractiles/README.adoc @@ -2,7 +2,7 @@ :toc: :sectnums: -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. +This directory contains the generalized contractiles templates. Copy the `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. == Fill-In Instructions diff --git a/audits/assail-classifications.a2ml b/audits/assail-classifications.a2ml index 67b30b4e6..f7d1874d1 100644 --- a/audits/assail-classifications.a2ml +++ b/audits/assail-classifications.a2ml @@ -138,7 +138,7 @@ rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: - file: 'inline-annotations/extractor/src/main.rs' + file: '1-formats/sub-specs/inline-annotations/extractor/src/main.rs' rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: diff --git a/audits/licence-flags-2026-07.adoc b/audits/licence-flags-2026-07.adoc index 571a3c115..bbe1c8be5 100644 --- a/audits/licence-flags-2026-07.adoc +++ b/audits/licence-flags-2026-07.adoc @@ -17,7 +17,7 @@ flags — for owner review only — anything licence-adjacent that surfaced. repo's classification at birth (authoring, not relicensing): scripts → `MPL-2.0`, prose/specs → `CC-BY-SA-4.0`. This is consistent with the estate policy that new files may carry the correct SPDX from birth. -* The DYADT verifier (`did-you-actually-do-that/`) treats any licence/SPDX claim +* The DYADT verifier (`1-formats/sub-specs/did-you-actually-do-that/`) treats any licence/SPDX claim as `manual-only` end to end — it returns `unverifiable`, never auto-`confirmed`, and the consequence ledger's confirmation rate is explicitly unaffected by licence verdicts. The Manual-Only policy is preserved *by construction* in the diff --git a/axel-protocol/contractiles/README.adoc b/axel-protocol/contractiles/README.adoc index d19a38774..4d7f0c058 100644 --- a/axel-protocol/contractiles/README.adoc +++ b/axel-protocol/contractiles/README.adoc @@ -2,7 +2,7 @@ :toc: :sectnums: -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. +This directory contains the generalized contractiles templates. Copy the `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. == Fill-In Instructions diff --git a/canon.lock b/canon.lock index 38f447845..6c7a4b32a 100644 --- a/canon.lock +++ b/canon.lock @@ -224,13 +224,13 @@ constitution = { path = "0-canon/constitution/", # --------------------------------------------------------------------------- [canon.split-candidates] -deed-grammar = { path = "deed/spec/DEED-GRAMMAR-SPEC.adoc", +deed-grammar = { path = "1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc", sha256 = "PENDING-FIRST-SYNC", # DRAFT v0.2.0, not yet ratified slot = "deed-grammar", normative = false, target_repo = "hyperpolymath/deed", note = "v0.2.0 DRAFT; ABNF normative at spec/abnf/deed.abnf; unblocks estate task #64 (.a2ml -> .deed)" } -contractile-spec = { path = "contractiles/README.adoc", +contractile-spec = { path = "1-formats/contractiles/README.adoc", sha256 = "PENDING-FIRST-SYNC", slot = "contractile-spec", normative = false, target_repo = "hyperpolymath/contractiles", diff --git a/docs/ADR-001-k9-relocation-to-svc.adoc b/docs/ADR-001-k9-relocation-to-svc.adoc index 805dce9cd..3ea8fc54d 100644 --- a/docs/ADR-001-k9-relocation-to-svc.adoc +++ b/docs/ADR-001-k9-relocation-to-svc.adoc @@ -19,10 +19,10 @@ v1.0.0, 2026-04-18 `.machine_readable/contractiles/k9/` as an "exception alongside the verb directories". This was an uncomfortable compromise: -* The `contractiles/` directory is conceptually "one concern per verb, +* The `1-formats/contractiles/` directory is conceptually "one concern per verb, one verb per directory". k9 is not a verb and has no `K9file.a2ml`. * Contractile CLIs and audit tools that iterate over - `contractiles/*` had to carry a hard-coded exclusion for `k9/`. + `1-formats/contractiles/*` had to carry a hard-coded exclusion for `k9/`. * The estate pre-commit hook iterates the six active verbs; k9 being adjacent to them invited its own faulty verb-treatment drift. @@ -35,15 +35,15 @@ This ADR ratifies that move and extends it estate-wide. == Decision k9 lives at `.machine_readable/svc/k9/` in every repo. The -`contractiles/` directory contains only the six active verbs +`1-formats/contractiles/` directory contains only the six active verbs (`intend`, `trust`, `must`, `bust`, `adjust`, `dust`) — no exceptions. == Rationale -* **Cleaner boundary.** `contractiles/` becomes a pure verb-set; `svc/` +* **Cleaner boundary.** `1-formats/contractiles/` becomes a pure verb-set; `svc/` becomes the graded-automation (kennel/yard/hunt) home. * **No more exception handling in verb iterators.** Every entry under - `contractiles/` is a verb directory, period. + `1-formats/contractiles/` is a verb directory, period. * **Matches actual role.** k9 is *trust-tier service automation infrastructure*; `svc/` names what it is. * **Keeps `INDEX.a2ml` honest.** The registry lists six verbs; k9 no @@ -53,7 +53,7 @@ k9 lives at `.machine_readable/svc/k9/` in every repo. The ---- .machine_readable/ -├── contractiles/ +├── 1-formats/contractiles/ │ ├── _base.ncl │ ├── INDEX.a2ml │ ├── README.adoc @@ -86,10 +86,10 @@ For each repo in the estate: . If `.machine_readable/contractiles/k9/` exists and `.machine_readable/svc/k9/` does not: `git mv` the former to the latter. -. If both exist, the `contractiles/` copy is the duplicate — remove it, +. If both exist, the `1-formats/contractiles/` copy is the duplicate — remove it, keep the one under `svc/`. . If neither exists: do nothing — the repo does not use k9. -. Repos that still have a root-level `contractiles/k9/` need the same +. Repos that still have a root-level `1-formats/contractiles/k9/` need the same move, paired with the root-home → canonical-home migration (separate pass; see `CONTRACTILE-HOME-MIGRATION-2026-04-18.adoc`). @@ -121,7 +121,7 @@ For each repo in the estate: == Related Work * `CONTRACTILE-HOME-MIGRATION-2026-04-18.adoc` — root-level - `contractiles/` → `.machine_readable/contractiles/` consolidation + `1-formats/contractiles/` → `.machine_readable/contractiles/` consolidation (task 2 of the current migration wave). * `.machine_readable/migrations/contractile-layout-2026-04-18.a2ml` — machine-readable migration log with per-repo outcomes. diff --git a/docs/AUDIT.adoc b/docs/AUDIT.adoc index 5171d6859..49109c60b 100644 --- a/docs/AUDIT.adoc +++ b/docs/AUDIT.adoc @@ -25,7 +25,7 @@ conformance have to satisfy, and has it?* . *Do not call anything `stable`, `v1.0.0`, or full release* unless the stable release gate has been run and its evidence recorded. `rsr-criteria-v2.a2ml` carries `status = "draft"` and MUST NOT be cited as ratified until its - §Ratification passes. `deed/spec/DEED-GRAMMAR-SPEC.adoc` is DRAFT and states + §Ratification passes. `1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc` is DRAFT and states plainly that nothing in it is deployed. . *A tag MUST NOT be used as an anchor.* Tags move. `canon.lock` records the version *and* the commit, and every law artefact by `sha256`. diff --git a/docs/CONTRACTILE-SPEC.adoc b/docs/CONTRACTILE-SPEC.adoc index b3dd215f8..46622bff9 100644 --- a/docs/CONTRACTILE-SPEC.adoc +++ b/docs/CONTRACTILE-SPEC.adoc @@ -82,8 +82,8 @@ run-behaviour:: k9:: Service-automation trust-tier infrastructure. Lives at - `.machine_readable/svc/k9/` — NOT inside `contractiles/`. See <>. - Moved out of `contractiles/` per `ADR-001-k9-relocation-to-svc.adoc` + `.machine_readable/svc/k9/` — NOT inside `1-formats/contractiles/`. See <>. + Moved out of `1-formats/contractiles/` per `ADR-001-k9-relocation-to-svc.adoc` (2026-04-18); this spec's v1.1.0 language predates that ADR. == The Verb Set @@ -443,7 +443,7 @@ Adopters writing new xfiles should prefer the structured form where possible. that lives at `.machine_readable/svc/k9/`, separate from the verb directories under `.machine_readable/contractiles/`. -NOTE: Prior to 2026-04-18, k9 lived inside `contractiles/` as an "alongside +NOTE: Prior to 2026-04-18, k9 lived inside `1-formats/contractiles/` as an "alongside exception". That placement was retired by ADR-001 (`docs/ADR-001-k9-relocation-to-svc.adoc`). Other sections of this spec still refer to the old layout in places; those are superseded by the ADR. @@ -662,7 +662,7 @@ four classifications were wrong. it recognises *four* files only — Mustfile, Trustfile, Dustfile, Intentfile — with no `adjust` and no `bust`, so a repo can be `contractiles-v1`-valid while missing two verbs this spec requires. Second, its worked example - reads `contractiles/trust/Trustfile.a2ml`, the wrong root. Subordinate to + reads `1-formats/contractiles/trust/Trustfile.a2ml`, the wrong root. Subordinate to this spec on the verb set, layout and naming; authoritative on field-level A2ML validation until superseded. @@ -675,8 +675,8 @@ four classifications were wrong. absorbed into `intend` on 2026-04-18; `k9` is a peer tier rather than a documented exception; and S07-3 says declarations "MAY be expressed in any structured format", against this spec's fixed two-file pattern. Its - reference implementation section sites files at `contractiles/must/` and - `contractiles/lust/` — the wrong root, and a plausible source of the 76 + reference implementation section sites files at `1-formats/contractiles/must/` and + `1-formats/contractiles/lust/` — the wrong root, and a plausible source of the 76 files measured there. Reconcile or scope explicitly to eNSAID. | `patallm-gallery/did-you-actually-do-that/docs/AOP-CONTRACTILE-MAPPING.adoc` @@ -784,7 +784,7 @@ Measured against `Mustfile.a2ml` (n=555): | `.machine_readable/contractiles/must/` | 120 | *Canonical* | `.machine_readable/contractiles/` (flat, no verb dir) | 158 | Drift — missing verb directory -| `contractiles/must/` (no `.machine_readable/`) | 76 | Drift — wrong root +| `1-formats/contractiles/must/` (no `.machine_readable/`) | 76 | Drift — wrong root | `docs/templates/contractiles/must/` | 59 | Template copies, not deployments | other (nested, `rs/`, `showcase/`, `validate-action/`) | ~142 | Mixed |=== @@ -851,11 +851,11 @@ widened to include the 90 `lust/` directories, which are the larger half of the same unfinished migration. A third relocation is also half-applied. `ADR-001-k9-relocation-to-svc.adoc` -(2026-04-18) moved k9 out of `contractiles/` to `.machine_readable/svc/k9/`. +(2026-04-18) moved k9 out of `1-formats/contractiles/` to `.machine_readable/svc/k9/`. Measured: *94 directories at the new path, 75 still at the old one.* The Definitions section of this spec records the move; the layout diagram in <> was never updated and still draws `k9/` inside -`contractiles/`. That diagram is a fossil of the same kind as the verb count +`1-formats/contractiles/`. That diagram is a fossil of the same kind as the verb count corrected in v1.2.0, and is flagged as ruling 4. === Where this spec and the owner rulings diverge diff --git a/docs/DESCRIPTILE-SPEC.adoc b/docs/DESCRIPTILE-SPEC.adoc index 45aa0f707..4cd51f8f4 100644 --- a/docs/DESCRIPTILE-SPEC.adoc +++ b/docs/DESCRIPTILE-SPEC.adoc @@ -240,7 +240,7 @@ excluded): | Bracketed table (canonical) | ~3,770 | all six types | S-expression | 160 | all six types, 38 repos, 59 directories -| `@`-block form | 25 | all six types; STATE v2 per `a2ml-templates/STATE.a2ml.v2.spec.adoc` +| `@`-block form | 25 | all six types; STATE v2 per `1-formats/templates/STATE.a2ml.v2.spec.adoc` | Empty / comments only | 6 | all six types | YAML mapping (`key:`) | 184 | ANCHOR only — see <>, not a descriptile |=== diff --git a/docs/INNERVATION.adoc b/docs/INNERVATION.adoc index 4bee7f6c5..923adc191 100644 --- a/docs/INNERVATION.adoc +++ b/docs/INNERVATION.adoc @@ -65,12 +65,12 @@ Per-repo footprint shrinks from 6–7 files to 2 (`coordination.k9` + |=== | Artefact | Path | Status -| Inline annotation SPEC | `inline-annotations/SPEC.adoc` | Draft v0.1.0 -| Inline annotation extractor | `inline-annotations/extractor/` (Rust) | Built, 7/7 tests -| Annotation examples (8 languages) | `inline-annotations/examples/` | Complete +| Inline annotation SPEC | `1-formats/sub-specs/inline-annotations/SPEC.adoc` | Draft v0.1.0 +| Inline annotation extractor | `1-formats/sub-specs/inline-annotations/extractor/` (Rust) | Built, 7/7 tests +| Annotation examples (8 languages) | `1-formats/sub-specs/inline-annotations/examples/` | Complete | Groove signal schema | `groove-protocol/spec/INNERVATION-SIGNALS.adoc` | Draft v0.1.0 -| STATE.a2ml v2 spec | `a2ml-templates/STATE.a2ml.v2.spec.adoc` | Draft v2.0.0 -| STATE.a2ml v2 template | `a2ml-templates/STATE.a2ml.v2.template` | Ready +| STATE.a2ml v2 spec | `1-formats/templates/STATE.a2ml.v2.spec.adoc` | Draft v2.0.0 +| STATE.a2ml v2 template | `1-formats/templates/STATE.a2ml.v2.template` | Ready | k9-init migration tool | `k9-coordination-protocol/tools/k9-init/` | Built, 5/5 tests | playbook→recipe converter | `hooks/playbook-to-recipe/` | Built, 5/5 tests | Ecosystem ingest pipeline spec | `.verisimdb/ECOSYSTEM-INGEST.adoc` | Draft v0.1.0 @@ -102,7 +102,7 @@ All signals are listed in `groove-protocol/spec/INNERVATION-SIGNALS.adoc`. - Start with this document - Then read `coordination.k9` in this repo — it is both the spec for the format and the reference instance -- Then browse `inline-annotations/examples/sources.md` to see the +- Then browse `1-formats/sub-specs/inline-annotations/examples/sources.md` to see the annotation grammar in 8 languages - To initialise `coordination.k9` in a new repo: run `k9-init /path/to/repo` @@ -113,9 +113,9 @@ All signals are listed in `groove-protocol/spec/INNERVATION-SIGNALS.adoc`. - Octad schemas: `.verisimdb/config.toml` - Groove signal vocabulary: `groove-protocol/spec/INNERVATION-SIGNALS.adoc` -- Annotation grammar: `inline-annotations/SPEC.adoc` -- Extractor output format: `inline-annotations/examples/output.a2ml` -- STATE v2 grammar: `a2ml-templates/STATE.a2ml.v2.spec.adoc` +- Annotation grammar: `1-formats/sub-specs/inline-annotations/SPEC.adoc` +- Extractor output format: `1-formats/sub-specs/inline-annotations/examples/output.a2ml` +- STATE v2 grammar: `1-formats/templates/STATE.a2ml.v2.spec.adoc` == Roll-out diff --git a/docs/STANDARDS-CRITICAL-PATH.adoc b/docs/STANDARDS-CRITICAL-PATH.adoc index 0db497749..fed48bc4e 100644 --- a/docs/STANDARDS-CRITICAL-PATH.adoc +++ b/docs/STANDARDS-CRITICAL-PATH.adoc @@ -100,7 +100,7 @@ drift, is the duplication mechanism. === The hard tail -Separately, **76 files sit at a bare-root `contractiles/must/`** (no +Separately, **76 files sit at a bare-root `1-formats/contractiles/must/`** (no `.machine_readable` prefix). Unlike the flat population these are **not** clustered — the largest group shares only 2 files. These are genuinely divergent and cannot be bulk-moved. They are the expensive remainder and should @@ -239,7 +239,7 @@ else depends on. | #11 | Finish the April 2026 migrations: 90 surviving `lust/` directories, 36 `Intendfile.a2ml` across 20 repos, k9 relocation (94 moved / 75 not) | Rulings made 2026-04-18; this is pure execution | — | De-duplicate the `ideas-to-alphas` spec mirror (byte-identical to CONTRACTILE-SPEC) | Disposition already written into v1.2.1 -| — | Delete `standards`' stale root-level `contractiles/` — extension-less `Mustfile`, `Dustfile`, superseded by `.machine_readable/` | Flag for owner; deletion is cheap but irreversible +| — | Delete `standards`' stale root-level `1-formats/contractiles/` — extension-less `Mustfile`, `Dustfile`, superseded by `.machine_readable/` | Flag for owner; deletion is cheap but irreversible | — | De-duplicate `scaffoldia`'s two divergent contractile sets | Not a generator, so no propagation risk either way | #8 | Write down the `boj-server` → `ssg-collection` targeting rule | Independent; small | #21 | Rule on `INNERVATION.adoc`: ratify, supersede, or park | Unblocks #4 @@ -269,7 +269,7 @@ expensive work uses it. is detectable rather than assumed. . **The 3 divergent repos** — `jaffascript`, `rattlescript`, `verisimdb`. Human read; the canonical and flat copies disagree in all three. -. **The 76-file hard tail** at bare-root `contractiles/`. Unclustered, genuinely +. **The 76-file hard tail** at bare-root `1-formats/contractiles/`. Unclustered, genuinely divergent, no bulk shortcut. Schedule last. . **`developer-ecosystem` as its own unit.** It holds 115 of 555 files (21%), 92 of them inside `iser-tools`. Its scale distorts every estate-wide diff --git a/docs/archive/provenance/coord-mcp/COORD-MCP-TODO.adoc b/docs/archive/provenance/coord-mcp/COORD-MCP-TODO.adoc index b1c5ad8fc..f5263fe2f 100644 --- a/docs/archive/provenance/coord-mcp/COORD-MCP-TODO.adoc +++ b/docs/archive/provenance/coord-mcp/COORD-MCP-TODO.adoc @@ -21,7 +21,7 @@ free-form (opus-4.7, flash-2.5, leanstral, …) |boj-server |0.5 d |34 |1 d |cold-start routing |007-mcp-1 |`+coordRegister+` HTTP write: -`+cartridges/007-mcp/ffi/oo7_mcp_ffi.zig+` currently TCP-probes only. +`+1-formats/sub-specs/cartridges/007-mcp/ffi/oo7_mcp_ffi.zig+` currently TCP-probes only. Rewrite to POST `+http://127.0.0.1:7745/tools/coord_register+`, parse token + peer_id into `+g_coord_token_buf+`/`+g_peer_id_buf+`. |007-lang |1 session |end-to-end 007 cartridge @@ -100,7 +100,7 @@ hook source migrates off the stale 6-verb set. === P2 — Medium (Phase 2 formalisms over working v1) * *Proof obligations P-04..P-07* in -`+cartridges/local-coord-mcp/abi/LocalCoord/Durability.idr+`: record +`+1-formats/sub-specs/cartridges/local-coord-mcp/abi/LocalCoord/Durability.idr+`: record format; CRC truncation; *P-06 replay-equivalence (keystone)*; quarantine state machine. ~6 days. * *Idris2 session types* for supervisor/attestation choreography in @@ -186,7 +186,7 @@ added* — diff root vs 6a2/ copies per repo; merge if divergent; |D3 |*Wait on `+just cartridge-install+` in boj-server* until coord-mcp Tasks #33 + #34 ship. |Shared-state risk: -`+cartridges/local-coord-mcp/ffi/local_coord_ffi.zig+` + +`+1-formats/sub-specs/cartridges/local-coord-mcp/ffi/local_coord_ffi.zig+` + `+adapter/local_coord_adapter.zig+` are owned by the sequential session for #33/#34 (Peer struct, ClientKind enum). Running install now risks conflicts on their live working tree. |*Gate locked* — 007-mcp-2 in P0 diff --git a/docs/archive/scaffolding/contractile.just b/docs/archive/scaffolding/contractile.just index f76f5afc6..1497da092 100644 --- a/docs/archive/scaffolding/contractile.just +++ b/docs/archive/scaffolding/contractile.just @@ -38,27 +38,27 @@ trust-no-secrets-committed: # === K9 Components === -# K9 component: contractiles/k9/examples/ci-config.k9.ncl +# K9 component: 1-formats/contractiles/k9/examples/ci-config.k9.ncl k9-ci-config: - contractile k9 run contractiles/k9/examples/ci-config.k9.ncl + contractile k9 run 1-formats/contractiles/k9/examples/ci-config.k9.ncl -# K9 component: contractiles/k9/examples/project-metadata.k9.ncl +# K9 component: 1-formats/contractiles/k9/examples/project-metadata.k9.ncl k9-project-metadata: - contractile k9 run contractiles/k9/examples/project-metadata.k9.ncl + contractile k9 run 1-formats/contractiles/k9/examples/project-metadata.k9.ncl -# K9 component: contractiles/k9/examples/setup-repo.k9.ncl +# K9 component: 1-formats/contractiles/k9/examples/setup-repo.k9.ncl k9-setup-repo: - contractile k9 run contractiles/k9/examples/setup-repo.k9.ncl + contractile k9 run 1-formats/contractiles/k9/examples/setup-repo.k9.ncl -# K9 component: contractiles/k9/template-hunt.k9.ncl +# K9 component: 1-formats/contractiles/k9/template-hunt.k9.ncl k9-template-hunt: - contractile k9 run contractiles/k9/template-hunt.k9.ncl + contractile k9 run 1-formats/contractiles/k9/template-hunt.k9.ncl -# K9 component: contractiles/k9/template-kennel.k9.ncl +# K9 component: 1-formats/contractiles/k9/template-kennel.k9.ncl k9-template-kennel: - contractile k9 run contractiles/k9/template-kennel.k9.ncl + contractile k9 run 1-formats/contractiles/k9/template-kennel.k9.ncl -# K9 component: contractiles/k9/template-yard.k9.ncl +# K9 component: 1-formats/contractiles/k9/template-yard.k9.ncl k9-template-yard: - contractile k9 run contractiles/k9/template-yard.k9.ncl + contractile k9 run 1-formats/contractiles/k9/template-yard.k9.ncl diff --git a/docs/audits/2026-03-30/STATISTEASE-PLAN.adoc b/docs/audits/2026-03-30/STATISTEASE-PLAN.adoc index 167e8ecce..6f880a98f 100644 --- a/docs/audits/2026-03-30/STATISTEASE-PLAN.adoc +++ b/docs/audits/2026-03-30/STATISTEASE-PLAN.adoc @@ -18,7 +18,7 @@ statistics engine), e2e flows, panic-attack/Hypatia scans, and authenticity benches (heavy datasets). Replace any placeholder fuzz entries with real harnesses. + . *Contractiles & Ability*: Document the invariants (must, trust, dust, -intent) inside `+contractiles/+` and ensure the ability/access doc is +intent) inside `+1-formats/contractiles/+` and ensure the ability/access doc is live for dataset pipelines; tie the logs into `+k9+`. + . *Publication Readiness*: Connect StatistEase outputs to `+PAPER-STATUS.md+` + `+LLM-PROOF-TRUST.md+` + `+AUDIT-V2.adoc+`. Do not diff --git a/docs/audits/dogfooding-matrix-2026-04-04.adoc b/docs/audits/dogfooding-matrix-2026-04-04.adoc index db69ac4be..b76d5d269 100644 --- a/docs/audits/dogfooding-matrix-2026-04-04.adoc +++ b/docs/audits/dogfooding-matrix-2026-04-04.adoc @@ -252,18 +252,18 @@ coordination.k9 |patallm-gallery/dyadt |3 |panic-attack contracts -|protocol-squisher |6 |contractiles/k9/ +|protocol-squisher |6 |1-formats/contractiles/k9/ |palimpsest-plasma |2+ |union-policy-parser contracts -|checky-monkey |1+ |contractiles/k9/ +|checky-monkey |1+ |1-formats/contractiles/k9/ |developer-ecosystem |6+ |package-publishers, v-ecosystem, rescript-ecosystem -|ochrance-framework |4 |contractiles/k9/ +|ochrance-framework |4 |1-formats/contractiles/k9/ -|robodog-ecm |1+ |contractiles/k9/ templates +|robodog-ecm |1+ |1-formats/contractiles/k9/ templates |cloudguard-cli |1+ |container/deploy.k9.ncl diff --git a/docs/proofs/spec-templates/T2-high/boj-server.adoc b/docs/proofs/spec-templates/T2-high/boj-server.adoc index 679fb529b..4f8d0846f 100644 --- a/docs/proofs/spec-templates/T2-high/boj-server.adoc +++ b/docs/proofs/spec-templates/T2-high/boj-server.adoc @@ -29,7 +29,7 @@ registration. * `+mcp-bridge/lib/cartridge-loader.ts+` * `+mcp-bridge/lib/tool-mapper.ts+` -* `+cartridges/*/manifest.json+` (95 manifests) +* `+1-formats/sub-specs/cartridges/*/manifest.json+` (95 manifests) * `+lib/cartridge-manager.ex+` * `+panll/lib/autowire.ts+` @@ -85,7 +85,7 @@ access control ==== BJ5: MCP stdio channel integrity -*Target*: `+cartridges/database-mcp/adapter/stdio_integrity.v+` (NEW) +*Target*: `+1-formats/sub-specs/cartridges/database-mcp/adapter/stdio_integrity.v+` (NEW) *Priority*: P1 *Statement*: MCP protocol messages correctly escape newlines. No diff --git a/docs/reorg/STREAM-PROMPTS.adoc b/docs/reorg/STREAM-PROMPTS.adoc index 2dec96e56..471cd8304 100644 --- a/docs/reorg/STREAM-PROMPTS.adoc +++ b/docs/reorg/STREAM-PROMPTS.adoc @@ -139,7 +139,7 @@ DECISIONS ALREADY MADE: TASKS: IN hyperpolymath/standards: -1. Generalise the existing SATELLITES.a2ml into (or alongside) a REGISTRY that can +1. Generalise the existing 1-formats/SATELLITES.a2ml into (or alongside) a REGISTRY that can hold language/service-coupled pointers, not just absorbed satellites. 2. Add registry pointers for the AffineScript specs (.affine, .affex, .affmap), each pointing at the AffineScript repo with version_pin + source_hash. diff --git a/docs/wikis/developers/index.adoc b/docs/wikis/developers/index.adoc index 498b8ec57..46be38779 100644 --- a/docs/wikis/developers/index.adoc +++ b/docs/wikis/developers/index.adoc @@ -26,7 +26,7 @@ NOTE: Scaffold. The link spine is complete; the connective prose is `TODO`. === 3. Author the machine-readable metadata -* A2ML family: `a2ml/`, the `*-a2ml/` homes, `a2ml-templates/`. +* A2ML family: `a2ml/`, the `*-a2ml/` homes, `1-formats/templates/`. * K9 self-validating components: `k9-svc/`, `k9-coordination-protocol/`. * TODO: "write a valid STATE/META set and pass Validate A2ML". diff --git a/docs/wikis/maintainers/index.adoc b/docs/wikis/maintainers/index.adoc index 19e621a6b..dc31274df 100644 --- a/docs/wikis/maintainers/index.adoc +++ b/docs/wikis/maintainers/index.adoc @@ -55,7 +55,7 @@ NOTE: Scaffold. The link spine is complete; the connective prose is `TODO`. === 5. The innervation / contractile stack (descriptiles) -* `.machine_readable/descriptiles/` (STATE/META/…), `contractiles/`, `contractile.just`, +* `.machine_readable/descriptiles/` (STATE/META/…), `1-formats/contractiles/`, `contractile.just`, `coordination.k9`, `.verisimdb/`, and Hypatia as the estate-side analyser. * TODO: "how a contractile is registered and fires"; whether estate scripts (e.g. the staleness/propagation pair) should be registered as contractiles. diff --git a/docs/wikis/users/index.adoc b/docs/wikis/users/index.adoc index 8bf8e0a1c..219107b17 100644 --- a/docs/wikis/users/index.adoc +++ b/docs/wikis/users/index.adoc @@ -30,7 +30,7 @@ Every Hyperpolymath repo carries six A2ML files (`STATE`, `META`, `ECOSYSTEM`, === 3. Adopt the standards in your repo -* `A2ML-REPO-TEMPLATE.adoc` — the template to stand a repo up. +* `1-formats/A2ML-REPO-TEMPLATE.adoc` — the template to stand a repo up. * `setup.sh` — bootstrap. * `0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc` — which parts apply to which repo shapes. * TODO: a 10-minute "adopt on an existing repo" worked example. diff --git a/ecosystem-a2ml/README.adoc b/ecosystem-a2ml/README.adoc index 93851cd62..9553103f5 100644 --- a/ecosystem-a2ml/README.adoc +++ b/ecosystem-a2ml/README.adoc @@ -15,7 +15,7 @@ image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0, [WARNING] ==== *Superseded characterisation.* The normative grammar for this format family is -the DEED grammar specification -- `deed/spec/DEED-GRAMMAR-SPEC.adoc` in this +the DEED grammar specification -- `1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc` in this repository. DEED is an *s-expression* format: there is no `key = value` production and no `[section]` production; the only bracket is `(`. diff --git a/ecosystem-a2ml/contractiles/README.adoc b/ecosystem-a2ml/contractiles/README.adoc index d19a38774..4d7f0c058 100644 --- a/ecosystem-a2ml/contractiles/README.adoc +++ b/ecosystem-a2ml/contractiles/README.adoc @@ -2,7 +2,7 @@ :toc: :sectnums: -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. +This directory contains the generalized contractiles templates. Copy the `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. == Fill-In Instructions diff --git a/immaculate-guide/IMMACULATE-GUIDE.adoc b/immaculate-guide/IMMACULATE-GUIDE.adoc index 301067a7b..cef7a6b01 100644 --- a/immaculate-guide/IMMACULATE-GUIDE.adoc +++ b/immaculate-guide/IMMACULATE-GUIDE.adoc @@ -350,14 +350,14 @@ as BoJ-server cartridges. A cartridge is a self-describing deployment unit: [source,bash] ---- # Cartridge structure -cartridges// +1-formats/sub-specs/cartridges// ├── cartridge.toml # Declared capabilities, Groove endpoints ├── ffi/ # Zig FFI shared libs ├── build.zig # Zig build (if FFI present) └── src/ # Service source # The BoJ-server discovers cartridges via discovery (not enumeration): -for d in cartridges/*/; do +for d in 1-formats/sub-specs/cartridges/*/; do [ -f "$d/cartridge.toml" ] && boj-server load "$d" done ---- diff --git a/k9-svc/DOGFOODING-OPPORTUNITIES.adoc b/k9-svc/DOGFOODING-OPPORTUNITIES.adoc index f95050e3c..1986bd3b4 100644 --- a/k9-svc/DOGFOODING-OPPORTUNITIES.adoc +++ b/k9-svc/DOGFOODING-OPPORTUNITIES.adoc @@ -149,7 +149,7 @@ https://github.com/hyperpolymath/rsr-template-repo *What Contractiles Are:* - RSR standard directory structure - Four contract types: Dust (documentation), Lust (luxury), Must (required), -Trust (security) - Currently placeholder files in `+contractiles/+` +Trust (security) - Currently placeholder files in `+1-formats/contractiles/+` *Why K9 Is Perfect:* - K9 literally implements the must-just-nickel triad - Contractiles need validation logic - Trust contracts require @@ -161,21 +161,21 @@ shim [width="100%",cols="27%,47%,26%",options="header",] |=== |Current |K9 Replacement |Purpose -|`+contractiles/dust/Dustfile+` |`+Dustfile.k9+` |Documentation +|`+1-formats/contractiles/dust/Dustfile+` |`+Dustfile.k9+` |Documentation requirements -|`+contractiles/lust/Lustfile+` |`+Lustfile.k9+` |Optional features +|`+1-formats/contractiles/lust/Lustfile+` |`+Lustfile.k9+` |Optional features -|`+contractiles/must/Mustfile+` |`+Mustfile.k9+` |Hard requirements +|`+1-formats/contractiles/must/Mustfile+` |`+Mustfile.k9+` |Hard requirements -|`+contractiles/trust/Trustfile+` |`+Trustfile.k9+` |Security contracts +|`+1-formats/contractiles/trust/Trustfile+` |`+Trustfile.k9+` |Security contracts |=== *Example Trust Contract:* [source,nickel] ---- -# contractiles/trust/Trustfile.k9 +# 1-formats/contractiles/trust/Trustfile.k9 K9! leash = 'Hunt # Full execution, requires signature @@ -222,7 +222,7 @@ verify_trust = fun repo_path => [source,nickel] ---- -# contractiles/must/Mustfile.k9 +# 1-formats/contractiles/must/Mustfile.k9 K9! leash = 'Yard @@ -235,10 +235,10 @@ must_have = { directories = [ ".machine_readable", ".bot_directives", - "contractiles/dust", - "contractiles/lust", - "contractiles/must", - "contractiles/trust" + "1-formats/contractiles/dust", + "1-formats/contractiles/lust", + "1-formats/contractiles/must", + "1-formats/contractiles/trust" ], files = [ diff --git a/llm-warmup-user.adoc b/llm-warmup-user.adoc index 11783a95c..2eba7fde4 100644 --- a/llm-warmup-user.adoc +++ b/llm-warmup-user.adoc @@ -11,9 +11,9 @@ ____ This monorepo is a set of specs to consume, not an app to run. Typical path: -* *Stand up a compliant repo:* `+A2ML-REPO-TEMPLATE.adoc+` + the _Usage_ +* *Stand up a compliant repo:* `+1-formats/A2ML-REPO-TEMPLATE.adoc+` + the _Usage_ section of `+README.adoc+`; copy the 7 A2ML files from -`+a2ml-templates/+`. +`+1-formats/templates/+`. * *Pick the spec you need:* `+.machine_readable/REGISTRY.a2ml+` routes you by `+id+` → `+home+` → `+canonical_doc+` (A2ML family, K9, protocols, readiness grades, RSR, pre-flight gates). diff --git a/meta-a2ml/README.adoc b/meta-a2ml/README.adoc index 4750bf3ac..ed9e335b5 100644 --- a/meta-a2ml/README.adoc +++ b/meta-a2ml/README.adoc @@ -11,7 +11,7 @@ image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0, [WARNING] ==== *Superseded characterisation.* The normative grammar for this format family is -the DEED grammar specification -- `deed/spec/DEED-GRAMMAR-SPEC.adoc` in this +the DEED grammar specification -- `1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc` in this repository. DEED is an *s-expression* format: there is no `key = value` production and no `[section]` production; the only bracket is `(`. @@ -325,7 +325,7 @@ Palimpsest-MPL License v1.0 (PMPL-1.0). Copyright (c) 2025 Jonathan D.A. Jewell. **Standards Hub:** * https://github.com/hyperpolymath/standards[standards] -- Organization standards hub -* https://github.com/hyperpolymath/standards/blob/main/SATELLITES.a2ml[SATELLITES.a2ml] -- Machine-readable satellite registry +* https://github.com/hyperpolymath/standards/blob/main/SATELLITES.a2ml[1-formats/SATELLITES.a2ml] -- Machine-readable satellite registry **A2ML Format Family (Siblings):** diff --git a/playbook-a2ml/README.adoc b/playbook-a2ml/README.adoc index 5e5205382..7f8b9f918 100644 --- a/playbook-a2ml/README.adoc +++ b/playbook-a2ml/README.adoc @@ -12,7 +12,7 @@ image:https://img.shields.io/badge/A2ML_Family-execution-green.svg[A2ML Family] [WARNING] ==== *Superseded characterisation.* The normative grammar for this format family is -the DEED grammar specification -- `deed/spec/DEED-GRAMMAR-SPEC.adoc` in this +the DEED grammar specification -- `1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc` in this repository. DEED is an *s-expression* format: there is no `key = value` production and no `[section]` production; DEED uses matching opening and closing parentheses. diff --git a/rhodium-standard-repositories/CLAUDE.md b/rhodium-standard-repositories/CLAUDE.md index 961f9790b..142676b3d 100644 --- a/rhodium-standard-repositories/CLAUDE.md +++ b/rhodium-standard-repositories/CLAUDE.md @@ -11,7 +11,7 @@ This document provides comprehensive guidance for Claude AI when working with Rh - Primary repos root: `$REPOS_DIR` (typically `~/Documents/hyperpolymath-repos`) - Remote mapping: `https://github.com/hyperpolymath/`; names are lowercase and dots become `-` - If a repo is missing locally, check the remote and sync it -- Include `ai-cli-crash-capture/` and `contractiles/` from the template in new repos +- Include `ai-cli-crash-capture/` and `1-formats/contractiles/` from the template in new repos - Mirror 6SCM files into `.machine_readable/6scm/` - Before any code generation, check `$REPOS_DIR/proven` for the current Idris “unbreakable” library status - If a project uses that Idris library, add an *Idris Inside* badge to the repo diff --git a/rhodium-standard-repositories/contractiles/README.adoc b/rhodium-standard-repositories/contractiles/README.adoc index d19a38774..4d7f0c058 100644 --- a/rhodium-standard-repositories/contractiles/README.adoc +++ b/rhodium-standard-repositories/contractiles/README.adoc @@ -2,7 +2,7 @@ :toc: :sectnums: -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. +This directory contains the generalized contractiles templates. Copy the `1-formats/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. == Fill-In Instructions diff --git a/rhodium-standard-repositories/templates/MUST.contractile.template b/rhodium-standard-repositories/templates/MUST.contractile.template index fb777e9a2..2b3049fbe 100644 --- a/rhodium-standard-repositories/templates/MUST.contractile.template +++ b/rhodium-standard-repositories/templates/MUST.contractile.template @@ -26,7 +26,7 @@ ; remain active until the feature is fully removed. ; ; Enforcement: -; K9 validators in contractiles/k9/ machine-check MUST constraints. +; K9 validators in 1-formats/contractiles/k9/ machine-check MUST constraints. ; CI runs these on every PR. Violations block merge. ; ; ── End Definitions ────────────────────────────────────────────── @@ -85,7 +85,7 @@ ; (must "{{SPECIFIC_INVARIANT}}") (enforcement - (k9-validator "contractiles/k9/must-check.k9.ncl") + (k9-validator "1-formats/contractiles/k9/must-check.k9.ncl") (ci "quality.yml runs must-check on every PR") ) ) diff --git a/scripts/build-registry.sh b/scripts/build-registry.sh index 8b3e9692c..02865cd00 100755 --- a/scripts/build-registry.sh +++ b/scripts/build-registry.sh @@ -61,7 +61,7 @@ TOPOLOGY="TOPOLOGY.adoc" read -r -d '' SPECS <<'TSV' || true 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 +contractiles|foundation|1-formats/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 state-a2ml|foundation|state-a2ml/|STATE.a2ml spec|project-state metadata format (drives this registry's topology) ecosystem-a2ml|foundation|ecosystem-a2ml/|ECOSYSTEM.a2ml spec|ecosystem-positioning metadata format @@ -80,13 +80,13 @@ component-readiness-grades|readiness|component-readiness-grades/|CRG — Compone toolchain-readiness-grades|readiness|toolchain-readiness-grades/|TRG — Toolchain Readiness Grades|per-toolchain readiness profile templates rhodium-standard-repositories|governance|rhodium-standard-repositories/|RSR — Rhodium Standard Repositories|the repository-compliance standard every repo is graded against session-management-standards|governance|session-management-standards/|Session Management Standards|continuity / verify / handover protocols -did-you-actually-do-that|governance|did-you-actually-do-that/|DYADT — Did-You-Actually-Do-That|post-action agent-claim verification (Tier 4 accountability) -ensaid-config|governance|ensaid-config/|ENSAID Config|the ensaid configuration standard +did-you-actually-do-that|governance|1-formats/sub-specs/did-you-actually-do-that/|DYADT — Did-You-Actually-Do-That|post-action agent-claim verification (Tier 4 accountability) +ensaid-config|governance|1-formats/sub-specs/ensaid-config/|ENSAID Config|the ensaid configuration standard accessibility|governance|accessibility/|Accessibility Standard|estate accessibility requirements publication-pre-flight|governance|publication-pre-flight/|Publication Pre-Flight|submission gate (HOL + Zenodo checklists) release-pre-flight|governance|release-pre-flight/|Release Pre-Flight (V1 Gate)|hard v1.0.0 audit requirements hypatia-rules|integration|hypatia-rules/|Standards Hypatia Rules|the dogfooding rules that scan THIS repo (incl. drift detection) -a2ml-templates|integration|a2ml-templates/|A2ML Templates|copy-in templates for the 7 A2ML files +a2ml-templates|integration|1-formats/templates/|A2ML Templates|copy-in templates for the 7 A2ML files TSV # --------------------------------------------------------------------------- diff --git a/scripts/verify-claims.sh b/scripts/verify-claims.sh index 1149eb1af..9bf9cb362 100755 --- a/scripts/verify-claims.sh +++ b/scripts/verify-claims.sh @@ -3,7 +3,7 @@ # SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) # # verify-claims.sh — reference verifier for the DYADT claim format. -# See did-you-actually-do-that/spec/{CLAIM-FORMAT,VERIFICATION-PROTOCOL}.adoc. +# See 1-formats/sub-specs/did-you-actually-do-that/spec/{CLAIM-FORMAT,VERIFICATION-PROTOCOL}.adoc. # # Re-derives each claim's outcome from PRIMARY EVIDENCE (git tree, real command # runs) — never from the agent's own statement/evidence text — and emits one diff --git a/session-management-standards/verify/substantial-completion/CHECKLIST.adoc b/session-management-standards/verify/substantial-completion/CHECKLIST.adoc index 5f9094fe7..8c4909c45 100644 --- a/session-management-standards/verify/substantial-completion/CHECKLIST.adoc +++ b/session-management-standards/verify/substantial-completion/CHECKLIST.adoc @@ -104,7 +104,7 @@ with session management and state capture capabilities. | 3.2 | Verify inline annotations -| `inline-annotations/extractor` finds no missing @trust/@contract +| `1-formats/sub-specs/inline-annotations/extractor` finds no missing @trust/@contract | Add missing annotations | 3.3 @@ -256,7 +256,7 @@ just bench --validate # Phase 3: Documentation just readme-validate -inline-annotations/extractor --verify +1-formats/sub-specs/inline-annotations/extractor --verify just sbom --generate changelog-verify.sh diff --git a/standards-map.toml b/standards-map.toml index 4cf18f8fc..10ecb0fb1 100644 --- a/standards-map.toml +++ b/standards-map.toml @@ -32,7 +32,7 @@ [map] repo = "hyperpolymath/standards" version = "1.0.0" -entry_count = 119 +entry_count = 120 generated = false # hand-curated; the district index.adoc files ARE generated checked_by = "scripts/check-standards-map.sh" @@ -191,6 +191,19 @@ canon_slot = "applicability" canonical_doc = "0-canon/TEMPLATE-APPLICABILITY-POLICY.adoc" gate = "canon-spine-lockstep" +[[entry]] +from = "1-formats" +target = "1-formats/ (district root; created by the district move)" +district = "1-formats" +kind = "district" +files = 74 +lifecycle = "versioned" +canonical = false +canon_slot = "" +canonical_doc = "" +gate = "" +note = "District root. This path did not exist before the district move, so it is a new top-level entry and GATE D assertion 2 requires a record for it. canonical = false: the district holds specs, it is not itself a standard." + [[entry]] from = "k9-svc" target = "1-formats/k9/ (pointer)" @@ -244,7 +257,7 @@ gate = "registry-verify" note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." [[entry]] -from = "did-you-actually-do-that" +from = "1-formats/sub-specs/did-you-actually-do-that/" target = "1-formats/sub-specs/did-you-actually-do-that/" district = "1-formats" kind = "sub-spec" @@ -309,7 +322,7 @@ gate = "registry-verify" note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." [[entry]] -from = "a2ml-templates" +from = "1-formats/templates/" target = "1-formats/templates/" district = "1-formats" kind = "template" @@ -321,7 +334,7 @@ canonical_doc = "1-formats/templates/index.adoc" gate = "canon-self-conformance" [[entry]] -from = "inline-annotations" +from = "1-formats/sub-specs/inline-annotations/" target = "1-formats/sub-specs/inline-annotations/" district = "1-formats" kind = "sub-spec" @@ -334,7 +347,7 @@ gate = "canon-self-conformance" note = "TRIAGE: <30 files each; none is a district" [[entry]] -from = "contractiles" +from = "1-formats/contractiles/" target = "1-formats/contractiles/ -> hyperpolymath/contractiles" district = "1-formats" kind = "format-contract" @@ -347,7 +360,7 @@ gate = "check-mustfile-structure" note = "absorbs .machine_readable/contractiles/; own linter is estate task #19" [[entry]] -from = "deed" +from = "1-formats/deed/" target = "1-formats/deed/ -> hyperpolymath/deed" district = "1-formats" kind = "format-grammar" @@ -360,7 +373,7 @@ gate = "canon-spine-lockstep" note = "own IANA media type; v0.2.0 DRAFT; successor to the a2ml record dialect" [[entry]] -from = "panll-panels" +from = "1-formats/sub-specs/panll-panels/" target = "1-formats/sub-specs/panll-panels/" district = "1-formats" kind = "sub-spec" @@ -373,7 +386,7 @@ gate = "canon-self-conformance" note = "TRIAGE: <30 files each; none is a district" [[entry]] -from = "ensaid-config" +from = "1-formats/sub-specs/ensaid-config/" target = "1-formats/sub-specs/ensaid-config/" district = "1-formats" kind = "sub-spec" @@ -386,7 +399,7 @@ gate = "canon-self-conformance" note = "TRIAGE: <30 files each; none is a district" [[entry]] -from = "cartridges" +from = "1-formats/sub-specs/cartridges/" target = "1-formats/sub-specs/cartridges/" district = "1-formats" kind = "sub-spec" @@ -399,7 +412,7 @@ gate = "canon-self-conformance" note = "TRIAGE: <30 files each; none is a district" [[entry]] -from = "A2ML-REPO-TEMPLATE.adoc" +from = "1-formats/A2ML-REPO-TEMPLATE.adoc" target = "1-formats/" district = "1-formats" kind = "index" @@ -411,7 +424,7 @@ canonical_doc = "1-formats/index.adoc" gate = "canon-self-conformance" [[entry]] -from = "SATELLITES.a2ml" +from = "1-formats/SATELLITES.a2ml" target = "1-formats/" district = "1-formats" kind = "index" @@ -423,7 +436,7 @@ canonical_doc = "1-formats/index.adoc" gate = "canon-self-conformance" [[entry]] -from = "bindings-haskell" +from = "1-formats/sub-specs/bindings-haskell/" target = "1-formats/sub-specs/bindings-haskell/" district = "1-formats" kind = "sub-spec" diff --git a/standards-update/README.adoc b/standards-update/README.adoc index 90ce08c1d..5a9b5c755 100644 --- a/standards-update/README.adoc +++ b/standards-update/README.adoc @@ -16,7 +16,7 @@ toc::[] This repository serves as the canonical source for policies, templates, and specifications governing all Hyperpolymath projects. It provides: * **Language Policy** — Which languages and tools are permitted across the ecosystem -* **A2ML Format Family** — 7 machine-readable project metadata formats (see link:SATELLITES.a2ml[SATELLITES.a2ml]) +* **A2ML Format Family** — 7 machine-readable project metadata formats (see link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml]) * **Build System** — Mustfile/justfile (no Makefiles) * **Governance Templates** — Reusable CODE_OF_CONDUCT, CONTRIBUTING, and SECURITY documents * **Licensing Framework** — PMPL-1.0-or-later with Palimpsest philosophical principles @@ -26,9 +26,9 @@ This repository serves as the canonical source for policies, templates, and spec === Hub-Satellite Architecture -This repository is the **hub** for the A2ML Format Family. All specification repos are **satellites** registered in link:SATELLITES.a2ml[SATELLITES.a2ml]. +This repository is the **hub** for the A2ML Format Family. All specification repos are **satellites** registered in link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml]. -For detailed repository structure requirements, see link:A2ML-REPO-TEMPLATE.adoc[A2ML-REPO-TEMPLATE.adoc]. +For detailed repository structure requirements, see link:1-formats/A2ML-REPO-TEMPLATE.adoc[1-formats/A2ML-REPO-TEMPLATE.adoc]. === A2ML Format Family (7 Formats) @@ -74,7 +74,7 @@ Every Hyperpolymath repository must include these machine-readable A2ML files in |https://github.com/hyperpolymath/anchor-a2ml[anchor-a2ml] |=== -Templates available in `a2ml-templates/` directory. +Templates available in `1-formats/templates/` directory. === A2ML Atomicity Protocol (AAP) @@ -90,7 +90,7 @@ All A2ML files include a `[provenance]` section for audit trail and conflict det === Execution Pipeline -All implementations MUST respect this ordering (defined in link:SATELLITES.a2ml[SATELLITES.a2ml]): +All implementations MUST respect this ordering (defined in link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml]): [source] ---- @@ -257,7 +257,7 @@ standards/ ├── hooks/ # Git hooks │ ├── pre-commit # Language policy enforcement │ └── validate-*.sh # Validation scripts -├── a2ml-templates/ # A2ML file templates +├── 1-formats/templates/ # A2ML file templates │ ├── STATE.a2ml.template │ ├── META.a2ml.template │ ├── ECOSYSTEM.a2ml.template @@ -265,8 +265,8 @@ standards/ │ ├── NEUROSYM.a2ml.template │ ├── PLAYBOOK.a2ml.template │ └── ANCHOR.a2ml.template -├── SATELLITES.a2ml # Hub-satellite registry (machine-readable) -├── A2ML-REPO-TEMPLATE.adoc # Canonical structure for -a2ml repos +├── 1-formats/SATELLITES.a2ml # Hub-satellite registry (machine-readable) +├── 1-formats/A2ML-REPO-TEMPLATE.adoc # Canonical structure for -a2ml repos ├── CODE_OF_CONDUCT.md # Template ├── CONTRIBUTING.md # Template ├── SECURITY.md # Template @@ -298,7 +298,7 @@ standards/ **Standards Hub:** * https://github.com/hyperpolymath/standards[standards] — This repository (hub) -* link:SATELLITES.a2ml[SATELLITES.a2ml] — Machine-readable satellite registry +* link:1-formats/SATELLITES.a2ml[1-formats/SATELLITES.a2ml] — Machine-readable satellite registry **A2ML Format Family (Satellites):** diff --git a/state-a2ml/README.adoc b/state-a2ml/README.adoc index 2335e26fc..a2febaab0 100644 --- a/state-a2ml/README.adoc +++ b/state-a2ml/README.adoc @@ -8,7 +8,7 @@ image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0, [WARNING] ==== *Superseded characterisation.* The normative grammar for this format family is -the DEED grammar specification -- `deed/spec/DEED-GRAMMAR-SPEC.adoc` in this +the DEED grammar specification -- `1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc` in this repository. DEED is an *s-expression* format: there is no `key = value` production and no `[section]` production; DEED uses matching opening and closing parentheses. diff --git a/state-a2ml/spec/STATE-FORMAT-SPEC.adoc b/state-a2ml/spec/STATE-FORMAT-SPEC.adoc index 1fdb9bb04..c87015b45 100644 --- a/state-a2ml/spec/STATE-FORMAT-SPEC.adoc +++ b/state-a2ml/spec/STATE-FORMAT-SPEC.adoc @@ -9,7 +9,7 @@ [WARNING] ==== *Superseded characterisation.* The normative grammar for this format family is -the DEED grammar specification -- `deed/spec/DEED-GRAMMAR-SPEC.adoc` in this +the DEED grammar specification -- `1-formats/deed/spec/DEED-GRAMMAR-SPEC.adoc` in this repository. DEED is an *s-expression* format: there is no `key = value` production and no `[section]` production; DEED uses matching opening and closing parentheses. diff --git a/templates/CODEOWNERS b/templates/CODEOWNERS index 3a3b7f20f..d5a80df4f 100644 --- a/templates/CODEOWNERS +++ b/templates/CODEOWNERS @@ -9,7 +9,7 @@ SECURITY.md @hyperpolymath .github/workflows/ @hyperpolymath .machine_readable/ @hyperpolymath -contractiles/ @hyperpolymath +1-formats/contractiles/ @hyperpolymath # License files LICENSE @hyperpolymath From 6358451269815cebc1bf129038b9f88b23ae58dd Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 17 Sep 2026 20:13:39 +0000 Subject: [PATCH 2/2] =?UTF-8?q?reorg(1-formats):=20execute=20the=208=20(po?= =?UTF-8?q?inter)=20entries=20=E2=80=94=20relocate=20+=20leave=20a=20stub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The map annotates these entries "(pointer)": the standard relocates and the old path keeps a stub. Owner ruled the stub shape: a POINTER.adoc in each old directory, with a machine-readable `moved-to` line. (canon.lock is untouched: these entries are [canon.split-candidates] only if they are slots, and none are.) RELOCATED (232 files) -> new home stub left at k9-svc 41 files -> 1-formats/k9/ k9-svc/ meta-a2ml 38 files -> 1-formats/a2ml/meta/ meta-a2ml/ agentic-a2ml 37 files -> 1-formats/a2ml/agentic/ agentic-a2ml/ state-a2ml 30 files -> 1-formats/a2ml/state/ state-a2ml/ anchor-a2ml 25 files -> 1-formats/a2ml/anchor/ anchor-a2ml/ ecosystem-a2ml 23 files -> 1-formats/a2ml/ecosystem/ ecosystem-a2ml/ neurosym-a2ml 23 files -> 1-formats/a2ml/neurosym/ neurosym-a2ml/ playbook-a2ml 15 files -> 1-formats/a2ml/playbook/ playbook-a2ml/ 183 inbound references rewritten. THE MAP IS SILENT ON TWO THINGS. Neither is decided silently here; both are resolved from this repo's own vocabulary and the resolution is recorded IN the map: 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 `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. THE STUB is one file per old directory, no other content: SPDX + title, a relative link to the new home, and a TOML block (`moved-to`, `pointer`, `district`) whose shape is stable and greppable. Nothing in it is normative. Also fixed, same class as the last one: three re-added scorecard lines named `.machine_readable/6a2/`, a directory that has not existed since the rename to `.machine_readable/descriptiles/`. Corrected in place (playbook-a2ml ×2, state-a2ml ×3) — added lines only, so the chartered wider migration is untouched. check-canonical-names.sh rc=1 -> rc=0. GATES scripts/check-standards-map.sh PASSED, entry_count 120 scripts/check-canon-lockstep.sh 8 passed / 0 failed / 2 skipped check-canonical-names.sh rc=0 every other scripts/check-*.sh identical rc to the pristine 176d1f7 control except the two already explained --- .hypatia-baseline.json | 14 ++-- .machine_readable/INTENT.contractile | 2 +- .machine_readable/REGISTRY.a2ml | 32 ++++----- .../scorecards/agentic-a2ml.scorecard.a2ml | 4 +- .../component-readiness-grades.scorecard.a2ml | 2 +- .../scorecards/ecosystem-a2ml.scorecard.a2ml | 14 ++-- .../scorecards/ensaid-config.scorecard.a2ml | 10 +-- .../scorecards/meta-a2ml.scorecard.a2ml | 6 +- .../scorecards/neurosym-a2ml.scorecard.a2ml | 14 ++-- .../scorecards/playbook-a2ml.scorecard.a2ml | 10 +-- ...ession-management-standards.scorecard.a2ml | 2 +- .../scorecards/state-a2ml.scorecard.a2ml | 14 ++-- 0-AI-MANIFEST.a2ml | 2 +- 0-canon/CRG-SELF-ASSESSMENT.adoc | 2 +- .../a2ml/agentic}/.ai-context.json | 0 .../a2ml/agentic}/.editorconfig | 0 .../a2ml/agentic}/.gitattributes | 0 .../a2ml/agentic}/.gitignore | 0 .../a2ml/agentic}/.gitlab-ci.yml | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/agentic}/.nojekyll | 0 .../a2ml/agentic}/README.adoc | 2 +- .../a2ml/agentic}/ROADMAP.adoc | 0 .../a2ml/agentic}/architecture.adoc | 0 .../a2ml/agentic}/contractiles/README.adoc | 0 .../a2ml/agentic}/contractiles/dust/Dustfile | 0 .../a2ml/agentic}/contractiles/must/Mustfile | 0 .../docs/ADR-002-methodology-layer.adoc | 0 .../a2ml/agentic}/docs/CITATIONS.adoc | 0 .../a2ml/agentic}/docs/ROADMAP.adoc | 0 .../a2ml/agentic}/examples/comprehensive.a2ml | 0 .../a2ml/agentic}/examples/minimal.a2ml | 0 .../agentic}/examples/web-project-deno.json | 0 .../a2ml/agentic}/ffi/rsr-adapter.adb | 0 .../a2ml/agentic}/ffi/rsr-adapter.ads | 0 .../a2ml/agentic}/ffi/zig/build.zig | 0 .../a2ml/agentic}/ffi/zig/src/main.zig | 0 .../ffi/zig/test/integration_test.zig | 0 .../a2ml/agentic}/ncl/lib/os_detect.ncl | 0 .../a2ml/agentic}/ncl/lib/schema.ncl | 0 .../a2ml/agentic}/scripts/all-shells.sh | 0 .../a2ml/agentic}/scripts/bootstrap.sh | 0 .../agentic}/spec/AGENTIC-FORMAT-SPEC.adoc | 0 .../a2ml/agentic}/spec/VERSION-POLICY.adoc | 0 .../a2ml/agentic}/spec/agentic.abnf | 0 .../a2ml/agentic}/spec/agentic.schema.json | 0 .../a2ml/anchor}/.editorconfig | 0 .../a2ml/anchor}/.gitattributes | 0 .../a2ml/anchor}/.gitignore | 0 .../a2ml/anchor}/.gitlab-ci.yml | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/anchor}/.nojekyll | 0 .../a2ml/anchor}/README.adoc | 0 .../a2ml/anchor}/ROADMAP.adoc | 0 .../a2ml/anchor}/abnf/anchor.abnf | 0 .../a2ml/anchor}/contractiles/README.adoc | 0 .../a2ml/anchor}/contractiles/dust/Dustfile | 0 .../a2ml/anchor}/contractiles/must/Mustfile | 0 .../a2ml/anchor}/docs/CITATIONS.adoc | 0 .../a2ml/anchor}/examples/comprehensive.scm | 0 .../a2ml/anchor}/examples/minimal.scm | 0 .../anchor}/examples/web-project-deno.json | 0 .../a2ml/anchor}/ffi/zig/build.zig | 0 .../a2ml/anchor}/ffi/zig/src/main.zig | 0 .../anchor}/ffi/zig/test/integration_test.zig | 0 .../a2ml/anchor}/spec/ANCHOR-FORMAT-SPEC.adoc | 0 .../a2ml/ecosystem}/.editorconfig | 0 .../a2ml/ecosystem}/.gitattributes | 0 .../a2ml/ecosystem}/.gitignore | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/ecosystem}/README.adoc | 2 +- .../a2ml/ecosystem}/STANDARDS-ROADMAP.adoc | 0 .../a2ml/ecosystem}/contractiles/README.adoc | 0 .../ecosystem}/contractiles/dust/Dustfile | 0 .../ecosystem}/contractiles/must/Mustfile | 0 .../a2ml/ecosystem}/docs/CITATIONS.adoc | 0 .../ecosystem}/examples/web-project-deno.json | 0 .../ecosystem}/spec/IANA-CONSIDERATIONS.adoc | 0 .../draft/draft-jewell-ecosystem-scm-00.txt | 0 .../a2ml/ecosystem}/spec/ecosystem.abnf | 0 .../ecosystem}/spec/ecosystem.schema.json | 0 .../ecosystem}/spec/family/SCM-FAMILY.adoc | 0 .../a2ml/ecosystem}/spec/family/scm-core.abnf | 0 .../spec/family/scm-family.schema.json | 0 .../a2ml/meta}/.claude/CLAUDE.md | 0 {k9-svc => 1-formats/a2ml/meta}/.editorconfig | 0 .../a2ml/meta}/.gitattributes | 0 .../a2ml/meta}/.github/FUNDING.yml | 0 .../.github/ISSUE_TEMPLATE/bug_report.md | 0 .../.github/ISSUE_TEMPLATE/documentation.md | 0 .../.github/ISSUE_TEMPLATE/feature_request.md | 0 .../meta}/.github/ISSUE_TEMPLATE/question.md | 0 .../a2ml/meta}/.github/dependabot.yml | 0 .../meta}/.github/workflows/casket-pages.yml | 0 .../a2ml/meta}/.github/workflows/codeql.yml | 0 .../meta}/.github/workflows/governance.yml | 0 .../meta}/.github/workflows/hypatia-scan.yml | 0 .../a2ml/meta}/.github/workflows/mirror.yml | 0 .../.github/workflows/scorecard-enforcer.yml | 0 .../meta}/.github/workflows/scorecard.yml | 0 .../.github/workflows/secret-scanner.yml | 0 {meta-a2ml => 1-formats/a2ml/meta}/.gitignore | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/meta}/README.adoc | 0 .../a2ml/meta}/examples/comprehensive.a2ml | 0 .../a2ml/meta}/examples/minimal.a2ml | 0 .../a2ml/meta}/spec/IANA-MEDIA-TYPE.adoc | 0 .../a2ml/meta}/spec/META-FORMAT-SPEC.adoc | 0 .../a2ml/meta}/spec/README.adoc | 0 .../a2ml/meta}/spec/SCM-FORMAT-FAMILY.adoc | 0 .../a2ml/meta}/spec/STANDARDS-TRACK.adoc | 0 .../spec/UNIFIED-STANDARDS-STRATEGY.adoc | 0 .../a2ml/meta}/spec/VERSION-POLICY.adoc | 0 .../a2ml/meta}/spec/abnf/meta.abnf | 0 .../a2ml/meta}/spec/schema/meta.schema.json | 0 .../a2ml/meta}/spec/shared/s-expression.abnf | 0 .../meta}/spec/shared/scm-common.schema.json | 0 .../a2ml/neurosym}/.ai-context.json | 0 .../a2ml/neurosym}/.editorconfig | 0 .../a2ml/neurosym}/.gitattributes | 0 .../a2ml/neurosym}/.gitignore | 0 .../a2ml/neurosym}/.gitlab-ci.yml | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/neurosym}/.nojekyll | 0 .../a2ml/neurosym}/README.adoc | 2 +- .../a2ml/neurosym}/architecture.adoc | 0 .../a2ml/neurosym}/docs/CITATIONS.adoc | 0 .../a2ml/neurosym}/docs/ROADMAP.adoc | 0 .../neurosym}/examples/comprehensive.a2ml | 0 .../a2ml/neurosym}/examples/minimal.a2ml | 0 .../a2ml/neurosym}/ncl/lib/os_detect.ncl | 0 .../a2ml/neurosym}/ncl/lib/schema.ncl | 0 .../a2ml/neurosym}/scripts/all-shells.sh | 0 .../a2ml/neurosym}/scripts/bootstrap.sh | 0 .../neurosym}/spec/NEUROSYM-FORMAT-SPEC.adoc | 0 .../a2ml/playbook}/.editorconfig | 0 .../a2ml/playbook}/.gitattributes | 0 .../a2ml/playbook}/.gitignore | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/playbook}/.nojekyll | 0 .../a2ml/playbook}/README.adoc | 0 .../playbook}/examples/comprehensive.a2ml | 0 .../a2ml/playbook}/examples/minimal.a2ml | 0 .../playbook}/spec/PLAYBOOK-FORMAT-SPEC.adoc | 0 .../a2ml/playbook}/spec/playbook-spec | 0 .../a2ml/state}/.editorconfig | 0 .../a2ml/state}/.gitattributes | 0 .../a2ml/state}/.gitignore | 0 .../a2ml/state}/.gitlab-ci.yml | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 0 .../a2ml/state}/.nojekyll | 0 .../a2ml/state}/README.adoc | 0 .../a2ml/state}/channels.scm | 0 .../a2ml/state}/docs/CITATIONS.adoc | 0 .../a2ml/state}/docs/COOKBOOK.adoc | 0 .../a2ml/state}/docs/USAGE.adoc | 0 .../a2ml/state}/examples/example-state.scm | 0 .../a2ml/state}/lib/state-core.scm | 0 .../a2ml/state}/lib/state-graph.scm | 0 .../a2ml/state}/lib/state-history.scm | 0 .../a2ml/state}/lib/state-kanren.scm | 0 .../a2ml/state}/lib/state.scm | 0 .../a2ml/state}/manifest.scm | 0 .../a2ml/state}/spec/IANA-MEDIA-TYPE.adoc | 2 +- .../a2ml/state}/spec/README.adoc | 0 .../a2ml/state}/spec/STANDARDS-TRACK.adoc | 2 +- .../a2ml/state}/spec/STATE-FORMAT-SPEC.adoc | 0 .../a2ml/state}/spec/VERSION-POLICY.adoc | 0 .../a2ml/state}/spec/abnf/state.abnf | 0 .../a2ml/state}/spec/schema/state.schema.json | 0 {playbook-a2ml => 1-formats/k9}/.editorconfig | 0 .../k9}/.gitattributes | 0 {k9-svc => 1-formats/k9}/.gitignore | 0 .../descriptiles/AGENTIC.a2ml | 0 .../descriptiles/ECOSYSTEM.a2ml | 0 .../.machine_readable/descriptiles/META.a2ml | 0 .../descriptiles/NEUROSYM.a2ml | 0 .../descriptiles/PLAYBOOK.a2ml | 0 .../.machine_readable/descriptiles/STATE.a2ml | 2 +- {k9-svc => 1-formats/k9}/CODE_OF_CONDUCT.adoc | 0 {k9-svc => 1-formats/k9}/CONTRIBUTING.adoc | 2 +- .../k9}/DOGFOODING-OPPORTUNITIES.adoc | 2 +- {k9-svc => 1-formats/k9}/GUIDE.adoc | 0 .../k9}/IANA-MEDIA-TYPE-APPLICATION.adoc | 0 .../k9}/K9-ADOPTION-EXPANSION.adoc | 2 +- {k9-svc => 1-formats/k9}/LICENSE | 0 {k9-svc => 1-formats/k9}/README.adoc | 4 +- .../k9}/SECURITY-ANALYSIS.adoc | 2 +- .../SECURITY-SOLUTIONS-VS-MITIGATIONS.adoc | 0 {k9-svc => 1-formats/k9}/SECURITY.adoc | 0 {k9-svc => 1-formats/k9}/SPEC.adoc | 0 .../k9}/SPEC.adoc.invariants.adoc | 0 {k9-svc => 1-formats/k9}/TESTING.adoc | 0 {k9-svc => 1-formats/k9}/assets/k9-icon.svg | 0 .../k9}/assets/leash-diagram.svg | 0 .../k9}/assets/signing-workflow.svg | 0 .../k9}/assets/triad-diagram.svg | 0 {k9-svc => 1-formats/k9}/capabilities.ncl | 0 .../k9}/docs/DEPLOYMENT-NARRATIVE.adoc | 0 .../k9}/docs/IANA-MEDIA-TYPE.adoc | 0 .../k9}/docs/OPTIMIZATION-GUIDE.adoc | 0 .../k9}/docs/PERFORMANCE.adoc | 2 +- .../k9}/docs/SECURITY-BEST-PRACTICES.adoc | 0 .../k9}/docs/SECURITY-FAQ.adoc | 0 .../docs/SECURITY-FOR-DECISION-MAKERS.adoc | 0 .../k9}/docs/SECURITY-ROADMAP.adoc | 0 .../iana/application-vnd.k9-registration.txt | 0 {k9-svc => 1-formats/k9}/leash.ncl | 0 {k9-svc => 1-formats/k9}/pedigree.ncl | 0 {k9-svc => 1-formats/k9}/register.ncl | 0 .../k9}/scripts/check-6scm.sh | 0 .../did-you-actually-do-that/README.adoc | 2 +- QUICKSTART-DEV.adoc | 4 +- README.adoc | 72 +++++++++---------- SECURITY-ADVISORIES.adoc | 4 +- TEST-NEEDS.adoc | 12 ++-- TOPOLOGY.adoc | 16 ++--- agentic-a2ml/POINTER.adoc | 19 +++++ anchor-a2ml/POINTER.adoc | 19 +++++ audits/assail-classifications.a2ml | 10 +-- .../COMPONENT-READINESS-GRADES.a2ml | 2 +- .../SELF-ASSESSMENT.adoc | 2 +- coordination.k9 | 2 +- ...patia-cache-sha-corruption-2026-06-21.a2ml | 4 +- ...patia-cache-sha-corruption-2026-06-21.adoc | 4 +- docs/reorg/STREAM-PROMPTS.adoc | 4 +- docs/wikis/README.adoc | 2 +- docs/wikis/developers/index.adoc | 2 +- ecosystem-a2ml/POINTER.adoc | 19 +++++ k9-svc/POINTER.adoc | 19 +++++ meta-a2ml/POINTER.adoc | 19 +++++ neurosym-a2ml/POINTER.adoc | 19 +++++ playbook-a2ml/POINTER.adoc | 19 +++++ scripts/build-registry.sh | 16 ++--- standards-map.toml | 30 ++++---- state-a2ml/POINTER.adoc | 19 +++++ .../TOOLCHAIN-READINESS-GRADES.a2ml | 2 +- 272 files changed, 324 insertions(+), 172 deletions(-) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.ai-context.json (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.editorconfig (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.gitattributes (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.gitignore (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.gitlab-ci.yml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.machine_readable/descriptiles/META.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/.nojekyll (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/README.adoc (99%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ROADMAP.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/architecture.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/contractiles/README.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/contractiles/dust/Dustfile (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/contractiles/must/Mustfile (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/docs/ADR-002-methodology-layer.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/docs/CITATIONS.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/docs/ROADMAP.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/examples/comprehensive.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/examples/minimal.a2ml (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/examples/web-project-deno.json (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ffi/rsr-adapter.adb (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ffi/rsr-adapter.ads (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ffi/zig/build.zig (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ffi/zig/src/main.zig (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ffi/zig/test/integration_test.zig (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ncl/lib/os_detect.ncl (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/ncl/lib/schema.ncl (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/scripts/all-shells.sh (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/scripts/bootstrap.sh (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/spec/AGENTIC-FORMAT-SPEC.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/spec/VERSION-POLICY.adoc (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/spec/agentic.abnf (100%) rename {agentic-a2ml => 1-formats/a2ml/agentic}/spec/agentic.schema.json (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.editorconfig (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.gitattributes (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.gitignore (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.gitlab-ci.yml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.machine_readable/descriptiles/META.a2ml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/.nojekyll (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/README.adoc (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/ROADMAP.adoc (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/abnf/anchor.abnf (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/contractiles/README.adoc (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/contractiles/dust/Dustfile (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/contractiles/must/Mustfile (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/docs/CITATIONS.adoc (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/examples/comprehensive.scm (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/examples/minimal.scm (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/examples/web-project-deno.json (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/ffi/zig/build.zig (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/ffi/zig/src/main.zig (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/ffi/zig/test/integration_test.zig (100%) rename {anchor-a2ml => 1-formats/a2ml/anchor}/spec/ANCHOR-FORMAT-SPEC.adoc (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.editorconfig (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.gitattributes (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.gitignore (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.machine_readable/descriptiles/META.a2ml (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/README.adoc (99%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/STANDARDS-ROADMAP.adoc (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/contractiles/README.adoc (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/contractiles/dust/Dustfile (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/contractiles/must/Mustfile (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/docs/CITATIONS.adoc (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/examples/web-project-deno.json (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/IANA-CONSIDERATIONS.adoc (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/draft/draft-jewell-ecosystem-scm-00.txt (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/ecosystem.abnf (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/ecosystem.schema.json (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/family/SCM-FAMILY.adoc (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/family/scm-core.abnf (100%) rename {ecosystem-a2ml => 1-formats/a2ml/ecosystem}/spec/family/scm-family.schema.json (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.claude/CLAUDE.md (100%) rename {k9-svc => 1-formats/a2ml/meta}/.editorconfig (100%) rename {k9-svc => 1-formats/a2ml/meta}/.gitattributes (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/FUNDING.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/ISSUE_TEMPLATE/bug_report.md (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/ISSUE_TEMPLATE/documentation.md (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/ISSUE_TEMPLATE/feature_request.md (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/ISSUE_TEMPLATE/question.md (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/dependabot.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/casket-pages.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/codeql.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/governance.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/hypatia-scan.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/mirror.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/scorecard-enforcer.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/scorecard.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.github/workflows/secret-scanner.yml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.gitignore (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.machine_readable/descriptiles/META.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/README.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/examples/comprehensive.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/examples/minimal.a2ml (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/IANA-MEDIA-TYPE.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/META-FORMAT-SPEC.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/README.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/SCM-FORMAT-FAMILY.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/STANDARDS-TRACK.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/UNIFIED-STANDARDS-STRATEGY.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/VERSION-POLICY.adoc (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/abnf/meta.abnf (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/schema/meta.schema.json (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/shared/s-expression.abnf (100%) rename {meta-a2ml => 1-formats/a2ml/meta}/spec/shared/scm-common.schema.json (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.ai-context.json (100%) rename {meta-a2ml => 1-formats/a2ml/neurosym}/.editorconfig (100%) rename {meta-a2ml => 1-formats/a2ml/neurosym}/.gitattributes (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.gitignore (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.gitlab-ci.yml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.machine_readable/descriptiles/META.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/.nojekyll (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/README.adoc (99%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/architecture.adoc (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/docs/CITATIONS.adoc (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/docs/ROADMAP.adoc (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/examples/comprehensive.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/examples/minimal.a2ml (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/ncl/lib/os_detect.ncl (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/ncl/lib/schema.ncl (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/scripts/all-shells.sh (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/scripts/bootstrap.sh (100%) rename {neurosym-a2ml => 1-formats/a2ml/neurosym}/spec/NEUROSYM-FORMAT-SPEC.adoc (100%) rename {neurosym-a2ml => 1-formats/a2ml/playbook}/.editorconfig (100%) rename {neurosym-a2ml => 1-formats/a2ml/playbook}/.gitattributes (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.gitignore (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.machine_readable/descriptiles/META.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/.nojekyll (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/README.adoc (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/examples/comprehensive.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/examples/minimal.a2ml (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/spec/PLAYBOOK-FORMAT-SPEC.adoc (100%) rename {playbook-a2ml => 1-formats/a2ml/playbook}/spec/playbook-spec (100%) rename {state-a2ml => 1-formats/a2ml/state}/.editorconfig (100%) rename {state-a2ml => 1-formats/a2ml/state}/.gitattributes (100%) rename {state-a2ml => 1-formats/a2ml/state}/.gitignore (100%) rename {state-a2ml => 1-formats/a2ml/state}/.gitlab-ci.yml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.machine_readable/descriptiles/META.a2ml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.machine_readable/descriptiles/STATE.a2ml (100%) rename {state-a2ml => 1-formats/a2ml/state}/.nojekyll (100%) rename {state-a2ml => 1-formats/a2ml/state}/README.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/channels.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/docs/CITATIONS.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/docs/COOKBOOK.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/docs/USAGE.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/examples/example-state.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/lib/state-core.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/lib/state-graph.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/lib/state-history.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/lib/state-kanren.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/lib/state.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/manifest.scm (100%) rename {state-a2ml => 1-formats/a2ml/state}/spec/IANA-MEDIA-TYPE.adoc (98%) rename {state-a2ml => 1-formats/a2ml/state}/spec/README.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/spec/STANDARDS-TRACK.adoc (99%) rename {state-a2ml => 1-formats/a2ml/state}/spec/STATE-FORMAT-SPEC.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/spec/VERSION-POLICY.adoc (100%) rename {state-a2ml => 1-formats/a2ml/state}/spec/abnf/state.abnf (100%) rename {state-a2ml => 1-formats/a2ml/state}/spec/schema/state.schema.json (100%) rename {playbook-a2ml => 1-formats/k9}/.editorconfig (100%) rename {playbook-a2ml => 1-formats/k9}/.gitattributes (100%) rename {k9-svc => 1-formats/k9}/.gitignore (100%) rename {k9-svc => 1-formats/k9}/.machine_readable/descriptiles/AGENTIC.a2ml (100%) rename {k9-svc => 1-formats/k9}/.machine_readable/descriptiles/ECOSYSTEM.a2ml (100%) rename {k9-svc => 1-formats/k9}/.machine_readable/descriptiles/META.a2ml (100%) rename {k9-svc => 1-formats/k9}/.machine_readable/descriptiles/NEUROSYM.a2ml (100%) rename {k9-svc => 1-formats/k9}/.machine_readable/descriptiles/PLAYBOOK.a2ml (100%) rename {k9-svc => 1-formats/k9}/.machine_readable/descriptiles/STATE.a2ml (98%) rename {k9-svc => 1-formats/k9}/CODE_OF_CONDUCT.adoc (100%) rename {k9-svc => 1-formats/k9}/CONTRIBUTING.adoc (97%) rename {k9-svc => 1-formats/k9}/DOGFOODING-OPPORTUNITIES.adoc (99%) rename {k9-svc => 1-formats/k9}/GUIDE.adoc (100%) rename {k9-svc => 1-formats/k9}/IANA-MEDIA-TYPE-APPLICATION.adoc (100%) rename {k9-svc => 1-formats/k9}/K9-ADOPTION-EXPANSION.adoc (99%) rename {k9-svc => 1-formats/k9}/LICENSE (100%) rename {k9-svc => 1-formats/k9}/README.adoc (98%) rename {k9-svc => 1-formats/k9}/SECURITY-ANALYSIS.adoc (99%) rename {k9-svc => 1-formats/k9}/SECURITY-SOLUTIONS-VS-MITIGATIONS.adoc (100%) rename {k9-svc => 1-formats/k9}/SECURITY.adoc (100%) rename {k9-svc => 1-formats/k9}/SPEC.adoc (100%) rename {k9-svc => 1-formats/k9}/SPEC.adoc.invariants.adoc (100%) rename {k9-svc => 1-formats/k9}/TESTING.adoc (100%) rename {k9-svc => 1-formats/k9}/assets/k9-icon.svg (100%) rename {k9-svc => 1-formats/k9}/assets/leash-diagram.svg (100%) rename {k9-svc => 1-formats/k9}/assets/signing-workflow.svg (100%) rename {k9-svc => 1-formats/k9}/assets/triad-diagram.svg (100%) rename {k9-svc => 1-formats/k9}/capabilities.ncl (100%) rename {k9-svc => 1-formats/k9}/docs/DEPLOYMENT-NARRATIVE.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/IANA-MEDIA-TYPE.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/OPTIMIZATION-GUIDE.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/PERFORMANCE.adoc (99%) rename {k9-svc => 1-formats/k9}/docs/SECURITY-BEST-PRACTICES.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/SECURITY-FAQ.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/SECURITY-FOR-DECISION-MAKERS.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/SECURITY-ROADMAP.adoc (100%) rename {k9-svc => 1-formats/k9}/docs/iana/application-vnd.k9-registration.txt (100%) rename {k9-svc => 1-formats/k9}/leash.ncl (100%) rename {k9-svc => 1-formats/k9}/pedigree.ncl (100%) rename {k9-svc => 1-formats/k9}/register.ncl (100%) rename {k9-svc => 1-formats/k9}/scripts/check-6scm.sh (100%) create mode 100644 agentic-a2ml/POINTER.adoc create mode 100644 anchor-a2ml/POINTER.adoc create mode 100644 ecosystem-a2ml/POINTER.adoc create mode 100644 k9-svc/POINTER.adoc create mode 100644 meta-a2ml/POINTER.adoc create mode 100644 neurosym-a2ml/POINTER.adoc create mode 100644 playbook-a2ml/POINTER.adoc create mode 100644 state-a2ml/POINTER.adoc diff --git a/.hypatia-baseline.json b/.hypatia-baseline.json index c3aa4179e..d9225de6b 100644 --- a/.hypatia-baseline.json +++ b/.hypatia-baseline.json @@ -62,7 +62,7 @@ "severity": "high", "rule_module": "code_safety", "type": "ncl_http_url", - "file": "k9-svc/register.ncl", + "file": "1-formats/k9/register.ncl", "note": "FALSE POSITIVE (hypatia triage 2026-07-21): The http:// strings are an XML namespace URI and a DTD public identifier \u2014 opaque identifiers mandated by the freedesktop/Apple specs, never fetched. Changing them to https would break MIME registrati" }, { @@ -94,7 +94,7 @@ "severity": "high", "rule_module": "code_safety", "type": "shell_download_then_run", - "file": "agentic-a2ml/scripts/bootstrap.sh", + "file": "1-formats/a2ml/agentic/scripts/bootstrap.sh", "note": "TRACKED DEBT (hypatia triage 2026-07-21): Same template-shared bootstrap as id 41 (byte-identical pattern). One template fix (download + sha256-verify + run) clears all instances.", "expires_at": "2026-10-21", "tracking_issue": "hyperpolymath/standards#399" @@ -103,7 +103,7 @@ "severity": "high", "rule_module": "code_safety", "type": "shell_download_then_run", - "file": "neurosym-a2ml/scripts/bootstrap.sh", + "file": "1-formats/a2ml/neurosym/scripts/bootstrap.sh", "note": "TRACKED DEBT (hypatia triage 2026-07-21): Real download-and-execute. Template-shared bootstrap (identical in agentic-a2ml and rsr-deployer) \u2014 fix the template once: download to file, verify sha256, then run.", "expires_at": "2026-10-21", "tracking_issue": "hyperpolymath/standards#399" @@ -317,8 +317,8 @@ "severity": "high", "rule_module": "code_scanning_alerts", "type": "CSA001", - "file": "k9-svc/register.ncl", - "note": "FALSE POSITIVE (hypatia triage 2026-07-21): Doubly false: CSA mirror double-report (#378) AND underlying ncl_http_url matched XML namespace identifiers which are opaque strings, never dereferenced. k9-svc/** carved out to #491." + "file": "1-formats/k9/register.ncl", + "note": "FALSE POSITIVE (hypatia triage 2026-07-21): Doubly false: CSA mirror double-report (#378) AND underlying ncl_http_url matched XML namespace identifiers which are opaque strings, never dereferenced. 1-formats/k9/** carved out to #491." }, { "severity": "high", @@ -452,7 +452,7 @@ "severity": "high", "rule_module": "code_scanning_alerts", "type": "CSA003", - "file": "k9-svc/register.ncl", + "file": "1-formats/k9/register.ncl", "note": "FALSE POSITIVE (hypatia triage 2026-07-21): Double-false: mirror double-report per standards#378, AND the underlying ncl_http_url alert flags XML namespace/DTD identifiers, which are opaque IDs never fetched over HTTP. k9-svc carve-out #491." }, { @@ -666,7 +666,7 @@ "severity": "medium", "rule_module": "structural_drift", "type": "SD022", - "file": "meta-a2ml/spec/SCM-FORMAT-FAMILY.adoc", + "file": "1-formats/a2ml/meta/spec/SCM-FORMAT-FAMILY.adoc", "note": "FALSE POSITIVE (hypatia triage 2026-07-21): Sample SCM session data in a format spec \u2014 the path is example payload content, not a repo reference." }, { diff --git a/.machine_readable/INTENT.contractile b/.machine_readable/INTENT.contractile index b8752934b..7f81e77f5 100644 --- a/.machine_readable/INTENT.contractile +++ b/.machine_readable/INTENT.contractile @@ -81,7 +81,7 @@ "rhodium-standard-repositories/ — RSR requirements affect all 500+ estate repos" ".machine_readable/ — format is specified; do not add files outside the contractile schema" "a2ml/ — specification language; backwards-incompatible changes need an ADR" - "k9-svc/ and k9-coordination-protocol/ — K9 trust tier boundaries are load-bearing" + "1-formats/k9/ and k9-coordination-protocol/ — K9 trust tier boundaries are load-bearing" ) ; === Ecosystem Position === diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 66bcfc642..f256e2c43 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -43,8 +43,8 @@ route = "the highest estate-level rules, authority precedence, assurance, contri id = "k9-svc" name = "K9 Self-Validating Components" stream = "foundation" -home = "k9-svc/" -canonical_doc = "k9-svc/README.adoc" +home = "1-formats/k9/" +canonical_doc = "1-formats/k9/README.adoc" source_hash = "sha256:780c4a516609fe2c8a61c615ef9f8a97c630218813385530ad4c1a36a61908ef" route = "the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem)" @@ -61,8 +61,8 @@ route = "policy-enforcement primitives the K9 layer is built from" id = "meta-a2ml" name = "META.a2ml spec" stream = "foundation" -home = "meta-a2ml/" -canonical_doc = "meta-a2ml/README.adoc" +home = "1-formats/a2ml/meta/" +canonical_doc = "1-formats/a2ml/meta/README.adoc" source_hash = "sha256:a058855d1c8019ccf1814a9386ba406b7e8df3698fd17c9fd342a5134f6a2eb0" route = "architecture decisions / governance metadata format" @@ -70,8 +70,8 @@ route = "architecture decisions / governance metadata format" id = "state-a2ml" name = "STATE.a2ml spec" stream = "foundation" -home = "state-a2ml/" -canonical_doc = "state-a2ml/README.adoc" +home = "1-formats/a2ml/state/" +canonical_doc = "1-formats/a2ml/state/README.adoc" source_hash = "sha256:a67908e04098d40d957fe067042410bf195ef48dd2d18e7426b66b3ed1a01f33" route = "project-state metadata format (drives this registry's topology)" @@ -79,8 +79,8 @@ route = "project-state metadata format (drives this registry's topology)" id = "ecosystem-a2ml" name = "ECOSYSTEM.a2ml spec" stream = "foundation" -home = "ecosystem-a2ml/" -canonical_doc = "ecosystem-a2ml/README.adoc" +home = "1-formats/a2ml/ecosystem/" +canonical_doc = "1-formats/a2ml/ecosystem/README.adoc" source_hash = "sha256:fd8d8eae614d7a6c89dee84a874e4a5ba6f94db4b5e3f675154252632b01788d" route = "ecosystem-positioning metadata format" @@ -88,8 +88,8 @@ route = "ecosystem-positioning metadata format" id = "agentic-a2ml" name = "AGENTIC.a2ml spec" stream = "foundation" -home = "agentic-a2ml/" -canonical_doc = "agentic-a2ml/README.adoc" +home = "1-formats/a2ml/agentic/" +canonical_doc = "1-formats/a2ml/agentic/README.adoc" source_hash = "sha256:025e72fc7cbddeeb4e92b3d1aedd74e812f164644dd9ecd26010e4ff26a74c3a" route = "AI-agent operational gating / entropy budgets" @@ -97,8 +97,8 @@ route = "AI-agent operational gating / entropy budgets" id = "neurosym-a2ml" name = "NEUROSYM.a2ml spec" stream = "foundation" -home = "neurosym-a2ml/" -canonical_doc = "neurosym-a2ml/README.adoc" +home = "1-formats/a2ml/neurosym/" +canonical_doc = "1-formats/a2ml/neurosym/README.adoc" source_hash = "sha256:753f11a288d6402296a6dc2fc69c0cca986e164d6319b7b789e159995816ec61" route = "symbolic semantics / proof obligations" @@ -106,8 +106,8 @@ route = "symbolic semantics / proof obligations" id = "playbook-a2ml" name = "PLAYBOOK.a2ml spec" stream = "foundation" -home = "playbook-a2ml/" -canonical_doc = "playbook-a2ml/README.adoc" +home = "1-formats/a2ml/playbook/" +canonical_doc = "1-formats/a2ml/playbook/README.adoc" source_hash = "sha256:ae559e69331afa37ddf14d71d92bddb41613964765420a2fe930234c13e71074" route = "executable operational runbooks" @@ -115,8 +115,8 @@ route = "executable operational runbooks" id = "anchor-a2ml" name = "ANCHOR.a2ml spec" stream = "foundation" -home = "anchor-a2ml/" -canonical_doc = "anchor-a2ml/README.adoc" +home = "1-formats/a2ml/anchor/" +canonical_doc = "1-formats/a2ml/anchor/README.adoc" source_hash = "sha256:d33c7ff6c44dc734eb8fd05bd5c7491176da20237b0a5d8212df25471e6b2765" route = "project-recalibration intervention format" diff --git a/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml b/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml index ff546daa5..c86902feb 100644 --- a/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/agentic-a2ml.scorecard.a2ml @@ -30,14 +30,14 @@ id = "M3" text = "The gating grammar MUST be formally defined (ABNF) and kept consistent with the JSON Schema representation." system = "none — no cross-check script diffs spec/agentic.abnf against spec/agentic.schema.json" status = "fail" -effects = "spec/agentic.abnf (199 lines) and spec/agentic.schema.json (418 lines) can drift silently (as already evidenced by M2's section mismatch); any parser generated from one artifact may reject files valid under the other, breaking playbook-a2ml/meta-a2ml consumers that pick either as ground truth." +effects = "spec/agentic.abnf (199 lines) and spec/agentic.schema.json (418 lines) can drift silently (as already evidenced by M2's section mismatch); any parser generated from one artifact may reject files valid under the other, breaking 1-formats/a2ml/playbook/meta-a2ml consumers that pick either as ground truth." [[must]] id = "M4" text = "Every source file MUST carry a valid SPDX-License-Identifier header consistent with the repository's licensing policy." system = "none — no automated SPDX header linter/CI job is configured in .gitlab-ci.yml for this repo" status = "manual-only" -effects = "Licence compliance for redistribution of individual files (e.g. by downstream forks) depends on manual review; inconsistent headers already observed (README/ADRs declare CC-BY-SA-4.0, ffi/rsr-adapter.adb declares MPL-2.0 as 'automatic legal fallback until PMPL is formally recognised', and no repo-local LICENSE file exists under agentic-a2ml/ itself even though README says 'See LICENSE')." +effects = "Licence compliance for redistribution of individual files (e.g. by downstream forks) depends on manual review; inconsistent headers already observed (README/ADRs declare CC-BY-SA-4.0, ffi/rsr-adapter.adb declares MPL-2.0 as 'automatic legal fallback until PMPL is formally recognised', and no repo-local LICENSE file exists under 1-formats/a2ml/agentic/ itself even though README says 'See LICENSE')." [[must]] id = "M5" diff --git a/.machine_readable/scorecards/component-readiness-grades.scorecard.a2ml b/.machine_readable/scorecards/component-readiness-grades.scorecard.a2ml index 03751018e..c92ec5304 100644 --- a/.machine_readable/scorecards/component-readiness-grades.scorecard.a2ml +++ b/.machine_readable/scorecards/component-readiness-grades.scorecard.a2ml @@ -85,7 +85,7 @@ id = "C1" text = "The standard COULD integrate with K9 contract validation to automate Grade-B promotion checks (verifying 6+ diverse external targets) as sketched in the automation-hooks section." system = "none" status = "aspirational" -effects = "COMPONENT-READINESS-GRADES.a2ml lines 139-143 describe this as a future use-case ('K9 contract validates 6+ diverse targets meet diversity-metrics before allowing promotion') with a pointer to k9-svc/README.adoc, but no such contract exists yet; promotion to B remains a manual claim." +effects = "COMPONENT-READINESS-GRADES.a2ml lines 139-143 describe this as a future use-case ('K9 contract validates 6+ diverse targets meet diversity-metrics before allowing promotion') with a pointer to 1-formats/k9/README.adoc, but no such contract exists yet; promotion to B remains a manual claim." [[could]] id = "C2" diff --git a/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml b/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml index 4fa929d61..80c74c73b 100644 --- a/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/ecosystem-a2ml.scorecard.a2ml @@ -15,7 +15,7 @@ text = "ECOSYSTEM.a2ml documents MUST declare version, name, type, and purpose a system = "spec/ecosystem.schema.json (\"required\": [\"version\", \"name\", \"type\", \"purpose\"])" status = "pass" evidence = "/home/user/standards/ecosystem-a2ml/spec/ecosystem.schema.json line 7 declares required: [\"version\",\"name\",\"type\",\"purpose\"], matching README.adoc's \"Required Fields\" table." -check = "python3 -c \"import json; d=json.load(open('ecosystem-a2ml/spec/ecosystem.schema.json')); assert 'properties' in d\" && grep -q '2020-12/schema' ecosystem-a2ml/spec/ecosystem.schema.json" +check = "python3 -c \"import json; d=json.load(open('1-formats/a2ml/ecosystem/spec/ecosystem.schema.json')); assert 'properties' in d\" && grep -q '2020-12/schema' 1-formats/a2ml/ecosystem/spec/ecosystem.schema.json" effects = "Consumers building parsers/validators around this schema can rely on these four fields always being present; if unmet, downstream tooling (linters, dependency-mapping generators) would need defensive null-checks." [[must]] @@ -31,7 +31,7 @@ text = "A machine-readable JSON Schema MUST exist to validate the JSON represent system = "spec/ecosystem.schema.json (2020-12 draft JSON Schema with typed properties, patterns for semver, enums)" status = "pass" evidence = "/home/user/standards/ecosystem-a2ml/spec/ecosystem.schema.json exists, is well-formed JSON Schema (draft 2020-12), and defines version/name/type/purpose plus optional properties (family, position-in-ecosystem, related-projects, etc.) matching the README's documented field set." -check = "python3 -c \"import json; d=json.load(open('ecosystem-a2ml/spec/ecosystem.schema.json')); assert 'properties' in d\" && grep -q '2020-12/schema' ecosystem-a2ml/spec/ecosystem.schema.json" +check = "python3 -c \"import json; d=json.load(open('1-formats/a2ml/ecosystem/spec/ecosystem.schema.json')); assert 'properties' in d\" && grep -q '2020-12/schema' 1-formats/a2ml/ecosystem/spec/ecosystem.schema.json" effects = "Downstream tooling (a2ml-to-json converters, CI validators in consuming repos) depends on this schema being present and internally coherent to validate ecosystem manifests at scale." [[must]] @@ -60,21 +60,21 @@ id = "S2" text = "The spec SHOULD have CI that lints/validates the grammar, JSON Schema, and any example documents on every push (e.g. schema self-validation, ABNF syntax check, or example-vs-schema conformance test)." system = "none" status = "fail" -effects = "No .github/workflows exist under ecosystem-a2ml/, and no repo-root workflow (.github/workflows/*.yml) references ecosystem.schema.json, ecosystem.abnf, or this directory. The M2 scm/a2ml mismatch and the M4 wrong-example issue would have been caught immediately by even a minimal CI check, and none exists to catch regressions going forward." +effects = "No .github/workflows exist under 1-formats/a2ml/ecosystem/, and no repo-root workflow (.github/workflows/*.yml) references ecosystem.schema.json, ecosystem.abnf, or this directory. The M2 scm/a2ml mismatch and the M4 wrong-example issue would have been caught immediately by even a minimal CI check, and none exists to catch regressions going forward." [[should]] id = "S3" text = "Governance contractiles (Mustfile/Dustfile/Trustfile/Intentfile under 1-formats/contractiles/) SHOULD be filled in with this project's real invariants rather than left as generic templates." -system = "none (root scripts/check-mustfile-structure.sh and scripts/run-mustfile.sh default to .machine_readable/contractiles/must/Mustfile.a2ml at repo root and are not wired to ecosystem-a2ml/contractiles/must/Mustfile, which uses a different path/naming convention)" +system = "none (root scripts/check-mustfile-structure.sh and scripts/run-mustfile.sh default to .machine_readable/contractiles/must/Mustfile.a2ml at repo root and are not wired to 1-formats/a2ml/ecosystem/contractiles/must/Mustfile, which uses a different path/naming convention)" status = "fail" effects = "1-formats/contractiles/must/Mustfile still contains the literal template checks (config-valid, gateway-exposes-port, etc.) unrelated to an A2ML spec repo, and .machine_readable/descriptiles/ECOSYSTEM.a2ml has empty purpose/role/category fields and 'No related projects recorded' — none of it reflects real invariants, so the framework provides no actual governance signal for this repo, and the monorepo's boj-build.yml CI job validates only the top-level repo's own contractiles, not this subdirectory's." [[should]] id = "S4" -text = "Repository-level governance files that the README's 'Project Structure' section lists as present in ecosystem-a2ml/ (CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, LICENSE) SHOULD actually exist at that stated path." +text = "Repository-level governance files that the README's 'Project Structure' section lists as present in 1-formats/a2ml/ecosystem/ (CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, LICENSE) SHOULD actually exist at that stated path." system = "none" status = "fail" -effects = "A contributor following the README's tree diagram (which places CONTRIBUTING.md/CODE_OF_CONDUCT.md/SECURITY.md/LICENSE directly under ecosystem-a2ml/) will find none of those files there; only monorepo-root equivalents exist (/home/user/standards/CONTRIBUTING.md etc.), which may or may not apply identically to this subproject's PMPL-1.0 licence claim." +effects = "A contributor following the README's tree diagram (which places CONTRIBUTING.md/CODE_OF_CONDUCT.md/SECURITY.md/LICENSE directly under 1-formats/a2ml/ecosystem/) will find none of those files there; only monorepo-root equivalents exist (/home/user/standards/CONTRIBUTING.md etc.), which may or may not apply identically to this subproject's PMPL-1.0 licence claim." [[could]] id = "C1" @@ -88,7 +88,7 @@ id = "C2" text = "Standard citation metadata (CITATION.cff, codemeta.json) COULD be provided so the spec can be formally cited." system = "none" status = "fail" -effects = "docs/CITATIONS.adoc links to '../CITATION.cff' and '../codemeta.json', neither of which exists in ecosystem-a2ml/; the citations doc itself is unedited RSR-template-repo boilerplate (title 'RSR-template-repo', author 'Polymath, Hyper') rather than content specific to ECOSYSTEM.a2ml, so academic/tooling consumers get broken links and wrong metadata if they try to cite this spec." +effects = "docs/CITATIONS.adoc links to '../CITATION.cff' and '../codemeta.json', neither of which exists in 1-formats/a2ml/ecosystem/; the citations doc itself is unedited RSR-template-repo boilerplate (title 'RSR-template-repo', author 'Polymath, Hyper') rather than content specific to ECOSYSTEM.a2ml, so academic/tooling consumers get broken links and wrong metadata if they try to cite this spec." [[could]] id = "C3" diff --git a/.machine_readable/scorecards/ensaid-config.scorecard.a2ml b/.machine_readable/scorecards/ensaid-config.scorecard.a2ml index 4cd767511..fd4a35606 100644 --- a/.machine_readable/scorecards/ensaid-config.scorecard.a2ml +++ b/.machine_readable/scorecards/ensaid-config.scorecard.a2ml @@ -14,14 +14,14 @@ id = "M1" text = "Every ENSAID_CONFIG.a2ml file in the ecosystem MUST pass basic A2ML manifest validation (SPDX header, required identity field, version field) as enforced by the shared A2ML validator." system = "a2ml/actions/validate/validate-a2ml.sh (scans all *.a2ml files for SPDX-License-Identifier, an identity field (agent-id/name/project), and a version field)" status = "fail" -effects = "Running validate-a2ml.sh over the monorepo currently emits a 'Missing required identity field (agent-id, name, or project)' error for all 12 deployed .machine_readable/ENSAID_CONFIG.a2ml instances (a2ml/{editors/vscode,pandoc,actions/validate,bindings/rust,bindings/deno,bindings/haskell} and the equivalent k9-svc/ set), because these files declare `[ensaid] tool = \"panll\"` but no top-level `name=`, `project=`, or `agent-id=` field. In strict CI mode this validator would fail the build for every consumer repo that adopts the ENSAID_CONFIG.a2ml convention as documented." +effects = "Running validate-a2ml.sh over the monorepo currently emits a 'Missing required identity field (agent-id, name, or project)' error for all 12 deployed .machine_readable/ENSAID_CONFIG.a2ml instances (a2ml/{editors/vscode,pandoc,actions/validate,bindings/rust,bindings/deno,bindings/haskell} and the equivalent 1-formats/k9/ set), because these files declare `[ensaid] tool = \"panll\"` but no top-level `name=`, `project=`, or `agent-id=` field. In strict CI mode this validator would fail the build for every consumer repo that adopts the ENSAID_CONFIG.a2ml convention as documented." [[must]] id = "M2" text = "Deployed ENSAID_CONFIG.a2ml instances MUST use only the workspace.mode, workspace.protection, and workspace.execution enum values defined in spec/ENSAID-CONFIG-SPEC.adoc (mode: rhodium|everything|code|bespoke; protection: open|readonly|sandboxed|language-locked|transpilation-guarded|production-gated; execution: live|dry-run|simulation|emulation)." system = "none — no schema/enum validator exists for ENSAID_CONFIG.a2ml specifically; the generic validate-a2ml.sh does not check field values, only presence of SPDX/identity/version" status = "fail" -effects = "All 12 real deployed ENSAID_CONFIG.a2ml files (in a2ml/ and k9-svc/ subprojects) instead use mode = rhodium|gold|silver|bronze, protection = open|guarded|locked, and execution = live|dry-run|approval-required — none of which appear in the spec's enum tables. Any eNSAID-compatible tool (e.g. PanLL) implementing strict version/enum negotiation per the spec's 'Version Negotiation' section would reject or misinterpret every currently-deployed config file, indicating the spec and its own reference deployments have already diverged." +effects = "All 12 real deployed ENSAID_CONFIG.a2ml files (in a2ml/ and 1-formats/k9/ subprojects) instead use mode = rhodium|gold|silver|bronze, protection = open|guarded|locked, and execution = live|dry-run|approval-required — none of which appear in the spec's enum tables. Any eNSAID-compatible tool (e.g. PanLL) implementing strict version/enum negotiation per the spec's 'Version Negotiation' section would reject or misinterpret every currently-deployed config file, indicating the spec and its own reference deployments have already diverged." [[must]] id = "M3" @@ -42,7 +42,7 @@ id = "M5" text = "The specification and its overview README MUST agree on the canonical on-disk location for the standard's files (single source of truth for where configuration lives)." system = "none — no lint/consistency check between README.adoc and spec/README.adoc exists" status = "fail" -effects = "README.adoc (root) states the config file is `.machine_readable/ENSAID_CONFIG.a2ml` (consistent with the actual deployed files found in a2ml/ and k9-svc/), while spec/README.adoc describes 'the `.ensaid-config/` directory standard' and instructs repository authors to 'Create `.ensaid-config/` at your repository root' — a different, undefined directory layout that appears nowhere else in the spec body or in any deployed instance. A tool implementer following spec/README.adoc literally would build discovery logic for a directory structure that does not match the actual specification or any real usage, producing incompatible implementations." +effects = "README.adoc (root) states the config file is `.machine_readable/ENSAID_CONFIG.a2ml` (consistent with the actual deployed files found in a2ml/ and 1-formats/k9/), while spec/README.adoc describes 'the `.ensaid-config/` directory standard' and instructs repository authors to 'Create `.ensaid-config/` at your repository root' — a different, undefined directory layout that appears nowhere else in the spec body or in any deployed instance. A tool implementer following spec/README.adoc literally would build discovery logic for a directory structure that does not match the actual specification or any real usage, producing incompatible implementations." [[should]] id = "S1" @@ -68,14 +68,14 @@ effects = "No audit-log mechanism or protection-level enforcement exists anywher [[could]] id = "C1" text = "The spec COULD ship a machine-checkable JSON Schema (or equivalent) for ENSAID_CONFIG.a2ml so tools and CI can validate section/field/enum correctness automatically." -system = "none — no .schema.json or equivalent exists under 1-formats/sub-specs/ensaid-config/ (contrast with, e.g., k9-svc/receipt/receipt.schema.json and .machine_readable/scorecards/scorecard.schema.json which do exist for other artefacts)" +system = "none — no .schema.json or equivalent exists under 1-formats/sub-specs/ensaid-config/ (contrast with, e.g., 1-formats/k9/receipt/receipt.schema.json and .machine_readable/scorecards/scorecard.schema.json which do exist for other artefacts)" status = "fail" effects = "Without a schema, the enum-mismatch gap found in M2 (deployed files using gold/silver/bronze instead of the documented rhodium/everything/code/bespoke) went undetected by any tooling and will recur for every future adopting repository." [[could]] id = "C2" text = "The repository COULD provide a canonical, spec-conformant example ENSAID_CONFIG.a2ml template file (not just inline adoc code blocks) that other repos copy, to keep deployed instances synchronized with the spec's field/enum vocabulary." -system = "none — the deployed instances in a2ml/*/.machine_readable/ENSAID_CONFIG.a2ml and k9-svc/*/.machine_readable/ENSAID_CONFIG.a2ml appear to derive from a shared template, but that template (and its enum vocabulary) is not sourced from, or kept in sync with, spec/ENSAID-CONFIG-SPEC.adoc" +system = "none — the deployed instances in a2ml/*/.machine_readable/ENSAID_CONFIG.a2ml and 1-formats/k9/*/.machine_readable/ENSAID_CONFIG.a2ml appear to derive from a shared template, but that template (and its enum vocabulary) is not sourced from, or kept in sync with, spec/ENSAID-CONFIG-SPEC.adoc" status = "fail" effects = "The identical drift across all 12 deployed files (same non-spec enum values, same missing identity field) strongly suggests a single stale template is being copy-pasted; without a canonical, spec-linked template, every future adopting repo will inherit the same non-conformance." diff --git a/.machine_readable/scorecards/meta-a2ml.scorecard.a2ml b/.machine_readable/scorecards/meta-a2ml.scorecard.a2ml index 697e6ea41..791d16836 100644 --- a/.machine_readable/scorecards/meta-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/meta-a2ml.scorecard.a2ml @@ -15,7 +15,7 @@ text = "The repository MUST provide a formal specification document defining the system = "spec/META-FORMAT-SPEC.adoc (present, IETF Internet-Draft style)" status = "pass" evidence = "/home/user/standards/meta-a2ml/spec/META-FORMAT-SPEC.adoc exists with Abstract, Status of Memo, Introduction, ABNF cross-references, etc." -check = "test -f meta-a2ml/spec/META-FORMAT-SPEC.adoc && grep -q 'Abstract' meta-a2ml/spec/META-FORMAT-SPEC.adoc && grep -q 'Status of' meta-a2ml/spec/META-FORMAT-SPEC.adoc" +check = "test -f 1-formats/a2ml/meta/spec/META-FORMAT-SPEC.adoc && grep -q 'Abstract' 1-formats/a2ml/meta/spec/META-FORMAT-SPEC.adoc && grep -q 'Status of' 1-formats/a2ml/meta/spec/META-FORMAT-SPEC.adoc" effects = "Consumers/implementers (parsers, tooling, sibling *-a2ml repos) rely on this doc as the normative reference." [[must]] @@ -73,7 +73,7 @@ text = "The repository SHOULD have automated dependency/version currency checks system = ".github/dependabot.yml (github-actions ecosystem, daily schedule, grouped 'actions' updates)" status = "pass" evidence = "/home/user/standards/meta-a2ml/.github/dependabot.yml configures package-ecosystem: github-actions with daily interval and grouped patterns." -check = "test -f meta-a2ml/.github/dependabot.yml && grep -q 'github-actions' meta-a2ml/.github/dependabot.yml" +check = "test -f 1-formats/a2ml/meta/.github/dependabot.yml && grep -q 'github-actions' 1-formats/a2ml/meta/.github/dependabot.yml" effects = "Without this, stale/vulnerable pinned Action SHAs would go unnoticed by downstream users of these workflows." [[could]] @@ -96,5 +96,5 @@ text = "The repository COULD publish a GitHub Pages rendering of the spec docs f system = ".github/workflows/casket-pages.yml (GitHub Pages build workflow triggered on push to main)" status = "pass" evidence = "/home/user/standards/meta-a2ml/.github/workflows/casket-pages.yml defines a 'build' job under permissions pages:write, id-token:write, triggered on push to main and workflow_dispatch." -check = "test -f meta-a2ml/.github/workflows/casket-pages.yml && grep -q 'pages: write' meta-a2ml/.github/workflows/casket-pages.yml" +check = "test -f 1-formats/a2ml/meta/.github/workflows/casket-pages.yml && grep -q 'pages: write' 1-formats/a2ml/meta/.github/workflows/casket-pages.yml" effects = "Improves discoverability/readability of the spec for external readers; absence would only reduce convenience, not correctness." diff --git a/.machine_readable/scorecards/neurosym-a2ml.scorecard.a2ml b/.machine_readable/scorecards/neurosym-a2ml.scorecard.a2ml index dfcd10bd5..190e71788 100644 --- a/.machine_readable/scorecards/neurosym-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/neurosym-a2ml.scorecard.a2ml @@ -12,7 +12,7 @@ assessor = "estate-audit" [[must]] id = "M1" text = "NEUROSYM files and the spec document MUST carry SPDX-License-Identifier / SPDX-FileCopyrightText headers (spec.adoc, Header Comments section; README.adoc Contributing section)." -system = "none — no automated SPDX-header-presence checker is wired into this repo home (scripts/check-licence-consistency.sh checks LICENSE-file identity, not per-file headers, and is only invoked by governance-reusable.yml for callers that have their own .github/workflows, which neurosym-a2ml/ does not)" +system = "none — no automated SPDX-header-presence checker is wired into this repo home (scripts/check-licence-consistency.sh checks LICENSE-file identity, not per-file headers, and is only invoked by governance-reusable.yml for callers that have their own .github/workflows, which 1-formats/a2ml/neurosym/ does not)" status = "manual-only" effects = "Licensing/attribution defensibility for downstream consumers of the A2ML Format Family; always a human/legal judgement, never purely mechanical." @@ -42,7 +42,7 @@ id = "M5" text = "The spec's home directory, canonical doc, and content hash MUST be correctly registered in the estate spec registry so downstream tooling (TOPOLOGY.md, drift detection) can locate it." system = "scripts/build-registry.sh --check, run as the \"Registry + topology in sync\" job in .github/workflows/registry-verify.yml" status = "pass" -evidence = "/home/user/standards/.machine_readable/REGISTRY.a2ml lines 97-103 contain a `[[spec]]` entry with id=\"neurosym-a2ml\", home=\"neurosym-a2ml/\", canonical_doc=\"neurosym-a2ml/README.adoc\", and a computed source_hash; /home/user/standards/TOPOLOGY.md line 29 lists the corresponding human-readable row — both are consistent with the current file tree." +evidence = "/home/user/standards/.machine_readable/REGISTRY.a2ml lines 97-103 contain a `[[spec]]` entry with id=\"neurosym-a2ml\", home=\"1-formats/a2ml/neurosym/\", canonical_doc=\"1-formats/a2ml/neurosym/README.adoc\", and a computed source_hash; /home/user/standards/TOPOLOGY.md line 29 lists the corresponding human-readable row — both are consistent with the current file tree." check = "bash scripts/build-registry.sh --check" effects = "Estate-wide tooling (drift detection, Hypatia rule HYP-S006, cross-repo navigation) depends on this registry entry staying accurate; it currently is." @@ -63,21 +63,21 @@ effects = "Consumers cannot programmatically validate a NEUROSYM.a2ml file befor [[should]] id = "S3" text = "The shipped examples (examples/minimal.a2ml, examples/comprehensive.a2ml) SHOULD validate against the normative spec via an automated check, per README.adoc's Contributing statement \"Examples validate against the spec\"." -system = "none in this repo — a validate-a2ml.sh / a2ml CLI validator exists in the sibling a2ml/ repository (a2ml/actions/validate/validate-a2ml.sh, a2ml/.github/workflows/a2ml-validation.yml) but is not wired into neurosym-a2ml/ (no .github/workflows directory here at all; only a generic .gitlab-ci.yml with Rust/Elixir gates that do not fire, since there is no Cargo.toml or mix.exs)" +system = "none in this repo — a validate-a2ml.sh / a2ml CLI validator exists in the sibling a2ml/ repository (a2ml/actions/validate/validate-a2ml.sh, a2ml/.github/workflows/a2ml-validation.yml) but is not wired into 1-formats/a2ml/neurosym/ (no .github/workflows directory here at all; only a generic .gitlab-ci.yml with Rust/Elixir gates that do not fire, since there is no Cargo.toml or mix.exs)" status = "fail" effects = "The Contributing guideline in README.adoc (\"Examples validate against the spec\") is currently unenforced; a spec change or example drift would go undetected." [[should]] id = "S4" text = "The repository SHOULD carry a SECURITY.md, per estate governance convention (checked elsewhere in the estate by scorecard-enforcer.yml's check-critical job)." -system = "none wired here — .github/workflows/scorecard-enforcer.yml's check-critical job asserts SECURITY.md exists, but that workflow lives at the monorepo root / is intended for satellite repos with their own workflow call-in; neurosym-a2ml/ has no .github/workflows and no SECURITY.md" +system = "none wired here — .github/workflows/scorecard-enforcer.yml's check-critical job asserts SECURITY.md exists, but that workflow lives at the monorepo root / is intended for satellite repos with their own workflow call-in; 1-formats/a2ml/neurosym/ has no .github/workflows and no SECURITY.md" status = "fail" effects = "GitHub security-tab guidance and the estate scorecard consider this spec incomplete on baseline governance hygiene; COMPLIANCE-DASHBOARD.md already flags neurosym-a2ml as \"no scorecard\"." [[could]] id = "C1" text = "README.adoc COULD be supplemented/replaced by README.md per the estate-wide Markdown-for-community-health migration policy." -system = "none scoped to this directory — .github/workflows/doc-format.yml implements this exact check (\"README.adoc without README.md\" warning) but only checks files at whichever repo root it runs against; it is not currently exercised against neurosym-a2ml/README.adoc" +system = "none scoped to this directory — .github/workflows/doc-format.yml implements this exact check (\"README.adoc without README.md\" warning) but only checks files at whichever repo root it runs against; it is not currently exercised against 1-formats/a2ml/neurosym/README.adoc" status = "fail" effects = "GitHub community-health tab, GitHub profile, and external MCP directories (Glama) would render this repo's README as raw AsciiDoc rather than formatted Markdown if/when neurosym-a2ml is split into its own GitHub repo." @@ -91,8 +91,8 @@ effects = "Without a reference evaluator, every downstream consumer must indepen [[could]] id = "C3" text = "Cross-links to sibling A2ML Format Family repos in README.adoc (meta-a2ml, playbook-a2ml, agentic-a2ml, anchor-a2ml) COULD be verified by an automated link-checker." -system = "test -d checks (run from repo root) confirming each linked sibling-repo directory (meta-a2ml/, playbook-a2ml/, agentic-a2ml/, anchor-a2ml/) referenced from neurosym-a2ml/README.adoc's cross-links actually exists; this is an enforcement-gap fix (the links are correct today, just previously unchecked), not a full markdown-link-checker." +system = "test -d checks (run from repo root) confirming each linked sibling-repo directory (1-formats/a2ml/meta/, 1-formats/a2ml/playbook/, 1-formats/a2ml/agentic/, 1-formats/a2ml/anchor/) referenced from 1-formats/a2ml/neurosym/README.adoc's cross-links actually exists; this is an enforcement-gap fix (the links are correct today, just previously unchecked), not a full markdown-link-checker." status = "pass" -evidence = "neurosym-a2ml/README.adoc contains relative AsciiDoc cross-links link:../meta-a2ml/[...], link:../playbook-a2ml/[...], link:../agentic-a2ml/[...], link:../anchor-a2ml/[...]; verified with `grep -oP 'link:\\.\\./[a-z0-9-]+/' neurosym-a2ml/README.adoc` that these are exactly the four sibling repo names, and `test -d` against each from the repo root confirms all four targets exist on disk today." +evidence = "1-formats/a2ml/neurosym/README.adoc contains relative AsciiDoc cross-links link:../meta-a2ml/[...], link:../playbook-a2ml/[...], link:../agentic-a2ml/[...], link:../anchor-a2ml/[...]; verified with `grep -oP 'link:\\.\\./[a-z0-9-]+/' 1-formats/a2ml/neurosym/README.adoc` that these are exactly the four sibling repo names, and `test -d` against each from the repo root confirms all four targets exist on disk today." check = "test -d meta-a2ml && test -d playbook-a2ml && test -d agentic-a2ml && test -d anchor-a2ml" effects = "Broken relative links to sibling spec repos would not be caught automatically, degrading navigability of the A2ML Format Family documentation set." diff --git a/.machine_readable/scorecards/playbook-a2ml.scorecard.a2ml b/.machine_readable/scorecards/playbook-a2ml.scorecard.a2ml index de1c5d635..be707691e 100644 --- a/.machine_readable/scorecards/playbook-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/playbook-a2ml.scorecard.a2ml @@ -29,7 +29,7 @@ text = "The repository MUST provide reference examples of the current PLAYBOOK.a system = "none" status = "pass" evidence = "examples/minimal.a2ml (14 lines: [metadata], [derivation-source], [procedures.build] with a single step) and examples/comprehensive.a2ml (172 lines covering [derivation-source], [procedures.build/deploy/rollback], [release-process], [incident-response.*], [maintenance-operations], [[alerts]]) both exist, use the TOML syntax described in README.adoc, and are referenced from README.adoc's 'Examples' section." -check = "test -f playbook-a2ml/examples/minimal.a2ml && test -f playbook-a2ml/examples/comprehensive.a2ml && grep -q \"\\[derivation-source\\]\" playbook-a2ml/examples/minimal.a2ml && grep -q \"\\[derivation-source\\]\" playbook-a2ml/examples/comprehensive.a2ml && grep -q \"examples/minimal.a2ml\\|examples/comprehensive\" playbook-a2ml/README.adoc" +check = "test -f 1-formats/a2ml/playbook/examples/minimal.a2ml && test -f 1-formats/a2ml/playbook/examples/comprehensive.a2ml && grep -q \"\\[derivation-source\\]\" 1-formats/a2ml/playbook/examples/minimal.a2ml && grep -q \"\\[derivation-source\\]\" 1-formats/a2ml/playbook/examples/comprehensive.a2ml && grep -q \"examples/minimal.a2ml\\|examples/comprehensive\" 1-formats/a2ml/playbook/README.adoc" effects = "Consumers of the spec (tooling authors, other a2ml-family repos) have concrete TOML samples to build parsers/validators against, even without a formal machine-checkable grammar." [[must]] @@ -37,7 +37,7 @@ id = "M4" text = "Every PLAYBOOK.a2ml file MUST declare a `derivation-source` documenting the META rules / STATE context it derives authority from (per README.adoc 'Derivation Source' section and spec/PLAYBOOK-FORMAT-SPEC.adoc 'Derivation Declaration')." system = "none" status = "fail" -effects = "The repository's own self-referential file, .machine_readable/6a2/PLAYBOOK.a2ml, contains only [metadata], [deployment], [incident-response], [release-process] and [maintenance-operations] — it has no [derivation-source] table at all, unlike both files in examples/. The repo fails to dogfood its own MUST requirement, which undermines confidence that other repos' 6a2/PLAYBOOK.a2ml files (k9-svc, meta-a2ml, agentic-a2ml, etc., all copied from the same template) correctly capture derivation authority." +effects = "The repository's own self-referential file, .machine_readable/descriptiles/PLAYBOOK.a2ml, contains only [metadata], [deployment], [incident-response], [release-process] and [maintenance-operations] — it has no [derivation-source] table at all, unlike both files in examples/. The repo fails to dogfood its own MUST requirement, which undermines confidence that other repos' 6a2/PLAYBOOK.a2ml files (k9-svc, meta-a2ml, agentic-a2ml, etc., all copied from the same template) correctly capture derivation authority." [[must]] id = "M5" @@ -58,14 +58,14 @@ id = "S2" text = "The repository SHOULD provide or wire up automated validation of examples/*.a2ml against the format (e.g. a schema or the a2ml-playbook profile)." system = "none" status = "fail" -effects = "A validation profile does exist elsewhere in the monorepo (a2ml/profiles/a2ml-playbook/PROFILE.a2ml, requiring metadata/incident-response/release-process sections) but nothing in playbook-a2ml/ invokes it against examples/minimal.a2ml, examples/comprehensive.a2ml, or .machine_readable/6a2/PLAYBOOK.a2ml. Format drift (as already found in M2/M4) can silently accumulate because nothing mechanically catches it." +effects = "A validation profile does exist elsewhere in the monorepo (a2ml/profiles/a2ml-playbook/PROFILE.a2ml, requiring metadata/incident-response/release-process sections) but nothing in 1-formats/a2ml/playbook/ invokes it against examples/minimal.a2ml, examples/comprehensive.a2ml, or .machine_readable/descriptiles/PLAYBOOK.a2ml. Format drift (as already found in M2/M4) can silently accumulate because nothing mechanically catches it." [[should]] id = "S3" text = "The repository SHOULD run CI (.github/workflows) to lint AsciiDoc and validate .a2ml files on push/PR." system = "none" status = "fail" -effects = "There is no .github directory anywhere under playbook-a2ml/. Broken links, malformed TOML in examples, or AsciiDoc syntax errors would not be caught before merge, unlike sibling repos in the monorepo (e.g. a2ml/.github/workflows) that do have CI." +effects = "There is no .github directory anywhere under 1-formats/a2ml/playbook/. Broken links, malformed TOML in examples, or AsciiDoc syntax errors would not be caught before merge, unlike sibling repos in the monorepo (e.g. a2ml/.github/workflows) that do have CI." [[should]] id = "S4" @@ -86,7 +86,7 @@ id = "C2" text = "The repository COULD provide parser/binding code (e.g. Rust/Deno/Haskell, mirroring bindings/ directories in the sibling a2ml repo) specifically for PLAYBOOK.a2ml." system = "none" status = "fail" -effects = "No bindings/ or scripts/ directory exists in playbook-a2ml/; consumers must implement their own TOML parsing plus PLAYBOOK-specific semantic checks (derivation validation, step ordering) from scratch." +effects = "No bindings/ or scripts/ directory exists in 1-formats/a2ml/playbook/; consumers must implement their own TOML parsing plus PLAYBOOK-specific semantic checks (derivation validation, step ordering) from scratch." [[could]] id = "C3" diff --git a/.machine_readable/scorecards/session-management-standards.scorecard.a2ml b/.machine_readable/scorecards/session-management-standards.scorecard.a2ml index 91559565f..8bfacea72 100644 --- a/.machine_readable/scorecards/session-management-standards.scorecard.a2ml +++ b/.machine_readable/scorecards/session-management-standards.scorecard.a2ml @@ -49,7 +49,7 @@ effects = "n/a — this is currently sound, so no downstream impact." [[should]] id = "S1" text = "PROTOCOL.k9 files SHOULD conform to the repository's existing K9 configuration grammar (K9! magic number, pedigree block with name/version, security-level field) since a generic validator for that grammar exists in this monorepo." -system = "k9-svc/actions/validate/validate-k9.sh — checks .k9 files for 'K9!' magic-number line 1, pedigree block, valid security level (kennel/yard/hunt), and SPDX header. Exists but is not wired to session-management-standards/." +system = "1-formats/k9/actions/validate/validate-k9.sh — checks .k9 files for 'K9!' magic-number line 1, pedigree block, valid security level (kennel/yard/hunt), and SPDX header. Exists but is not wired to session-management-standards/." status = "fail" effects = "All 12 PROTOCOL.k9 files here begin with a plain '# ...' comment, not the 'K9!' magic number, and have no pedigree/security-level fields, so they would fail validate-k9.sh if it were ever run repo-wide. This is a naming collision risk: '.k9' files that don't follow the actual K9 grammar could confuse tooling or reviewers who expect the k9-svc schema." diff --git a/.machine_readable/scorecards/state-a2ml.scorecard.a2ml b/.machine_readable/scorecards/state-a2ml.scorecard.a2ml index bed506897..7f556e314 100644 --- a/.machine_readable/scorecards/state-a2ml.scorecard.a2ml +++ b/.machine_readable/scorecards/state-a2ml.scorecard.a2ml @@ -14,14 +14,14 @@ id = "M1" text = "The spec MUST provide a formal grammar/schema (ABNF and/or JSON Schema) that accurately defines the syntax of the STATE file format currently in use." system = "none" status = "fail" -effects = "Consumers writing parsers or validators cannot trust spec/abnf/state.abnf or spec/schema/state.schema.json: both describe the deprecated S-expression Scheme format (top-level `(define state '((metadata ...))...)`), while the actual current artifact `.machine_readable/6a2/STATE.a2ml` is a TOML-like A2ML file with sections like `[metadata]`, `[project-context]`, `[position]`, `[route-to-mvp]` that appear nowhere in the ABNF/schema. Any tool built against the published grammar/schema will reject or mis-parse the real STATE.a2ml file." +effects = "Consumers writing parsers or validators cannot trust spec/abnf/state.abnf or spec/schema/state.schema.json: both describe the deprecated S-expression Scheme format (top-level `(define state '((metadata ...))...)`), while the actual current artifact `.machine_readable/descriptiles/STATE.a2ml` is a TOML-like A2ML file with sections like `[metadata]`, `[project-context]`, `[position]`, `[route-to-mvp]` that appear nowhere in the ABNF/schema. Any tool built against the published grammar/schema will reject or mis-parse the real STATE.a2ml file." [[must]] id = "M2" text = "Every source and specification file in the spec MUST carry an SPDX-License-Identifier header." system = "none (no automated SPDX lint script or CI job found in this directory or wired to it)" status = "manual-only" -evidence = "grep -rl 'SPDX-License-Identifier' across state-a2ml/ shows headers present in all lib/*.scm, spec/STATE-FORMAT-SPEC.adoc, spec/abnf/state.abnf, manifest.scm, channels.scm, .machine_readable/6a2/*.a2ml, .gitlab-ci.yml, .gitattributes, .gitignore, examples/example-state.scm." +evidence = "grep -rl 'SPDX-License-Identifier' across 1-formats/a2ml/state/ shows headers present in all lib/*.scm, spec/STATE-FORMAT-SPEC.adoc, spec/abnf/state.abnf, manifest.scm, channels.scm, .machine_readable/descriptiles/*.a2ml, .gitlab-ci.yml, .gitattributes, .gitignore, examples/example-state.scm." effects = "Downstream re-users and SPDX/REUSE tooling can attribute licensing per-file without manual investigation." [[must]] @@ -29,7 +29,7 @@ id = "M3" text = "A LICENSE file MUST exist in the spec directory matching the license(s) declared in its README/spec headers." system = "none" status = "manual-only" -effects = "README.adoc badge claims 'License: PMPL-1.0'; spec/README.adoc claims dual MIT + LicenseRef-Palimpsest-0.8 and points to '../LICENSE.txt'; source headers say 'MPL-2.0' or 'MPL-2.0 AND LicenseRef-Palimpsest-0.8'. No LICENSE.txt (or LICENSE) file exists inside state-a2ml/ at all — only a repo-root LICENSE exists, and it is unclear whether it covers this subtree's stated dual license. Consumers cannot determine the actual license terms for this spec without maintainer clarification." +effects = "README.adoc badge claims 'License: PMPL-1.0'; spec/README.adoc claims dual MIT + LicenseRef-Palimpsest-0.8 and points to '../LICENSE.txt'; source headers say 'MPL-2.0' or 'MPL-2.0 AND LicenseRef-Palimpsest-0.8'. No LICENSE.txt (or LICENSE) file exists inside 1-formats/a2ml/state/ at all — only a repo-root LICENSE exists, and it is unclear whether it covers this subtree's stated dual license. Consumers cannot determine the actual license terms for this spec without maintainer clarification." [[must]] id = "M4" @@ -43,7 +43,7 @@ id = "M5" text = "The CI pipeline that lints/tests the Guile reference library MUST actually run against files that exist in the repository." system = ".gitlab-ci.yml lint stage: `for f in lib/*.scm STATE.scm examples/*.scm; do guile -c \"(load \\\"$f\\\")\\\" ...`" status = "fail" -effects = "The lint job iterates over `STATE.scm` at repo root, but no such file exists in state-a2ml/ (only the deprecated example lives at examples/example-state.scm and the current data file is .machine_readable/6a2/STATE.a2ml, not a .scm file). Running this job as written would fail on the missing glob target or silently skip it depending on shell globbing behavior, so the 'lint' guarantee is not actually being exercised as documented. Additionally, this pipeline is GitLab CI/CD (.gitlab-ci.yml) inside a repo whose real CI is GitHub Actions (root .github/workflows/*); there is no evidence this pipeline is ever triggered in the hyperpolymath/standards GitHub monorepo, meaning the described lint/test/build stages are effectively dead configuration." +effects = "The lint job iterates over `STATE.scm` at repo root, but no such file exists in 1-formats/a2ml/state/ (only the deprecated example lives at examples/example-state.scm and the current data file is .machine_readable/descriptiles/STATE.a2ml, not a .scm file). Running this job as written would fail on the missing glob target or silently skip it depending on shell globbing behavior, so the 'lint' guarantee is not actually being exercised as documented. Additionally, this pipeline is GitLab CI/CD (.gitlab-ci.yml) inside a repo whose real CI is GitHub Actions (root .github/workflows/*); there is no evidence this pipeline is ever triggered in the hyperpolymath/standards GitHub monorepo, meaning the described lint/test/build stages are effectively dead configuration." [[should]] id = "S1" @@ -51,7 +51,7 @@ text = "The spec SHOULD ship comprehensive user-facing documentation covering us system = "none (manual review of docs/ directory)" status = "pass" evidence = "docs/USAGE.adoc (333 lines), docs/COOKBOOK.adoc (794 lines), docs/CITATIONS.adoc (55 lines) all exist and are substantial, non-stub content covering the format's intended usage patterns." -check = "test -f state-a2ml/docs/USAGE.adoc -a -f state-a2ml/docs/COOKBOOK.adoc -a -f state-a2ml/docs/CITATIONS.adoc" +check = "test -f 1-formats/a2ml/state/docs/USAGE.adoc -a -f 1-formats/a2ml/state/docs/COOKBOOK.adoc -a -f 1-formats/a2ml/state/docs/CITATIONS.adoc" effects = "Users adopting STATE.a2ml have working reference material; absence would raise the barrier to correct adoption." [[should]] @@ -73,7 +73,7 @@ id = "S4" text = "A SELF-ASSESSMENT.adoc or equivalent compliance self-report SHOULD exist for the spec, consistent with other specs in the monorepo." system = "none" status = "fail" -effects = "No SELF-ASSESSMENT.adoc found under state-a2ml/ (search confirmed absent), so there is no maintainer-authored baseline against which this scorecard or future audits can be cross-checked; the monorepo's governance workflows (governance-reusable.yml) rely on repo-wide artifacts like .hypatia-baseline.json rather than a per-spec self-assessment for this directory." +effects = "No SELF-ASSESSMENT.adoc found under 1-formats/a2ml/state/ (search confirmed absent), so there is no maintainer-authored baseline against which this scorecard or future audits can be cross-checked; the monorepo's governance workflows (governance-reusable.yml) rely on repo-wide artifacts like .hypatia-baseline.json rather than a per-spec self-assessment for this directory." [[could]] id = "C1" @@ -88,7 +88,7 @@ text = "The spec COULD provide a minikanren-backed relational query engine as a system = "lib/state-kanren.scm: exposes minikanren-available?/fallback implementation; .gitlab-ci.yml 'test-kanren' job checks which path is active" status = "pass" evidence = "lib/state-kanren.scm defines kanren:minikanren-available? and lib/state.scm's state-modules-loaded reports 'loaded-with-minikanren or 'loaded-with-fallback depending on availability; .gitlab-ci.yml has a dedicated test-kanren job that exercises this branch." -check = "grep -q \"minikanren-available?\" state-a2ml/lib/state-kanren.scm && grep -q \"test-kanren\" state-a2ml/.gitlab-ci.yml" +check = "grep -q \"minikanren-available?\" 1-formats/a2ml/state/lib/state-kanren.scm && grep -q \"test-kanren\" 1-formats/a2ml/state/.gitlab-ci.yml" effects = "Consumers without guile-minikanren installed still get correct (if less optimized) relational queries rather than a hard failure." [[could]] diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index 40bc82099..6b5134bdb 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -21,7 +21,7 @@ content-addressed `source_hash`. Prose explanation: `REGISTRY.adoc`. | If you want… | Go to | |---|---| | Every spec + home + source hash | `.machine_readable/REGISTRY.a2ml` | -| A2ML / K9 foundation (Stream 1) | `a2ml/`, `k9-svc/`, `1-formats/contractiles/`, `*-a2ml/` | +| A2ML / K9 foundation (Stream 1) | `a2ml/`, `1-formats/k9/`, `1-formats/contractiles/`, `*-a2ml/` | | Language policy (Stream 2) | `.claude/CLAUDE.md` | | Protocols | `*-protocol/` (registry stream `protocol`) | | Readiness grades | `adoption-readiness-grades/`, `foundations-readiness-grades/`, `component-readiness-grades/`, `toolchain-readiness-grades/` | diff --git a/0-canon/CRG-SELF-ASSESSMENT.adoc b/0-canon/CRG-SELF-ASSESSMENT.adoc index beb37fae8..437bf4155 100644 --- a/0-canon/CRG-SELF-ASSESSMENT.adoc +++ b/0-canon/CRG-SELF-ASSESSMENT.adoc @@ -16,7 +16,7 @@ Assessed: 2026-04-09 | Unit tests | Present -| a2ml/bindings/rust (47), k9-svc/bindings/rust (45), mcp-repo-guardian (36), axel-protocol (14), groove-protocol (10), avow-protocol/src (8) +| a2ml/bindings/rust (47), 1-formats/k9/bindings/rust (45), mcp-repo-guardian (36), axel-protocol (14), groove-protocol (10), avow-protocol/src (8) | Smoke tests | Present diff --git a/agentic-a2ml/.ai-context.json b/1-formats/a2ml/agentic/.ai-context.json similarity index 100% rename from agentic-a2ml/.ai-context.json rename to 1-formats/a2ml/agentic/.ai-context.json diff --git a/agentic-a2ml/.editorconfig b/1-formats/a2ml/agentic/.editorconfig similarity index 100% rename from agentic-a2ml/.editorconfig rename to 1-formats/a2ml/agentic/.editorconfig diff --git a/agentic-a2ml/.gitattributes b/1-formats/a2ml/agentic/.gitattributes similarity index 100% rename from agentic-a2ml/.gitattributes rename to 1-formats/a2ml/agentic/.gitattributes diff --git a/agentic-a2ml/.gitignore b/1-formats/a2ml/agentic/.gitignore similarity index 100% rename from agentic-a2ml/.gitignore rename to 1-formats/a2ml/agentic/.gitignore diff --git a/agentic-a2ml/.gitlab-ci.yml b/1-formats/a2ml/agentic/.gitlab-ci.yml similarity index 100% rename from agentic-a2ml/.gitlab-ci.yml rename to 1-formats/a2ml/agentic/.gitlab-ci.yml diff --git a/agentic-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/agentic/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from agentic-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/agentic/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/agentic-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/agentic/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from agentic-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/agentic/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/agentic-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/agentic/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from agentic-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/agentic/.machine_readable/descriptiles/META.a2ml diff --git a/agentic-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/agentic/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from agentic-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/agentic/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/agentic-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/agentic/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from agentic-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/agentic/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/agentic-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/agentic/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from agentic-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/agentic/.machine_readable/descriptiles/STATE.a2ml diff --git a/agentic-a2ml/.nojekyll b/1-formats/a2ml/agentic/.nojekyll similarity index 100% rename from agentic-a2ml/.nojekyll rename to 1-formats/a2ml/agentic/.nojekyll diff --git a/agentic-a2ml/README.adoc b/1-formats/a2ml/agentic/README.adoc similarity index 99% rename from agentic-a2ml/README.adoc rename to 1-formats/a2ml/agentic/README.adoc index b8a9f2b18..699e11949 100644 --- a/agentic-a2ml/README.adoc +++ b/1-formats/a2ml/agentic/README.adoc @@ -146,7 +146,7 @@ The complete normative specification is in link:spec/AGENTIC-FORMAT-SPEC.adoc[sp [source] ---- -agentic-a2ml/ +1-formats/a2ml/agentic/ +-- spec/ | +-- AGENTIC-FORMAT-SPEC.adoc # Normative specification +-- examples/ diff --git a/agentic-a2ml/ROADMAP.adoc b/1-formats/a2ml/agentic/ROADMAP.adoc similarity index 100% rename from agentic-a2ml/ROADMAP.adoc rename to 1-formats/a2ml/agentic/ROADMAP.adoc diff --git a/agentic-a2ml/architecture.adoc b/1-formats/a2ml/agentic/architecture.adoc similarity index 100% rename from agentic-a2ml/architecture.adoc rename to 1-formats/a2ml/agentic/architecture.adoc diff --git a/agentic-a2ml/contractiles/README.adoc b/1-formats/a2ml/agentic/contractiles/README.adoc similarity index 100% rename from agentic-a2ml/contractiles/README.adoc rename to 1-formats/a2ml/agentic/contractiles/README.adoc diff --git a/agentic-a2ml/contractiles/dust/Dustfile b/1-formats/a2ml/agentic/contractiles/dust/Dustfile similarity index 100% rename from agentic-a2ml/contractiles/dust/Dustfile rename to 1-formats/a2ml/agentic/contractiles/dust/Dustfile diff --git a/agentic-a2ml/contractiles/must/Mustfile b/1-formats/a2ml/agentic/contractiles/must/Mustfile similarity index 100% rename from agentic-a2ml/contractiles/must/Mustfile rename to 1-formats/a2ml/agentic/contractiles/must/Mustfile diff --git a/agentic-a2ml/docs/ADR-002-methodology-layer.adoc b/1-formats/a2ml/agentic/docs/ADR-002-methodology-layer.adoc similarity index 100% rename from agentic-a2ml/docs/ADR-002-methodology-layer.adoc rename to 1-formats/a2ml/agentic/docs/ADR-002-methodology-layer.adoc diff --git a/agentic-a2ml/docs/CITATIONS.adoc b/1-formats/a2ml/agentic/docs/CITATIONS.adoc similarity index 100% rename from agentic-a2ml/docs/CITATIONS.adoc rename to 1-formats/a2ml/agentic/docs/CITATIONS.adoc diff --git a/agentic-a2ml/docs/ROADMAP.adoc b/1-formats/a2ml/agentic/docs/ROADMAP.adoc similarity index 100% rename from agentic-a2ml/docs/ROADMAP.adoc rename to 1-formats/a2ml/agentic/docs/ROADMAP.adoc diff --git a/agentic-a2ml/examples/comprehensive.a2ml b/1-formats/a2ml/agentic/examples/comprehensive.a2ml similarity index 100% rename from agentic-a2ml/examples/comprehensive.a2ml rename to 1-formats/a2ml/agentic/examples/comprehensive.a2ml diff --git a/agentic-a2ml/examples/minimal.a2ml b/1-formats/a2ml/agentic/examples/minimal.a2ml similarity index 100% rename from agentic-a2ml/examples/minimal.a2ml rename to 1-formats/a2ml/agentic/examples/minimal.a2ml diff --git a/agentic-a2ml/examples/web-project-deno.json b/1-formats/a2ml/agentic/examples/web-project-deno.json similarity index 100% rename from agentic-a2ml/examples/web-project-deno.json rename to 1-formats/a2ml/agentic/examples/web-project-deno.json diff --git a/agentic-a2ml/ffi/rsr-adapter.adb b/1-formats/a2ml/agentic/ffi/rsr-adapter.adb similarity index 100% rename from agentic-a2ml/ffi/rsr-adapter.adb rename to 1-formats/a2ml/agentic/ffi/rsr-adapter.adb diff --git a/agentic-a2ml/ffi/rsr-adapter.ads b/1-formats/a2ml/agentic/ffi/rsr-adapter.ads similarity index 100% rename from agentic-a2ml/ffi/rsr-adapter.ads rename to 1-formats/a2ml/agentic/ffi/rsr-adapter.ads diff --git a/agentic-a2ml/ffi/zig/build.zig b/1-formats/a2ml/agentic/ffi/zig/build.zig similarity index 100% rename from agentic-a2ml/ffi/zig/build.zig rename to 1-formats/a2ml/agentic/ffi/zig/build.zig diff --git a/agentic-a2ml/ffi/zig/src/main.zig b/1-formats/a2ml/agentic/ffi/zig/src/main.zig similarity index 100% rename from agentic-a2ml/ffi/zig/src/main.zig rename to 1-formats/a2ml/agentic/ffi/zig/src/main.zig diff --git a/agentic-a2ml/ffi/zig/test/integration_test.zig b/1-formats/a2ml/agentic/ffi/zig/test/integration_test.zig similarity index 100% rename from agentic-a2ml/ffi/zig/test/integration_test.zig rename to 1-formats/a2ml/agentic/ffi/zig/test/integration_test.zig diff --git a/agentic-a2ml/ncl/lib/os_detect.ncl b/1-formats/a2ml/agentic/ncl/lib/os_detect.ncl similarity index 100% rename from agentic-a2ml/ncl/lib/os_detect.ncl rename to 1-formats/a2ml/agentic/ncl/lib/os_detect.ncl diff --git a/agentic-a2ml/ncl/lib/schema.ncl b/1-formats/a2ml/agentic/ncl/lib/schema.ncl similarity index 100% rename from agentic-a2ml/ncl/lib/schema.ncl rename to 1-formats/a2ml/agentic/ncl/lib/schema.ncl diff --git a/agentic-a2ml/scripts/all-shells.sh b/1-formats/a2ml/agentic/scripts/all-shells.sh similarity index 100% rename from agentic-a2ml/scripts/all-shells.sh rename to 1-formats/a2ml/agentic/scripts/all-shells.sh diff --git a/agentic-a2ml/scripts/bootstrap.sh b/1-formats/a2ml/agentic/scripts/bootstrap.sh similarity index 100% rename from agentic-a2ml/scripts/bootstrap.sh rename to 1-formats/a2ml/agentic/scripts/bootstrap.sh diff --git a/agentic-a2ml/spec/AGENTIC-FORMAT-SPEC.adoc b/1-formats/a2ml/agentic/spec/AGENTIC-FORMAT-SPEC.adoc similarity index 100% rename from agentic-a2ml/spec/AGENTIC-FORMAT-SPEC.adoc rename to 1-formats/a2ml/agentic/spec/AGENTIC-FORMAT-SPEC.adoc diff --git a/agentic-a2ml/spec/VERSION-POLICY.adoc b/1-formats/a2ml/agentic/spec/VERSION-POLICY.adoc similarity index 100% rename from agentic-a2ml/spec/VERSION-POLICY.adoc rename to 1-formats/a2ml/agentic/spec/VERSION-POLICY.adoc diff --git a/agentic-a2ml/spec/agentic.abnf b/1-formats/a2ml/agentic/spec/agentic.abnf similarity index 100% rename from agentic-a2ml/spec/agentic.abnf rename to 1-formats/a2ml/agentic/spec/agentic.abnf diff --git a/agentic-a2ml/spec/agentic.schema.json b/1-formats/a2ml/agentic/spec/agentic.schema.json similarity index 100% rename from agentic-a2ml/spec/agentic.schema.json rename to 1-formats/a2ml/agentic/spec/agentic.schema.json diff --git a/anchor-a2ml/.editorconfig b/1-formats/a2ml/anchor/.editorconfig similarity index 100% rename from anchor-a2ml/.editorconfig rename to 1-formats/a2ml/anchor/.editorconfig diff --git a/anchor-a2ml/.gitattributes b/1-formats/a2ml/anchor/.gitattributes similarity index 100% rename from anchor-a2ml/.gitattributes rename to 1-formats/a2ml/anchor/.gitattributes diff --git a/anchor-a2ml/.gitignore b/1-formats/a2ml/anchor/.gitignore similarity index 100% rename from anchor-a2ml/.gitignore rename to 1-formats/a2ml/anchor/.gitignore diff --git a/anchor-a2ml/.gitlab-ci.yml b/1-formats/a2ml/anchor/.gitlab-ci.yml similarity index 100% rename from anchor-a2ml/.gitlab-ci.yml rename to 1-formats/a2ml/anchor/.gitlab-ci.yml diff --git a/anchor-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/anchor/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from anchor-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/anchor/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/anchor-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/anchor/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from anchor-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/anchor/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/anchor-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/anchor/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from anchor-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/anchor/.machine_readable/descriptiles/META.a2ml diff --git a/anchor-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/anchor/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from anchor-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/anchor/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/anchor-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/anchor/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from anchor-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/anchor/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/anchor-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/anchor/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from anchor-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/anchor/.machine_readable/descriptiles/STATE.a2ml diff --git a/anchor-a2ml/.nojekyll b/1-formats/a2ml/anchor/.nojekyll similarity index 100% rename from anchor-a2ml/.nojekyll rename to 1-formats/a2ml/anchor/.nojekyll diff --git a/anchor-a2ml/README.adoc b/1-formats/a2ml/anchor/README.adoc similarity index 100% rename from anchor-a2ml/README.adoc rename to 1-formats/a2ml/anchor/README.adoc diff --git a/anchor-a2ml/ROADMAP.adoc b/1-formats/a2ml/anchor/ROADMAP.adoc similarity index 100% rename from anchor-a2ml/ROADMAP.adoc rename to 1-formats/a2ml/anchor/ROADMAP.adoc diff --git a/anchor-a2ml/abnf/anchor.abnf b/1-formats/a2ml/anchor/abnf/anchor.abnf similarity index 100% rename from anchor-a2ml/abnf/anchor.abnf rename to 1-formats/a2ml/anchor/abnf/anchor.abnf diff --git a/anchor-a2ml/contractiles/README.adoc b/1-formats/a2ml/anchor/contractiles/README.adoc similarity index 100% rename from anchor-a2ml/contractiles/README.adoc rename to 1-formats/a2ml/anchor/contractiles/README.adoc diff --git a/anchor-a2ml/contractiles/dust/Dustfile b/1-formats/a2ml/anchor/contractiles/dust/Dustfile similarity index 100% rename from anchor-a2ml/contractiles/dust/Dustfile rename to 1-formats/a2ml/anchor/contractiles/dust/Dustfile diff --git a/anchor-a2ml/contractiles/must/Mustfile b/1-formats/a2ml/anchor/contractiles/must/Mustfile similarity index 100% rename from anchor-a2ml/contractiles/must/Mustfile rename to 1-formats/a2ml/anchor/contractiles/must/Mustfile diff --git a/anchor-a2ml/docs/CITATIONS.adoc b/1-formats/a2ml/anchor/docs/CITATIONS.adoc similarity index 100% rename from anchor-a2ml/docs/CITATIONS.adoc rename to 1-formats/a2ml/anchor/docs/CITATIONS.adoc diff --git a/anchor-a2ml/examples/comprehensive.scm b/1-formats/a2ml/anchor/examples/comprehensive.scm similarity index 100% rename from anchor-a2ml/examples/comprehensive.scm rename to 1-formats/a2ml/anchor/examples/comprehensive.scm diff --git a/anchor-a2ml/examples/minimal.scm b/1-formats/a2ml/anchor/examples/minimal.scm similarity index 100% rename from anchor-a2ml/examples/minimal.scm rename to 1-formats/a2ml/anchor/examples/minimal.scm diff --git a/anchor-a2ml/examples/web-project-deno.json b/1-formats/a2ml/anchor/examples/web-project-deno.json similarity index 100% rename from anchor-a2ml/examples/web-project-deno.json rename to 1-formats/a2ml/anchor/examples/web-project-deno.json diff --git a/anchor-a2ml/ffi/zig/build.zig b/1-formats/a2ml/anchor/ffi/zig/build.zig similarity index 100% rename from anchor-a2ml/ffi/zig/build.zig rename to 1-formats/a2ml/anchor/ffi/zig/build.zig diff --git a/anchor-a2ml/ffi/zig/src/main.zig b/1-formats/a2ml/anchor/ffi/zig/src/main.zig similarity index 100% rename from anchor-a2ml/ffi/zig/src/main.zig rename to 1-formats/a2ml/anchor/ffi/zig/src/main.zig diff --git a/anchor-a2ml/ffi/zig/test/integration_test.zig b/1-formats/a2ml/anchor/ffi/zig/test/integration_test.zig similarity index 100% rename from anchor-a2ml/ffi/zig/test/integration_test.zig rename to 1-formats/a2ml/anchor/ffi/zig/test/integration_test.zig diff --git a/anchor-a2ml/spec/ANCHOR-FORMAT-SPEC.adoc b/1-formats/a2ml/anchor/spec/ANCHOR-FORMAT-SPEC.adoc similarity index 100% rename from anchor-a2ml/spec/ANCHOR-FORMAT-SPEC.adoc rename to 1-formats/a2ml/anchor/spec/ANCHOR-FORMAT-SPEC.adoc diff --git a/ecosystem-a2ml/.editorconfig b/1-formats/a2ml/ecosystem/.editorconfig similarity index 100% rename from ecosystem-a2ml/.editorconfig rename to 1-formats/a2ml/ecosystem/.editorconfig diff --git a/ecosystem-a2ml/.gitattributes b/1-formats/a2ml/ecosystem/.gitattributes similarity index 100% rename from ecosystem-a2ml/.gitattributes rename to 1-formats/a2ml/ecosystem/.gitattributes diff --git a/ecosystem-a2ml/.gitignore b/1-formats/a2ml/ecosystem/.gitignore similarity index 100% rename from ecosystem-a2ml/.gitignore rename to 1-formats/a2ml/ecosystem/.gitignore diff --git a/ecosystem-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/ecosystem/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from ecosystem-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/ecosystem/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/ecosystem-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/ecosystem/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from ecosystem-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/ecosystem/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/ecosystem-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/ecosystem/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from ecosystem-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/ecosystem/.machine_readable/descriptiles/META.a2ml diff --git a/ecosystem-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/ecosystem/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from ecosystem-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/ecosystem/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/ecosystem-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/ecosystem/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from ecosystem-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/ecosystem/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/ecosystem-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/ecosystem/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from ecosystem-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/ecosystem/.machine_readable/descriptiles/STATE.a2ml diff --git a/ecosystem-a2ml/README.adoc b/1-formats/a2ml/ecosystem/README.adoc similarity index 99% rename from ecosystem-a2ml/README.adoc rename to 1-formats/a2ml/ecosystem/README.adoc index 9553103f5..62cfa93a4 100644 --- a/ecosystem-a2ml/README.adoc +++ b/1-formats/a2ml/ecosystem/README.adoc @@ -359,7 +359,7 @@ See link:STANDARDS-ROADMAP.adoc[STANDARDS-ROADMAP.adoc] for the complete standar [source] ---- -ecosystem-a2ml/ +1-formats/a2ml/ecosystem/ +-- ECOSYSTEM.a2ml # Canonical specification (self-describing) +-- README.adoc # This file +-- STANDARDS-ROADMAP.adoc # Unified family standardisation plan diff --git a/ecosystem-a2ml/STANDARDS-ROADMAP.adoc b/1-formats/a2ml/ecosystem/STANDARDS-ROADMAP.adoc similarity index 100% rename from ecosystem-a2ml/STANDARDS-ROADMAP.adoc rename to 1-formats/a2ml/ecosystem/STANDARDS-ROADMAP.adoc diff --git a/ecosystem-a2ml/contractiles/README.adoc b/1-formats/a2ml/ecosystem/contractiles/README.adoc similarity index 100% rename from ecosystem-a2ml/contractiles/README.adoc rename to 1-formats/a2ml/ecosystem/contractiles/README.adoc diff --git a/ecosystem-a2ml/contractiles/dust/Dustfile b/1-formats/a2ml/ecosystem/contractiles/dust/Dustfile similarity index 100% rename from ecosystem-a2ml/contractiles/dust/Dustfile rename to 1-formats/a2ml/ecosystem/contractiles/dust/Dustfile diff --git a/ecosystem-a2ml/contractiles/must/Mustfile b/1-formats/a2ml/ecosystem/contractiles/must/Mustfile similarity index 100% rename from ecosystem-a2ml/contractiles/must/Mustfile rename to 1-formats/a2ml/ecosystem/contractiles/must/Mustfile diff --git a/ecosystem-a2ml/docs/CITATIONS.adoc b/1-formats/a2ml/ecosystem/docs/CITATIONS.adoc similarity index 100% rename from ecosystem-a2ml/docs/CITATIONS.adoc rename to 1-formats/a2ml/ecosystem/docs/CITATIONS.adoc diff --git a/ecosystem-a2ml/examples/web-project-deno.json b/1-formats/a2ml/ecosystem/examples/web-project-deno.json similarity index 100% rename from ecosystem-a2ml/examples/web-project-deno.json rename to 1-formats/a2ml/ecosystem/examples/web-project-deno.json diff --git a/ecosystem-a2ml/spec/IANA-CONSIDERATIONS.adoc b/1-formats/a2ml/ecosystem/spec/IANA-CONSIDERATIONS.adoc similarity index 100% rename from ecosystem-a2ml/spec/IANA-CONSIDERATIONS.adoc rename to 1-formats/a2ml/ecosystem/spec/IANA-CONSIDERATIONS.adoc diff --git a/ecosystem-a2ml/spec/draft/draft-jewell-ecosystem-scm-00.txt b/1-formats/a2ml/ecosystem/spec/draft/draft-jewell-ecosystem-scm-00.txt similarity index 100% rename from ecosystem-a2ml/spec/draft/draft-jewell-ecosystem-scm-00.txt rename to 1-formats/a2ml/ecosystem/spec/draft/draft-jewell-ecosystem-scm-00.txt diff --git a/ecosystem-a2ml/spec/ecosystem.abnf b/1-formats/a2ml/ecosystem/spec/ecosystem.abnf similarity index 100% rename from ecosystem-a2ml/spec/ecosystem.abnf rename to 1-formats/a2ml/ecosystem/spec/ecosystem.abnf diff --git a/ecosystem-a2ml/spec/ecosystem.schema.json b/1-formats/a2ml/ecosystem/spec/ecosystem.schema.json similarity index 100% rename from ecosystem-a2ml/spec/ecosystem.schema.json rename to 1-formats/a2ml/ecosystem/spec/ecosystem.schema.json diff --git a/ecosystem-a2ml/spec/family/SCM-FAMILY.adoc b/1-formats/a2ml/ecosystem/spec/family/SCM-FAMILY.adoc similarity index 100% rename from ecosystem-a2ml/spec/family/SCM-FAMILY.adoc rename to 1-formats/a2ml/ecosystem/spec/family/SCM-FAMILY.adoc diff --git a/ecosystem-a2ml/spec/family/scm-core.abnf b/1-formats/a2ml/ecosystem/spec/family/scm-core.abnf similarity index 100% rename from ecosystem-a2ml/spec/family/scm-core.abnf rename to 1-formats/a2ml/ecosystem/spec/family/scm-core.abnf diff --git a/ecosystem-a2ml/spec/family/scm-family.schema.json b/1-formats/a2ml/ecosystem/spec/family/scm-family.schema.json similarity index 100% rename from ecosystem-a2ml/spec/family/scm-family.schema.json rename to 1-formats/a2ml/ecosystem/spec/family/scm-family.schema.json diff --git a/meta-a2ml/.claude/CLAUDE.md b/1-formats/a2ml/meta/.claude/CLAUDE.md similarity index 100% rename from meta-a2ml/.claude/CLAUDE.md rename to 1-formats/a2ml/meta/.claude/CLAUDE.md diff --git a/k9-svc/.editorconfig b/1-formats/a2ml/meta/.editorconfig similarity index 100% rename from k9-svc/.editorconfig rename to 1-formats/a2ml/meta/.editorconfig diff --git a/k9-svc/.gitattributes b/1-formats/a2ml/meta/.gitattributes similarity index 100% rename from k9-svc/.gitattributes rename to 1-formats/a2ml/meta/.gitattributes diff --git a/meta-a2ml/.github/FUNDING.yml b/1-formats/a2ml/meta/.github/FUNDING.yml similarity index 100% rename from meta-a2ml/.github/FUNDING.yml rename to 1-formats/a2ml/meta/.github/FUNDING.yml diff --git a/meta-a2ml/.github/ISSUE_TEMPLATE/bug_report.md b/1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from meta-a2ml/.github/ISSUE_TEMPLATE/bug_report.md rename to 1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/meta-a2ml/.github/ISSUE_TEMPLATE/documentation.md b/1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/documentation.md similarity index 100% rename from meta-a2ml/.github/ISSUE_TEMPLATE/documentation.md rename to 1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/documentation.md diff --git a/meta-a2ml/.github/ISSUE_TEMPLATE/feature_request.md b/1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from meta-a2ml/.github/ISSUE_TEMPLATE/feature_request.md rename to 1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/feature_request.md diff --git a/meta-a2ml/.github/ISSUE_TEMPLATE/question.md b/1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/question.md similarity index 100% rename from meta-a2ml/.github/ISSUE_TEMPLATE/question.md rename to 1-formats/a2ml/meta/.github/ISSUE_TEMPLATE/question.md diff --git a/meta-a2ml/.github/dependabot.yml b/1-formats/a2ml/meta/.github/dependabot.yml similarity index 100% rename from meta-a2ml/.github/dependabot.yml rename to 1-formats/a2ml/meta/.github/dependabot.yml diff --git a/meta-a2ml/.github/workflows/casket-pages.yml b/1-formats/a2ml/meta/.github/workflows/casket-pages.yml similarity index 100% rename from meta-a2ml/.github/workflows/casket-pages.yml rename to 1-formats/a2ml/meta/.github/workflows/casket-pages.yml diff --git a/meta-a2ml/.github/workflows/codeql.yml b/1-formats/a2ml/meta/.github/workflows/codeql.yml similarity index 100% rename from meta-a2ml/.github/workflows/codeql.yml rename to 1-formats/a2ml/meta/.github/workflows/codeql.yml diff --git a/meta-a2ml/.github/workflows/governance.yml b/1-formats/a2ml/meta/.github/workflows/governance.yml similarity index 100% rename from meta-a2ml/.github/workflows/governance.yml rename to 1-formats/a2ml/meta/.github/workflows/governance.yml diff --git a/meta-a2ml/.github/workflows/hypatia-scan.yml b/1-formats/a2ml/meta/.github/workflows/hypatia-scan.yml similarity index 100% rename from meta-a2ml/.github/workflows/hypatia-scan.yml rename to 1-formats/a2ml/meta/.github/workflows/hypatia-scan.yml diff --git a/meta-a2ml/.github/workflows/mirror.yml b/1-formats/a2ml/meta/.github/workflows/mirror.yml similarity index 100% rename from meta-a2ml/.github/workflows/mirror.yml rename to 1-formats/a2ml/meta/.github/workflows/mirror.yml diff --git a/meta-a2ml/.github/workflows/scorecard-enforcer.yml b/1-formats/a2ml/meta/.github/workflows/scorecard-enforcer.yml similarity index 100% rename from meta-a2ml/.github/workflows/scorecard-enforcer.yml rename to 1-formats/a2ml/meta/.github/workflows/scorecard-enforcer.yml diff --git a/meta-a2ml/.github/workflows/scorecard.yml b/1-formats/a2ml/meta/.github/workflows/scorecard.yml similarity index 100% rename from meta-a2ml/.github/workflows/scorecard.yml rename to 1-formats/a2ml/meta/.github/workflows/scorecard.yml diff --git a/meta-a2ml/.github/workflows/secret-scanner.yml b/1-formats/a2ml/meta/.github/workflows/secret-scanner.yml similarity index 100% rename from meta-a2ml/.github/workflows/secret-scanner.yml rename to 1-formats/a2ml/meta/.github/workflows/secret-scanner.yml diff --git a/meta-a2ml/.gitignore b/1-formats/a2ml/meta/.gitignore similarity index 100% rename from meta-a2ml/.gitignore rename to 1-formats/a2ml/meta/.gitignore diff --git a/meta-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/meta/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from meta-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/meta/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/meta-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/meta/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from meta-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/meta/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/meta-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/meta/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from meta-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/meta/.machine_readable/descriptiles/META.a2ml diff --git a/meta-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/meta/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from meta-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/meta/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/meta-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/meta/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from meta-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/meta/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/meta-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/meta/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from meta-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/meta/.machine_readable/descriptiles/STATE.a2ml diff --git a/meta-a2ml/README.adoc b/1-formats/a2ml/meta/README.adoc similarity index 100% rename from meta-a2ml/README.adoc rename to 1-formats/a2ml/meta/README.adoc diff --git a/meta-a2ml/examples/comprehensive.a2ml b/1-formats/a2ml/meta/examples/comprehensive.a2ml similarity index 100% rename from meta-a2ml/examples/comprehensive.a2ml rename to 1-formats/a2ml/meta/examples/comprehensive.a2ml diff --git a/meta-a2ml/examples/minimal.a2ml b/1-formats/a2ml/meta/examples/minimal.a2ml similarity index 100% rename from meta-a2ml/examples/minimal.a2ml rename to 1-formats/a2ml/meta/examples/minimal.a2ml diff --git a/meta-a2ml/spec/IANA-MEDIA-TYPE.adoc b/1-formats/a2ml/meta/spec/IANA-MEDIA-TYPE.adoc similarity index 100% rename from meta-a2ml/spec/IANA-MEDIA-TYPE.adoc rename to 1-formats/a2ml/meta/spec/IANA-MEDIA-TYPE.adoc diff --git a/meta-a2ml/spec/META-FORMAT-SPEC.adoc b/1-formats/a2ml/meta/spec/META-FORMAT-SPEC.adoc similarity index 100% rename from meta-a2ml/spec/META-FORMAT-SPEC.adoc rename to 1-formats/a2ml/meta/spec/META-FORMAT-SPEC.adoc diff --git a/meta-a2ml/spec/README.adoc b/1-formats/a2ml/meta/spec/README.adoc similarity index 100% rename from meta-a2ml/spec/README.adoc rename to 1-formats/a2ml/meta/spec/README.adoc diff --git a/meta-a2ml/spec/SCM-FORMAT-FAMILY.adoc b/1-formats/a2ml/meta/spec/SCM-FORMAT-FAMILY.adoc similarity index 100% rename from meta-a2ml/spec/SCM-FORMAT-FAMILY.adoc rename to 1-formats/a2ml/meta/spec/SCM-FORMAT-FAMILY.adoc diff --git a/meta-a2ml/spec/STANDARDS-TRACK.adoc b/1-formats/a2ml/meta/spec/STANDARDS-TRACK.adoc similarity index 100% rename from meta-a2ml/spec/STANDARDS-TRACK.adoc rename to 1-formats/a2ml/meta/spec/STANDARDS-TRACK.adoc diff --git a/meta-a2ml/spec/UNIFIED-STANDARDS-STRATEGY.adoc b/1-formats/a2ml/meta/spec/UNIFIED-STANDARDS-STRATEGY.adoc similarity index 100% rename from meta-a2ml/spec/UNIFIED-STANDARDS-STRATEGY.adoc rename to 1-formats/a2ml/meta/spec/UNIFIED-STANDARDS-STRATEGY.adoc diff --git a/meta-a2ml/spec/VERSION-POLICY.adoc b/1-formats/a2ml/meta/spec/VERSION-POLICY.adoc similarity index 100% rename from meta-a2ml/spec/VERSION-POLICY.adoc rename to 1-formats/a2ml/meta/spec/VERSION-POLICY.adoc diff --git a/meta-a2ml/spec/abnf/meta.abnf b/1-formats/a2ml/meta/spec/abnf/meta.abnf similarity index 100% rename from meta-a2ml/spec/abnf/meta.abnf rename to 1-formats/a2ml/meta/spec/abnf/meta.abnf diff --git a/meta-a2ml/spec/schema/meta.schema.json b/1-formats/a2ml/meta/spec/schema/meta.schema.json similarity index 100% rename from meta-a2ml/spec/schema/meta.schema.json rename to 1-formats/a2ml/meta/spec/schema/meta.schema.json diff --git a/meta-a2ml/spec/shared/s-expression.abnf b/1-formats/a2ml/meta/spec/shared/s-expression.abnf similarity index 100% rename from meta-a2ml/spec/shared/s-expression.abnf rename to 1-formats/a2ml/meta/spec/shared/s-expression.abnf diff --git a/meta-a2ml/spec/shared/scm-common.schema.json b/1-formats/a2ml/meta/spec/shared/scm-common.schema.json similarity index 100% rename from meta-a2ml/spec/shared/scm-common.schema.json rename to 1-formats/a2ml/meta/spec/shared/scm-common.schema.json diff --git a/neurosym-a2ml/.ai-context.json b/1-formats/a2ml/neurosym/.ai-context.json similarity index 100% rename from neurosym-a2ml/.ai-context.json rename to 1-formats/a2ml/neurosym/.ai-context.json diff --git a/meta-a2ml/.editorconfig b/1-formats/a2ml/neurosym/.editorconfig similarity index 100% rename from meta-a2ml/.editorconfig rename to 1-formats/a2ml/neurosym/.editorconfig diff --git a/meta-a2ml/.gitattributes b/1-formats/a2ml/neurosym/.gitattributes similarity index 100% rename from meta-a2ml/.gitattributes rename to 1-formats/a2ml/neurosym/.gitattributes diff --git a/neurosym-a2ml/.gitignore b/1-formats/a2ml/neurosym/.gitignore similarity index 100% rename from neurosym-a2ml/.gitignore rename to 1-formats/a2ml/neurosym/.gitignore diff --git a/neurosym-a2ml/.gitlab-ci.yml b/1-formats/a2ml/neurosym/.gitlab-ci.yml similarity index 100% rename from neurosym-a2ml/.gitlab-ci.yml rename to 1-formats/a2ml/neurosym/.gitlab-ci.yml diff --git a/neurosym-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/neurosym/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from neurosym-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/neurosym/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/neurosym-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/neurosym/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from neurosym-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/neurosym/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/neurosym-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/neurosym/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from neurosym-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/neurosym/.machine_readable/descriptiles/META.a2ml diff --git a/neurosym-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/neurosym/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from neurosym-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/neurosym/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/neurosym-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/neurosym/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from neurosym-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/neurosym/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/neurosym-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/neurosym/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from neurosym-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/neurosym/.machine_readable/descriptiles/STATE.a2ml diff --git a/neurosym-a2ml/.nojekyll b/1-formats/a2ml/neurosym/.nojekyll similarity index 100% rename from neurosym-a2ml/.nojekyll rename to 1-formats/a2ml/neurosym/.nojekyll diff --git a/neurosym-a2ml/README.adoc b/1-formats/a2ml/neurosym/README.adoc similarity index 99% rename from neurosym-a2ml/README.adoc rename to 1-formats/a2ml/neurosym/README.adoc index 5abc2c6ea..3c4d64c4c 100644 --- a/neurosym-a2ml/README.adoc +++ b/1-formats/a2ml/neurosym/README.adoc @@ -141,7 +141,7 @@ The complete normative specification is in link:spec/NEUROSYM-FORMAT-SPEC.adoc[s [source] ---- -neurosym-a2ml/ +1-formats/a2ml/neurosym/ +-- spec/ | +-- NEUROSYM-FORMAT-SPEC.adoc # Normative specification +-- examples/ diff --git a/neurosym-a2ml/architecture.adoc b/1-formats/a2ml/neurosym/architecture.adoc similarity index 100% rename from neurosym-a2ml/architecture.adoc rename to 1-formats/a2ml/neurosym/architecture.adoc diff --git a/neurosym-a2ml/docs/CITATIONS.adoc b/1-formats/a2ml/neurosym/docs/CITATIONS.adoc similarity index 100% rename from neurosym-a2ml/docs/CITATIONS.adoc rename to 1-formats/a2ml/neurosym/docs/CITATIONS.adoc diff --git a/neurosym-a2ml/docs/ROADMAP.adoc b/1-formats/a2ml/neurosym/docs/ROADMAP.adoc similarity index 100% rename from neurosym-a2ml/docs/ROADMAP.adoc rename to 1-formats/a2ml/neurosym/docs/ROADMAP.adoc diff --git a/neurosym-a2ml/examples/comprehensive.a2ml b/1-formats/a2ml/neurosym/examples/comprehensive.a2ml similarity index 100% rename from neurosym-a2ml/examples/comprehensive.a2ml rename to 1-formats/a2ml/neurosym/examples/comprehensive.a2ml diff --git a/neurosym-a2ml/examples/minimal.a2ml b/1-formats/a2ml/neurosym/examples/minimal.a2ml similarity index 100% rename from neurosym-a2ml/examples/minimal.a2ml rename to 1-formats/a2ml/neurosym/examples/minimal.a2ml diff --git a/neurosym-a2ml/ncl/lib/os_detect.ncl b/1-formats/a2ml/neurosym/ncl/lib/os_detect.ncl similarity index 100% rename from neurosym-a2ml/ncl/lib/os_detect.ncl rename to 1-formats/a2ml/neurosym/ncl/lib/os_detect.ncl diff --git a/neurosym-a2ml/ncl/lib/schema.ncl b/1-formats/a2ml/neurosym/ncl/lib/schema.ncl similarity index 100% rename from neurosym-a2ml/ncl/lib/schema.ncl rename to 1-formats/a2ml/neurosym/ncl/lib/schema.ncl diff --git a/neurosym-a2ml/scripts/all-shells.sh b/1-formats/a2ml/neurosym/scripts/all-shells.sh similarity index 100% rename from neurosym-a2ml/scripts/all-shells.sh rename to 1-formats/a2ml/neurosym/scripts/all-shells.sh diff --git a/neurosym-a2ml/scripts/bootstrap.sh b/1-formats/a2ml/neurosym/scripts/bootstrap.sh similarity index 100% rename from neurosym-a2ml/scripts/bootstrap.sh rename to 1-formats/a2ml/neurosym/scripts/bootstrap.sh diff --git a/neurosym-a2ml/spec/NEUROSYM-FORMAT-SPEC.adoc b/1-formats/a2ml/neurosym/spec/NEUROSYM-FORMAT-SPEC.adoc similarity index 100% rename from neurosym-a2ml/spec/NEUROSYM-FORMAT-SPEC.adoc rename to 1-formats/a2ml/neurosym/spec/NEUROSYM-FORMAT-SPEC.adoc diff --git a/neurosym-a2ml/.editorconfig b/1-formats/a2ml/playbook/.editorconfig similarity index 100% rename from neurosym-a2ml/.editorconfig rename to 1-formats/a2ml/playbook/.editorconfig diff --git a/neurosym-a2ml/.gitattributes b/1-formats/a2ml/playbook/.gitattributes similarity index 100% rename from neurosym-a2ml/.gitattributes rename to 1-formats/a2ml/playbook/.gitattributes diff --git a/playbook-a2ml/.gitignore b/1-formats/a2ml/playbook/.gitignore similarity index 100% rename from playbook-a2ml/.gitignore rename to 1-formats/a2ml/playbook/.gitignore diff --git a/playbook-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/playbook/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from playbook-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/playbook/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/playbook-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/playbook/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from playbook-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/playbook/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/playbook-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/playbook/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from playbook-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/playbook/.machine_readable/descriptiles/META.a2ml diff --git a/playbook-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/playbook/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from playbook-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/playbook/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/playbook-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/playbook/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from playbook-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/playbook/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/playbook-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/playbook/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from playbook-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/playbook/.machine_readable/descriptiles/STATE.a2ml diff --git a/playbook-a2ml/.nojekyll b/1-formats/a2ml/playbook/.nojekyll similarity index 100% rename from playbook-a2ml/.nojekyll rename to 1-formats/a2ml/playbook/.nojekyll diff --git a/playbook-a2ml/README.adoc b/1-formats/a2ml/playbook/README.adoc similarity index 100% rename from playbook-a2ml/README.adoc rename to 1-formats/a2ml/playbook/README.adoc diff --git a/playbook-a2ml/examples/comprehensive.a2ml b/1-formats/a2ml/playbook/examples/comprehensive.a2ml similarity index 100% rename from playbook-a2ml/examples/comprehensive.a2ml rename to 1-formats/a2ml/playbook/examples/comprehensive.a2ml diff --git a/playbook-a2ml/examples/minimal.a2ml b/1-formats/a2ml/playbook/examples/minimal.a2ml similarity index 100% rename from playbook-a2ml/examples/minimal.a2ml rename to 1-formats/a2ml/playbook/examples/minimal.a2ml diff --git a/playbook-a2ml/spec/PLAYBOOK-FORMAT-SPEC.adoc b/1-formats/a2ml/playbook/spec/PLAYBOOK-FORMAT-SPEC.adoc similarity index 100% rename from playbook-a2ml/spec/PLAYBOOK-FORMAT-SPEC.adoc rename to 1-formats/a2ml/playbook/spec/PLAYBOOK-FORMAT-SPEC.adoc diff --git a/playbook-a2ml/spec/playbook-spec b/1-formats/a2ml/playbook/spec/playbook-spec similarity index 100% rename from playbook-a2ml/spec/playbook-spec rename to 1-formats/a2ml/playbook/spec/playbook-spec diff --git a/state-a2ml/.editorconfig b/1-formats/a2ml/state/.editorconfig similarity index 100% rename from state-a2ml/.editorconfig rename to 1-formats/a2ml/state/.editorconfig diff --git a/state-a2ml/.gitattributes b/1-formats/a2ml/state/.gitattributes similarity index 100% rename from state-a2ml/.gitattributes rename to 1-formats/a2ml/state/.gitattributes diff --git a/state-a2ml/.gitignore b/1-formats/a2ml/state/.gitignore similarity index 100% rename from state-a2ml/.gitignore rename to 1-formats/a2ml/state/.gitignore diff --git a/state-a2ml/.gitlab-ci.yml b/1-formats/a2ml/state/.gitlab-ci.yml similarity index 100% rename from state-a2ml/.gitlab-ci.yml rename to 1-formats/a2ml/state/.gitlab-ci.yml diff --git a/state-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/a2ml/state/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from state-a2ml/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/a2ml/state/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/state-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/a2ml/state/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from state-a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/a2ml/state/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/state-a2ml/.machine_readable/descriptiles/META.a2ml b/1-formats/a2ml/state/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from state-a2ml/.machine_readable/descriptiles/META.a2ml rename to 1-formats/a2ml/state/.machine_readable/descriptiles/META.a2ml diff --git a/state-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/a2ml/state/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from state-a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/a2ml/state/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/state-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/a2ml/state/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from state-a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/a2ml/state/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/state-a2ml/.machine_readable/descriptiles/STATE.a2ml b/1-formats/a2ml/state/.machine_readable/descriptiles/STATE.a2ml similarity index 100% rename from state-a2ml/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/a2ml/state/.machine_readable/descriptiles/STATE.a2ml diff --git a/state-a2ml/.nojekyll b/1-formats/a2ml/state/.nojekyll similarity index 100% rename from state-a2ml/.nojekyll rename to 1-formats/a2ml/state/.nojekyll diff --git a/state-a2ml/README.adoc b/1-formats/a2ml/state/README.adoc similarity index 100% rename from state-a2ml/README.adoc rename to 1-formats/a2ml/state/README.adoc diff --git a/state-a2ml/channels.scm b/1-formats/a2ml/state/channels.scm similarity index 100% rename from state-a2ml/channels.scm rename to 1-formats/a2ml/state/channels.scm diff --git a/state-a2ml/docs/CITATIONS.adoc b/1-formats/a2ml/state/docs/CITATIONS.adoc similarity index 100% rename from state-a2ml/docs/CITATIONS.adoc rename to 1-formats/a2ml/state/docs/CITATIONS.adoc diff --git a/state-a2ml/docs/COOKBOOK.adoc b/1-formats/a2ml/state/docs/COOKBOOK.adoc similarity index 100% rename from state-a2ml/docs/COOKBOOK.adoc rename to 1-formats/a2ml/state/docs/COOKBOOK.adoc diff --git a/state-a2ml/docs/USAGE.adoc b/1-formats/a2ml/state/docs/USAGE.adoc similarity index 100% rename from state-a2ml/docs/USAGE.adoc rename to 1-formats/a2ml/state/docs/USAGE.adoc diff --git a/state-a2ml/examples/example-state.scm b/1-formats/a2ml/state/examples/example-state.scm similarity index 100% rename from state-a2ml/examples/example-state.scm rename to 1-formats/a2ml/state/examples/example-state.scm diff --git a/state-a2ml/lib/state-core.scm b/1-formats/a2ml/state/lib/state-core.scm similarity index 100% rename from state-a2ml/lib/state-core.scm rename to 1-formats/a2ml/state/lib/state-core.scm diff --git a/state-a2ml/lib/state-graph.scm b/1-formats/a2ml/state/lib/state-graph.scm similarity index 100% rename from state-a2ml/lib/state-graph.scm rename to 1-formats/a2ml/state/lib/state-graph.scm diff --git a/state-a2ml/lib/state-history.scm b/1-formats/a2ml/state/lib/state-history.scm similarity index 100% rename from state-a2ml/lib/state-history.scm rename to 1-formats/a2ml/state/lib/state-history.scm diff --git a/state-a2ml/lib/state-kanren.scm b/1-formats/a2ml/state/lib/state-kanren.scm similarity index 100% rename from state-a2ml/lib/state-kanren.scm rename to 1-formats/a2ml/state/lib/state-kanren.scm diff --git a/state-a2ml/lib/state.scm b/1-formats/a2ml/state/lib/state.scm similarity index 100% rename from state-a2ml/lib/state.scm rename to 1-formats/a2ml/state/lib/state.scm diff --git a/state-a2ml/manifest.scm b/1-formats/a2ml/state/manifest.scm similarity index 100% rename from state-a2ml/manifest.scm rename to 1-formats/a2ml/state/manifest.scm diff --git a/state-a2ml/spec/IANA-MEDIA-TYPE.adoc b/1-formats/a2ml/state/spec/IANA-MEDIA-TYPE.adoc similarity index 98% rename from state-a2ml/spec/IANA-MEDIA-TYPE.adoc rename to 1-formats/a2ml/state/spec/IANA-MEDIA-TYPE.adoc index dd14e81b2..763ec39a3 100644 --- a/state-a2ml/spec/IANA-MEDIA-TYPE.adoc +++ b/1-formats/a2ml/state/spec/IANA-MEDIA-TYPE.adoc @@ -96,7 +96,7 @@ MUST be preserved where possible during round-trip serialization. The STATE Format Specification is available at: -* Repository: https://github.com/hyperpolymath/standards (state-a2ml/ subdirectory; previously at github.com/hyperpolymath/state.scm) +* Repository: https://github.com/hyperpolymath/standards (1-formats/a2ml/state/ subdirectory; previously at github.com/hyperpolymath/state.scm) * Specification: `spec/STATE-FORMAT-SPEC.adoc` * ABNF Grammar: `spec/abnf/state.abnf` * JSON Schema: `spec/schema/state.schema.json` diff --git a/state-a2ml/spec/README.adoc b/1-formats/a2ml/state/spec/README.adoc similarity index 100% rename from state-a2ml/spec/README.adoc rename to 1-formats/a2ml/state/spec/README.adoc diff --git a/state-a2ml/spec/STANDARDS-TRACK.adoc b/1-formats/a2ml/state/spec/STANDARDS-TRACK.adoc similarity index 99% rename from state-a2ml/spec/STANDARDS-TRACK.adoc rename to 1-formats/a2ml/state/spec/STANDARDS-TRACK.adoc index 8e3574620..eb60e475a 100644 --- a/state-a2ml/spec/STANDARDS-TRACK.adoc +++ b/1-formats/a2ml/state/spec/STANDARDS-TRACK.adoc @@ -548,7 +548,7 @@ Internet-Drafts must follow RFC 7991 (xml2rfc v3) or legacy format: == Contact Information -**Specification Repository**: https://github.com/hyperpolymath/standards (state-a2ml/ subdirectory) +**Specification Repository**: https://github.com/hyperpolymath/standards (1-formats/a2ml/state/ subdirectory) **Legacy Repository**: https://github.com/hyperpolymath/state.scm (archived; superseded by standards/state-a2ml) diff --git a/state-a2ml/spec/STATE-FORMAT-SPEC.adoc b/1-formats/a2ml/state/spec/STATE-FORMAT-SPEC.adoc similarity index 100% rename from state-a2ml/spec/STATE-FORMAT-SPEC.adoc rename to 1-formats/a2ml/state/spec/STATE-FORMAT-SPEC.adoc diff --git a/state-a2ml/spec/VERSION-POLICY.adoc b/1-formats/a2ml/state/spec/VERSION-POLICY.adoc similarity index 100% rename from state-a2ml/spec/VERSION-POLICY.adoc rename to 1-formats/a2ml/state/spec/VERSION-POLICY.adoc diff --git a/state-a2ml/spec/abnf/state.abnf b/1-formats/a2ml/state/spec/abnf/state.abnf similarity index 100% rename from state-a2ml/spec/abnf/state.abnf rename to 1-formats/a2ml/state/spec/abnf/state.abnf diff --git a/state-a2ml/spec/schema/state.schema.json b/1-formats/a2ml/state/spec/schema/state.schema.json similarity index 100% rename from state-a2ml/spec/schema/state.schema.json rename to 1-formats/a2ml/state/spec/schema/state.schema.json diff --git a/playbook-a2ml/.editorconfig b/1-formats/k9/.editorconfig similarity index 100% rename from playbook-a2ml/.editorconfig rename to 1-formats/k9/.editorconfig diff --git a/playbook-a2ml/.gitattributes b/1-formats/k9/.gitattributes similarity index 100% rename from playbook-a2ml/.gitattributes rename to 1-formats/k9/.gitattributes diff --git a/k9-svc/.gitignore b/1-formats/k9/.gitignore similarity index 100% rename from k9-svc/.gitignore rename to 1-formats/k9/.gitignore diff --git a/k9-svc/.machine_readable/descriptiles/AGENTIC.a2ml b/1-formats/k9/.machine_readable/descriptiles/AGENTIC.a2ml similarity index 100% rename from k9-svc/.machine_readable/descriptiles/AGENTIC.a2ml rename to 1-formats/k9/.machine_readable/descriptiles/AGENTIC.a2ml diff --git a/k9-svc/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/1-formats/k9/.machine_readable/descriptiles/ECOSYSTEM.a2ml similarity index 100% rename from k9-svc/.machine_readable/descriptiles/ECOSYSTEM.a2ml rename to 1-formats/k9/.machine_readable/descriptiles/ECOSYSTEM.a2ml diff --git a/k9-svc/.machine_readable/descriptiles/META.a2ml b/1-formats/k9/.machine_readable/descriptiles/META.a2ml similarity index 100% rename from k9-svc/.machine_readable/descriptiles/META.a2ml rename to 1-formats/k9/.machine_readable/descriptiles/META.a2ml diff --git a/k9-svc/.machine_readable/descriptiles/NEUROSYM.a2ml b/1-formats/k9/.machine_readable/descriptiles/NEUROSYM.a2ml similarity index 100% rename from k9-svc/.machine_readable/descriptiles/NEUROSYM.a2ml rename to 1-formats/k9/.machine_readable/descriptiles/NEUROSYM.a2ml diff --git a/k9-svc/.machine_readable/descriptiles/PLAYBOOK.a2ml b/1-formats/k9/.machine_readable/descriptiles/PLAYBOOK.a2ml similarity index 100% rename from k9-svc/.machine_readable/descriptiles/PLAYBOOK.a2ml rename to 1-formats/k9/.machine_readable/descriptiles/PLAYBOOK.a2ml diff --git a/k9-svc/.machine_readable/descriptiles/STATE.a2ml b/1-formats/k9/.machine_readable/descriptiles/STATE.a2ml similarity index 98% rename from k9-svc/.machine_readable/descriptiles/STATE.a2ml rename to 1-formats/k9/.machine_readable/descriptiles/STATE.a2ml index d4f5296b3..611b3f361 100644 --- a/k9-svc/.machine_readable/descriptiles/STATE.a2ml +++ b/1-formats/k9/.machine_readable/descriptiles/STATE.a2ml @@ -221,7 +221,7 @@ (snapshot "2026-02-28" (accomplishments "Created container-deploy.k9.ncl (Hunt-level, 3 environments, rolling deploy/rollback, cerro-torre verification)" - "Created NOT-a-good-fit.adoc (k9-svc/a2ml vs alternatives, 5 DEPRECATE + 10 KEEP, decision flowchart)" + "Created NOT-a-good-fit.adoc (1-formats/k9/a2ml vs alternatives, 5 DEPRECATE + 10 KEEP, decision flowchart)" "Added Container Deployment section to GUIDE.adoc (~165 lines, security level selection guide)" "Fixed Containerfile: Debian bookworm-slim -> Chainguard wolfi-base, apt-get -> apk" "Fixed AGPL-3.0-or-later -> PMPL-1.0-or-later in Containerfile and GUIDE.adoc"))))) diff --git a/k9-svc/CODE_OF_CONDUCT.adoc b/1-formats/k9/CODE_OF_CONDUCT.adoc similarity index 100% rename from k9-svc/CODE_OF_CONDUCT.adoc rename to 1-formats/k9/CODE_OF_CONDUCT.adoc diff --git a/k9-svc/CONTRIBUTING.adoc b/1-formats/k9/CONTRIBUTING.adoc similarity index 97% rename from k9-svc/CONTRIBUTING.adoc rename to 1-formats/k9/CONTRIBUTING.adoc index b9add4a3d..60f195625 100644 --- a/k9-svc/CONTRIBUTING.adoc +++ b/1-formats/k9/CONTRIBUTING.adoc @@ -22,7 +22,7 @@ suite ### Repository Structure .... -k9-svc/ ├── src/ # Source code (Perimeter 1-2) ├── lib/ # Library code +1-formats/k9/ ├── src/ # Source code (Perimeter 1-2) ├── lib/ # Library code (Perimeter 1-2) ├── extensions/ # Extensions (Perimeter 2) ├── plugins/ # Plugins (Perimeter 2) ├── tools/ # Tooling (Perimeter 2) ├── docs/ # Documentation (Perimeter 3) │ ├── architecture/ # ADRs, specs (Perimeter diff --git a/k9-svc/DOGFOODING-OPPORTUNITIES.adoc b/1-formats/k9/DOGFOODING-OPPORTUNITIES.adoc similarity index 99% rename from k9-svc/DOGFOODING-OPPORTUNITIES.adoc rename to 1-formats/k9/DOGFOODING-OPPORTUNITIES.adoc index 1986bd3b4..40a65eb53 100644 --- a/k9-svc/DOGFOODING-OPPORTUNITIES.adoc +++ b/1-formats/k9/DOGFOODING-OPPORTUNITIES.adoc @@ -428,7 +428,7 @@ https://github.com/hyperpolymath/robot-repo-bot *What Robot-Repo-Bot Does:* - Automated repository management - Workflow validation and fixes - Security updates - Already identified as -potential K9 consumer in k9-svc/ECOSYSTEM.scm! +potential K9 consumer in 1-formats/k9/ECOSYSTEM.scm! *Why K9 Is Perfect:* - Workflows need validation before applying - K9 contracts can encode workflow rules - Self-validating workflow changes - diff --git a/k9-svc/GUIDE.adoc b/1-formats/k9/GUIDE.adoc similarity index 100% rename from k9-svc/GUIDE.adoc rename to 1-formats/k9/GUIDE.adoc diff --git a/k9-svc/IANA-MEDIA-TYPE-APPLICATION.adoc b/1-formats/k9/IANA-MEDIA-TYPE-APPLICATION.adoc similarity index 100% rename from k9-svc/IANA-MEDIA-TYPE-APPLICATION.adoc rename to 1-formats/k9/IANA-MEDIA-TYPE-APPLICATION.adoc diff --git a/k9-svc/K9-ADOPTION-EXPANSION.adoc b/1-formats/k9/K9-ADOPTION-EXPANSION.adoc similarity index 99% rename from k9-svc/K9-ADOPTION-EXPANSION.adoc rename to 1-formats/k9/K9-ADOPTION-EXPANSION.adoc index 22b7cb396..3c66f7b33 100644 --- a/k9-svc/K9-ADOPTION-EXPANSION.adoc +++ b/1-formats/k9/K9-ADOPTION-EXPANSION.adoc @@ -240,7 +240,7 @@ schema === Key Innovations -==== 1. Ultimate Dogfooding (k9-svc/release-k9.k9.ncl) +==== 1. Ultimate Dogfooding (1-formats/k9/release-k9.k9.ncl) K9-SVC releases itself using a K9 component, creating a trust chain: diff --git a/k9-svc/LICENSE b/1-formats/k9/LICENSE similarity index 100% rename from k9-svc/LICENSE rename to 1-formats/k9/LICENSE diff --git a/k9-svc/README.adoc b/1-formats/k9/README.adoc similarity index 98% rename from k9-svc/README.adoc rename to 1-formats/k9/README.adoc index c66b50d46..599388754 100644 --- a/k9-svc/README.adoc +++ b/1-formats/k9/README.adoc @@ -50,7 +50,7 @@ cerro-torre image verification, and 3 environments (dev/staging/prod). |`NOT-a-good-fit.adoc` |N/A (documentation) -|Honest comparison of k9-svc/a2ml vs alternatives (Helm, Kustomize, Terraform, etc.). +|Honest comparison of 1-formats/k9/a2ml vs alternatives (Helm, Kustomize, Terraform, etc.). 5 DEPRECATE and 10 KEEP verdicts with decision flowchart. |=== @@ -198,7 +198,7 @@ K9 takes security seriously. Self-executing components require careful design an [source] ---- -k9-svc/ +1-formats/k9/ ├── must # Environment shim (POSIX shell) ├── Justfile # Orchestration recipes ├── pedigree.ncl # Core schema (The Brain) diff --git a/k9-svc/SECURITY-ANALYSIS.adoc b/1-formats/k9/SECURITY-ANALYSIS.adoc similarity index 99% rename from k9-svc/SECURITY-ANALYSIS.adoc rename to 1-formats/k9/SECURITY-ANALYSIS.adoc index 9ee44af5f..95575dedc 100644 --- a/k9-svc/SECURITY-ANALYSIS.adoc +++ b/1-formats/k9/SECURITY-ANALYSIS.adoc @@ -624,7 +624,7 @@ K9 is a self-validating configuration format for scenarios where traditional too === Immediate Actions (Week 1) -1. **Publish this security analysis** (k9-svc/SECURITY-ANALYSIS.adoc) +1. **Publish this security analysis** (1-formats/k9/SECURITY-ANALYSIS.adoc) 2. **Add security warnings** to README, GUIDE, SPEC 3. **Create k9-scan** static analysis tool (flag dangerous commands) 4. **Add --dry-run** mode to show commands before execution diff --git a/k9-svc/SECURITY-SOLUTIONS-VS-MITIGATIONS.adoc b/1-formats/k9/SECURITY-SOLUTIONS-VS-MITIGATIONS.adoc similarity index 100% rename from k9-svc/SECURITY-SOLUTIONS-VS-MITIGATIONS.adoc rename to 1-formats/k9/SECURITY-SOLUTIONS-VS-MITIGATIONS.adoc diff --git a/k9-svc/SECURITY.adoc b/1-formats/k9/SECURITY.adoc similarity index 100% rename from k9-svc/SECURITY.adoc rename to 1-formats/k9/SECURITY.adoc diff --git a/k9-svc/SPEC.adoc b/1-formats/k9/SPEC.adoc similarity index 100% rename from k9-svc/SPEC.adoc rename to 1-formats/k9/SPEC.adoc diff --git a/k9-svc/SPEC.adoc.invariants.adoc b/1-formats/k9/SPEC.adoc.invariants.adoc similarity index 100% rename from k9-svc/SPEC.adoc.invariants.adoc rename to 1-formats/k9/SPEC.adoc.invariants.adoc diff --git a/k9-svc/TESTING.adoc b/1-formats/k9/TESTING.adoc similarity index 100% rename from k9-svc/TESTING.adoc rename to 1-formats/k9/TESTING.adoc diff --git a/k9-svc/assets/k9-icon.svg b/1-formats/k9/assets/k9-icon.svg similarity index 100% rename from k9-svc/assets/k9-icon.svg rename to 1-formats/k9/assets/k9-icon.svg diff --git a/k9-svc/assets/leash-diagram.svg b/1-formats/k9/assets/leash-diagram.svg similarity index 100% rename from k9-svc/assets/leash-diagram.svg rename to 1-formats/k9/assets/leash-diagram.svg diff --git a/k9-svc/assets/signing-workflow.svg b/1-formats/k9/assets/signing-workflow.svg similarity index 100% rename from k9-svc/assets/signing-workflow.svg rename to 1-formats/k9/assets/signing-workflow.svg diff --git a/k9-svc/assets/triad-diagram.svg b/1-formats/k9/assets/triad-diagram.svg similarity index 100% rename from k9-svc/assets/triad-diagram.svg rename to 1-formats/k9/assets/triad-diagram.svg diff --git a/k9-svc/capabilities.ncl b/1-formats/k9/capabilities.ncl similarity index 100% rename from k9-svc/capabilities.ncl rename to 1-formats/k9/capabilities.ncl diff --git a/k9-svc/docs/DEPLOYMENT-NARRATIVE.adoc b/1-formats/k9/docs/DEPLOYMENT-NARRATIVE.adoc similarity index 100% rename from k9-svc/docs/DEPLOYMENT-NARRATIVE.adoc rename to 1-formats/k9/docs/DEPLOYMENT-NARRATIVE.adoc diff --git a/k9-svc/docs/IANA-MEDIA-TYPE.adoc b/1-formats/k9/docs/IANA-MEDIA-TYPE.adoc similarity index 100% rename from k9-svc/docs/IANA-MEDIA-TYPE.adoc rename to 1-formats/k9/docs/IANA-MEDIA-TYPE.adoc diff --git a/k9-svc/docs/OPTIMIZATION-GUIDE.adoc b/1-formats/k9/docs/OPTIMIZATION-GUIDE.adoc similarity index 100% rename from k9-svc/docs/OPTIMIZATION-GUIDE.adoc rename to 1-formats/k9/docs/OPTIMIZATION-GUIDE.adoc diff --git a/k9-svc/docs/PERFORMANCE.adoc b/1-formats/k9/docs/PERFORMANCE.adoc similarity index 99% rename from k9-svc/docs/PERFORMANCE.adoc rename to 1-formats/k9/docs/PERFORMANCE.adoc index f63dca58e..b5345f940 100644 --- a/k9-svc/docs/PERFORMANCE.adoc +++ b/1-formats/k9/docs/PERFORMANCE.adoc @@ -27,7 +27,7 @@ K9 prioritizes: [source,bash] ---- -cd k9-svc/benchmarks +cd 1-formats/k9/benchmarks chmod +x k9-bench.sh ./k9-bench.sh ---- diff --git a/k9-svc/docs/SECURITY-BEST-PRACTICES.adoc b/1-formats/k9/docs/SECURITY-BEST-PRACTICES.adoc similarity index 100% rename from k9-svc/docs/SECURITY-BEST-PRACTICES.adoc rename to 1-formats/k9/docs/SECURITY-BEST-PRACTICES.adoc diff --git a/k9-svc/docs/SECURITY-FAQ.adoc b/1-formats/k9/docs/SECURITY-FAQ.adoc similarity index 100% rename from k9-svc/docs/SECURITY-FAQ.adoc rename to 1-formats/k9/docs/SECURITY-FAQ.adoc diff --git a/k9-svc/docs/SECURITY-FOR-DECISION-MAKERS.adoc b/1-formats/k9/docs/SECURITY-FOR-DECISION-MAKERS.adoc similarity index 100% rename from k9-svc/docs/SECURITY-FOR-DECISION-MAKERS.adoc rename to 1-formats/k9/docs/SECURITY-FOR-DECISION-MAKERS.adoc diff --git a/k9-svc/docs/SECURITY-ROADMAP.adoc b/1-formats/k9/docs/SECURITY-ROADMAP.adoc similarity index 100% rename from k9-svc/docs/SECURITY-ROADMAP.adoc rename to 1-formats/k9/docs/SECURITY-ROADMAP.adoc diff --git a/k9-svc/docs/iana/application-vnd.k9-registration.txt b/1-formats/k9/docs/iana/application-vnd.k9-registration.txt similarity index 100% rename from k9-svc/docs/iana/application-vnd.k9-registration.txt rename to 1-formats/k9/docs/iana/application-vnd.k9-registration.txt diff --git a/k9-svc/leash.ncl b/1-formats/k9/leash.ncl similarity index 100% rename from k9-svc/leash.ncl rename to 1-formats/k9/leash.ncl diff --git a/k9-svc/pedigree.ncl b/1-formats/k9/pedigree.ncl similarity index 100% rename from k9-svc/pedigree.ncl rename to 1-formats/k9/pedigree.ncl diff --git a/k9-svc/register.ncl b/1-formats/k9/register.ncl similarity index 100% rename from k9-svc/register.ncl rename to 1-formats/k9/register.ncl diff --git a/k9-svc/scripts/check-6scm.sh b/1-formats/k9/scripts/check-6scm.sh similarity index 100% rename from k9-svc/scripts/check-6scm.sh rename to 1-formats/k9/scripts/check-6scm.sh diff --git a/1-formats/sub-specs/did-you-actually-do-that/README.adoc b/1-formats/sub-specs/did-you-actually-do-that/README.adoc index 6d2cdf573..b5085a7ae 100644 --- a/1-formats/sub-specs/did-you-actually-do-that/README.adoc +++ b/1-formats/sub-specs/did-you-actually-do-that/README.adoc @@ -39,7 +39,7 @@ green*. | 2. Pre-action gating | Entropy budgets, intent classification, confirmation for risky ops — *before* an op runs. -| `agentic-a2ml/` (`AGENTIC.a2ml`) +| `1-formats/a2ml/agentic/` (`AGENTIC.a2ml`) | 3. In-session invariant gates | Contractile MUST/TRUST/BUST/DUST/ADJUST/INTEND — block at session-close / pre-push / pre-merge. diff --git a/QUICKSTART-DEV.adoc b/QUICKSTART-DEV.adoc index 36ba3c726..b543d96de 100644 --- a/QUICKSTART-DEV.adoc +++ b/QUICKSTART-DEV.adoc @@ -14,7 +14,7 @@ link:README.adoc[README.adoc] (human), link:0-AI-MANIFEST.a2ml[0-AI-MANIFEST.a2m The *product* is the specs (AsciiDoc + A2ML). The code is reference implementations and language bindings that prove them: -* *Rust/SPARK* — `a2ml/bindings/rust`, `k9-svc/bindings/rust` +* *Rust/SPARK* — `a2ml/bindings/rust`, `1-formats/k9/bindings/rust` * *Deno* — protocol reference impls (`axel-protocol`, `0-ai-gatekeeper-protocol/mcp-repo-guardian`) * *Zig* — FFI/reference targets * *AsciiDoc / A2ML* — the specs, templates, and machine-readable metadata @@ -61,7 +61,7 @@ standards/ ├── README.adoc # Human front door (routing table) ├── 0-AI-MANIFEST.a2ml # Machine front door (agent entry) ├── REGISTRY.adoc # Prose: the registry + drift automation -├── a2ml/ k9-svc/ *-a2ml/ # Foundation specs (Stream 1) +├── a2ml/ 1-formats/k9/ *-a2ml/ # Foundation specs (Stream 1) ├── *-protocol/ # Protocol specs ├── *-readiness-grades/ # ARG / FRG / CRG / TRG frameworks ├── hypatia-rules/ # Dogfooding rules incl. HYP-S006 (drift) diff --git a/README.adoc b/README.adoc index 6fa009280..baed67d8e 100644 --- a/README.adoc +++ b/README.adoc @@ -42,7 +42,7 @@ Every other "what is this repo" doc is now a thin pointer back to these two | link:.machine_readable/REGISTRY.a2ml[REGISTRY.a2ml] (machine) · link:REGISTRY.adoc[REGISTRY.adoc] (prose) | The **A2ML / K9 foundation** (Stream 1) — the 7-format family, K9, contractiles -| link:a2ml/[a2ml/], link:k9-svc/[k9-svc/], link:1-formats/contractiles/[1-formats/contractiles/] and the `*-a2ml/` spec dirs +| link:a2ml/[a2ml/], link:1-formats/k9/[1-formats/k9/], link:1-formats/contractiles/[1-formats/contractiles/] and the `*-a2ml/` spec dirs | The **language policy** (Stream 2) — allowed/banned languages, AffineScript stance | link:.claude/CLAUDE.md[.claude/CLAUDE.md] (canonical) + the <> table below @@ -105,32 +105,32 @@ RSR boilerplate (LICENSE, CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, MAINTAINERS) |=== |Subdirectory |Former Repository |Content -|`meta-a2ml/` -|link:meta-a2ml/[meta-a2ml] +|`1-formats/a2ml/meta/` +|link:1-formats/a2ml/meta/[meta-a2ml] |META.a2ml, STATE.a2ml, ECOSYSTEM.a2ml specs, IANA registration -|`playbook-a2ml/` -|link:playbook-a2ml/[playbook-a2ml] +|`1-formats/a2ml/playbook/` +|link:1-formats/a2ml/playbook/[playbook-a2ml] |PLAYBOOK.a2ml spec -|`agentic-a2ml/` -|link:agentic-a2ml/[agentic-a2ml] +|`1-formats/a2ml/agentic/` +|link:1-formats/a2ml/agentic/[agentic-a2ml] |AGENTIC.a2ml spec, contractiles, Nickel configs -|`neurosym-a2ml/` -|link:neurosym-a2ml/[neurosym-a2ml] +|`1-formats/a2ml/neurosym/` +|link:1-formats/a2ml/neurosym/[neurosym-a2ml] |NEUROSYM.a2ml spec, Nickel configs -|`anchor-a2ml/` -|link:anchor-a2ml/[anchor-a2ml] +|`1-formats/a2ml/anchor/` +|link:1-formats/a2ml/anchor/[anchor-a2ml] |ANCHOR.a2ml spec, contractiles -|`state-a2ml/` -|link:state-a2ml/[state-a2ml] +|`1-formats/a2ml/state/` +|link:1-formats/a2ml/state/[state-a2ml] |STATE.a2ml spec, library, IANA registration -|`ecosystem-a2ml/` -|link:ecosystem-a2ml/[ecosystem-a2ml] +|`1-formats/a2ml/ecosystem/` +|link:1-formats/a2ml/ecosystem/[ecosystem-a2ml] |ECOSYSTEM.a2ml spec, IANA considerations |`standards-update/` @@ -153,37 +153,37 @@ Every Hyperpolymath repository must include these machine-readable A2ML files in |`META.a2ml` |Primary |Architecture decisions (ADRs), development practices -|link:meta-a2ml/[meta-a2ml] +|link:1-formats/a2ml/meta/[meta-a2ml] |`STATE.a2ml` |Primary |Project state, phase, milestones, session history -|link:state-a2ml/[state-a2ml] +|link:1-formats/a2ml/state/[state-a2ml] |`ECOSYSTEM.a2ml` |Primary |Ecosystem positioning, related projects -|link:ecosystem-a2ml/[ecosystem-a2ml] +|link:1-formats/a2ml/ecosystem/[ecosystem-a2ml] |`PLAYBOOK.a2ml` |Execution |Executable plans, procedures, alerts -|link:playbook-a2ml/[playbook-a2ml] +|link:1-formats/a2ml/playbook/[playbook-a2ml] |`AGENTIC.a2ml` |Execution |AI agent operational gating, entropy budgets -|link:agentic-a2ml/[agentic-a2ml] +|link:1-formats/a2ml/agentic/[agentic-a2ml] |`NEUROSYM.a2ml` |Execution |Symbolic semantics, proof obligations -|link:neurosym-a2ml/[neurosym-a2ml] +|link:1-formats/a2ml/neurosym/[neurosym-a2ml] |`ANCHOR.a2ml` |Intervention |Project recalibration/realignment -|link:anchor-a2ml/[anchor-a2ml] +|link:1-formats/a2ml/anchor/[anchor-a2ml] |=== Templates available in `1-formats/templates/` directory. @@ -383,36 +383,36 @@ standards/ | +-- AGENTIC.a2ml.template | +-- NEUROSYM.a2ml.template | +-- PLAYBOOK.a2ml.template -+-- meta-a2ml/ # META.a2ml specification (absorbed satellite) ++-- 1-formats/a2ml/meta/ # META.a2ml specification (absorbed satellite) | +-- README.adoc | +-- spec/ | +-- examples/ -+-- playbook-a2ml/ # PLAYBOOK.a2ml specification ++-- 1-formats/a2ml/playbook/ # PLAYBOOK.a2ml specification | +-- README.adoc | +-- spec/ | +-- examples/ -+-- agentic-a2ml/ # AGENTIC.a2ml specification ++-- 1-formats/a2ml/agentic/ # AGENTIC.a2ml specification | +-- README.adoc | +-- spec/ | +-- examples/ | +-- 1-formats/contractiles/ | +-- ncl/ -+-- neurosym-a2ml/ # NEUROSYM.a2ml specification ++-- 1-formats/a2ml/neurosym/ # NEUROSYM.a2ml specification | +-- README.adoc | +-- spec/ | +-- examples/ | +-- ncl/ -+-- anchor-a2ml/ # ANCHOR.a2ml specification ++-- 1-formats/a2ml/anchor/ # ANCHOR.a2ml specification | +-- README.adoc | +-- spec/ | +-- examples/ | +-- 1-formats/contractiles/ -+-- state-a2ml/ # STATE.a2ml specification ++-- 1-formats/a2ml/state/ # STATE.a2ml specification | +-- README.adoc | +-- spec/ | +-- examples/ | +-- lib/ -+-- ecosystem-a2ml/ # ECOSYSTEM.a2ml specification ++-- 1-formats/a2ml/ecosystem/ # ECOSYSTEM.a2ml specification | +-- README.adoc | +-- spec/ | +-- docs/ @@ -455,13 +455,13 @@ standards/ **A2ML Format Family (local subdirectories):** -* link:meta-a2ml/[meta-a2ml] -- META.a2ml, STATE.a2ml, ECOSYSTEM.a2ml (primary tier) -* link:playbook-a2ml/[playbook-a2ml] -- PLAYBOOK.a2ml (execution tier) -* link:agentic-a2ml/[agentic-a2ml] -- AGENTIC.a2ml (execution tier) -* link:neurosym-a2ml/[neurosym-a2ml] -- NEUROSYM.a2ml (execution tier) -* link:anchor-a2ml/[anchor-a2ml] -- ANCHOR.a2ml (intervention tier) -* link:state-a2ml/[state-a2ml] -- STATE.a2ml (primary tier) -* link:ecosystem-a2ml/[ecosystem-a2ml] -- ECOSYSTEM.a2ml (primary tier) +* link:1-formats/a2ml/meta/[meta-a2ml] -- META.a2ml, STATE.a2ml, ECOSYSTEM.a2ml (primary tier) +* link:1-formats/a2ml/playbook/[playbook-a2ml] -- PLAYBOOK.a2ml (execution tier) +* link:1-formats/a2ml/agentic/[agentic-a2ml] -- AGENTIC.a2ml (execution tier) +* link:1-formats/a2ml/neurosym/[neurosym-a2ml] -- NEUROSYM.a2ml (execution tier) +* link:1-formats/a2ml/anchor/[anchor-a2ml] -- ANCHOR.a2ml (intervention tier) +* link:1-formats/a2ml/state/[state-a2ml] -- STATE.a2ml (primary tier) +* link:1-formats/a2ml/ecosystem/[ecosystem-a2ml] -- ECOSYSTEM.a2ml (primary tier) * link:standards-update/[standards-update] -- Standards update tooling **RSR/Rhodium:** diff --git a/SECURITY-ADVISORIES.adoc b/SECURITY-ADVISORIES.adoc index c57fddd44..fccbd2e4c 100644 --- a/SECURITY-ADVISORIES.adoc +++ b/SECURITY-ADVISORIES.adoc @@ -33,12 +33,12 @@ version: `rand` 0.9.3. Severity: low. |=== |Manifest |Path to `rand` |Exposure |Blocker -|`k9-svc/k9-sign/Cargo.toml` +|`1-formats/k9/k9-sign/Cargo.toml` |Direct declaration (`rand = "0.8"`) + `ed25519-dalek` 2.2 for Ed25519 keygen. |Production. Uses `rand::rngs::OsRng` as the CSPRNG for signing-key generation — never invokes the global `rand::rng()` path that the advisory targets. |`ed25519-dalek` 2.x requires `rand_core` 0.6; only `ed25519-dalek` 3.0 (currently pre-release `3.0.0-pre.6`) uses `rand_core` 0.9. Stable-track upgrade blocked until `ed25519-dalek` 3.x stabilises upstream. -|`k9-svc/tools/src/k9-init/Cargo.lock` +|`1-formats/k9/tools/src/k9-init/Cargo.lock` |Transitive via `tera` 1.20 → `rand` 0.8.5; also `phf_generator` → `chrono-tz-build` (build-dep only). |Build-time / template-render only. `k9-init` does not install a custom global logger. |`tera` 1.x still pins `rand` 0.8. Fix requires upstream `tera` 2.x migration (or a replacement template engine). diff --git a/TEST-NEEDS.adoc b/TEST-NEEDS.adoc index ea0bba28c..f3344c7b4 100644 --- a/TEST-NEEDS.adoc +++ b/TEST-NEEDS.adoc @@ -188,9 +188,9 @@ small/medium/large_manifest throughput - Render medium throughput - Round-trip (parse+render) for small/medium/large - TrustLevel comparison micro-benchmark -==== k9-svc/bindings/rust — 45 tests (Rust) +==== 1-formats/k9/bindings/rust — 45 tests (Rust) -Run: `+cargo test+` from `+k9-svc/bindings/rust/+` +Run: `+cargo test+` from `+1-formats/k9/bindings/rust/+` All 45 tests pass (9 inline unit tests + 3 doc tests + 33 CRG C integration tests). @@ -211,7 +211,7 @@ in origin, 1MB no panic, null bytes no panic, unicode no panic (4 tests) message (2 tests) - [x] *E2E/Reflexive*: parse .k9 fixtures from k9-svc dir, round-trip constructed component (2 tests) -*Benchmarks*: `+cargo bench+` from `+k9-svc/bindings/rust/+` - Parse +*Benchmarks*: `+cargo bench+` from `+1-formats/k9/bindings/rust/+` - Parse small/medium/multi-component throughput - Render medium throughput - Round-trip (parse+render) for small/medium/multi - SecurityLevel::from_str micro-benchmark @@ -221,14 +221,14 @@ SecurityLevel::from_str micro-benchmark * [x] Added `+proptest+` + `+criterion+` dev-dependencies to `+a2ml/bindings/rust/Cargo.toml+` * [x] Added `+proptest+` + `+criterion+` dev-dependencies to -`+k9-svc/bindings/rust/Cargo.toml+` +`+1-formats/k9/bindings/rust/Cargo.toml+` * [x] Created `+a2ml/bindings/rust/tests/crg_c_tests.rs+` — 36 tests covering all CRG C categories * [x] Created `+a2ml/bindings/rust/benches/a2ml_bench.rs+` — Criterion benchmarks (6 bench functions) -* [x] Created `+k9-svc/bindings/rust/tests/crg_c_tests.rs+` — 33 tests +* [x] Created `+1-formats/k9/bindings/rust/tests/crg_c_tests.rs+` — 33 tests covering all CRG C categories -* [x] Created `+k9-svc/bindings/rust/benches/k9_bench.rs+` — Criterion +* [x] Created `+1-formats/k9/bindings/rust/benches/k9_bench.rs+` — Criterion benchmarks (6 bench functions) * [x] The four runnable suites (MCP guardian, offline guardian core, A2ML Rust, K9 Rust) pass through the fail-loud `+just test+` aggregate diff --git a/TOPOLOGY.adoc b/TOPOLOGY.adoc index 3cde9a896..fdae5e4c9 100644 --- a/TOPOLOGY.adoc +++ b/TOPOLOGY.adoc @@ -22,15 +22,15 @@ ____ [cols="34%,33%,33%",options="header"] |=== | Spec | Home | If you want… -| K9 Self-Validating Components | link:k9-svc/[`+k9-svc/+`] | the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) +| K9 Self-Validating Components | link:1-formats/k9/[`+1-formats/k9/+`] | the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) | Contractiles (Must/Trust/Dust/Intend) | link:1-formats/contractiles/[`+1-formats/contractiles/+`] | policy-enforcement primitives the K9 layer is built from -| META.a2ml spec | link:meta-a2ml/[`+meta-a2ml/+`] | architecture decisions / governance metadata format -| STATE.a2ml spec | link:state-a2ml/[`+state-a2ml/+`] | project-state metadata format (drives this registry's topology) -| ECOSYSTEM.a2ml spec | link:ecosystem-a2ml/[`+ecosystem-a2ml/+`] | ecosystem-positioning metadata format -| AGENTIC.a2ml spec | link:agentic-a2ml/[`+agentic-a2ml/+`] | AI-agent operational gating / entropy budgets -| NEUROSYM.a2ml spec | link:neurosym-a2ml/[`+neurosym-a2ml/+`] | symbolic semantics / proof obligations -| PLAYBOOK.a2ml spec | link:playbook-a2ml/[`+playbook-a2ml/+`] | executable operational runbooks -| ANCHOR.a2ml spec | link:anchor-a2ml/[`+anchor-a2ml/+`] | project-recalibration intervention format +| META.a2ml spec | link:1-formats/a2ml/meta/[`+1-formats/a2ml/meta/+`] | architecture decisions / governance metadata format +| STATE.a2ml spec | link:1-formats/a2ml/state/[`+1-formats/a2ml/state/+`] | project-state metadata format (drives this registry's topology) +| ECOSYSTEM.a2ml spec | link:1-formats/a2ml/ecosystem/[`+1-formats/a2ml/ecosystem/+`] | ecosystem-positioning metadata format +| AGENTIC.a2ml spec | link:1-formats/a2ml/agentic/[`+1-formats/a2ml/agentic/+`] | AI-agent operational gating / entropy budgets +| NEUROSYM.a2ml spec | link:1-formats/a2ml/neurosym/[`+1-formats/a2ml/neurosym/+`] | symbolic semantics / proof obligations +| PLAYBOOK.a2ml spec | link:1-formats/a2ml/playbook/[`+1-formats/a2ml/playbook/+`] | executable operational runbooks +| ANCHOR.a2ml spec | link:1-formats/a2ml/anchor/[`+1-formats/a2ml/anchor/+`] | project-recalibration intervention format | A2ML — Attested Markup Language | https://github.com/hyperpolymath/a2ml/blob/main/README.adoc[`+hyperpolymath/a2ml+`] `+@ v1.0.0+` ⇗ | the typed/verified machine-readable document format; evicted from standards 2026-08-28 per #490 |=== diff --git a/agentic-a2ml/POINTER.adoc b/agentic-a2ml/POINTER.adoc new file mode 100644 index 000000000..764696b05 --- /dev/null +++ b/agentic-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += agentic-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/agentic/[+1-formats/a2ml/agentic/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/agentic/" +pointer = true +district = "1-formats" +---- diff --git a/anchor-a2ml/POINTER.adoc b/anchor-a2ml/POINTER.adoc new file mode 100644 index 000000000..0044ad30e --- /dev/null +++ b/anchor-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += anchor-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/anchor/[+1-formats/a2ml/anchor/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/anchor/" +pointer = true +district = "1-formats" +---- diff --git a/audits/assail-classifications.a2ml b/audits/assail-classifications.a2ml index f7d1874d1..19f487e91 100644 --- a/audits/assail-classifications.a2ml +++ b/audits/assail-classifications.a2ml @@ -36,7 +36,7 @@ ;; external or user input reaches the eval — parallel to ;; gitbot-fleet's fix-script carve-out. (classification - (file "k9-svc/benchmarks/k9-bench.sh") + (file "1-formats/k9/benchmarks/k9-bench.sh") (category "CommandInjection") (classification "bench-harness-own-command-table") (audit "k9-bench.sh benchmark_command/benchmark_scaling — eval over the script's own command table") @@ -142,19 +142,19 @@ rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: - file: 'k9-svc/tools/src/k9-validate/src/main.rs' + file: '1-formats/k9/tools/src/k9-validate/src/main.rs' rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: - file: 'k9-svc/tools/src/k9-sign/src/main.rs' + file: '1-formats/k9/tools/src/k9-sign/src/main.rs' rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: - file: 'k9-svc/k9-sign/src/main.rs' + file: '1-formats/k9/k9-sign/src/main.rs' rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: - file: 'k9-svc/bindings/rust/src/parser.rs' + file: '1-formats/k9/bindings/rust/src/parser.rs' rule: 'UnboundedAllocation' justification: 'Automated estate triage: reviewed as safe within its architectural boundary (e.g. local tooling, bounded reads, expected metaprogramming).' - suppression: diff --git a/component-readiness-grades/COMPONENT-READINESS-GRADES.a2ml b/component-readiness-grades/COMPONENT-READINESS-GRADES.a2ml index 629308f81..3adc2bff1 100644 --- a/component-readiness-grades/COMPONENT-READINESS-GRADES.a2ml +++ b/component-readiness-grades/COMPONENT-READINESS-GRADES.a2ml @@ -139,7 +139,7 @@ (automation-hooks (k9-integration (description "K9 self-validating components can automate grade promotion workflows") - (example "See k9-svc/README.adoc for Kennel/Yard/Hunt safety levels matching grade requirements") + (example "See 1-formats/k9/README.adoc for Kennel/Yard/Hunt safety levels matching grade requirements") (use-case "Grade B promotion: K9 contract validates 6+ diverse targets meet diversity-metrics before allowing promotion"))) (editorial-signoff diff --git a/component-readiness-grades/SELF-ASSESSMENT.adoc b/component-readiness-grades/SELF-ASSESSMENT.adoc index 0e79c4005..e4afc6634 100644 --- a/component-readiness-grades/SELF-ASSESSMENT.adoc +++ b/component-readiness-grades/SELF-ASSESSMENT.adoc @@ -33,7 +33,7 @@ Assessed: 2026-04-04 |**C (Self-Validated)** |PASSED -|158+ tests across 6 suites (groove grv6 10, mcp-repo-guardian 36, axel-protocol 14, repo-guardian-fs 29, a2ml/rust 47, k9-svc/rust 45). All CRG C categories present: unit, smoke, P2P, contract, aspect, E2E, benchmarks. +|158+ tests across 6 suites (groove grv6 10, mcp-repo-guardian 36, axel-protocol 14, repo-guardian-fs 29, a2ml/rust 47, 1-formats/k9/rust 45). All CRG C categories present: unit, smoke, P2P, contract, aspect, E2E, benchmarks. |**B (Broadly Validated)** |PASSED diff --git a/coordination.k9 b/coordination.k9 index f2b4d0755..7f0f33b3f 100644 --- a/coordination.k9 +++ b/coordination.k9 @@ -92,7 +92,7 @@ protected: reason: "RSR specification — the repo quality framework" - path: a2ml/ reason: "A2ML format specification and reference implementation" - - path: k9-svc/ + - path: 1-formats/k9/ reason: "K9 self-validating component specification" - path: k9-coordination-protocol/ reason: "K9 coordination protocol (this format's own spec)" diff --git a/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.a2ml b/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.a2ml index d45eb98e2..91ab4d5f0 100644 --- a/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.a2ml +++ b/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.a2ml @@ -57,8 +57,8 @@ re_enroll_scope = "out_of_scope (consumer repos + gitbot-fleet are not standar [companion_findings_nextgen_databases.k9_pedigree] file = "verisimdb/connectors/test-infra/deploy.k9.ncl" error = "Pedigree block missing 'name'" -schema_ref = "k9-svc/pedigree.ncl Metadata.name (String, no default -> mandatory)" -sample_ref = "k9-svc/pandoc/container/deploy.k9.ncl" +schema_ref = "1-formats/k9/pedigree.ncl Metadata.name (String, no default -> mandatory)" +sample_ref = "1-formats/k9/pandoc/container/deploy.k9.ncl" fix = "add metadata.name; ideally metadata.version + validation.pedigree_version + trust_level/security_level ('Kennel|'Yard|'Hunt)" scope = "out_of_scope (nextgen-databases repo-internal, pre-existing)" diff --git a/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.adoc b/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.adoc index f86450fd3..f150581bc 100644 --- a/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.adoc +++ b/docs/audits/audit-hypatia-cache-sha-corruption-2026-06-21.adoc @@ -104,10 +104,10 @@ These surfaced on `nextgen-databases` alongside the central failure. They are **repo-internal**, pre-existing, and not addressed by #394: . *K9 pedigree validation.* `verisimdb/connectors/test-infra/deploy.k9.ncl` - fails "Pedigree block missing 'name'". In `k9-svc/pedigree.ncl`, + fails "Pedigree block missing 'name'". In `1-formats/k9/pedigree.ncl`, `Metadata.name | String` is the only metadata field with no `default`, so it is mandatory. Fix: add `metadata.name`; per the canonical - `k9-svc/pandoc/container/deploy.k9.ncl` sample, ideally also + `1-formats/k9/pandoc/container/deploy.k9.ncl` sample, ideally also `metadata.version` + `validation.pedigree_version` and a leash level — `trust_level`/`security_level` ∈ `'Kennel | 'Yard | 'Hunt` (a shell-running `deploy.k9.ncl` is `'Hunt`). diff --git a/docs/reorg/STREAM-PROMPTS.adoc b/docs/reorg/STREAM-PROMPTS.adoc index 471cd8304..02069c050 100644 --- a/docs/reorg/STREAM-PROMPTS.adoc +++ b/docs/reorg/STREAM-PROMPTS.adoc @@ -40,7 +40,7 @@ the verifiable registry that Streams 2 and 3 build on. [source,text] ---- -Work in the hyperpolymath/standards repo (a2ml/, k9-svc/, .machine_readable/). +Work in the hyperpolymath/standards repo (a2ml/, 1-formats/k9/, .machine_readable/). This is the foundational layer: the substrate between attestation (A2ML) and validation (K9) that the whole estate uses to stay stable, in sync, and attested. @@ -88,7 +88,7 @@ descriptiles (.machine_readable/): mechanism. Add a hypatia rule that flags a descriptiles file whose content drifts from its declared profile. -K9-SVC (k9-svc/): +K9-SVC (1-formats/k9/): 9. Capability model: closed core enum (fs.read, fs.write, net.fetch, process.spawn, container.run, secret.read, deploy.apply, rollback.apply) + reserved extension namespace; default-deny. diff --git a/docs/wikis/README.adoc b/docs/wikis/README.adoc index dff9e1e1d..c36664ff1 100644 --- a/docs/wikis/README.adoc +++ b/docs/wikis/README.adoc @@ -57,7 +57,7 @@ The wiki does not replace the canonical front doors — it *teaches* them: directory — keep it in step when tracks are added. * If/when a forge-hosted wiki (GitHub/GitLab) is adopted, this directory is the source of truth and is synced *out* to the forge, never hand-edited - there. (Mirrors the estate pattern in `k9-svc/*/docs/wikis/`.) + there. (Mirrors the estate pattern in `1-formats/k9/*/docs/wikis/`.) == TODO (scaffold → complete) diff --git a/docs/wikis/developers/index.adoc b/docs/wikis/developers/index.adoc index 46be38779..acff53772 100644 --- a/docs/wikis/developers/index.adoc +++ b/docs/wikis/developers/index.adoc @@ -27,7 +27,7 @@ NOTE: Scaffold. The link spine is complete; the connective prose is `TODO`. === 3. Author the machine-readable metadata * A2ML family: `a2ml/`, the `*-a2ml/` homes, `1-formats/templates/`. -* K9 self-validating components: `k9-svc/`, `k9-coordination-protocol/`. +* K9 self-validating components: `1-formats/k9/`, `k9-coordination-protocol/`. * TODO: "write a valid STATE/META set and pass Validate A2ML". === 4. The protocols diff --git a/ecosystem-a2ml/POINTER.adoc b/ecosystem-a2ml/POINTER.adoc new file mode 100644 index 000000000..0e2b02e8c --- /dev/null +++ b/ecosystem-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += ecosystem-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/ecosystem/[+1-formats/a2ml/ecosystem/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/ecosystem/" +pointer = true +district = "1-formats" +---- diff --git a/k9-svc/POINTER.adoc b/k9-svc/POINTER.adoc new file mode 100644 index 000000000..ebd1ddb08 --- /dev/null +++ b/k9-svc/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += k9-svc — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/k9/[+1-formats/k9/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/k9/" +pointer = true +district = "1-formats" +---- diff --git a/meta-a2ml/POINTER.adoc b/meta-a2ml/POINTER.adoc new file mode 100644 index 000000000..7e9c35aaa --- /dev/null +++ b/meta-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += meta-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/meta/[+1-formats/a2ml/meta/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/meta/" +pointer = true +district = "1-formats" +---- diff --git a/neurosym-a2ml/POINTER.adoc b/neurosym-a2ml/POINTER.adoc new file mode 100644 index 000000000..afd403bc3 --- /dev/null +++ b/neurosym-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += neurosym-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/neurosym/[+1-formats/a2ml/neurosym/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/neurosym/" +pointer = true +district = "1-formats" +---- diff --git a/playbook-a2ml/POINTER.adoc b/playbook-a2ml/POINTER.adoc new file mode 100644 index 000000000..bc9851188 --- /dev/null +++ b/playbook-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += playbook-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/playbook/[+1-formats/a2ml/playbook/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/playbook/" +pointer = true +district = "1-formats" +---- diff --git a/scripts/build-registry.sh b/scripts/build-registry.sh index 02865cd00..f9ed5e6f5 100755 --- a/scripts/build-registry.sh +++ b/scripts/build-registry.sh @@ -60,15 +60,15 @@ TOPOLOGY="TOPOLOGY.adoc" # --------------------------------------------------------------------------- read -r -d '' SPECS <<'TSV' || true 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) +k9-svc|foundation|1-formats/k9/|K9 Self-Validating Components|the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) contractiles|foundation|1-formats/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 -state-a2ml|foundation|state-a2ml/|STATE.a2ml spec|project-state metadata format (drives this registry's topology) -ecosystem-a2ml|foundation|ecosystem-a2ml/|ECOSYSTEM.a2ml spec|ecosystem-positioning metadata format -agentic-a2ml|foundation|agentic-a2ml/|AGENTIC.a2ml spec|AI-agent operational gating / entropy budgets -neurosym-a2ml|foundation|neurosym-a2ml/|NEUROSYM.a2ml spec|symbolic semantics / proof obligations -playbook-a2ml|foundation|playbook-a2ml/|PLAYBOOK.a2ml spec|executable operational runbooks -anchor-a2ml|foundation|anchor-a2ml/|ANCHOR.a2ml spec|project-recalibration intervention format +meta-a2ml|foundation|1-formats/a2ml/meta/|META.a2ml spec|architecture decisions / governance metadata format +state-a2ml|foundation|1-formats/a2ml/state/|STATE.a2ml spec|project-state metadata format (drives this registry's topology) +ecosystem-a2ml|foundation|1-formats/a2ml/ecosystem/|ECOSYSTEM.a2ml spec|ecosystem-positioning metadata format +agentic-a2ml|foundation|1-formats/a2ml/agentic/|AGENTIC.a2ml spec|AI-agent operational gating / entropy budgets +neurosym-a2ml|foundation|1-formats/a2ml/neurosym/|NEUROSYM.a2ml spec|symbolic semantics / proof obligations +playbook-a2ml|foundation|1-formats/a2ml/playbook/|PLAYBOOK.a2ml spec|executable operational runbooks +anchor-a2ml|foundation|1-formats/a2ml/anchor/|ANCHOR.a2ml spec|project-recalibration intervention format 0-ai-gatekeeper-protocol|protocol|0-ai-gatekeeper-protocol/|0-AI Gatekeeper Protocol|the AI-agent entry/gating protocol behind 0-AI-MANIFEST k9-coordination-protocol|protocol|k9-coordination-protocol/|K9 Coordination Protocol|multi-agent coordination on top of K9 avow-protocol|protocol|avow-protocol/|AVOW Protocol|consent-attested messaging / origin attribution diff --git a/standards-map.toml b/standards-map.toml index 10ecb0fb1..2a8477279 100644 --- a/standards-map.toml +++ b/standards-map.toml @@ -215,11 +215,11 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/k9//index.adoc" gate = "canon-self-conformance" -note = "implementations live in hyperpolymath/k9-ecosystem per this repo's own registry" +note = "implementations live in hyperpolymath/k9-ecosystem per this repo's own registry [1-formats district move: relocated to 1-formats/k9/; this path keeps a POINTER.adoc stub]" [[entry]] from = "meta-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/meta/ (pointer)" district = "1-formats" kind = "format-profile" files = 38 @@ -228,11 +228,11 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/meta/; this path keeps a POINTER.adoc stub]" [[entry]] from = "agentic-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/agentic/ (pointer)" district = "1-formats" kind = "format-profile" files = 37 @@ -241,11 +241,11 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/agentic/; this path keeps a POINTER.adoc stub]" [[entry]] from = "state-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/state/ (pointer)" district = "1-formats" kind = "format-profile" files = 30 @@ -254,7 +254,7 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/state/; this path keeps a POINTER.adoc stub]" [[entry]] from = "1-formats/sub-specs/did-you-actually-do-that/" @@ -271,7 +271,7 @@ note = "TRIAGE: <30 files each; none is a district" [[entry]] from = "anchor-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/anchor/ (pointer)" district = "1-formats" kind = "format-profile" files = 25 @@ -280,11 +280,11 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/anchor/; this path keeps a POINTER.adoc stub]" [[entry]] from = "ecosystem-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/ecosystem/ (pointer)" district = "1-formats" kind = "format-profile" files = 23 @@ -293,11 +293,11 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/ecosystem/; this path keeps a POINTER.adoc stub]" [[entry]] from = "neurosym-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/neurosym/ (pointer)" district = "1-formats" kind = "format-profile" files = 23 @@ -306,11 +306,11 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/neurosym/; this path keeps a POINTER.adoc stub]" [[entry]] from = "playbook-a2ml" -target = "1-formats/a2ml/ (pointer)" +target = "1-formats/a2ml/playbook/ (pointer)" district = "1-formats" kind = "format-profile" files = 15 @@ -319,7 +319,7 @@ canonical = false canon_slot = "" canonical_doc = "1-formats/a2ml//index.adoc" gate = "registry-verify" -note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it." +note = "a2ml/ evicted 2026-08-28 by 24a12d6f; these 7 profile dirs (191 files) stayed behind. Finish the eviction or revert it. [1-formats district move: relocated to 1-formats/a2ml/playbook/; this path keeps a POINTER.adoc stub]" [[entry]] from = "1-formats/templates/" diff --git a/state-a2ml/POINTER.adoc b/state-a2ml/POINTER.adoc new file mode 100644 index 000000000..f3791f1ab --- /dev/null +++ b/state-a2ml/POINTER.adoc @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) += state-a2ml — MOVED +:toc: macro +:relfileprefix: ../ + +This path is a *pointer*, not content. The standard it held was relocated by the +*1-formats* district move and now lives at link:../1-formats/a2ml/state/[+1-formats/a2ml/state/+]. + +It exists so that a reference to the old path keeps resolving. Nothing under this +path is normative. + +[source,toml] +---- +# machine-readable pointer — stable shape, safe to grep +moved-to = "1-formats/a2ml/state/" +pointer = true +district = "1-formats" +---- diff --git a/toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.a2ml b/toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.a2ml index 8efd24a0a..d5815eac0 100644 --- a/toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.a2ml +++ b/toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.a2ml @@ -349,7 +349,7 @@ (automation-hooks (k9-integration (description "K9 self-validating components can automate TRG compliance checking") - (example "See k9-svc/README.adoc for Kennel/Yard/Hunt safety levels matching grade requirements") + (example "See 1-formats/k9/README.adoc for Kennel/Yard/Hunt safety levels matching grade requirements") (use-case "Grade C promotion: K9 contract validates dogfood users meet diversity-metrics before allowing promotion") (use-case "Grade B promotion: K9 contract validates downstream targets meet diversity-metrics and validates 100+ distinct external users")))