Answer prose round 1: a true path to the scoring run's prompts, the panel named by its date, plainer items 118, 119, 121 and 127, and Next ID 129

This commit is contained in:
2026-10-05 22:59:48 +02:00
committed by Lillem4n
parent 791d76923c
commit 03e00cc0a2
3 changed files with 21 additions and 21 deletions
+1 -1
View File
@@ -118,7 +118,7 @@ In [docs/decisions.md](docs/decisions.md):
# Scoring run
The project values for `skills/comprehension-panel/scoring-run.md`:
The project values for `~/.claude/skills/comprehension-panel/scoring-run.md`:
- `{language}`: Go
- `{kind}`: a Go library and CLI that renders fake data from JSON templates
+2 -2
View File
@@ -827,9 +827,9 @@ Valid while names are read only inside the category binding them.
## comprehension floor: every dimension and the overall at 7.0 or above
2026-10-04, Lilleman auf Larv; scores of 2026-10-05 by larv-review on the restructured code. Serves goal 3 and applies KISS.
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; it 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, and `todo.md` item 128 runs it again. Below the floor, `AGENTS.md`'s comprehension rule says what merges. 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 the panel's reading findings, 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/`
+18 -18
View File
@@ -6,7 +6,7 @@
`Bar = 9`
`Next ID = 130`
`Next ID = 129`
| Goal | W |
|---|---|
@@ -74,15 +74,15 @@
| 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.** | 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 say 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 the 9 codes, 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 `arm.levels` holds one keying.** | 5 | 5 | 2 | 9 | 3.2, 3.3 | 13.9 |
| 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 |
| 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 |
| 79 | 0.1.0 | decision | **Beside a `--data-path`, load in `New` the user's categories, the shipped ones they override or read, and the shipped ones whose reads reach an overridden one; load the rest on first reach.** | 6 | 6 | 7 | 8 | 13 | 12.9 |
| 121 | 0.1.0 | | **Move each engine type's methods into the file named for it: `renderScope`'s out of `pick.go`, the compiled read out of `format.go`, a table's route out of `path.go`.** | 1 | 3 | 1 | 7 | 3.1 | 12.8 |
| 121 | 0.1.0 | | **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.** | 1 | 3 | 1 | 7 | 3.1 | 12.8 |
| 122 | 0.1.0 | | **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 `/`.** | 2 | 2 | 1 | 7 | 3.4, 3.3 | 12.1 |
| 124 | 0.1.0 | | **State the `..` step-down rule where `drawSteps` carries `climbed`, and split `route`'s draw condition into named parts.** | 2 | 2 | 1 | 6 | 3.4 | 10.3 |
| 126 | 0.1.0 | | **Name in `geo-se.py` the source of its delivery-digit rule and of its 200 floor.** | 1 | 1 | 1 | 5 | 3.4 | 9.8 |
@@ -257,21 +257,21 @@ 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.
### 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.
All nine seats in item 5's panel named `readField`, `readName`, `readUnder` and `enter` hardest, and six of the seven unit-level seats would least want to modify them. Each seat rebuilt by tracing why `{a.street}` and `{a.postal-code}` read one `l` in `geo.SE.address`. The same seats asked why a fresh read sets `sc.pick = nil` in `readField`.
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`.
### 89. Fail `New` without `WithSeed`, naming the option, and seed the CLI from the system.
Goal 10.1 has the caller supply the seed, and today `New` without `WithSeed` seeds itself. This item ships in 0.1.0 beside item 77, so `New` breaks once before anyone depends on it. Mark `WithSeed` required in the Library section's options table. Its tests then stop swapping `randomBytes`, as `fejkdata_test.go` does today, which fails every `New` in the package while that test runs.
### 127. Give a Swedish street only postal codes whose delivery digit means street or rural delivery, dropping the 9 codes, or record why they stay.
### 127. 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.
`docs/research/research-geo-se.md` reads the delivery digit as 0 and 1 boxes, 2–4 and 6–7 street, 5 rural, 8 reply mail and 9 competitions or temporary, with exceptions in big cities. `street_delivery` drops 0, 1 and 8 and keeps 9. Item 5's panel found it; whether a shipped street carries a 9 code is unchecked.
`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 `arm.levels` holds one keying.
### 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.
Eight of the nine seats in item 5's panel (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. The key stays a string under the allocation gate.
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.
### 110. 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`.
@@ -279,11 +279,11 @@ Today `fejkdata 'sv_SE.person.'` reports `no field ""`, while `{/sv_SE.person.}`
### 120. Rename the engine's overloaded nouns, so `scope`, `binding`, `link`, `pick` and `head` each name one thing.
From item 5's panel: `nodeScope`, `nameScope` and `renderScope`; `binding`, `nameBinding` and `refBinding`; `linkTemplates` beside `linkTables` and `rows.Link`; `pick` the function beside a named pick; `head` a string on `arm` and a node on `nameTarget`.
From the panel of 2026-10-05: `nodeScope`, `nameScope` and `renderScope`; `binding`, `nameBinding` and `refBinding`; `linkTemplates` beside `linkTables` and `rows.Link`; `pick` the function beside a named pick; `head` a string on `arm` and a node on `nameTarget`.
### 123. 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.
Seven of the nine seats in item 5's panel needed the README's Names list open to learn what these refuse.
Seven of the nine seats in the panel of 2026-10-05 needed the README's Names list open to learn what these refuse.
### 79. Beside a `--data-path`, load in `New` the user's categories, the shipped ones they override or read, and the shipped ones whose reads reach an overridden one; load the rest on first reach.
@@ -291,17 +291,17 @@ Needs item 77, which makes an override fail unless it says it replaces.
The decision "With only the shipped set, a category loads on the first call reaching it; beside a `--data-path`, every category loads in `New`" parses the whole shipped set on every `--data-path` run, about 45 ms today and seconds once items 61 and 78 land. Goal 6 needs only the user's categories, the shipped ones they override, the shipped ones they read, and the shipped ones whose reads reach an overridden category, so the index would carry each category's reads.
### 121. Move each engine type's methods into the file named for it: `renderScope`'s out of `pick.go`, the compiled read out of `format.go`, a table's route out of `path.go`.
### 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 item 5's panel ranked this first: `arm`, `op`, `compileFormat` 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: `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.
### 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 `/`.
Seven of the nine seats in item 5's panel named it: `a.head[min(1, len(a.head)):]` and `refs[b.ref].head[1:]` strip a sigil no comment names.
Seven of the nine seats in the panel of 2026-10-05 named it: `a.head[min(1, len(a.head)):]` and `refs[b.ref].head[1:]` strip a sigil no comment names.
### 124. State the `..` step-down rule where `drawSteps` carries `climbed`, and split `route`'s draw condition into named parts.
Seven of the nine seats in item 5's panel named `route` and `drawSteps`; most learned the step-down rule from the README's Step up section.
Seven of the nine seats in the panel of 2026-10-05 named `route` and `drawSteps`; most learned the step-down rule from the README's Step up section.
### 126. Name in `geo-se.py` the source of its delivery-digit rule and of its 200 floor.
@@ -309,7 +309,7 @@ Seven of the nine seats in item 5's panel named `route` and `drawSteps`; most le
### 125. Delete the doc lines the panel read as restating their code.
Named in item 5's panel: `Fake` in `inline.go`, `Record.Columns`, `pick` in `render.go`, `compileInto`, `mergeChildren`, `tableOptions`, `randomBytes`, `frameStack.push`, `checkCalcFields`, the callers `recordOf`'s doc lists, and "Each step returns what it builds" on `linkTemplates`.
Named in the panel of 2026-10-05: `Fake` in `inline.go`, `Record.Columns`, `pick` in `render.go`, `compileInto`, `mergeChildren`, `tableOptions`, `randomBytes`, `frameStack.push`, `checkCalcFields`, the callers `recordOf`'s doc lists, and "Each step returns what it builds" on `linkTemplates`.
### 58. Ship prebuilt binaries, a container image, and packages for Homebrew, Scoop and the biggest Linux package managers, so the CLI needs no Go.