From 32706adfeb1aa465b9d09ec2e395a871c4b8d464 Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Thu, 3 Sep 2026 07:35:18 +0200 Subject: [PATCH] Record the settled carry decisions: verbatim restore in the spec, the two-code case at the freeze read --- spec/flavour.md | 5 +++-- todo.md | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/spec/flavour.md b/spec/flavour.md index 5839b2d..ed2e966 100644 --- a/spec/flavour.md +++ b/spec/flavour.md @@ -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) 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 -positions canonicalize differently, each fitting where it sits: +to the other position — rides as its raw JSON and restores to a deep-equal node. A carry may hold +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 — two-space indent, object keys sorted. diff --git a/todo.md b/todo.md index b157f57..5d5d18a 100644 --- a/todo.md +++ b/todo.md @@ -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 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 - 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 site, the way `spec.test.ts` guards the node tables — since `unspelled-block-separation` outlived its cause until 3h went looking. `0.1.0`