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

CONTENT_AUDIT.md



RELEASE

planning/2.8.0/audits/CONTENT_AUDIT.md

sha256 b1d938a7dba8de91 · 35740 bytes · original held in the private archive

# CONTENT_AUDIT.md — RobCo U.O.S. v2.6.0 > **FILED UNDER 2.8.0 — PRODUCED-BY, NOT MEASURED-VERSION.** This document *measures* the earlier v2.6.0/v2.7.0 > codebase, but it was *produced* as a stage of the PARKED-CHAIN audit sequence — the analysis phase that became > the 2.8.0 overhaul. Planning artifacts are filed by the release whose work produced them, never by the version > they discuss. The version in the title is the code it audited, not the folder it belongs in. > Stage A3 of the PARKED-CHAIN audit sequence. PLAN-ONLY. Nothing here is implemented or committed. > Companion docs: HOUSE_STANDARD.md (A0), DIEGETIC_AUDIT.md (A0), PERFORMANCE_AUDIT.md (A1), ACCESSIBILITY_AUDIT.md (A2). > Target: bc8c2eb (v2.6.0-r1, 1078 tests). Sourcing standard: fallout.wiki only. --- ## Already Shipped (Phase 6 baseline — not re-audited here) Phase 6 (v2.5.0-r25 through v2.6.0) already expanded: - NV VENDORS.CSV: 14 → 39 merchants - FO3 locations: 57 → 90 - CHEMS.CSV (both games): 40 → 76 NV; FO3 added - FO3 ARMOR.CSV: 32 → 62 - FO3 quests: 44 → 64 (with DLC add-ons) - QUEST_ITEMS: 15 → 25 - NV crafting: 25 recipes + 12 breakdowns - FO3 crafting: 7 workbench schematics - Skill books tracker: 13 per game (wired to SKILL_KEYS) - NV Skill Magazines tracker: 14 entries (all skill keys correct) - NV locations: ≥108 (109 confirmed) This audit focuses on remaining gaps, accuracy issues, and cross-system parity problems found in the current v2.6.0 codebase. --- ## Two Content Systems (Architecture Reference) | System | Files | Role | Parsed into | |---|---|---|---| | **databaseCSVs** | `js/db_nv.js`, `js/db_fo3.js` | Item stats: weight, value, DR, damage, etc. | `_itemCache` via `lookupItemInDb()` — AI and craft system read from this | | **FALLOUT_REGISTRY** | `js/reg_nv.js`, `js/reg_fo3.js` | Catalog: names, quests, perks, locations, zones, trackers, collectibles | Registry search, autocomplete, tracker render, AI directive | An item can exist in one and not the other. Missing from databaseCSVs = AI can't look up its stats. Missing from FALLOUT_REGISTRY = it won't autocomplete or appear in the tracker UI. --- ## Canon Suspects — Verified ### CS-1 · `'Fires of Anchorage'` — **CONFIRMED NON-CANON** (reg_fo3.js:62) ```js { name: 'Fires of Anchorage', type: 'side', dlc: null }, ``` "Fires of Anchorage" is **not a real Fallout 3 quest**. The Operation: Anchorage DLC contains exactly two quests: "Aiding the Outcasts" (line 74, present and correct) and "Operation: Anchorage!" (line 75, present and correct). "Fires of Anchorage" appears to be a hallucinated/fabricated entry with no basis in the game. Suite 82's dedup guard for `'Strictly Business'` would not catch this (different name). **Fix**: Remove the entry. Update Suite 82's FO3 quest count from 64 → 63 and both runners per Protocol 2a. **Verdict**: BUILD-NOW · `[CACHE][TEST]` · Severity: **HIGH** (canon error, actively shows in the QUEST LOG autocomplete as a fake quest). **Files**: `js/reg_fo3.js`, `tests/check-persistence.{js,ps1}`, `CHANGELOG.md`. --- ### CS-2 · `'Strictly Business (Paradise Falls)'` — **CONFIRMED FABRICATED DUPLICATE** (reg_fo3.js:59) ```js { name: 'Strictly Business', type: 'side', dlc: null }, // line 52 — REAL { name: 'Strictly Business (Paradise Falls)', type: 'side', dlc: null }, // line 59 — FAKE ``` "Strictly Business" is one real FO3 quest (a slaving mission involving Paradise Falls). No separate variant quest with the suffix `(Paradise Falls)` exists in the game. The "(Paradise Falls)" suffix variant is a fabricated duplicate. Suite 82's `'Strictly Business'` dedup guard tests that the exact string `'Strictly Business'` doesn't appear twice — the suffixed entry is a different string and evades that guard. **Fix**: Remove the `(Paradise Falls)` variant. Count stays at 63 after CS-1 fix (removing 2 from 64 → 62, but verify exact count since Suite 82 originally added the guard against 64 entries). Actually: original was 64, remove 2 → 62. Suite 82 and Protocol 2a must be updated accordingly. **Verdict**: BUILD-NOW · `[CACHE][TEST]` · Severity: **HIGH** (batch with CS-1 — same commit). **Files**: `js/reg_fo3.js`, `tests/check-persistence.{js,ps1}`. --- ## Part 1 — FO3 Database (db_fo3.js) **Sections confirmed**: WEAPONS (116 rows), AMMO (24 rows), ARMOR (62 rows), BESTIARY (66 rows), CHEMS (33 rows), MISC (17 rows), RECIPES (8 rows), QUEST_ITEMS (25 rows), VENDORS (8 rows). All 9 sections pass column-count integrity check. ### 1.1 Stat / Name Errors (WEAPONS.CSV) **FO3-DB-1 · Wazer Wifle wrong ammo type** (db_fo3.js:83) ``` Wazer Wifle,29,28,1.5,2.046,8,900,0,0,0,0,None,Microfusion Cell ``` The Wazer Wifle (unique Laser Rifle from FO3) uses **Energy Cells**, not Microfusion Cells. The standard Laser Rifle and all variants use Energy Cells. The Alien Blaster uses Alien Power Cells. Microfusion Cell is the wrong type. **Fix**: Change `Ammo_Type` to `Energy Cell`. Needs wiki sourcing to confirm DR/stats. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **HIGH** (wrong ammo type means `lookupItemInDb` returns incorrect data to the AI). **FO3-DB-2 · Lever-Action Rifle and Backwater Rifle wrong ammo** (db_fo3.js:106, 108) ``` Lever-Action Rifle,40,40,5.0,0.75,8,200,0,0,0,0,None,10mm Backwater Rifle,45,45,5.0,0.75,7,250,0,0,0,0,None,10mm ``` Both Point Lookout DLC rifles fire **.32 Caliber**, not 10mm. 10mm is a pistol caliber; these are lever-action rifles. The correct ammo is `.32 Caliber` (also used by the .32 Pistol in FO3). **Fix**: Change `Ammo_Type` to `.32 Caliber` for both rows. `.32 Caliber` is not in FO3 AMMO.CSV yet — adding these entries also requires an AMMO.CSV row for `.32 Caliber`. Needs wiki sourcing. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **HIGH** (both are significant Point Lookout weapons). **FO3-DB-3 · "O'cta Brain" — unverifiable weapon name** (db_fo3.js:65) ``` O'cta Brain,25,25,1.0,1.3,4,1500,0,5,0.8,30,Knockback,None ``` "O'cta Brain" does not match any known Fallout 3 weapon from fallout.wiki. The closest candidates are "Occam's Razor" (a unique knife, correctly present elsewhere) and Pitt DLC melee weapons (Auto Axe, Mauler). The name may be a garbled entry. **Fix**: Verify against fallout.wiki. If not found, remove. If it is a real weapon with a typo, correct the name. **Verdict**: SPEC-FIRST (needs wiki sourcing before removal) · Severity: **MEDIUM**. ### 1.2 NV Content Bleeding into FO3 Database **FO3-DB-4 · NCR Ranger Armor is an FNV item** (db_fo3.js:167) ``` NCR Ranger Armor,Medium,20,25,800,None,50% ``` The New California Republic has no presence in Fallout 3. "NCR Ranger Armor" is an FNV armor (NCR Ranger Patrol Armor / NCR Ranger Combat Armor). FO3 has "Ranger Battle Armor" (Reilly's Rangers) — that entry is correctly present separately. This row is an NV item that leaked into the FO3 database. **Fix**: Remove from db_fo3.js ARMOR.CSV. The NV variant belongs in db_nv.js (already present as `NCR Ranger Patrol Armor`). **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **HIGH** (NV armor showing in FO3 database, wrong game context). ### 1.3 Non-Canon Quest Item **FO3-DB-5 · The Water Chip is a Fallout 1/2 item** (db_fo3.js:358) ``` The Water Chip,A Dream of Hope (Vault 112),No,Vault 112 component — required for simulation exit,0.0 ``` The Water Chip does not exist in Fallout 3. It is the McGuffin of Fallout 1. The FO3 Vault 112 quest is "Tranquility Lane" (a VR simulation). There is no "A Dream of Hope" quest in FO3. Both the quest name and the item itself are non-canon fabrications. **Fix**: Remove this row. If a Vault 112 / Tranquility Lane item is desired, the real notable item from that questline is the "Button" (the dog house radio in the simulation). Needs wiki sourcing. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **HIGH** (fabricated item + fabricated quest name). ### 1.4 QUEST_ITEMS Accuracy Issues **FO3-DB-6 · "Bobblehead Hunt" is not a real FO3 quest** (db_fo3.js, Keller Family Transcripts row) ``` Keller Family Transcripts,Bobblehead Hunt,No,Five recordings revealing the experimental MIRV cache,0.0 ``` "Bobblehead Hunt" is not a named FO3 quest. The Keller Family Transcripts are 5 holotapes scattered across the wasteland; collecting all five leads to the Experimental MIRV at Fort Constantine. There is no associated named quest — it is an unmarked discovery. The item description is accurate; only the `Associated_Quest` field is wrong. **Fix**: Change `Associated_Quest` to `Unmarked — Fort Constantine Discovery` or leave blank. Needs wiki sourcing. **Verdict**: BUILD-NOW (one-field correction) · `[CACHE]` · Severity: **MEDIUM**. ### 1.5 MISC.CSV — Missing Recipe Components **FO3-DB-7 · 7 RECIPES.CSV components have no MISC.CSV entry** (db_fo3.js) The FO3 RECIPES.CSV references the following ingredient items that are completely absent from MISC.CSV: | Missing Item | Used In | |---|---| | Toy Car | Dart Gun | | Lawnmower Blade / Lawn Mower Blade | Shishkebab | | Motorcycle Gas Tank | Shishkebab | | Motorcycle Handbrake | Shishkebab | | Pressure Cooker | Railway Rifle | | Crutch | Railway Rifle | | Leaf Blower | Rock-It Launcher | | Vacuum Cleaner | Rock-It Launcher | | Conductor | Rock-It Launcher | | Firehose Nozzle | Rock-It Launcher | | Surgical Tubing | Dart Gun | | Paint Gun | Dart Gun | | Steam Gauge Assembly | Railway Rifle | | Pilot Light | Shishkebab | | Medical Brace | Deathclaw Gauntlet | `lookupItemInDb()` will return null for all these crafting components in FO3 sessions — the AI cannot give stats for them when the player is crafting. **Fix**: Add all 15 crafting component rows to MISC.CSV. All are real FO3 junk items with confirmed in-game weight/value on fallout.wiki. **Verdict**: BUILD-NOW (additive rows) · `[CACHE]` · Severity: **MEDIUM** (crafting quality-of-life gap; doesn't break anything but AI info is incomplete). **Files**: `js/db_fo3.js`. ### 1.6 FO3 VENDORS.CSV — Very Thin Coverage **FO3-DB-8 · FO3 VENDORS.CSV has only 8 entries** (db_fo3.js) By comparison, NV has 39. Major FO3 merchants missing: - Doc Hoff (roaming caravan) - Lucky Harith (roaming caravan) - Crazy Wolfgang (roaming caravan) — these 3 are the main roaming traders - Seagrave Holmes (Rivet City market) - Tulip (Underworld — present per existing data) — confirm - Knick Knack (Little Lamplight) - Moira Brown (Megaton — Craterside Supply) — primary mid-game merchant **Fix**: Expand with named FO3 vendors. Needs wiki sourcing for each vendor's base_caps and repair_skill. **Verdict**: BUILD-NOW (additive rows) · `[CACHE]` · Severity: **LOW** (functional but thin; AI can't reference most merchants by name). **Files**: `js/db_fo3.js`. --- ## Part 2 — FO3 Registry (reg_fo3.js) **Sections confirmed**: quests (64), items (~270), perks (62), locations (90), companions (8), collectibles (20), lincolnMemorabilia (9), zones (36), skillBooks (13), recipes (7), breakdowns (0). ### 2.1 Zone Naming Error **FO3-REG-1 · Zone at (r6,c4) incorrectly named "Vault 92"** (reg_fo3.js:952) ```js // Line 754 — CORRECT: the real Vault 92 zone { name: 'Vault 92', gridRow: 1, gridCol: 1, locations: ['Vault 92', 'National Guard Armory', ...] } // Line 952 — WRONG: zone name is "Vault 92" but locations are Bethesda/Calverton { name: 'Vault 92', gridRow: 6, gridCol: 4, locations: ['Vault 92 South', 'Calverton', 'Bethesda Ruins'] } ``` Two zones are both named "Vault 92". The zone at (r6,c4) is in the southeast of the Capital Wasteland near Bethesda Ruins and Calverton — the real Vault 92 is in the far northwest (r1,c1). The r6,c4 zone name should be `'Bethesda Ruins'` or `'Calverton'`. This also means the Lockpick bobblehead (assigned to `Bethesda Ruins — Offices East` at r6,c4) correctly renders in the right zone cell, but the zone label shown on the world map is wrong ("Vault 92" instead of "Bethesda Ruins"). **Fix**: Change the zone at r6,c4 `name` field to `'Bethesda Ruins'`. Needs wiki sourcing to confirm the canonical map region name. **Verdict**: BUILD-NOW · `[CACHE][TEST]` (Suite 74 verifies bobblehead coordinates — add a guard that zone names are unique; both runners). **Severity**: MEDIUM (visual map display shows wrong zone name). **Files**: `js/reg_fo3.js`. ### 2.2 Recipe Name Inconsistency **FO3-REG-2 · "Nuka-Grenade" hyphen mismatch** (reg_fo3.js) The recipe output in `recipes[]` is `'Nuka-Grenade'` (with hyphen) but the `items[]` entry is `'Nuka Grenade'` (without hyphen). If any code cross-references recipe outputs against item names, this will fail a lookup. **Fix**: Standardize one way (canon FO3 name is "Nuka-Grenade" with hyphen — update items entry to match). Needs wiki sourcing. **Verdict**: BUILD-NOW (one-character fix) · `[CACHE]` · Severity: **LOW**. ### 2.3 Collectible Typo **FO3-REG-3 · "EUOLOGY'S PAD" — typo in Speech bobblehead location** (reg_fo3.js, collectibles) The speech bobblehead entry reads `'PARADISE FALLS — EUOLOGY'S PAD'`. The NPC's name is **Eulogy Jones** — his pad is "Eulogy's Pad," not "Euology's Pad." **Fix**: Correct to `'PARADISE FALLS — EULOGY\'S PAD'`. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **LOW** (typo — displays in the collectibles tracker). ### 2.4 Quest Classification Issues **FO3-REG-4 · "Lesko's Journal" is a note/terminal, not a quest** (reg_fo3.js:61) ```js { name: "Lesko's Journal", type: 'side', dlc: null }, ``` "Lesko's Journal" is a terminal entry accessible in Doctor Lesko's lab in Grayditch, not a named quest. The related quest is "Those!" (present at line 45). This item belongs in `items[]` (as type `'misc'`), not in `quests[]`. **Fix**: Move to items[] or remove from quests[]. Verify on fallout.wiki. **Verdict**: BUILD-NOW · `[CACHE][TEST]` · Severity: **LOW** (appears in QUEST LOG autocomplete as a fake quest). **FO3-REG-5 · Type misclassification of unmarked quests** (reg_fo3.js) Two quests are classified `type: 'side'` but are technically unmarked quests (no quest marker, no Pip-Boy entry) per the wiki: - `'Strictly Business'` (line 52) — actually a side quest with a Pip-Boy entry; correct - `'Lincoln's Profit Margins'` (line 60) — unmarked quest, should be `type: 'unmarked'` - `'Searching for Cheryl'` (line 57) — minor/unmarked quest, should verify classification These are low-priority classification issues that affect filtering/display in the QUEST LOG panel. **Verdict**: SPEC-FIRST (quest type enum may need 'unmarked' to be added as a valid type if not already) · Severity: **LOW**. ### 2.5 Location Coverage Gaps **FO3-REG-6 · Bobblehead source locations absent from locations[]** (reg_fo3.js) Two bobblehead `location` fields reference places not in the `locations[]` array: - "Greener Pastures Disposal Site" (Agility bobblehead) - "Yao Guai Tunnels" (Sneak bobblehead) The world map zone assignment is correct (via gridRow/gridCol), but if the companion-app's location autocomplete is used to navigate to these areas, they won't appear in suggestions. **Fix**: Add both to `locations[]` with correct type (`landmark` / `cave`). **Verdict**: BUILD-NOW (additive entries) · `[CACHE]` · Severity: **LOW**. --- ## Part 3 — FNV Database (db_nv.js) **Sections confirmed**: WEAPONS (192 rows), AMMO (56 rows — 20 calibers × subtypes), ARMOR (103 rows), BESTIARY (66 rows), CHEMS (76 rows), MISC (21 rows), RECIPES (10 rows), QUEST_ITEMS (19 rows), VENDORS (39 rows), WEAPON_MODS (111 rows). All 10 sections pass column-count integrity check. ### 3.1 Stat Errors (ARMOR.CSV) **NV-DB-1 · Mysterious Stranger Outfit DT=55** (db_nv.js:351) ``` Mysterious Stranger Outfit,Clothing,55,3,40,None,— ``` The Mysterious Stranger Outfit is a Clothing item with **DT 0** in-game — it provides no damage resistance. DT 55 would make it more protective than Brotherhood T-51b Power Armor (DT 36). This is a clear data entry error. **Fix**: Change DT to `0`. Needs wiki sourcing to confirm all fields. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **HIGH** (wildly wrong stat corrupts AI advice). **NV-DB-2 · 1st Recon Assault Armor and 1st Recon Survival Armor typed as Heavy** (db_nv.js:313, 314) ``` 1st Recon Assault Armor,Heavy,22,30,5000,+5 Guns,50% 1st Recon Survival Armor,Heavy,22,30,5500,+5 Survival / +5 Medicine,50% ``` Both are **Medium** armors in-game (they are variants of Recon Armor, a Medium-tier armor family). Heavy armor classification is incorrect. **Fix**: Change `Type` to `Medium` for both rows. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **MEDIUM** (affects armor-type filtering in the UI). ### 3.2 Stat Errors (WEAPONS.CSV) **NV-DB-3 · Inflated crit multipliers** (db_nv.js:182, 196) ``` Cosmic Knife Super-Heated,14,14,5.0,3.0,1,50,0,1,0.6,25,Fire DoT,None Arc Welder,9,9,4.0,8.0,15,3700,0,7,0,0,Full Auto,Electron Charge Pack ``` - `Cosmic Knife Super-Heated`: Crit_Multiplier = **5.0**. Wiki value: **1.2x**. The 5.0 figure is ≈4× the actual value and is a clear data entry error. - `Arc Welder` (OWB DLC): Crit_Multiplier = **4.0**. Wiki value: **1.0x**. Similarly inflated. These inflated crit multipliers make these weapons appear dramatically more powerful in the AI's data context than they actually are. **Fix**: Set `Cosmic Knife Super-Heated` Crit_Multiplier to `1.2`, `Arc Welder` to `1.0`. Needs wiki sourcing. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **MEDIUM** (stat accuracy; affects AI advice quality). **NV-DB-4 · Dress Cane has Unarmed requirement** (db_nv.js, Dead Money section) The `Dress Cane` has `Req_Unarmed=50`. This is a Melee (Blunt) weapon — the Unarmed column should be 0 for any weapon that isn't an unarmed weapon. The Dead Money DLC Dress Cane has no Unarmed skill requirement in-game. **Fix**: Change `Req_Unarmed` to `0`. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **LOW**. ### 3.3 Missing Base Weapons (WEAPONS.CSV) **NV-DB-5 · 4 weapons with mods but no WEAPONS.CSV entry** (db_nv.js) WEAPON_MODS.CSV has mod entries referencing these base weapons, but none appear in WEAPONS.CSV: | Weapon | Mods referencing it | DLC | |---|---|---| | Holorifle | 3 mods (Focus Optics, Adv. Calibration, Reinf. Components) | Dead Money | | Gatling Laser | 2 mods (Focus Optics, CF Frame) | Base game | | Plasma Caster | 1 mod (HS Electrode) | Base game | | Missile Launcher | 1 mod (Guidance System) | Base game | The Gatling Laser, Plasma Caster, and Missile Launcher are major base-game weapons. Their absence from WEAPONS.CSV means `lookupItemInDb()` returns null for them, and the 7 mods referencing them are orphaned (they show in WEAPON_MODS.CSV but the base weapon has no stats). The Holorifle is the Dead Money signature weapon. **Fix**: Add 4 weapon rows to WEAPONS.CSV with correct stats. Needs wiki sourcing for all stats. **Verdict**: BUILD-NOW (additive rows) · `[CACHE]` · Severity: **HIGH** (Gatling Laser and Missile Launcher are major base-game weapons; orphaned mods are a parity violation). **Files**: `js/db_nv.js`. ### 3.4 Missing Ammo Calibers (AMMO.CSV) **NV-DB-6 · 8 ammo types used by WEAPONS.CSV entries are absent from AMMO.CSV** (db_nv.js) | Missing Caliber | Weapons using it | Count | |---|---|---| | `20 Gauge` | Pump-Action Shotgun, Hunting Shotgun, Lever-Action Shotgun, Sawed-Off Shotgun, Caravan Shotgun, Single Shotgun, Big Boomer, Dinner Bell, Sturdy Caravan Shotgun | 9 | | `Mini Nuke` | Fat Man, Esther | 2 | | `.22 LR` | Silenced .22 Pistol, Varmint Rifle, Silenced .22 SMG | 3 | | `.223` | Ratslayer, That Gun | 2 | | `.38 Spl` | Police Pistol (Dead Money) | 1 | | `.30 Cal` | Automatic Rifle (Dead Money) | 1 | | `BB` | BB Gun, Abilene Kid LE BB Gun | 2 | | `Alien Power Cell` | Alien Blaster | 1 | 20 Gauge is the most significant gap — 9 shotguns use this caliber and it has no AMMO.CSV entry at all, meaning the AI receives no ammo weight/modifier data for any shotgun. Ratslayer (.223) and That Gun (.223) are iconic named weapons with no ammo lookup. Note: `Missile` caliber IS present in AMMO.CSV. The Rocket Launcher lists `Missile` as its ammo type, which resolves correctly. **Fix**: Add 8 caliber rows to AMMO.CSV. Each needs 1–4 sub-type rows (Standard, HP, AP, etc.) per canon FNV ammo variants. 20 Gauge has Standard / Slug / Bean Bag / Magnum subtypes. Needs wiki sourcing. **Verdict**: BUILD-NOW (additive rows) · `[CACHE]` · Severity: **HIGH** (20 Gauge gap alone covers 9 weapons; these are the most common shotguns in the game). **Files**: `js/db_nv.js`. ### 3.5 Duplicate Weapon Mods (WEAPON_MODS.CSV) **NV-DB-7 · Two pairs of duplicate mods** (db_nv.js) ``` Assault Carbine Extended Magazines,Assault Carbine,Increases magazine capacity,1300,0 Assault Carb. Ext. Mags,Assault Carbine,Increases magazine capacity,1300,0 ← duplicate 12.7mm Submachine Gun Silencer,12.7mm Submachine Gun,Reduces weapon noise,2750,0 12.7mm SMG Suppressor,12.7mm Submachine Gun,Reduces weapon noise,2800,0 ← duplicate (slightly different price) ``` In-game, each weapon has one extended magazine mod and one silencer. These are the same items entered twice under abbreviated/alternate names. The duplicate costs ($1300/$1300 and $2750/$2800) would cause `lookupItemInDb()` to return the first matching row, but the second row is dead data. **Fix**: Remove the abbreviated/duplicate rows. Keep the full-name versions: "Assault Carbine Extended Magazines" and "12.7mm Submachine Gun Silencer." **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **LOW** (dead rows, no functional breakage). ### 3.6 Vendor Data Accuracy **NV-DB-8 · Doc Mitchell listed as vendor** (db_nv.js:590) ``` Doc Mitchell,Goodsprings,300,10,Independent,3,Caps ``` Doc Mitchell is the tutorial doctor in Goodsprings. He does **not function as a merchant** — he provides a one-time medical exam at game start but has no trading interface. Listing him as a vendor with `Base_Caps=300` is non-canonical. **Fix**: Remove from VENDORS.CSV. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **MEDIUM** (AI might suggest shopping at someone who can't be traded with). --- ## Part 4 — FNV Registry (reg_nv.js) **Sections confirmed**: quests (~163), items (~583), perks (152), locations (109), companions (8), collectibles (7 snow globes), zones (36), traits (16), skillBooks (13), magazines (14), recipes (25), breakdowns (12). All sections correct and complete except where noted below. ### 4.1 DLC Quests — Major Gap **NV-REG-1 · All 4 DLC quest lines absent from quests[]** (reg_nv.js) The quests array contains only Mojave base-game content. No quests from any DLC are present: | DLC | Example quests missing | |---|---| | Dead Money | "Find Collars" (the intro), "Fires in the Sky", "Put the Beast Down", "Heist of the Centuries", "Mixed Signals", "Strike Up the Band" | | Honest Hearts | "O My Papa", "Arrival at Zion", "A Family Affair", "The Grand Staircase", "Civilized Man's Paradise" | | Old World Blues | "Old World Blues" (main), "All My Friends Have Off Switches", "Picking Up the Signal", "Field Research" | | Lonesome Road | "The Road Warrior" (main), "The Silo", "The Courier's Mile" | There are **~35–40 DLC quests** missing across the four add-ons. The quests array correctly uses a `dlc` field schema with codes `'dm'`, `'hh'`, `'owb'`, `'lr'` (commented at reg_nv.js:26) — the infrastructure for DLC quests is defined, they just have no entries. **Fix**: Add all DLC quests with correct `dlc` codes. Needs wiki sourcing (fallout.wiki Quest category for each DLC). **Verdict**: BUILD-NOW (additive entries, no schema change needed) · `[CACHE]` · Severity: **HIGH** (a Courier running DLC content has no quests to track for half the game's quests). **Files**: `js/reg_nv.js`. ### 4.2 Snow Globe Naming **NV-REG-2 · "Mt. Charleston" snow globe should be "Jacobstown"** (reg_nv.js:1157) ```js { name: 'Mt. Charleston', location: 'JACOBSTOWN', ... } ``` The in-game collectible name is "Snow Globe - Jacobstown" — named after the Super Mutant settlement where it is found (in the reception area). "Mt. Charleston" is the real-world name of the mountain that Jacobstown sits on; the in-game name uses "Jacobstown." The `location` field correctly says "JACOBSTOWN" but the `name` key does not match. The zone at r1,c1 is named "Jacobstown" and the snow globe resolves to that zone correctly. Only the display name in the tracker UI is wrong. **Fix**: Change `name` to `'Jacobstown'`. Update any test sentinel that references "Mt. Charleston" (Suite 74 may test collectible names). **Verdict**: BUILD-NOW · `[CACHE][TEST]` · Severity: **LOW** (display name mismatch; tracker functional but shows wrong name). ### 4.3 Ingredient Name Mismatch **NV-REG-3 · Bottlecap Mine recipe uses "Bottle Caps" (plural) vs items[] "Bottle Cap" (singular)** (reg_nv.js:1646) ```js // Recipe ingredient: { item: 'Bottle Caps', qty: 10 } // Items registry entry: { name: 'Bottle Cap', type: 'misc' } // line 642 ``` If any code cross-references recipe ingredient names against the items registry (e.g. for autocomplete or lookup), this will fail. The canonical item name in FNV is "Bottle Cap" (singular — the ammo/currency, not a pile of them). **Fix**: Change the recipe ingredient to `'Bottle Cap'`. **Verdict**: BUILD-NOW · `[CACHE]` · Severity: **LOW** (potential lookup mismatch, cosmetic otherwise). ### 4.4 Missing DLC Locations **NV-REG-4 · No DLC area locations** (reg_nv.js) The four DLC areas (Sierra Madre, Zion Canyon, Big MT, The Divide) have no entries in `locations[]`. The file comment scopes it to "Curated list of named map markers from the Mojave Wasteland" — but for a DLC playthrough, the Courier may be spending hours in Zion or the Big MT with no location entries to select. **Assessment**: This is a design decision rather than an error. Adding DLC locations would require a dedicated zone grid extension (DLC areas don't fit the Mojave 6×6 grid). Flag for design consideration rather than immediate fix. **Verdict**: SPEC-FIRST (zone grid extension needed) · Severity: **LOW** (design gap, not a bug). ### 4.5 Dead Money Snow Globe Missing **NV-REG-5 · Sierra Madre snow globe absent** (reg_nv.js, collectibles) FNV has 8 snow globes (7 base + 1 Dead Money DLC: Sierra Madre Casino). The tracker only covers the 7 base-game snow globes. This is consistent with the current non-DLC-location scope but leaves the tracker at 7/8 for Dead Money players. **Verdict**: BUILD-NOW for DLC players · `[CACHE][TEST]` (Suite 74 count guard would need update to 8) · Severity: **LOW** (DLC-optional; base game is complete). --- ## Part 5 — Cross-System Parity ### 5.1 db ↔ Registry Weapon Parity (FNV) **PAR-1 · 4 weapons have registry items[] entries but no database stats** | Weapon | In reg_nv.js items[] | In db_nv.js WEAPONS.CSV | |---|---|---| | Holorifle | ✅ (`type: 'weapon'`) | ❌ Missing | | Gatling Laser | ✅ | ❌ Missing | | Plasma Caster | ✅ | ❌ Missing | | Missile Launcher | ✅ | ❌ Missing | Addressed in NV-DB-5 above. ### 5.2 db ↔ Registry Ammo Parity (FNV) **PAR-2 · 8 ammo calibers in weapon entries but not in AMMO.CSV** Addressed in NV-DB-6 above. The weapons exist in both the database and registry, but the ammo they fire has no database row. `lookupItemInDb('20 Gauge')` returns null. ### 5.3 db ↔ Registry Quest Item Parity (FO3) **PAR-3 · 2 non-canon items in db_fo3.js QUEST_ITEMS.CSV** - "The Water Chip" (CS from db_fo3.js) — not in reg_fo3.js items[] (correctly absent) - These items should be removed from db_fo3.js entirely (addressed in FO3-DB-5) ### 5.4 Zone Name Deduplication (FO3) **PAR-4 · Two FO3 zones share the name "Vault 92"** (reg_fo3.js:754 and 952) Addressed in FO3-REG-1 above. The zone at r6,c4 should be renamed. --- ## Part 6 — Tracker Catalog Coverage ### 6.1 FO3 Bobbleheads — Complete 20 bobbleheads present (7 SPECIAL + 13 Skill). All 20 canonical FO3 bobbleheads confirmed. Minor issues: - Speech bobblehead location typo (addressed FO3-REG-3) - Science bobblehead at (r5,c4) and Sneak bobblehead both at (r5,c4) — these two locations ARE in the same general area (southwest Capital Wasteland), so the zone cell assignment is defensible ### 6.2 FNV Snow Globes — 7 of 8 7 base-game snow globes present. Dead Money Sierra Madre globe absent (NV-REG-5). Naming issue for Jacobstown globe (NV-REG-2). ### 6.3 Skill Books — Complete Both Games FO3: 13/13 present with correct FO3 skill key mappings (big_guns, small_guns) ✅ FNV: 13/13 present with correct FNV skill key mappings (guns, survival) ✅ ### 6.4 FNV Magazines — Complete 14/14 present. All skill key mappings correct. Note: `True Police Stories` maps to string `'Critical Chance'` (capital C) rather than a skill key constant — handled correctly since Critical Chance is not a SKILL_KEYS entry but no code currently crashes on it. No fix needed. ### 6.5 FO3 Lincoln Memorabilia — Complete 9/9 items present (Lincoln's Repeater, Lincoln's Hat, Lincoln's Voice, Lincoln Memorial Poster, John Wilkes Booth Wanted Poster, etc.). Confirmed via registry structure. ### 6.6 FNV Traits — Complete 16/16 traits present (11 base + 5 OWB DLC). All correctly marked with `dlc: 'owb'` for the OWB traits. ✅ --- ## Summary Backlog — Prioritized ### BUILD-NOW — Confirmed errors, additive/single-line fixes | ID | Finding | Severity | Game | Files | |---|---|---|---|---| | CS-1 | `'Fires of Anchorage'` — remove non-canon quest | **HIGH** | FO3 | `reg_fo3.js` · [CACHE][TEST] | | CS-2 | `'Strictly Business (Paradise Falls)'` — remove fabricated duplicate | **HIGH** | FO3 | `reg_fo3.js` · [CACHE][TEST] | | FO3-DB-4 | NCR Ranger Armor — NV armor bleeding into FO3 database | **HIGH** | FO3 | `db_fo3.js` · [CACHE] | | FO3-DB-5 | "The Water Chip" + "A Dream of Hope" — remove both non-canon | **HIGH** | FO3 | `db_fo3.js` · [CACHE] | | FO3-DB-1 | Wazer Wifle: Microfusion Cell → Energy Cell | **HIGH** | FO3 | `db_fo3.js` · [CACHE] | | FO3-DB-2 | Lever-Action Rifle + Backwater Rifle: 10mm → .32 Caliber (+ add .32 Caliber to AMMO.CSV) | **HIGH** | FO3 | `db_fo3.js` · [CACHE] | | NV-DB-1 | Mysterious Stranger Outfit: DT=55 → DT=0 | **HIGH** | NV | `db_nv.js` · [CACHE] | | NV-DB-5 | Add Gatling Laser, Plasma Caster, Missile Launcher, Holorifle to WEAPONS.CSV | **HIGH** | NV | `db_nv.js` · [CACHE] | | NV-DB-6 | Add 8 missing ammo calibers to AMMO.CSV (esp. 20 Gauge) | **HIGH** | NV | `db_nv.js` · [CACHE] | | NV-REG-1 | Add all 4 DLC quest lines to quests[] (~35–40 quests) | **HIGH** | NV | `reg_nv.js` · [CACHE] | | NV-DB-3 | Cosmic Knife Super-Heated crit 5.0→1.2; Arc Welder crit 4.0→1.0 | **MEDIUM** | NV | `db_nv.js` · [CACHE] | | NV-DB-2 | 1st Recon Armor (×2): Heavy → Medium | **MEDIUM** | NV | `db_nv.js` · [CACHE] | | NV-DB-8 | Remove Doc Mitchell from VENDORS.CSV | **MEDIUM** | NV | `db_nv.js` · [CACHE] | | FO3-REG-1 | Zone (r6,c4) rename: "Vault 92" → "Bethesda Ruins" | **MEDIUM** | FO3 | `reg_fo3.js` · [CACHE][TEST] | | FO3-DB-6 | Keller Family Transcripts: "Bobblehead Hunt" → correct quest assoc | **MEDIUM** | FO3 | `db_fo3.js` · [CACHE] | | FO3-DB-7 | Add 15 missing MISC.CSV recipe component entries | **MEDIUM** | FO3 | `db_fo3.js` · [CACHE] | | FO3-REG-3 | Speech bobblehead: "EUOLOGY'S" → "EULOGY'S" | LOW | FO3 | `reg_fo3.js` · [CACHE] | | FO3-REG-2 | "Nuka-Grenade" hyphen: align items[] and recipes[] | LOW | FO3 | `reg_fo3.js` · [CACHE] | | NV-REG-2 | Snow globe "Mt. Charleston" → "Jacobstown" | LOW | NV | `reg_nv.js` · [CACHE][TEST] | | NV-REG-3 | Bottlecap Mine: "Bottle Caps" → "Bottle Cap" | LOW | NV | `reg_nv.js` · [CACHE] | | NV-DB-7 | Remove 2 duplicate weapon mod rows | LOW | NV | `db_nv.js` · [CACHE] | | NV-DB-4 | Dress Cane: Req_Unarmed=50 → 0 | LOW | NV | `db_nv.js` · [CACHE] | | FO3-REG-4 | "Lesko's Journal": move from quests[] to items[] or remove | LOW | FO3 | `reg_fo3.js` · [CACHE] | | FO3-REG-6 | Add Greener Pastures Disposal Site + Yao Guai Tunnels to locations[] | LOW | FO3 | `reg_fo3.js` · [CACHE] | | FO3-DB-8 | Expand FO3 VENDORS.CSV (add Moira Brown, Wolfgang, Harith, Hoff, Holmes, etc.) | LOW | FO3 | `db_fo3.js` · [CACHE] | | NV-REG-5 | Add Dead Money Sierra Madre snow globe | LOW | NV | `reg_nv.js` · [CACHE][TEST] | ### SPEC-FIRST — Design decision or schema change needed | ID | Finding | Severity | Notes | |---|---|---|---| | FO3-DB-3 | "O'cta Brain" — verify against wiki before removal or rename | MEDIUM | Needs wiki sourcing | | FO3-REG-5 | Unmarked quest type classification for several quests | LOW | Need 'unmarked' type in schema | | NV-REG-4 | DLC area locations (Sierra Madre, Zion, Big MT, Divide) | LOW | Zone grid extension needed | ### SKIP / INFO | ID | Finding | Notes | |---|---|---| | AMMO structural dupes | AMMO.CSV multi-row calibers (same caliber, different subtype) | Intentional design, not bugs | | FO3 CHEMS thin on food | Many FO3 food items absent | Low priority — food rarely matters to the AI | | FO3 BESTIARY gaps | Missing PL swampfolk, Zeta aliens | Low priority | | True Police Stories skill key | Maps to string, not constant | Handled correctly in current code | | FO3 DLC schematics (Pitt, etc.) | Only 7 base-game schematics | Low priority — FO3 crafting is lightly used | --- ## Canon Suspects — Final Verdict Table | Suspect | Status | Action | |---|---|---| | `'Fires of Anchorage'` (reg_fo3.js:62) | **CONFIRMED NON-CANON** — not a real FO3 quest | Remove · CS-1 | | `'Strictly Business (Paradise Falls)'` (reg_fo3.js:59) | **CONFIRMED FABRICATED DUPLICATE** — no such quest variant exists | Remove · CS-2 | | "Bobblehead Hunt" quest name (db_fo3.js QUEST_ITEMS) | **CONFIRMED NON-CANON** — no such quest in FO3 | Correct · FO3-DB-6 | | "The Water Chip" in FO3 (db_fo3.js:358) | **CONFIRMED NON-FO3** — Fallout 1/2 item only | Remove · FO3-DB-5 | | "A Dream of Hope (Vault 112)" quest (db_fo3.js) | **CONFIRMED NON-CANON** — FO3 Vault 112 quest is "Tranquility Lane" | Remove · FO3-DB-5 | | "NCR Ranger Armor" in FO3 db (db_fo3.js:167) | **CONFIRMED NV BLEED** — NCR does not exist in FO3 | Remove · FO3-DB-4 | | Wazer Wifle Microfusion Cell ammo (db_fo3.js:83) | **CONFIRMED ERROR** — uses Energy Cells in-game | Fix · FO3-DB-1 | | Mysterious Stranger Outfit DT=55 (db_nv.js:351) | **CONFIRMED ERROR** — DT 0 in-game (clothing) | Fix · NV-DB-1 | | Cosmic Knife Super-Heated crit 5.0 (db_nv.js:182) | **CONFIRMED LIKELY ERROR** — wiki value ~1.2; needs wiki sourcing | Fix · NV-DB-3 | | "O'cta Brain" weapon name (db_fo3.js:65) | **UNVERIFIABLE** — no wiki match found | Needs wiki sourcing before action | --- ## Counts by Severity | Severity | Count | |---|---| | HIGH | 10 | | MEDIUM | 6 | | LOW | 15 | | SPEC-FIRST | 3 | | Total actionable | 34 | --- ## Constraint Checklist - **[GATE]** 1078 tests must pass · never `--no-verify`. - **[CACHE]** All CSV edits are in served JS files → `CACHE_NAME` bump required for every commit. - **[TEST]** Any change to collection counts (quest count, collectible count, zone names) → update Suite 82, 74, 79, 68 guards in both runners per Protocol 2a. - **[PARITY]** CSV column count must remain intact after every row addition/deletion (no stray commas). - **[DATA]** All additions are additive; removals are only for confirmed non-canon/duplicate entries. - **[SOURCE]** Every stat added or corrected must cite fallout.wiki as source — the AI acts as typist only. - **[GAME-ISOLATION]** Never add FNV items to FO3 database or vice versa. - **[VERSION]** Do not bump APP_VERSION for content-only changes. --- *End of CONTENT_AUDIT.md*
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).