Spoken enemy locations
A retained Chinese Plantern reply put a zombie in column 4 (the speaking plant's column) instead of its observed column 9. The supplied coordinates were already correct after PR287. This follow-up pairs each observed enemy with a localized name-and-location description in the model context.
Dave, classic plants and authored plants share this observation builder. English, Chinese and Spanish descriptions preserve the same one-based cells. An enemy outside the planting grid gets an edge description, never a fictional column 0 or 10. Missing observations remain unknown. Commands and native snapshots are unchanged; these descriptions are context, not replacement dialogue or another player-facing panel.
The regression reproduces the retained Plantern arrangement, where the plant and enemy occupy different columns, and covers both grid edges and absent fog observations. Existing shared-prompt checks cover Dave and both plant paths.
All 489 affected NPC/route checks and the full hosted build/typecheck pass. The first broad test run hit a Windows V8 JIT teardown assertion in the memory-store process. Its isolated checks and the complete rerun at lower concurrency pass; the original runtime failure log remains retained.
Ten single-attempt Qwen/Gemini replies were retained: eight use the previous compiled observation fixtures, two deliberately change the enemy's column. Both models identify the correct row/column in all six location questions. All ten choose the expected light-control decision. No reply was rerolled and no model was substituted. The check uses synthetic account context and no account, save, notebook or Yumina billing writes; upstream provider usage occurred.
One Qwen reply still calls the unmeasured bottom lane completely dark. This does not certify fog visibility claims or universal prose grounding. The original column error and this limitation remain recorded.
Live requests, exact prompts, usage and responses are in the game worktree's output/visible-threats/sighting-context-20260923-live/. No game package, pause behavior, authored difficulty, schema or production configuration changes.
