LANE_npc-simulation.md

npcs/LANE_npc-simulation.md

Gap audit 2026-07-29 - lane npc-simulation (9 findings)

Verbatim from workflow wf_d0ca605f-891. Each finding carries either its own register entry id or

the cross-lane merge that absorbed it. This file is the evidence of record the compact register

entries cite.

npc-simulation#1 [CRITICAL] merged into GAP-143 - The witness → memory → community-reaction engine has no spec home and no owner (the ruled "killing ripples through the community")

npc-simulation#2 [CRITICAL] merged into GAP-143 - NPC_recognition_system is a phantom consumer — five worldstate rows name it, nothing specs, owns, or implements it

npc-simulation#3 [CRITICAL] merged into GAP-139 - The persona daily-rhythm has no column anywhere — rank 11's Persona_Index mint spec omits the field LW-8 is queued to read

npc-simulation#4 [MAJOR] GAP-158 - The attackability / node-persistence system columns landed and were never populated — 8/164 and 0/76 — and no rider or rank owns the populate

npc-simulation#5 [MAJOR] GAP-159 - No faction keyspace: 175 free-text faction tokens, 2 reputation rows, and no faction table for any FK to point at

npc-simulation#6 [MAJOR] merged into GAP-139 - No ambient-population bill of materials: no per-zone occupancy anywhere, and the pooled persona buckets have no table

npc-simulation#7 [MAJOR] merged into GAP-139 - NPCs cannot be shown working the trades: occupation exists only as free text inside role, with no trade FK, no work site, and no practitioner roster

npc-simulation#8 [MAJOR] GAP-160 - Companion out-of-combat life has no policy class and no assignment column — the ally policy registry is 14/14 combat rows

npc-simulation#9 [MINOR] merged into GAP-143 - The escalation / hunted response the doctrine ends on is unbuilt and unqueued — the Hunted band exists as a label with nothing that hunts

Generated by harness/site/structure_site.py — the URL path is the repo path. review root