Repository navigation
task 7 fix4
Task 7 — fix round 4 (fresh implementer; from the scoped re-review of round 3, with the lead's rulings)
Context: Task 7 built the dress step (tools/temples/classic/dress.ts and its modules dressBoard.ts, dressLinks.ts, dressDoors.ts, dressRooms.ts, dressChores.ts, dressPlans.ts) and the Storm Temple. Three fix rounds made it safe for holes, falls, warps, shifted floors and shops (see task-7-fix1.md, task-7-fix2.md, task-7-fix3.md and the report's "Fix round" sections). Round 3's re-review confirmed every round-3 item, and found what follows. The reviewer's scratch harnesses are in /tmp/claude-1000/-home-xopher-www-x-do-it-for-the-xp/7ca8fc26-15cb-43c8-9275-a0406c9f8f4c/scratchpad/rr3/ (lost-head.ts / lost-base.ts compare the converted JSON's seals against the dressed temple's; fx.ts / fx-base.ts dress the fixtures) — reuse them.
Review: "This happens when a hole was placed first and took the one free side beside the fight; holes are placed before everything else (dressBoard.ts:483), and round 3 adds more of them by moving passage holes (:472). The besideFirst fallback (dressBoard.ts:358) then uses placeNearest(addedOnly), which opens the room onto whichever neighbour is nearest, not onto the fight. Moon: the hole moved off 5F (2,1) takes 5F (1,0); the flight up to the boss floor, which belongs to the sealed fight 5F (2,0), goes to 5F (0,0) and opens onto 5F (0,1); with 5F (2,0) walled off the boss is still reached. DROP fixture: the 2F (0,2) mini-boss is optional. ClassicDress.spec.ts:297-299 was loosened to accept this." RULING: a flight (or anything) pushed out of a sealed fight must open ONLY onto that fight (or onto a room reached only through it). Place flights out of seals before holes, and make the fallback grow the grid beside the fight rather than land anywhere. Restore the strict assertion at ClassicDress.spec.ts:297-299.
RULING: add a nine-JSON guard: compute, on the converted JSON's own graph (holes and non-circle warps one-way, locks ignored), every must-clear cell that blocks the boss; each must still block the boss in the dressed temple (dressed graph, all doors open). Pin it for all nine with an explicit list of known exceptions (ideally none after items 1 and 3).
Review: "the 1F (4,0) warp's landing circle (1F (1,2)) opens onto the (4,2) warp's own moved circle (1F (2,2)), outside the seal; the ride back (1,4)->(5,6) also goes around it." RULING: a landing circle for a warp that lands on a sealed fight sits in front of the seal (opens only onto the fight's entry side), never beyond it; the item-2 pin must hold for Earth.
Review (Water's R2 is a dress-tool bug): "the JSON's 1F (0,8) 'Swamp Entrance' holds both chest: small-key and the stairs down with lock: small-key (the entrance chest is the key for the locked stairs). The stairs stay on (0,8) and the key chest is displaced through placeNearest (dressBoard.ts:322-336); its second choice, 'any free converted cell of the floor', picks 1F (7,1), the Swamp Attic, reachable only from B1 (6,0) — behind the very lock the key opens. A wall position beside the entrance came later in the ranking." RULING: a displaced key, Big Key, map, compass or Big Chest goes beside its source cell first (an added cell opening only onto the source), else to a cell reachable from the source without crossing a lock, a seal or a cracked wall. Correct the guard comment at ClassicTemples.spec.ts:367 (Water's R2 is not a property of the data) and re-pin Water's guard result (it should now solve, possibly with an R4).
-
placeShop's "before any seal" test uses reachableFrom, which ignores locks and cracked walls (Earth's shop at 1F (2,3) is reached only through the entrance's cracked north wall): the shop must be reachable from the entrance without keys, Bombs or seals. - Storm's classicReport
movesstill lists the dropped warp's "landing circle 1F(0,0)->1F(2,0)" and "teleport 3F(0,0)->3F(3,0)": a dropped warp's moves should not be listed as moves (list it only underdropped). - The dressBoard.ts header's "a flight pushed out of a sealed fight lands beside it" must be true after item 1.
Run ClassicDress, ClassicTemples, ClassicTempleRefresh, ShippedTemplesAudit, TempleSolver one at a time. Every file ≤ 500 lines (dressBoard.ts is 492: split it if you grow it). Audit with npx --yes chemx@26.10.19-530 audit --no-index --unroll > /tmp/audit-t7f4.txt 2>&1 (no file you touch may newly appear under LINE_BUDGET_FILE / CONTROL_FLOW_INLINE_BOOLEAN / TYPE_COLOCATION / HOOK_RETURN_OVERLOAD), then git checkout -- chemx-ratchet.json. Regenerate storm-temple.ts if its output changes. Append "Fix round 4" to task-7-report.md.
- Architecture
- Component-Library
- Hooks-Reference
- Temple-System
- Battle-Field-Architecture
- current_context - For AI/Human Handoff
- User Menu
- General Settings
- Family Settings
- Sound Settings
- Notification Settings
- Reward Settings
- Party Settings
- Theme Settings
- Chore Settings