docs: restore ADR-020 + ADR-021 + coordination ledger (lost in #344 squash)#350
Merged
Merged
Conversation
…quash) Owner ratified ADR-020 (ownership-section schema versioning) and ADR-021 (multi-producer ABI coordination model) on 2026-05-24 in the previous coordinator session. The supporting file artefacts were on `claude/happy-mendel-b4IeU` and committed there, but did not survive PR #344's squash-merge. All other doc artefacts from that session (TESTING.adoc, PANIC-ATTACK.adoc, TYPED-WASM-INTERFACE/ ROADMAP, STDLIB-EXTERN-AUDIT, bench/ scaffold, CLAUDE.md ops notes) landed cleanly; only these three files were dropped. This commit cherry-picks the original commits (977896c "ADRs as proposed" + 243f11b "accepted + coordination ledger live") onto main and squashes them, restoring the artefacts byte-identical to their pre-loss state. Restored: - .machine_readable/6a2/META.a2ml — ADR-020 + ADR-021 records (both with status="accepted", ratified="2026-05-24"; full context/decision/consequences/references blocks per house format). - docs/specs/TYPED-WASM-COORDINATION-LEDGER.adoc — the cross-repo queue mandated by ADR-021 axis 4 (conflict resolution). AffineScript's local copy of the serialised state; sister repos (hyperpolymath/typed-wasm, hyperpolymath/ephapax) hold mirrors; typed-wasm canonical on disagreement. Live entry Q-001 (ADR-020 v1→v2 schema versioning) in state `verifier-parse-shipping` — AffineScript-side parse-support has shipped (`claude/tw-verify-v2-parse`); awaiting sister-repo PRs for the coordinated producer-emit flip. - docs/specs/TYPED-WASM-COORDINATION-LEDGER.a2ml — machine-readable companion (state machine, rules, queue entries). - docs/TECH-DEBT.adoc — DOC-10..16 ledger entries restored. DOC-10..14 reference doc artefacts that survived in main (TESTING/PANIC-ATTACK/bench/INTERFACE/ROADMAP) and were absent from the ledger because the squash dropped the row updates alongside the file losses. DOC-15/16 are the ADR-020/021 + coordination-ledger entries proper. Pure recovery; no behavioural change. Cross-references from TYPED-WASM-INTERFACE.adoc and TYPED-WASM-ROADMAP.adoc to the ADRs and the coordination ledger now resolve again. Refs PR #344 (the squash-merge that lost these), ADR-020, ADR-021
4 tasks
🔍 Hypatia Security ScanFindings: 124 issues detected
View findings[
{
"reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
"type": "banned",
"file": "AI.a2ml",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Superseded by 0-AI-MANIFEST.a2ml",
"type": "banned",
"file": "AI.djot",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Issue in quality.yml",
"type": "missing_workflow",
"file": "quality.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in security-policy.yml",
"type": "missing_workflow",
"file": "security-policy.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Action actions/checkout@v6 needs attention",
"type": "unpinned_action",
"file": "publish-jsr.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action denoland/setup-deno@v2 needs attention",
"type": "unpinned_action",
"file": "publish-jsr.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
hyperpolymath
added a commit
that referenced
this pull request
May 24, 2026
#352) ## Summary Lands the **verifier-side (parse) half** of ADR-020 (ownership-section schema versioning), per ADR-021's coordinated landing protocol — *verifier ships parse-support FIRST*, then producers flip emit together. This PR is the AffineScript leg. **Depends on:** #350 (restores the ADR-020/021 + coordination ledger records this PR references). ## On-wire change (parse-only this PR; emit stays on v1) **v1** (legacy, unversioned, what we emit today): ``` u32le count entry* ``` **v2** (ADR-020, parse-only here): ``` u8 0xAF ; sentinel — "AffineScript Format" u8 version ; 0x02 u32le count entry* ; same entry shape as v1 ``` **Dispatch:** a v2 section starts with the `0xAF` sentinel byte. v1 readers fail cleanly on v2 sections (the sentinel pollutes the entry-count low byte and yields an implausible count); v2 readers see the sentinel and branch. Unknown `v2.X` versions yield `[]` (sound fallback per ADR-021's conservative-disposition axis — loud-correct rather than silent-wrong). ## What this PR does - `lib/tw_verify.ml` `parse_ownership_section_payload` — dispatches v1 vs v2 on the leading sentinel byte; v1 path preserved verbatim, v2 path adds two leading bytes + identical entry decoding. - `test/test_e2e.ml` — two new hermetic alcotest cases under "E2E TypedWasm ownership schema": - `v2 parse round-trip (ADR-020)` — hand-constructed v2 payload, asserts canonical entry. - `v2 unknown version -> [] (ADR-021)` — v2.99 (future version) yields `[]`. ## What this PR does NOT do (deliberately) - Does **not** flip the producer-side emitter — that stays on v1 until `hyperpolymath/typed-wasm`'s Rust verifier and `hyperpolymath/ephapax`'s verifier also ship parse-support. Coordinated landing per ADR-021 axis 2 ("verifier ships first"). - Once the sister repos land parse-support, the producer-emit flip is a separate atomic PR across all three repos. ## Coordination ledger state After this PR merges, **Q-001** in `docs/specs/TYPED-WASM-COORDINATION-LEDGER.adoc` is partially de-blocked on the AffineScript leg: - `local.verifier-work`: ✅ shipped (this PR) - `local.producer-work`: ⏳ still v1 emit (correct — verifier-first) - `typed-wasm.verifier-work`: ⏳ awaiting sister-repo PR - `ephapax.verifier-work`: ⏳ awaiting sister-repo PR ## Test plan - [ ] CI `build` job clean - [ ] CI `dune runtest` green (existing `ownership_schema_tests` v1 round-trips MUST still pass; two new v2 cases land as additions) - [ ] No new lints - [ ] Cross-references in commit message / verifier comment resolve once #350 merges Refs ADR-020 (parse-side), ADR-021 (coordinated landing). Depends on: #350 --- _Generated by [Claude Code](https://claude.ai/code/session_01WHUYQEPKgQU6jBgUj4snYU)_ Co-authored-by: Claude <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 121 issues detected
View findings[
{
"reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
"type": "banned",
"file": "AI.a2ml",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Superseded by 0-AI-MANIFEST.a2ml",
"type": "banned",
"file": "AI.djot",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Issue in quality.yml",
"type": "missing_workflow",
"file": "quality.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in security-policy.yml",
"type": "missing_workflow",
"file": "security-policy.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Action actions/checkout@v6 needs attention",
"type": "unpinned_action",
"file": "publish-jsr.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action denoland/setup-deno@v2 needs attention",
"type": "unpinned_action",
"file": "publish-jsr.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Recovers three doc artefacts that were dropped by PR #344's squash-merge despite being on
claude/happy-mendel-b4IeUwhen it merged:.machine_readable/6a2/META.a2ml— ADR-020 + ADR-021 records (bothstatus="accepted",ratified="2026-05-24").docs/specs/TYPED-WASM-COORDINATION-LEDGER.adoc+.a2ml— the cross-repo coordination queue mandated by ADR-021. Live entry Q-001 (ADR-020 v1→v2 schema versioning) in stateverifier-parse-shipping.docs/TECH-DEBT.adoc— DOC-10..16 ledger entries restored.Cherry-picked from the original local commits (
977896c+243f11b) and squashed; the restored files are byte-identical to their pre-loss state.Why this matters
claude/tw-verify-v2-parsePR (incoming) lands its code under.hyperpolymath/typed-wasm,hyperpolymath/ephapax) have no canonical text to mirror.TYPED-WASM-INTERFACE.adocandTYPED-WASM-ROADMAP.adocto these ADRs are currently dangling on main.Why zero risk
Pure documentation. No source code touched. CI surface unchanged.
Test plan
dune buildclean (no source files changed)dune runtest --forcebaseline holdsRefs PR #344 (the squash-merge that lost these), ADR-020, ADR-021.
Generated by Claude Code