A 5e storytelling engine with an LLM DM

Replay the transcript's tail and the session brief at session start master

Plan 0012 milestone 3, most of plan 0011 step 5. A Dm built over a world with a record no longer starts blank: the last twelve exchanges of the transcript replay into the history behind the system message, and the entities named by the last replayed narration and by session.md seed the first turn's entity notes. The brief's body also joins every turn's system prompt, read fresh from disk, so a hand edit between sessions or between turns reaches the next prompt. Session start only reads: a replayed wikilink that resolves to nothing establishes no stub, and an unreadable transcript fails construction instead of opening a session that has lost its record. Prompt assembly moves to dm/prompt.rs and the replay lives in dm/session_start.rs, keeping dm/mod.rs under the file length limit. Step 5's aside routing waits for the aside tool (0013), so its checkbox stays open. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvctyUUkzw7PcNrjCGG6dF