GENERATED VIEW · PRIVATE ARCHIVE · DO NOT SERVE
RobCo Industries · Archive Museum

AUDIT_nv_armor_chems.md



RELEASE

planning/2.8.5/audits/FNV/AUDIT_nv_armor_chems.md

sha256 d330e4b760ccfd04 · 8532 bytes · original held in the private archive

# Independent Audit — NV armor / chems / bestiary correction (commit `fbc0c5c`) **Protocol 8 stage-3 audit · Opus · branch `dev` · 2026-07-15** **Method:** started from the diff + the LIVE fallout.wiki apparel & consumables master tables (Chrome tools; WebFetch is 403-blocked). Did NOT read the implementer's report or trust the sweep. Re-verified a sample against the wiki myself and reproduced the guard red-then-green on the real data. --- ## VERDICT: ✅ PASS The spot-checked armor and chem values match the live wiki **exactly**. The Whiskey Rose removal is correct (it's a companion perk, not a drink). The UNVERIFIED rows were genuinely left alone / left out of the pin — nothing fabricated, nothing silently pinned as canonical. The guard goes red-then-green on real data. 3270 tests pass, tree clean, everything outside armor/chems untouched. --- ## 1. ⭐ Do the corrected values match the live wiki? — YES, every one **Armor (DT / Weight / Value vs the "New Vegas Apparel" master table)** — I checked ~25 rows across Light/Medium/Heavy; all match: | Armor | New DB | Wiki | Match | |---|---|---|---| | **Combat Armor** | 15/25/**6500** | 15/25/6500 | ✅ (was 3900) | | **Chinese Stealth Armor** | **12/20/500** | 12/20/500 | ✅ (was 16/25/7000) | | **Enclave Power Armor** | **32/45/780** | 32/45/780 | ✅ (was 28/45/12000) | | Combat Armor Reinforced | 17/25/8000 | 17/25/8000 | ✅ | | NCR Trooper Armor | 10/26/300 | 10/26/300 | ✅ (wt 26 is right) | | Legate's Armor | 15/45/250 | 15/45/250 | ✅ (was 28/40/15000) | | Caesar's Armor | 5/3/1500 | 5/3/1500 | ✅ | | Metal Armor | 12/30/1100 | 12/30/1100 | ✅ | | Remnants Power Armor | 28/45/6500 | 28/45/6500 | ✅ (was 12000) | | Gannon Family Tesla | 26/35/8194 | 26/35/8194 | ✅ | | Tesla Armor | 20/45/6600 | 20/45/6600 | ✅ | | Sierra Madre Armor | 16/15/400 | 16/15/400 | ✅ | | Space Suit | 10/7/800 | 10/7/800 | ✅ | **Chems / consumables (Value / Weight vs the "New Vegas Consumables" master table)** — I checked ~40 rows (chems + food + drink); all match: | Item | New DB (val/wt) | Wiki (wt/val) | Match | |---|---|---|---| | **Stimpak** | 75/**0** | 0/75 | ✅ (was 20/0.5) | | Super Stimpak | 150/0 | 0/150 | ✅ | | Antivenom | 25/0 | 0/25 | ✅ (was 75) | | Doctor's Bag | 55/1 | 1/55 | ✅ (was 250/2) | | Ultrajet | 50/0 | 0/50 | ✅ (was 150) | | Ant Nectar | 20/0.25 | 0.25/20 | ✅ | | Healing Powder | 5/0.03 | 0.03/5 | ✅ | | Nuka-Cola | 20/1 | 1/20 | ✅ (was 5/0.5) | | Brahmin Steak | 5/0.8 | 0.8/5 | ✅ | | Xander Root | 0/0.02 | 0.02/0 | ✅ | **The "NV chems are weightless" claim is TRUE on the wiki, not assumed.** The consumables "Chems and Aid" section explicitly lists weight **0** for Stimpak, Buffout, Med-X, Psycho, RadAway, Rad-X, Jet, Mentats, Hydra, Fixer, Turbo, Steady, etc. The old blanket 0.5 was a placeholder. Crucially the non-zero ones were NOT blanket-zeroed — Doctor's Bag (1), Blood Shield (0.5), Ant Nectar (0.25), Healing Powder (0.03), and all foods/drinks (1) kept their real weights. **Conclusion:** this is a genuine, high-accuracy re-source — not a relabel. Every value I independently pulled from the live wiki matched the new DB. ## 2. Whiskey Rose + UNVERIFIED discipline — correct - **Whiskey Rose removal is right.** It does NOT appear anywhere in the wiki consumables list. It's Cass's companion perk (the DB's old effect "+1 STR / DT vs Energy" is literally the perk's effect). Removed from `CHEMS.CSV` (now 75 rows); its legit `{ name: 'Whiskey Rose', type: 'companion' }` entry survives untouched in `reg_nv.js` (line 934 — reg_nv.js isn't in the commit at all). ✅ - **Bestiary left byte-identical.** The diff has NO `[BESTIARY.CSV]` hunk, and a section hash of the parent vs commit confirms BESTIARY (and WEAPONS and AMMO) are byte-for-byte unchanged. The bestiary is guarded band-only (232.20/232.21), never pinned as canonical — honest, since FNV creature stats are level-scaled. ✅ - **UNVERIFIED armor rows not pinned as canonical.** The pin validator (`pinDrift232`) deliberately does NOT flag an unpinned "extra" row as drift (unlike the weapons pin), so UNVERIFIED rows are simply absent from the pin. The golden-master pins 83 verified rows; 21 rows (base-game headwear on the separate wiki page, plus anomalous/duplicate entries) are left out. I confirmed the pinned values against the wiki (including DLC headwear that DOES appear on the apparel page — Chalk's Headdress 1/3/150, Marked Beast helmets 3/3/800, Ulysses' Mask 3/2/250 — all correct). - **Minor nuance (not a defect):** the two **1st Recon** armors are described as "left at prior values" but their *value* was actually corrected 5000 → **300** (the real wiki value), while their *weight* was left at the prior 30 because the wiki's listed weight of `0` for heavy armor is clearly anomalous. The row is correctly **excluded from the pin** (its weight can't be wiki-verified). This is *more* honest than pinning — the verifiable fields were fixed, the unverifiable one wasn't guessed, and nothing false was pinned. Flagging only for completeness. - **Headwear (informational, per the brief):** base-game headwear (Boone's Beret, etc.) was scoped out, not "unavailable" — it lives on a separate wiki page. DLC headwear that appeared on the apparel master page WAS verified and pinned. A reasonable scope, not a gap. ## 3. Guard — reproduced red-then-green on the REAL data myself Injected `Combat Armor value 99999` + `Stimpak weight 5` into the real `js/data/db_nv.js`: - **232.16** (armor pin): `"Combat Armor Value expected 6500 got 99999"` — named - **232.18** (chems pin): `"Stimpak Weight expected 0 got 5"` — named - **232.20** (band): `"Combat Armor Value=99999 outside [0,16000]"` — named Correct layering: Stimpak weight 5 sits *inside* the chems band [0,5], so only the golden-master pin caught it — exactly why both a pin and a band exist. Restored from git → **ALL 3270 TESTS PASSED**, tree clean. **Band sanity:** 232.20 passes GREEN, so no legit value false-trips (armor value ceiling 16000 clears the real max Elite Riot Gear 12500; chems value 300 clears the real max 150; DT 40 clears real max 35; weights clear real maxes). The bands are coarse sane-bounds backstops (a wrong-but-plausible value like the old Legate's 15000 slips the band but is caught by the precise pin) and the RED test proves they catch gross violations. Reasonable, not too loose. ## ALSO VERIFIED - **Everything outside armor/chems untouched** — db_nv.js WEAPONS/BESTIARY/AMMO sections byte-identical (hash-checked); `db_fo3.js` / `reg_fo3.js` / `reg_nv.js` not in the commit → FO3, NV weapons, NV registry, and the snow globes are all untouched. ✅ - **Test count 3263 → 3270, nothing weakened.** Suite 232 +7 (232.16–232.22). Suite 80.a changed `=== 76` → `=== 75`: this is a **correction** to a strict equality reflecting the removed fake row, not a loosening — and 232.19 independently re-asserts `count === 75` + Whiskey Rose absent. I found no old-value pin that was loosened or deleted to dodge a failure (armor/chems had no value pins before this commit — these are the first). ✅ - **Chinese Stealth Armor effects-leak:** the DB keeps the FO3 "+10 Sneak / Auto-Stealth" effects text while the FNV item really grants only Sneak +5. This is a **documented PARKED-column note** in the new header (Effects NOT re-sourced), explicitly called out — a known note, **not a broken change**. DT/Weight/Value are correct. ✅ - **Correct-then-cite (Protocol 3):** the false blanket header is replaced with a dated, scoped provenance note naming the two master tables, the PARKED columns NOT re-sourced, the UNVERIFIED bestiary, and the Whiskey Rose removal. Guarded by 232.22. ✅ - **Protocol 1:** CACHE_NAME `r37 → r38`; APP_VERSION `2.8.0` (unchanged — correct on dev, cache-rev-only for a data fix). ✅ - **Protocol 2/2a:** docs synced; no stale `3263` in any tracked doc; `3270` present in CLAUDE.md / README.md / RULES.md / ARCHITECTURE.md; CHANGELOG `[Unreleased]` header `3270/3270 | …r38` with a plain-English entry that honestly describes the UNVERIFIED handling. ✅ - **Protocol 38 / 41:** change is NV-only (per-game separation intact); no junk files at root. ✅ --- **Bottom line:** independently re-verified against the live wiki, the armor and chem numbers are right, the Whiskey Rose fake is correctly gone, the unverifiable rows were honestly left alone rather than guessed, and the guard is real. Ship it.
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).