Refactor world state architecture and tool semantics
Big rework of how the DM tracks and persists game state. The campaign log
now lives in worlds/{world}/log/ (world-scoped for future multiplayer)
with separate day files (day+001.md, day-001.md for backstory support).
Renamed tools to be more action-oriented:
- roll_dice → roll
- log_event → mark_time
- update_session → set_scene
- save_to_world → establish
- Combined lookup_rule + query_world → recall
Added note_discovery tool for tracking player knowledge separately from
DM truth - players/{player}/worlds/{world}/ now holds what the character
has learned, while worlds/{world}/ holds the full DM knowledge.
Also fixed the dice parser to support compound notation like 2d8+1d6
(for spells like Chaos Bolt), and added --debug mode tool call logging
that shows truncated params and results inline.
Strengthened the DM prompt with an explicit "after every response"
checklist to remind it to call mark_time, establish, note_discovery,
and set_scene consistently.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>