Two-lane packing, and the shelves ship with the export

Eric's wall answered the orientation question with a screenshot full
of red: the capacity model assumed one flat stack per opening, so his
spine-out cubes read 200% full. His reviewer's prescription, built to
its acceptance cases: each opening packs a FLAT lane (thinnest axes
against interior height, claiming the widest flat box's width) and a
STANDING lane beside it (boxes on edge against the remaining width;
standing boxes must fit height and depth upright). The largest-
footprint class lies flat, smaller boxes stand, any box's lane is
flippable per-assignment (▬/▮ toggle in the opening view, ✱ marks an
override), and ⚠ now means NO packing fits — not merely "tall stack".
Unmeasured boxes take no lane but keep their honesty tag; dual fill
bars show each lane's budget; a broken opening is never offered by
the suggester. On the real wall: the double-wides and half the cubes
went green (7 games = 13.12" flat + 2.91" standing), and the
remaining warnings mark cubes that genuinely hold 12-16 boxes.
Both reviewer acceptance tests pass verbatim.

And the export gains the humanity Eric asked for: game pages say
where each box lives, containers list their contents, and a shelves
page draws the wall as it physically stands — proportional cells,
zones, descriptions, every opening linking its residents. Publishing
a shelf layout is a choice: --no-shelves keeps the layer out.
"shelves" joins "art" as a reserved slug. 387 tests.

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 14:53:42 -04:00
co-authored by Claude Fable 5
parent d6ff5e73e9
commit e90a53fb6c
20 changed files with 1930 additions and 59 deletions
+6 -3
View File
@@ -25,7 +25,8 @@
"zone": "party",
"width_in": 13.25,
"height_in": 13.25,
"depth_in": 15.4
"depth_in": 15.4,
"description": "big boxes a-m"
},
{
"id": "library-kallax-b2",
@@ -33,7 +34,8 @@
"zone": "party",
"width_in": 13.25,
"height_in": 13.25,
"depth_in": 15.4
"depth_in": 15.4,
"description": "big boxes n-z"
},
{
"id": "library-kallax-b3",
@@ -41,7 +43,8 @@
"zone": "party",
"width_in": 13.25,
"height_in": 13.25,
"depth_in": 15.4
"depth_in": 15.4,
"description": "card rows standing"
},
{
"id": "library-kallax-b4",