docs(p2): fresh-session kickoff prompt — principled P1 membership fix (user-approved)
Appends the copy-paste kickoff prompt for the next session: pursue the principled P1 fix for the cellar-lip cell-resolver ping-pong (demote ResolveCellId / make the swept curr_cell the per-frame membership authority), NOT a stickiness band-aid. Captures the evidence, apparatus, retail anchors, do-not list, and test baseline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
664101f08f
commit
57435e912b
1 changed files with 67 additions and 3 deletions
|
|
@ -104,8 +104,72 @@ LiveCompare_*` (compare against captured-BUGGY-live positions; need re-baseline)
|
||||||
`BSPStepUpTests.D4` (airborne Path 6 sliding-normal persistence — separate). App 177 green.
|
`BSPStepUpTests.D4` (airborne Path 6 sliding-normal persistence — separate). App 177 green.
|
||||||
|
|
||||||
## Do NOT
|
## Do NOT
|
||||||
- Guess a step-up fix without acdream's corner path trace (the #98 saga burned 10+ guesses).
|
- Guess (the #98 saga burned 10+ speculative fixes) — pin the mechanism with the apparatus first.
|
||||||
|
- Add a `ResolveCellId` stickiness clamp / suppression flag — the user chose the **principled**
|
||||||
|
P1 demotion, not a band-aid (no-workarounds rule).
|
||||||
- Flip `Apparatus_Grounded_50cmOffCenter` to `Assert.True(blocked)` — it blocks via a
|
- Flip `Apparatus_Grounded_50cmOffCenter` to `Assert.True(blocked)` — it blocks via a
|
||||||
synthetic-floor artifact, not a faithful door block.
|
synthetic-floor artifact, not a faithful door block.
|
||||||
- Re-investigate B1 (the near-miss gate) or the slide_sphere head-near-miss path — both
|
- Re-investigate B1 (`abbd761`) or slide_sphere (`0935a31`) — both shipped + verified + correct.
|
||||||
shipped + verified.
|
|
||||||
|
## FRESH-SESSION KICKOFF PROMPT (copy-paste) — user-approved 2026-06-04: principled P1 membership fix
|
||||||
|
|
||||||
|
```
|
||||||
|
Continue the VERBATIM retail spatial-pipeline port for acdream. Branch claude/thirsty-goldberg-51bb9b
|
||||||
|
(do NOT branch/worktree; do NOT push without asking; NEVER git stash/gc). PowerShell on Windows;
|
||||||
|
launch logs are UTF-16.
|
||||||
|
|
||||||
|
STATE: M1.5 (Indoor world feels right). P2 COLLISION = DONE + shipped: B1 near-miss gate (abbd761) +
|
||||||
|
slide_sphere head-near-miss (0935a31). Generic step-up climbs; the closed cottage door BLOCKS (no
|
||||||
|
walkthrough); step-up AT THE CELLAR LIP works (220 successful candidate-landings on the cottage floor).
|
||||||
|
The remaining intermittent CELLAR-ASCENT WEDGE is RE-DIAGNOSED (live acdream + retail cdb traces) to a
|
||||||
|
MEMBERSHIP cell-resolver ping-pong — NOT collision. The user APPROVED the PRINCIPLED P1 fix (demote
|
||||||
|
ResolveCellId / swept curr_cell as per-frame authority), NOT a stickiness band-aid.
|
||||||
|
|
||||||
|
READ FIRST (in order):
|
||||||
|
1. docs/research/2026-06-04-p2-cellar-corner-stepup-handoff.md — RE-DIAGNOSIS banner + full evidence.
|
||||||
|
2. memory/project_p2_door_stepup_findings.md — RE-DIAGNOSIS 2026-06-04 entry + shipped fixes + do-not.
|
||||||
|
3. memory/project_retail_membership_criterion.md — P1 membership context (swept curr_cell pick).
|
||||||
|
4. docs/superpowers/specs/2026-06-03-verbatim-spatial-pipeline-port-master-plan.md — §A membership
|
||||||
|
A1–A9, §1 KEEP/REPLACE/DELETE (ResolveCellId -> spawn/teleport seed; per-frame from swept curr_cell),
|
||||||
|
parked (a)–(d).
|
||||||
|
|
||||||
|
THE FINDING (evidence): at the Holtburg cottage cellar-top lip (3-cell junction), acdream step-up
|
||||||
|
SUCCEEDS — lands CheckPos on the cottage floor (Z=94.0, normal (0,0,1)) 220/518 times, matching retail.
|
||||||
|
But committed CurPos never advances (stays on the ramp ~(…,9.70,93.41)); every success is REVERTED
|
||||||
|
because the cell PING-PONGS every tick (0xA9B40175<->0174<->0171, [cell-transit] reason=resolver) -> the
|
||||||
|
floor-landing is validated against the wrong cell + rejected. Retail (cdb) is smooth: step_up + contact
|
||||||
|
plane transitions ramp N.z=0.78 -> flat floor N.z=1.0 (76 landings), no cell ping-pong. This CONTRADICTS
|
||||||
|
P1's claim that ResolveCellId was demoted out of the per-frame path.
|
||||||
|
|
||||||
|
THE JOB (evidence-first; do NOT guess):
|
||||||
|
1. PIN the exact code path producing the per-frame [cell-transit] reason=resolver ping-pong at the lip
|
||||||
|
(is it PhysicsEngine.ResolveCellId despite P1's demotion claim, the swept advance, or
|
||||||
|
PlayerMovementController.UpdateCellId/UpdatePlayerCurrCell?), and CONFIRM the resolver flip CAUSES the
|
||||||
|
step-up commit-rejection (re-validation against the flipped cell) vs being a symptom.
|
||||||
|
2. PORT THE PRINCIPLED P1 FIX: make the swept curr_cell (find_cell_list pick over the uniform candidate
|
||||||
|
set) the per-frame membership authority at this junction; demote ResolveCellId to spawn/teleport seed.
|
||||||
|
Retail anchors: A1 CObjCell::find_cell_list 0x52b4e0 pc:308742; A8 change_cell/SetPositionInternal
|
||||||
|
0x513390/0x515330; A7 transitional_insert/validate_transition/check_other_cells. The cell must NOT
|
||||||
|
flip out from under a committed step-up. NO stickiness band-aid.
|
||||||
|
3. RED->GREEN: deterministic test for the lip junction (cell stable after step-up) + keep B1/B2/B3/door
|
||||||
|
tests green. USER VISUAL GATE: cellar ascent clean (no wedge); door still blocks; generic step-up climbs.
|
||||||
|
|
||||||
|
APPARATUS (in the worktree):
|
||||||
|
- acdream captures: acdream-corner-capture.jsonl (lip wedge: step-up-works + cell ping-pong),
|
||||||
|
cellar-up-capture-v2.jsonl, cellar-up-capture.jsonl (JSON Lines, ACDREAM_CAPTURE_RESOLVE, IsPlayer).
|
||||||
|
- Retail cdb: cellar-corner-retail.log + tools/cdb/cellar-corner-escape.cdb. Decode: parse_corner_log.py
|
||||||
|
/ tools/cdb/decode_retail_hex.py.
|
||||||
|
- Probes: ACDREAM_PROBE_CELL=1 ([cell-transit]), ACDREAM_DUMP_STEPUP=1 (stepup:), ACDREAM_PROBE_RESOLVE=1
|
||||||
|
([resolve]), ACDREAM_CAPTURE_RESOLVE=<path>. Live launch per CLAUDE.md "Running the client".
|
||||||
|
- cdb on retail at the lip (break CObjCell::find_cell_list / change_cell / SetPositionInternal) if the
|
||||||
|
decomp is ambiguous. PDB matches; tools/cdb/. Lower the trace threshold (~3000) so it auto-detaches in
|
||||||
|
one wedge.
|
||||||
|
|
||||||
|
DO NOT: re-investigate B1/slide_sphere (shipped, correct); add a ResolveCellId stickiness/suppression
|
||||||
|
band-aid (user chose principled); flip Apparatus_Grounded_50cmOffCenter to Assert.True(blocked)
|
||||||
|
(synthetic-floor artifact); guess.
|
||||||
|
|
||||||
|
TEST BASELINE: Core 1310 pass / 4 fail / 1 skip (the 4: Apparatus_Grounded_50cmOffCenter [synthetic-floor
|
||||||
|
artifact], 2x DoorBugTrajectoryReplay LiveCompare_* [captured-buggy-live, re-baseline], BSPStepUpTests.D4
|
||||||
|
[airborne Path 6, separate]); App 177 green. Branch HEAD: 664101f (+ this commit).
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue