RELEASE
planning/2.8.5/audits/FO3/AUDIT_FO3_U6.md
sha256 65aece808e2e85c8 · 11852 bytes ·
original held in the private archive
# FO3 PIP-BOY — UNIT U6 · PROTOCOL 8 STAGE 3 (INDEPENDENT AUDIT)
**Auditor:** Opus (stage 3 — independent audit). **No code changed. No commit. No push.**
**Commit audited:** `392c8fc` on `dev` (the later `01093bf` CI commit was ignored, as instructed).
**Method:** started from the diff, not the implementer's report. Captured my own Playwright
screenshots at FO3 780×360 / portrait / desktop and NV at 360 / 412 / 780×360 / desktop, opened
and looked at every one, compared them against the approved mockup renders, ran the test suite
myself, and independently reproduced two of the five render-integrity red-then-green demos.
**Verdict: BACK TO STAGE 2.** Specific list at the bottom.
---
## THE ONE-LINE ANSWER (for the phone)
**Does the glass read as a Pip-Boy honestly now? Almost — but not honestly yet.** The casing,
the domed lamps, the fill bars, the dashed damaged-limb look, and the all-green discipline all
land, and it is clearly no longer a re-coloured New Vegas layout. But the label at the top of the
screen **lies about which screen you're on** on two of the three screens, the changelog makes a
claim about that label that is simply **false**, the character screen's right-hand health column
still stacks like the old layout instead of the mockup, and the cargo screen is still busier than
the mockup. So: real progress, genuinely good bones — but it needs one more pass before it's done.
---
## WHAT THE IMPLEMENTER GOT RIGHT (independently verified)
- **The owner's scroll bug is actually fixed.** I reintroduced the old trap myself and watched the
screen refuse to scroll again (the new guard went red and named the exact element); with the fix
in place a real finger-drag on the collectibles glass scrolls the board. This was root cause #1
and it's genuinely solved.
- **The "stuck drag" corruption bug is fixed** on all three surfaces (health / XP / radiation) — a
cancelled gesture no longer leaves a stat silently rewriting itself on your next tap.
- **The new automated screen-check is real and it works.** The house rule is "a check isn't a
check until you've seen it fail." I independently re-broke two of the five bugs (the scroll trap
and the two-digit skill clip) and watched the check go red and name the right element, then green
again when reverted. This is a legitimate, operational safety net — a genuine win.
- **The two-digit skill value ("15" not "1") is fixed** — confirmed on screen.
- **The ugly white search box is fixed** — it's now dark green on both the cargo and perk screens.
- **The stray amber tint on the mission/faction screen is fixed** — it's all green now.
- **The Vault Boy figure reflects limb damage** — a damaged limb goes dashed and shows a CRIPPLED
label, driven off the same data the health toggles use. Confirmed working.
- **The casing (left rail, right column, hood, three-lamp bar) is there** and the three side
controls were positioned onto it without being moved in the page — tab order / hotkeys / links
are intact.
- **New Vegas is untouched** — verified at every size; no casing, no layout change, no overflow.
- **Fallout 3 portrait is untouched** — still the legacy flat view, with no stray leftover strip
or tab rail (a bug the plan specifically warned to check for; it's clean).
- **The plumbing is honest where it counts:** all 3185 tests pass (I ran them), the test count is
synced across every doc, the cache was bumped, all the Fallout-3 styling is correctly walled off
from other games, and **no existing test was secretly weakened to force a pass** — the five
changed assertions are all legitimately updated and each one is declared.
---
## WHAT IT CLAIMED BUT DID NOT DELIVER (found by looking at the pixels)
### 🔴 A · [HIGH] The top-of-screen label lies about which screen you're on — and the changelog says the opposite
The changelog states: *"the top readout strip now leads with the name of whichever screen you're
currently on."* **This is false.** The label is stuck on **STATS**. Tap over to ITEMS (the cargo
screen) and the strip still says **STATS**; tap to DATA and it still says STATS. It only ever reads
correctly on the character screen it happens to start on.
- I confirmed this three ways: the screenshot of the cargo screen shows "STATS" while the ITEMS
lamp is lit; a direct probe shows the label stays "STATS" on every subsystem; and I traced the
cause in code — switching screens never re-draws that label (only editing a stat like HP does).
- The automated check passes anyway, because it only verifies the label **exists**, not that it's
**correct**. This is the exact blind spot the whole feature was supposed to teach us about: a
control that is present, visible, and readable can still be **wrong**.
- **This is a shipped functional bug paired with a false user-facing changelog line** — precisely
the kind of overstatement this audit stage exists to catch. On its own it warrants a bounce.
### 🟠 B · [MED] The new screen-check covers far less than advertised
The new check's own file header says it runs *"the full 12-load matrix (~85s)."* It does not. It
runs **one** setup: Fallout 3, one screen size (780×360), one populated save. It does **not** check
Fallout 3 portrait, Fallout 3 desktop, **New Vegas at any size**, or the empty-inventory state —
all of which the plan explicitly asked the check to cover. So the safety net that's supposed to
stop a New-Vegas regression, or an empty-screen breakage, **cannot see those cases at all**. The
check is good; the claim about its reach is overstated, and its own header is inaccurate.
### 🟠 C · [MED] The character screen's health column still looks like the old layout, not the mockup
The plan called for rebuilding the right-hand column (HP / radiation / active effects) into the
mockup's compact shape. That wasn't done. It still shows the tall old stack — HP bar, a
two-box "22 / 100" row, up/down buttons, "CRITICAL", then the level/XP block — which pushes
**RADIATION EXPOSURE and ACTIVE EFFECTS off the bottom of the screen**. In the mockup all three sit
compactly and visible at once. Nothing is lost (you can scroll to it), but the owner's actual
complaint — "it doesn't match the mockup fully yet" — is not closed on this column.
### 🟠 D · [MED] The damaged-limb colour was changed from the approved mockup — needs your say-so
The approved mockup shows a crippled limb in **red**. The shipped version makes it **dashed green
with a CRIPPLED label — no red at all.** The commit says this was an owner correction mid-build
from "real Fallout 3 reference screenshots." That may well be right (and it reads fine — the word
CRIPPLED carries the meaning, so it's accessible, and it's arguably more true to the game). **But I
can't confirm you actually approved it,** and it's a visible departure from the design this audit
was told to check against, made after the spec was supposed to be locked. One line from you settles
it. (Minor: the label wording is inconsistent — the box says "CRIP", the figure says "CRIPPLED",
the mockup said "CRPL".)
### 🟡 E · [LOW–MED] Density is better but still short of the mockup on two screens
- **S.P.E.C.I.A.L.** fits **6 of 7** rows (LUCK is below the fold); the mockup fits all 7. The
changelog is honest about this ("six of seven"), so it's disclosed, not hidden.
- **Cargo (MANIFEST)** still shows a "WEAPONS DRAWER" label and a big full-width "FILTER DRAWER
(OPTIONAL)…" row that the mockup doesn't have, leaving only about **2–3 item rows** visible where
the mockup (and the plan's own target) show 6. There's also no "ALL" drawer button, and the
drawer tabs use long words ("WEAPONS") instead of the mockup's short ones ("WPN"). Improved over
U5, but not to the mockup.
### 🟡 F · [LOW] The left rail art is sparser than the mockup
The gauge, vent, slider and knob are there, but the embossed "Pip-Boy" script and "MODEL 3000" text
are so faint they're effectively invisible. Cosmetic; the rail still reads as a rail.
### 🟡 G · [LOW] Two accuracy nits in the commit's own notes
- The commit says it "fixed **six** pre-existing test assertions" — only **five** were actually
changed. The sixth it names ("an unscoped @keyframes") is a *new* animation guarded by a *new*
test, not a fixed old one; and the assertion it actually did change (the skill-box width) isn't
in its list. Internal only, not user-facing.
- The new check's occlusion test is slightly looser than the plan asked (it lets an "ancestor hit"
pass, which the plan said should fail) — a small blind spot, not a live bug today.
### ℹ️ Deferred, not missed
The Fallout 3 **desktop** view still squeezes the glass because the AI-channel column stacks under
it. The plan **explicitly deferred** this to its own unit, so it's a known gap, not a regression.
---
## ANYTHING WEAKENED OR BROKEN?
- **Weakened tests:** No covert weakening. Five assertions changed; every one is a legitimate
update to match the new code, and each is declared in a comment. One (the panel-persistence
check) is slightly looser than before, but the change is declared and justified. This is the
cleanest possible outcome for the highest-risk thing this audit looks for.
- **Broken:** The top-strip label bug (finding A) is the only outright functional break. Nothing
regressed in New Vegas or in Fallout 3 portrait.
## WHAT THE NEW SCREEN-CHECK STILL CAN'T CATCH (so nobody over-trusts it)
It proves nothing is hidden, cut off, too faint, or unreachable — on the six Fallout 3 landscape
boards it actually loads. It **cannot** tell you a control shows the **wrong text** (the STATS-label
bug is live proof it sailed straight through), the wrong colour when contrast is fine, the wrong
density (40px vs 29px rows), or that something is visually buried under a decorative layer. And it
can't catch anything on New Vegas, portrait, desktop, or empty screens, because it never loads them.
The last mile of "is it beautiful and correct?" is still a human pass — which is the point.
---
## THE SPECIFIC LIST FOR STAGE 2
1. **Fix the top-strip label** so it updates when you switch subsystems (call the strip re-render
from the subsystem-switch path, not only from stat changes), **and correct the changelog line**
— or remove the claim until it's true. Add a test that checks the label's **value**, not just
its presence.
2. **Either broaden the screen-check to the matrix the plan specified** (Fallout 3 portrait +
desktop, New Vegas at its three sizes, and an empty save) **or fix the file header** so it no
longer claims a 12-load matrix it doesn't run — and say plainly in the commit what it does and
doesn't cover.
3. **Finish the character-screen right column** to the mockup's compact shape so radiation and
active effects are visible without scrolling (finding C).
4. **Get owner confirmation on the dashed-green (not red) crippled treatment** (finding D), and
make the CRIP / CRIPPLED / CRPL wording consistent.
5. **Tighten cargo (MANIFEST) density** toward the mockup — drop or inline the filter row, add the
ALL drawer, aim for ~6 visible rows (finding E).
6. Minor: correct the "six assertions" note, and consider closing the occlusion blind spot
(finding G); optionally strengthen the faint left-rail script (finding F).
Keep everything in "What the implementer got right" — the scroll fix, the drag-cancel fix, the
operational screen-check, the white-bar / amber / skill-clip fixes, the casing, the Vault Boy
damage wiring, and the untouched New Vegas. Those are solid and should carry forward unchanged.
---
*End of Stage 3. No code was changed, no commit made, no push. Evidence screenshots are saved as
`planning/mockups/fo3/audit-u6-*.png` (gitignored).*
STAMP · generated for RELEASE v2.8.5 commit 06e5180 (06e51801b38a) · archive input-tree hash c07fbfbdd2e1ddeb · 754 files · no wall-clock timestamp (regenerates identically when nothing changed).