The AI Could Not Tell What Was Urgent
Every unresolved promise felt the same to the narrator
During a playtest, a criminal faction gave the player three turns to deliver stolen cargo. Two turns later, the player wandered into a market and chatted with a merchant about crystal prices. The narrator described the market in warm detail. No tension. No sense that anyone was watching, that the deadline was one turn away, that the faction had promised consequences.
The game knew the deadline was about to expire. It had been tracking the countdown since the threat was made. The narrator did not know, because nothing told it.
The Flat List
Chronicles tracks unresolved narrative threads: promises made to NPCs, debts owed, tensions left hanging, threats with countdowns. The game extracts these from every turn, tracks who witnessed them, and syncs them to the quest log. Companions only know about threads they were present for. The tracking worked.
The problem was how the narrator received them. Every qualifying thread arrived as a line in an undifferentiated list. A promise about to expire sat next to a background debt from five episodes ago. The instruction for both was the same: mention them if it feels natural.
A real DM at a table would handle these differently. If a faction deadline is one turn away, the DM describes the market as quieter than usual, or has a stranger watching from a doorway, or lets a rumor reach the player through a passing conversation. If a background promise from weeks ago is unresolved, the DM lets it sit until the player brings it up. The difference is in what the world does unprompted.
The narrator had no way to make that distinction. Every thread looked the same.
Why Relevance Was Not Enough
The game already scored threads for relevance based on whether the involved NPC was nearby and how old the thread was. But relevance measures how much a thread matters in the current scene. It does not measure how soon it needs to surface.
A promise made to a blacksmith ten episodes ago scored high when the blacksmith was standing next to the player. That is relevant. A criminal deadline expiring next turn scored lower if the faction leader was elsewhere. That is urgent. The game was answering one question when the narrator needed both.
What Changed
The game now classifies threads into three urgency tiers before the narrator sees them. Threads with countdowns about to expire are critical. Threads that are active but not time-pressured are active. Everything else is background. Each tier carries different instructions for the narrator, and the difference is in technique, not intensity.
Critical threads tell the narrator to surface pressure through the world. NPCs bring the topic up without being asked. The environment reflects consequences: a market gone quiet, doubled patrols. The player should feel the pressure without seeing a countdown.
Active threads tell the narrator to show awareness when the player engages. NPCs react if addressed about it. Companions might mention it. No ambient pressure.
Background threads get mentioned only when the player asks. The world does not remind them.
The Harder Problem
Tiering solves the information gap. The narrator now knows which threads are urgent. Whether it uses that information well is a different question.
A real DM communicates urgency through the world: an NPC mentions that the governor's patience is running thin, a rumor in a tavern says the window is closing. The urgency lives in the story, not in a health bar. The narrator needs to do the same thing, and that is harder to verify than whether the data pipeline is correct. The pipeline is fixed. Whether the narrator produces the right kind of pressure is a playtesting question.
The faction deadline playtest will tell me if a one-turn countdown now feels different from a background thread. If the market scene plays differently when the clock is about to run out, the fix landed. If the narrator still writes warm market descriptions while a deadline looms, the information is reaching it and being ignored, which is a different problem with a different fix.