From f0f81b066ed2064cddcd8ea5fac75cf25b45d1ed Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Mon, 5 Oct 2026 23:00:57 +0200 Subject: [PATCH] Answer prose round 2: item 119 says where each rule is stated, a checkable item 118, a shorter item 121, and the decision naming what the panel found in the code --- docs/decisions.md | 2 +- todo.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/decisions.md b/docs/decisions.md index e3b1e2f..1e55176 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -829,7 +829,7 @@ Valid while names are read only inside the category binding them. 2026-10-04, Lilleman auf Larv. Serves goal 3 and applies KISS. -Last scoring run, 2026-10-05, on commit bcc6858: Navigation 7.00, Locality 5.75, Shape 6.00, Self-sufficiency 6.25, overall 6.13. The nine-seat panel at depth 1, run beside it: Navigation 6.89, Locality 5.78, Shape 6.22, Self-sufficiency 6.28, overall 6.17. The nine-seat panels of 2026-09-22 to 2026-09-30 held the overall between 5.2 and 6.1, with Locality lowest at every seat; Locality is lowest again. All nine seats named the named-pick read path hardest: `readField`, `readName`, `readUnder` and `enter`, with the pick keys they share with `compileArm`, `addressedKeys` and `checkTemplateOnce`. Items 118 to 126 answer the panel's reading findings, and `todo.md` item 128 runs it again. Valid while `AGENTS.md` gates goal 3 at 7.0. +Last scoring run, 2026-10-05, on commit bcc6858: Navigation 7.00, Locality 5.75, Shape 6.00, Self-sufficiency 6.25, overall 6.13. The nine-seat panel at depth 1, run beside it: Navigation 6.89, Locality 5.78, Shape 6.22, Self-sufficiency 6.28, overall 6.17. The nine-seat panels of 2026-09-22 to 2026-09-30 held the overall between 5.2 and 6.1, with Locality lowest at every seat; Locality is lowest again. All nine seats named the named-pick read path hardest: `readField`, `readName`, `readUnder` and `enter`, with the pick keys they share with `compileArm`, `addressedKeys` and `checkTemplateOnce`. Items 118 to 126 answer what the panel found in the code, and `todo.md` item 128 runs it again. Valid while `AGENTS.md` gates goal 3 at 7.0. ## The template engine stays the root package until item 107; what reads no engine type, a table's rows included, sits in `internal/` diff --git a/todo.md b/todo.md index e1f7161..78b7d8b 100644 --- a/todo.md +++ b/todo.md @@ -74,10 +74,10 @@ | 96 | 0.1.0 | | **Refuse two reads into one sibling, category or struct category that no name joins, `{place.postal-code} {place.locality}`, showing the spelling for one pick and the one for two.** | 4 | 4 | 7 | 7 | 5.6, 4 | 20.9 | | 128 | 0.1.0 | decision | **Run the nine-seat comprehension panel and the scoring run again once items 118 to 126 have merged, and file what the panel names.** | 1 | 3 | 3 | 9 | 3 | 20.4 | | 91 | 0.1.0 | | **Accept a path through a name as a `calc` operand, so `{/misc.coordinate as c}{c}: {calc(c.lat * 60)}` computes from the coordinate `{c}` prints.** | 3 | 4 | 6 | 7 | 4.1, 5.3 | 19.9 | -| 119 | 0.1.0 | | **State at `readName` how every read of a name stays on one pick: `enter` reuses the memo's frames, and `renderFrame` opens none where `frameOf` finds one, and say why a fresh read clears the pick.** | 2 | 2 | 2 | 9 | 3.4, 3.2 | 17.7 | +| 119 | 0.1.0 | | **State at `readName` how every read of a name stays on one pick (`enter` reuses the memo's frames, and `renderFrame` opens none where `frameOf` finds one), and state at `readField` why a fresh read clears the pick.** | 2 | 2 | 2 | 9 | 3.4, 3.2 | 17.7 | | 89 | 0.1.0 | | **Fail `New` without `WithSeed`, naming the option, and seed the CLI from the system.** | 3 | 3 | 6 | 7 | 10.1 | 16.0 | | 127 | 0.1.0 | | **Give a Swedish street only postal codes whose delivery digit means street or rural delivery, dropping codes whose delivery digit is 9, or record why they stay.** | 3 | 3 | 4 | 6 | 4 | 14.4 | -| 118 | 0.1.0 | | **Give a pick key one type, so `pathArm`, `compileArm`, `addressedKeys`, `keeps`, `readUnder` and `checkTemplateOnce` spell it one way, and a fresh read's `arm.levels` and a named read's start at the same place.** | 5 | 5 | 2 | 9 | 3.2, 3.3 | 13.9 | +| 118 | 0.1.0 | | **Give a pick key one type, so `pathArm`, `compileArm`, `addressedKeys`, `keeps`, `readUnder` and `checkTemplateOnce` spell it one way, and `arm.levels` start at the same level for a fresh read and a named read.** | 5 | 5 | 2 | 9 | 3.2, 3.3 | 13.9 | | 110 | 0.1.0 | | **Refuse an empty segment in a path `Fake`, `FakeRecord` and the CLI take, as a reference does: `sv_SE.person.` reports `path has an empty segment`.** | 1 | 1 | 3 | 6 | 6 | 13.8 | | 120 | 0.1.0 | | **Rename the engine's overloaded nouns, so `scope`, `binding`, `link`, `pick` and `head` each name one thing.** | 2 | 4 | 1 | 8 | 3.3 | 13.4 | | 123 | 0.1.0 | | **Name the name fences by what they refuse, and state each rule at `checkOnce`, `checkTemplateOnce` and `checkUses`, so they read without the README's Names list.** | 1 | 2 | 1 | 7 | 3.4, 3.3 | 13.1 | @@ -257,9 +257,9 @@ The decision "comprehension floor: every dimension and the overall at 7.0 or abo A calc operand parses as a bare identifier, so `{calc(c.lat * 60)}` fails with `unexpected ".lat * 60"`, and a second binding of `/misc.coordinate.lat` would draw another coordinate. Resolve the path through `compileArm`'s leaves, as `operandNodes` does for a bare name. -### 119. State at `readName` how every read of a name stays on one pick: `enter` reuses the memo's frames, and `renderFrame` opens none where `frameOf` finds one, and say why a fresh read clears the pick. +### 119. State at `readName` how every read of a name stays on one pick (`enter` reuses the memo's frames, and `renderFrame` opens none where `frameOf` finds one), and state at `readField` why a fresh read clears the pick. -All nine seats in the panel of 2026-10-05 named `readField`, `readName`, `readUnder` and `enter` hardest, and six of the seven unit-level seats would least want to modify them. Each seat had to trace why `{a.street}` and `{a.postal-code}` read the same locality, the one the name `l` picks in `data/geo/SE/address.json`, and why a fresh read in `readField` sets `sc.pick = nil`. +All nine seats in the panel of 2026-10-05 named `readField`, `readName`, `readUnder` and `enter` hardest, and six of the seven unit-level seats would least want to modify them. Each seat had to trace why `{a.street}` and `{a.postal-code}` in `data/sv_SE/address.json` read the same locality, the one the name `l` picks in `data/geo/SE/address.json`. Two seats asked why a fresh read in `readField` sets `sc.pick = nil`. ### 89. Fail `New` without `WithSeed`, naming the option, and seed the CLI from the system. @@ -269,7 +269,7 @@ Goal 10.1 has the caller supply the seed, and today `New` without `WithSeed` see `docs/research/research-geo-se.md` reads delivery digit 0 or 1 as boxes, 2–4 and 6–7 as street, 5 as rural, 8 as reply mail and 9 as competitions or temporary, with exceptions in big cities. `street_delivery` drops 0, 1 and 8 and keeps 9. The panel of 2026-10-05 found it; whether a shipped street carries a 9 code is unchecked. -### 118. Give a pick key one type, so `pathArm`, `compileArm`, `addressedKeys`, `keeps`, `readUnder` and `checkTemplateOnce` spell it one way, and a fresh read's `arm.levels` and a named read's start at the same place. +### 118. Give a pick key one type, so `pathArm`, `compileArm`, `addressedKeys`, `keeps`, `readUnder` and `checkTemplateOnce` spell it one way, and `arm.levels` start at the same level for a fresh read and a named read. Eight of the nine seats in the panel of 2026-10-05 named the key convention hardest after the named-pick read path itself. A fresh read's `levels` start at the head, `[head, head.a, …]`, while `compileArm` builds a named read's from the name, `["", a, a.b, …]`, so `arm.levels`' comment holds only for fresh reads. `addressedKeys` slices off the target's tail and `readUnder` re-prefixes with `underKey`; no type ties them. Keep the key a string, so the allocation gate holds. @@ -293,7 +293,7 @@ The decision "With only the shipped set, a category loads on the first call reac ### 121. Move `renderScope`'s methods out of `pick.go` into `scope.go`, a table's route and draw steps out of `path.go` into `table.go`, and `arm`, `op` and `compileArm` out of `format.go` into a file named for the compiled read. -Both architects in the panel of 2026-10-05 ranked this first: `arm`, `op` and `compileArm` sit in `format.go`, `renderScope`'s methods in `pick.go`, and `table.route` and `table.drawStep` in `path.go`. Revise the README's Layout block with it. +Both architects in the panel of 2026-10-05 ranked this first. Revise the README's Layout block with it. ### 122. Rewrite `columnReadOf` so each case says which column it reads, with a named step stripping the sigil, and say on `refBinding` that its head carries the `/`.