docs(overhaul): stop S4 c3a after final review

This commit is contained in:
Erik 2026-09-04 14:22:50 +02:00
parent 5c9da6fc25
commit 06b986622b
3 changed files with 88 additions and 19 deletions

View file

@ -1,10 +1,10 @@
# Campaign OVERHAUL v2 — hand-off after S4 chunk 2 landing (2026-09-04)
# Campaign OVERHAUL v2 — hand-off after S4-c3a stop (2026-09-04)
**2026-09-04 current state:** the §13/§15 stops and packet §16 attempts remain
the audit record. Owner-authorized attempt 2 passed both sequential reviews
and the complete S4-c2 stack is LANDED on the campaign branch through
`252886e84`. Packet §17 and this file's §3 are binding; earlier “review then
land” instructions are history only. G3/G4 remain unpassed.
**2026-09-04 current state:** S4-c2 remains LANDED through `252886e84`.
S4-c3a exhausted owner attempts 35 and is **STOPPED UNLANDED** by the mandatory
third-round rule; packet §19 is the exact record. The clean scratch candidate
is `359061b82`, but nothing from it lands. c3b is locked and G3/G4 remain
unpassed. Resume only after an explicit owner process change.
## 0. Read order
@ -21,7 +21,8 @@ land” instructions are history only. G3/G4 remain unpassed.
`feedback_every_new_pin_must_be_shown_to_fail`,
`feedback_skip_ab_before_theorizing`, `feedback_verify_subagent_claims_against_source`,
`feedback_agent_worktree_base`, `feedback_soak_numbers_need_same_session_type`).
4. `docs/research/2026-09-01-overhaul/s4-depth-alpha-packet.md`**§8 = the
4. `docs/research/2026-09-01-overhaul/s4-depth-alpha-packet.md`**§19 = the
binding S4-c3a stop record**; §18 = its contract; **§8 = the
S4-c2 contract; §11 + §11.1 = the fix round 1 contract (M1M8, A1A8)**;
§10 (the implementer's landing note) lives only in the chunk commit in
worktree `s4-c2-impl` until the cherry-pick; §1§4 what remains of S4.
@ -55,6 +56,7 @@ Scratch worktrees (detached):
| Worktree | At | Purpose |
|---|---|---|
| `s4-c2-impl` | `daaeab0ba` on `c4cbc1d0d` / `cc8e5677a` / `048d5b12f`; clean | retained immutable review source for landed attempt 2; both sequential lenses PASS |
| `s4-c3a-impl` | `359061b82` on the five-commit scratch stack; clean | **STOPPED UNLANDED** after final retail PASS / production gate-honesty FAIL; immutable audit source, do not cherry-pick |
| `s4-c1-impl` | `9ba8f013e` | retained S4-c1 baseline binary and same-session stationary-soak evidence |
| `s2-final-ab` | `78068b2c` | S2-final binary for same-session perf A/B (keep) |
| `s3-review-fix` | `6575cfcee` | pre-S4 control build; stalls at the foundry login (#462) — not usable as a control |
@ -104,9 +106,8 @@ The reviewed implementation is `daaeab0ba`; the complete campaign stack is
`89f1e2676``9ccb61a8e``0aa166aa0``252886e84`. Retail/evidence PASS
preceded production/gate-honesty PASS. Fresh campaign build, focused, shader,
allocation, graphical, and same-session stationary A/B gates pass as recorded
below and in packet §17. Three of the five additional attempts remain unused.
S4-c2 is closed. Next is packet §18's S4-c3a upstream-order repair,
followed by a fresh S4-c3b deletion contract from the repaired landed code.
below and in packet §17. S4-c2 is closed. The remaining three owner attempts
were consumed by S4-c3a and its two fix rounds; packet §19 is the binding stop.
**Historical state before the final round (kept for audit; do not execute its
landing procedure):**
@ -156,14 +157,12 @@ memory 17.7 MiB. G3/G4 remain unpassed.
## 4. After chunk 2
1. **S4 chunk 3 — corrected into c3a order + c3b deletions.** The fresh landed
audit found the plan's chunk-2 `CShadowPart::insertion_sort` item is missing:
production feeds the correct FIFO in registry/static-then-dynamic/particle-
tail order, not stable per-cell CYpt order. Packet §18 is c3a's binding
contract: port the upstream object/particle order first. Only after dual
review and landing does the lead write c3b to delete proven dead camera/
sort-center residue and re-check `AlphaFlushCounts_*` plus AP-238/AP-240.
Packet §4's 2026-09-03 deletion guess is explicitly not dispatchable.
1. **S4-c3a is STOPPED UNLANDED; c3b is locked.** Attempts 35 produced a
retail-correct, production-green scratch renderer, but the final production
lens caught one false mutation-first-failure sentence. Correcting it is the
forbidden third c3a fix round. Packet §19 has the commits, review history,
gates, and exact stop reason. Do not cherry-pick `359061b82`, write c3b, or
start G3 without an explicit owner process change.
2. **G3 — S4's owner gate:** the lead runs `route-g3.txt` (13 matrix shots),
`route-g3b.txt` (the capture poses; pose 15 now outdoors), `route-g3c.txt`
(Nanto ×3, 300 s waits) with `pwsh -File tools/overhaul-selfgate/run-selfgate.ps1 -Label <l> -Route <file>`

View file

@ -1348,3 +1348,73 @@ isolation, two-list FIFO preservation, allocation/bounds/rollback, mutations,
register count, allowed files, and every gate claim. A failed lens gets one
bounded fix contract; a third fix round stops and is written up. Dual PASS
lands c3a; the lead then writes c3b's deletion-only contract from that code.
## 19. S4-c3a stop record — owner attempts 35 exhausted (2026-09-04)
**STOPPED UNLANDED.** The clean scratch worktree
`C:\Users\erikn\source\repos\acdream\.claude\worktrees\s4-c3a-impl`
ends at `359061b8299dd77a2335935868b739b8295b9b0c`. Nothing from c3a was
cherry-picked to the campaign branch; the campaign renderer remains the
reviewed S4-c2 stack through `252886e84`, with this §18 contract at
`5c9da6fc2`. c3b is locked and G3/G4 remain unpassed.
The complete unlanded scratch stack is:
1. `44e2bc227b` — initial c3a implementation;
2. `b6bf6c131` — lead fix-round-1 contract;
3. `eea5793d2` — fix round 1;
4. `14397b14c` — lead fix-round-2 contract, explicitly the last round;
5. `359061b82` — fix round 2.
Attempt 3 failed the retail lens because billboard/mode-25 particles keyed
CYpt from their rendered/AABB center instead of the GfxObj-authored
`sort_center`; the same lens found one stale static-record-order comment.
Fix round 1 separated authored and visual centers, applied particle scale and
orientation to the authored point, made prepared payload reservation lazy,
rolled back false/exception append exactly once, bounded preparation to 3,000
CLIP plus 3,000 ALPHA candidates, and corrected the prose.
Attempt 4 failed the retail re-review on one universal edge: a successfully
decoded real GfxObj with no Surface DID was replaced by
`ParticleGfxInfo.Default`, discarding its authored center. The installed scan
found zero practical exposure (2,051 emitter records / 360 referenced GfxObjs,
all with a nonzero first Surface DID), but retail's CYpt read is surface-
independent. Fix round 2 preserved the decoded record and made only texture
acquisition conditional; it also corrected the synthetic-fixture evidence
wording.
Attempt 5's final retail lens **PASSED**. It reconfirmed the paired executable
and PDB, `CPhysicsPart::UpdateViewerDistance @0x0050E030`, stable descending
per-cell order, combined static/dynamic membership, the real object/particle
merge, building separation, unchanged two-list FIFO/router/row-5 behavior,
and AP-241/AP-242/AP-243 truth/count in the scratch stack. Its focused
reproduction passed 117/117.
The final production/gate-honesty lens found no production, lifecycle,
allocation, scope, register, or retained-memory defect. It nevertheless
returned **FAIL** on one mandatory evidence error. The initial candidate's
mutation ledger says renaming AP-241 first fails `Assert.Single`. The unchanged
pin actually computes `rowIndex == -1` and first fails the earlier AP-section
boundary `Assert.True` in `WalkStaticStreamPopulatorTests.cs`; `Assert.Single`
is reached later. The other eighteen mutation claims match their actual first
assertions. Correcting that sentence would be a third c3a fix round, forbidden
by plan §5, packet §18.6, and the owner's explicit attempt limit. Therefore no
evidence-only correction, landing, graphical gate, or c3b contract follows.
Final read-only evidence on `359061b82`:
- Release solution: 0 warnings / 0 errors;
- focused §19 lane: 95/95; no-surface target: 1/1; final retail superset:
117/117;
- AP boundary/count pin: 1/1; physical and unique AP counts: 162;
- real allocation pins: 2/2 at 0 managed bytes;
- shader/manifest/SPIR-V: 32/32;
- one-shot hermetic artifact: 16,751 passed / 0 skipped / 0 failed at
`%TEMP%\acdream-s4-c3a-fix1-20260904-2215`;
- inclusive InstalledDat artifact: 385 passed / 10 documented failures / 1
skip at `%TEMP%\acdream-s4-c3a-fix1-installed-inclusive-20260904-2222`;
- `git diff --check`: PASS; scratch HEAD clean; no graphical client launched.
Resume only after an explicit owner process change. The minimum mechanical
correction is known, but the stop rule exists precisely to prevent a green
renderer from bypassing a failed evidence contract.