From e15ee2c4abab3749d528c07aa4de8920ca9b84ba Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Tue, 22 Sep 2026 14:38:26 -0700 Subject: [PATCH] =?UTF-8?q?memory:=20U7=20re-measured=20before=20scoping?= =?UTF-8?q?=20=E2=80=94=20pre-work=20only,=20no=20unit=20started?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The standing instruction is to re-count the booths before scoping U7. Done against the live 19-booth set, so the scope call is a short read rather than an investigation. Two findings. Sections are worth zero and it is now measured twice: not one of the eleven gallery booths has a subdirectory, and the only two booths that do are both reports, the job where grid navigation matters least. And the grouping signal is in the filename rather than the tree -- stripping a trailing digit-run yields 5 to 16 sensible groups on four of the five large galleries and degenerates to one group on the fifth, while the competing split-on-second- hyphen heuristic is useless everywhere. The sizing case has also moved: the unit was scoped against 270-item booths and the largest gallery is now 81 items / 40 images. No U7 code and no U7 contract. The scope direction is the operator's call. --- ...2026-09-22-u7-remeasured-before-scoping.md | 70 +++++++++++++++++++ persistent-memory.md | 1 + 2 files changed, 71 insertions(+) create mode 100644 persistent-memory.d/2026-09-22-u7-remeasured-before-scoping.md diff --git a/persistent-memory.d/2026-09-22-u7-remeasured-before-scoping.md b/persistent-memory.d/2026-09-22-u7-remeasured-before-scoping.md new file mode 100644 index 0000000..81a7db5 --- /dev/null +++ b/persistent-memory.d/2026-09-22-u7-remeasured-before-scoping.md @@ -0,0 +1,70 @@ +# U7 re-measured before scoping — sections are dead, filename prefixes are not + +_2026-09-22 · booth_ + +**Pre-work, not the unit.** The standing instruction is "re-count the booths +before scoping U7". Done, on the live set (19 booths). No U7 code, no U7 +contract — this exists so the scope call is a thirty-second read. + +## The set as it actually is + +| booth | items | images | subdirs | shape | +|---|---|---|---|---| +| `miranda-is` | 92 | 0 | 0 | report | +| `sindra-bakeoff` | 81 | 40 | **0** | gallery | +| `sindra-corpus-v1` | 66 | 66 | **0** | gallery | +| `sindra` | 61 | 30 | **0** | gallery | +| `sindra-sfw-pool` | 59 | 59 | **0** | gallery | +| `sindra-nude-pool` | 42 | 42 | **0** | gallery | +| `pewpew-ui-brief` | 34 | 1 | 7 | **report** | +| `dfa-concepts` | 21 | 14 | 1 | **report** | +| …11 more | ≤19 | | 0 | | + +## Finding 1 — sections are worth ZERO, and this is now measured twice + +**Not one gallery booth has a subdirectory.** Zero of eleven. The only two +booths with subfolders are both **reports**, the job where grid navigation +matters least, and `pewpew-ui-brief`'s seven subdirs hold one image. + +The IA doc calls sections "most of the navigation fix". On this set they are +none of it. Cutting `Item.section` rendering from U7 costs nothing measurable. +(`Item.section` already exists from U1 and stays — this is about whether U7 +builds a section RAIL, not about deleting a field.) + +## Finding 2 — the grouping signal is in the FILENAME, and it pays + +Tested two heuristics against every large gallery. Strip a trailing digit-run +from the stem and group on what remains: + +| booth | images | groups | verdict | +|---|---|---|---| +| `sindra-corpus-v1` | 66 | **16** | useful | +| `sindra-nude-pool` | 42 | **12** | useful | +| `sindra-sfw-pool` | 59 | **10** | useful | +| `sindra-bakeoff` | 40 | **5** | useful | +| `sindra` | 30 | **1** | **degenerates** | + +Specimens: `00-sheet-c1-market-noon.png`, `ac01.png`, `a01.png`, +`flag-rear.png`. The competing heuristic — split on the second hyphen — is +useless everywhere (59 "groups" from 59 files). + +So a prefix heuristic pays on **4 of 5** large galleries and collapses to one +group on the fifth. **That is a filter/grouping affordance, not a section +rail**, and it must degrade gracefully to "one group" rather than render a +useless single-section rail. + +## What this implies for the scope, stated as a recommendation not a decision + +U7 as written is four things: sections, a sticky rail, filters, grid keyboard. +The measurement says **drop sections, keep the other three**, and consider +prefix-grouping as the thing sections were supposed to be — with a stated +degenerate case. + +⚠ The sizing case has also changed: the unit was scoped against 270-item +booths and **the largest gallery is now 81 items / 40 images**. Everything +about virtualization stays parked ([[2026-09-21-ia-and-v1-gate-landed]] names +it); at 66 images a lazy grid is fine and measuring it first is the rule. + +**The booth set churned again during this session** — `sindra-sfw-pool` (59 +images) appeared and the `pancake-*` set went. Re-count again before writing +the contract; do not trust this table either. diff --git a/persistent-memory.md b/persistent-memory.md index 4971859..4879a42 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -78,6 +78,7 @@ _As of 2026-09-22:_ ## Recent decisions +- `[2026-09-22]` **U7 re-measured before scoping — sections are dead, filename prefixes are not** — PRE-WORK ONLY, no unit started; read before writing U7's contract → `persistent-memory.d/2026-09-22-u7-remeasured-before-scoping.md` - `[2026-09-22]` **The last open defect closed, and building its falsifier found another** — the wrong-shaped answer fixed at `_hydrate`; `_safe_fragments` lost its natural trigger and its handler could not survive the failure it handled → `persistent-memory.d/2026-09-22-a-wrong-shaped-answer-500s-the-gallery.md` - `[2026-09-22]` **U6 released as `v0.6.0` — benches, and the number that was two defects** — six of seven v1 units landed, NOT PUSHED → `persistent-memory.d/2026-09-22-u6-benches-released.md` - `[2026-09-22]` **Three cold panels on one unit, and what each lens could only see alone** — READ BEFORE DECIDING TO SKIP A GATE; all five passes found something the others structurally could not → `persistent-memory.d/2026-09-22-three-cold-panels-on-one-unit.md`