"It's here anyway" + the tape measure: the human overrules the packer

Eric, looking at a dense cube full of "no room" and "unmeasured":
how do I say it really IS here, and in what orientation? Two answers.

The packer models one flat pile and one standing row; real shelves are
3-D — boxes sit crosswise, ride on top of piles, stand proud of the
edge. Acknowledge generalizes from overhang-only to the human
overruling the model: "it's here anyway" on any resident the lanes
can't take. An acknowledged box takes a lane when one works (honoring
a flat/standing override; the spine-out case lands relaxed standing,
now tagged ", proud" by the packer itself instead of guessed from
misfit-ness) and otherwise is WEDGED IN: really there, in some
arrangement the model can't see, outside the capacity bars and never
warned about. The previous commit's ackable gate is gone — accepting
always does something now, so no placebo remains to guard against.

And "unmeasured" is no longer a dead end: the chip is a button. Tap,
enter width × length × depth from your own tape measure, and it saves
to data/measurements.json (a new committed curation store) with dims
source "measured" — overlaid on every games.json read (web, dims,
export, CSV import), because the owner's ruler outranks BGG's
database. All three fields empty clears one.

Verified live: Etherfields on the tower reads "standing, proud", an
acknowledged box in a width-starved cube reads "wedged in", the
measure form opens with three inputs, zero page errors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016jXZFSTZQKzAC8fqpWSz9g
This commit is contained in:
Eric Wagoner
2026-08-09 16:10:35 -04:00
co-authored by Claude Fable 5
parent 4952e69920
commit 6c95953dc0
15 changed files with 1135 additions and 90 deletions
+21 -8
View File
@@ -162,14 +162,27 @@ reset: rows move their games, games absent from the plan keep their
spots, and hand-entered notes, lane choices, and acknowledgments survive
whenever the opening is unchanged.
Some placements are deliberate misfits — square boxes spine-out on a
shallow shelf, standing proud of the edge. The checker will honestly
refuse those forever, so accept the overhang on purpose: the **accept
overhang** button in the opening's view, or an `acknowledge` column
(`yes`) in the import CSV. The button appears only when accepting would
actually give the box a lane; a resident squeezed out of a width-starved
opening is marked "no room" instead — that's overfull, not overhung, and
acknowledging wouldn't change the math.
The packer is deliberately conservative — one flat pile plus one
standing row per opening — and real shelves are 3-D: boxes sit
crosswise, ride on top of piles, stand proud of a shallow shelf. When
the model refuses a placement you can see with your own eyes, overrule
it: the **it's here anyway** button in the opening's view (or an
`acknowledge` column, `yes`, in the import CSV) confirms the box is
really there. An acknowledged box takes a lane when one works — the
spine-out overhang case lands "standing, proud", skipping only the
depth check — and when even that fails it's marked **wedged in**:
really there, outside the capacity bars, never warned about. Tap
"here ✓" to retract. Assignment and capacity are separate truths:
a game listed in an opening IS there regardless of what the packer
thinks of the arrangement.
Unmeasured games can't join the capacity math at all — so measure
them. The "unmeasured — measure it" button in the opening's view takes
width × length × depth in inches, saved to `data/measurements.json`
(committed, like all curation). Your tape measure outranks BGG: hand
measurements overlay whatever enrich found, everywhere sizes are used
(fit checks, suggestions, `bggpipe dims`, the export). Save with all
three fields empty to clear one.
An acknowledged box takes the standing lane without the depth check —
the width budget stays honest — and stops counting as a warning. Once
acknowledged, later imports needn't re-state it. `bggpipe dims` reports per-opening capacity, overfull warnings, and