Record that a cell may read a reference, and plan the round as the approved restructure
This commit is contained in:
@@ -12,8 +12,9 @@
|
||||
- README goal 2 is gated at 7.0 on the `comprehension-panel` skill, and below it
|
||||
nothing else merges — no feature, no category, no data — bar a security fix, a
|
||||
dependency bump, a repair of a promise goals 3 to 5 make, and the infrastructure
|
||||
the round itself runs on. `todo.md` carries the round: the nine-seat findings run at depth 1,
|
||||
a PR per item it names, then the run again, until the score passes. At or above 7.0
|
||||
the round itself runs on. `todo.md` carries the round: a PR per item it plans, the nine-seat
|
||||
findings at depth 1 or a restructure the maintainer approved, then the nine-seat run
|
||||
again, until the score passes. At or above 7.0
|
||||
every pull request scores with the four-seat run and answers it in one run. No merge
|
||||
lowers the last score its own panel recorded: the nine-seat round and the four-seat
|
||||
run are two ratchets, never compared with each other.
|
||||
@@ -85,6 +86,7 @@ In [docs/decisions.md](docs/decisions.md):
|
||||
- The key map is built at load, the rest on first draw
|
||||
- Two categories may name one TSV
|
||||
- A table never reaches its own family, by any route
|
||||
- A cell may read a reference, and each row its own
|
||||
- Tables carrying token cells stay small
|
||||
- A path is walked once without drawing before it is walked for real
|
||||
- A country's postal codes and streets are siblings under its locality
|
||||
|
||||
@@ -559,6 +559,15 @@ A `repeat` iteration and a `drawGroup` each draw apart on purpose, but a row tha
|
||||
three localities from other regions is the output the family exists to prevent, so the
|
||||
own-family fence walks through both rather than stopping where the draw fences do.
|
||||
|
||||
## A cell may read a reference, and each row its own
|
||||
|
||||
2026-09-29, Lilleman auf Larv.
|
||||
|
||||
Goal 3: facts that belong together come from one draw, so a shop row's `phone` cell reads
|
||||
`{/sv_SE.phone}` on a Swedish shop and `{/en_US.phone}` on a US one, and the table's
|
||||
format, the same for every row, cannot say that. A restructure for goal 2 keeps the fences
|
||||
that prove such cells safe. Valid while a table's rows need generators of their own.
|
||||
|
||||
## Tables carrying token cells stay small
|
||||
|
||||
2026-09-17, Lilleman auf Larv.
|
||||
|
||||
@@ -7,11 +7,10 @@ Ordered as the releases that ship it.
|
||||
### Comprehension, until the panel scores 7.0
|
||||
|
||||
Nothing else ships while the score is under 7.0 — no feature, no category, no data — bar
|
||||
what `AGENTS.md` excepts, per README goal 2. This section is one
|
||||
round, replayed: the `comprehension-panel` skill's nine-seat findings run at depth 1,
|
||||
a PR per item it names, then the run again, until the score passes. The run is the
|
||||
nine-seat one: the round is meant to buy architectural change, and the four-seat
|
||||
scoring run names too little to steer one. A fresh run replaces the items below.
|
||||
what `AGENTS.md` excepts, per README goal 2. Nine rounds of the nine-seat findings held
|
||||
the score between 5.7 and 6.1, so this round is a restructure the maintainer approved on
|
||||
2026-09-29: a PR per item, then the nine-seat run again. The run is the nine-seat one,
|
||||
since the four-seat scoring run names too little to steer an architectural change.
|
||||
|
||||
Scores, newest last: 5.9 on 2026-09-20 (Navigation 7.0, Locality 5.2, Shape 5.9,
|
||||
Self-sufficiency 5.7); 5.8 on 2026-09-22 (Navigation 6.7, Locality 5.0, Shape 5.9,
|
||||
@@ -37,37 +36,60 @@ on 2026-09-29 a fifth time (Navigation 6.9, Locality 5.2, Shape 6.1, Self-suffic
|
||||
|
||||
This round, in order:
|
||||
|
||||
- Give `surveyAt`'s whole read one field, its table and pins together, rename
|
||||
`alternatives` for what it answers, two reads that never render together, and say at
|
||||
`check` why a level landing on a row may sit beside a path into it: five seats held
|
||||
`surveyAt`'s five fields at once, two misread `alternatives`, and two found no reason
|
||||
for the `landsRow` exemption.
|
||||
- Compute what rendering a node reads as a fold memoised per node, `reads(n)`, deduped
|
||||
per node, and have `surveyRender` and `surveyColumns` call it, deleting
|
||||
`readSurvey.walk`, `edge`, `nodeVisit` and `seen`: every run's seats named the walk
|
||||
hardest. Prototyped green with the allocation gate held; without the per-node dedup
|
||||
`TestADeepDiamondChainLoads` doubles its list per level.
|
||||
- Have `checkDrawGroup`, `checkDraws` and `checkRecordDraws` query the fold, deleting
|
||||
`drawFence.hasRead`, its helpers and the decision "Each entry point to
|
||||
`drawFence.hasRead` says what its caller gets".
|
||||
- Move the fold to `reads.go` and the verdicts to `drawfence.go`, deleting
|
||||
`readsurvey.go`; name a read's context its `group`, `route` and `branches`, deleting
|
||||
`surveyAt`, and let the README's Layout and `doc.go` follow.
|
||||
- Name what a read sits under `branches`, the rows pinned with their ancestors and the
|
||||
rows of whole draws without, both load-bearing, and fold `check`, `checkFamilies`,
|
||||
`replayPairs`, `checkFamilyPair` and `alternatives` into one pairwise loop over
|
||||
`coRender` and `conflict`. Report a pin clash lowest by route and spelling, so which of
|
||||
two is named stops following the walk, and say at `conflict` why a level landing on a
|
||||
row may sit beside a path into it.
|
||||
- Compile each path once at link into steps holding no pointer, with its leaves and
|
||||
cover, and have `renderEdges`, `heldNodes`, `valueProof` and `tableReadOf` read them,
|
||||
deleting `pathCover`, `coverPath` and `pathLeaves`. Prototyped green, allocations
|
||||
identical.
|
||||
- Draw every path through one interpreter over those steps, `drawSteps`, with `descend`
|
||||
probing into a stack buffer, deleting `pathDraw`, and replace the decision "The four
|
||||
path walks are four loops": the prototype held `perf_test.go` once a step held no
|
||||
pointer, the probe returned its slice and the interpreter took `levels`.
|
||||
- Fold `checkNoOverlap` and `checkNoRepeatedRead` into `heldCheck`, so `compileFormat`
|
||||
compiles and nothing more.
|
||||
- Fix at compile how `readField` reads an arm, `arm.kind`, deleting its two panics and
|
||||
its `held` lookup per read.
|
||||
- Switch `disagreement` on the fixed item's kind, with the other item inside each arm,
|
||||
and rename its `proven` local, which shadows the `proven` type: seven seats read the
|
||||
seven-arm switch as a truth table without the table.
|
||||
- Say at `checkNodeFences` that its walks recurse unguarded, so a caller runs
|
||||
`checkNoCycles` first, and compute `refs` apart from `checkDrawGroup`'s pass: five
|
||||
seats reconstructed the order, and the inline binding runs no cycle check.
|
||||
`checkNoCycles` first: five seats reconstructed the order, and the inline binding runs
|
||||
no cycle check.
|
||||
- Give `tableSite` an `isFormat` beside `isCell`, so `renderRecord` and `traceRead` stop
|
||||
comparing `row` with `formatRow` alone, which holds only because a template outside a
|
||||
table has row 0: four seats found the invariant unstated.
|
||||
- Move each unit to its owner's file, `valueProof.checkField` to `valueproof.go` and
|
||||
`coverPath` and `pathLeaves` beside their walks in `path.go`, and rename `checkPath`,
|
||||
which differs from the `pathCheck` type it wraps by word order alone: both architects
|
||||
placed them wrong.
|
||||
- Move `valueProof.checkField` to `valueproof.go`, and rename `checkPath`, which differs
|
||||
from the `pathCheck` type it wraps by word order alone: both architects placed them
|
||||
wrong.
|
||||
- Correct the claims readers followed wrong: `IsTemplate`'s doc says an argument holding
|
||||
a bracket that is not valid JSON errors, where `misc.territory[SE]` is a path; the README says rows are indexed on the first draw, where `New` builds the key
|
||||
map; and `loadDir`'s says it builds the tree deterministically, where it reports an
|
||||
unnamed rows file in map order.
|
||||
a bracket that is not valid JSON errors, where `misc.territory[SE]` is a path; the
|
||||
README says rows are indexed on the first draw, where `New` builds the key map; and
|
||||
`loadDir`'s says it builds the tree deterministically, where it reports an unnamed
|
||||
rows file in map order.
|
||||
- Delete the comments the panel found restating their code or arranging the file:
|
||||
`node`'s second sentence, `op`'s "compile builds these so render never re-scans the
|
||||
format", `checkCalc`'s last sentence, `calcVar.eval`'s four lines, `checkNoCycles`'
|
||||
grey and black, and the docs on `expand`, `readRows`, `splitOutside`, `reservedList`
|
||||
and `writesRecords`.
|
||||
- Delete `doc.go`'s "The draw fences are …" sentence: it names a function, a type and
|
||||
a helper reached only through `readSurvey.check`, and misses `checkDrawGroup`,
|
||||
`checkOwnFamily` and `checkNestedDrawGroup`; the README's Layout indexes the fences by file.
|
||||
Say "fences" in the `pin` entry then, which names the draw fences too.
|
||||
- Delete `doc.go`'s "The draw fences are …" sentence, which misses `checkDrawGroup`,
|
||||
`checkOwnFamily` and `checkNestedDrawGroup`; the README's Layout indexes the fences by
|
||||
file. Say "fences" in the `pin` entry then, which names the draw fences too.
|
||||
- Run the nine-seat panel again and file what it names here.
|
||||
|
||||
### Data
|
||||
|
||||
Reference in New Issue
Block a user