docs: M1.5 dungeon-track pickup prompt for the next session

Work order: #137 collision (oracle-first, repro before fix) -> #153
apparatus-first (hold shape needs explicit user approval per the
no-holds feedback) -> #138 acceptance run -> A7 lighting closer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-05 14:02:35 +02:00
parent aa734f3409
commit 67c3357246

View file

@ -0,0 +1,56 @@
# Pickup prompt — M1.5 dungeon track: #137 collision first (paste into a fresh session)
Read `claude-memory/project_physics_collision_digest.md` FIRST (the collision
SSOT + DO-NOT-RETRY table — binding), then the ISSUES entries for **#137**,
**#153**, **#138** (in that order), plus the prior-art closed fixes **#150**
(ethereal door step-down skip), **#151** (portal-less wall shells), **#152**
(building-cache re-base). Then work the track below.
**Context:** the R5 movement-manager arc is DONE and merged — `main` ==
`claude/vigorous-joliot-f0c3ad` @ `aa734f34` (facade close-out:
`docs/research/2026-07-03-r5-managers/r5-wiring-handoff.md`). M1.5's remaining
critical path is the dungeon track: **#137 dungeon collision → #153/#138
teleport-out residuals → A7 dungeon lighting** (A7 last — its 5-dungeon-site
capture protocol needs dungeons walkable first).
**Slice 1 — #137 (dungeon collision at doors + wall openings), oracle-first:**
1. AUTONOMOUS PREP: wire nothing yet. Re-read the EnvCell collision path
(`CellTransit`, the door apparatus, `ShadowObjectRegistry` per-cell
registration — A6.P4 architecture) and check whether the #150 ethereal
step-down skip (`TransitionTypes.cs`, retail pc:276795-276806) already
covers EnvCell dungeon doors or only building doors. Grep named-retail
before any fresh decompilation.
2. REPRO (needs the user in-world): the 0x0007 dungeon, with
`ACDREAM_PROBE_RESOLVE=1` (+ `ACDREAM_CAPTURE_RESOLVE=<path>` if a replay
diff is warranted). Characterize per site: which door / which opening,
expected vs actual, open-vs-closed state. The issue text says symptoms are
NOT yet characterized — do not fix ahead of the repro.
3. Fix per the digest workflow (retail decomp is the oracle; ACE second).
Acceptance: doors block/pass per open/closed state, wall openings pass,
solid walls block — matching retail in 0x0007. Register row per deviation,
same commit.
**Slice 2 — #153 (portals only work once / teleport-onto-unstreamed-edge
runaway), apparatus-first:** the issue is REOPENED with a narrowed residual
(arrival on a NOT-yet-streamed landblock NEAR AN EDGE → cell-march + Z
free-fall + garbage outbound cell). The issue text itself says **DO NOT
guess-patch** — the original #145 burned 5 attempts. Build the capture +
anchor/guard diagnostic at the crossing first. ⚠️ The issue's "likely fix
shape" is a streaming-gap HOLD — but the user REVERTED a previous teleport
hold as "shaky and bandaid" (`feedback_no_holds_for_slow_foundation`). If the
evidence really does point at a hold (as retail's synchronous-load
equivalent), STOP and get explicit user approval with the retail anchor in
hand; do not ship it on your own authority.
**Then:** the #138 acceptance run (portal out → world + objects + avatar all
present across REPEATED round-trips, collision working — its component fixes
are shipped; #151/#152 closed the wall residuals; what's left is the gate),
and A7 lighting (#154 dungeon-dim, #142 windowed interiors, #143 portal
swirl, #140 Fix D) as the M1.5 closer.
**Gotchas:** visual gates + repro sessions need the user (plan autonomous
decomp/probe prep around their availability); PowerShell Tee logs are UTF-16
(`tr -d '\000'` before grep); the user manages client lifecycle (plain
`dotnet run`, graceful close, ask if a rebuild is locked); probes:
`ACDREAM_PROBE_RESOLVE` / `ACDREAM_PROBE_CELL` / `ACDREAM_CAPTURE_RESOLVE` /
`ACDREAM_PROBE_ENT` are all wired and DebugPanel-toggleable.