3j: the carry and the combinations read back #42

Merged
lilleman merged 4 commits from carry-read-back into main 2026-09-03 08:10:21 +02:00
2 changed files with 6 additions and 3 deletions
Showing only changes of commit 32706adfeb - Show all commits
+3 -2
View File
@@ -135,8 +135,9 @@ literal-text fallback — a typo that reparses as prose is the silent loss §2 r
## The opaque carry (AGENTS.md §3) ## The opaque carry (AGENTS.md §3)
A node no section spells where it stands — an unknown type, or a known one whose spelling belongs A node no section spells where it stands — an unknown type, or a known one whose spelling belongs
to the other position — rides as its raw JSON and restores to a deep-equal node. Block and inline to the other position — rides as its raw JSON and restores to a deep-equal node. A carry may hold
positions canonicalize differently, each fitting where it sits: a node the emitter spells natively: it restores verbatim, and the next emit spells it canonically
(AGENTS.md §2). Block and inline positions canonicalize differently, each fitting where it sits:
- **Block position**: a fenced code block with info string `adf`, body = the node's JSON — - **Block position**: a fenced code block with info string `adf`, body = the node's JSON —
two-space indent, object keys sorted. two-space indent, object keys sorted.
+3 -1
View File
@@ -113,7 +113,9 @@ The numbering is the order the work was planned in, not the order it ships.
landed the last decision `corpus/unspellable/` held and the directory went with it, so what landed the last decision `corpus/unspellable/` held and the directory went with it, so what
the code list holds from here is permanent. The parser's own code the code list holds from here is permanent. The parser's own code
additions are read here as one list before that freeze — nine sessions mint them additions are read here as one list before that freeze — nine sessions mint them
independently, and one cause wearing two codes is breaking to undo after `0.1.0`. That read independently, and one cause wearing two codes is breaking to undo after `0.1.0` — one is
known already: a json attribute value past 500 levels reads `unsupported-node-shape` on
parse but `unsupported-nesting-depth` through the carry on emit. That read
gets a test rather than an eye — every `ConvertErrorCode` member named at a production call gets a test rather than an eye — every `ConvertErrorCode` member named at a production call
site, the way `spec.test.ts` guards the node tables — since `unspelled-block-separation` site, the way `spec.test.ts` guards the node tables — since `unspelled-block-separation`
outlived its cause until 3h went looking. `0.1.0` outlived its cause until 3h went looking. `0.1.0`