Add background advancement evaluator and DM notification channel master
The DM has been great at storytelling but never considers leveling up the player character — no mechanism was nudging it to think about progression. This adds a background agent that periodically reads the campaign journal and makes a vibes-based judgment (calibrated against the SRD XP tables) about whether it's time to level up. When it decides yes, it sets a flag on the character sheet and sends a notification the DM sees next turn. From the player's perspective it's pure milestone advancement; under the hood there's a principled evaluator keeping the pace right. Also adds a general notification channel so background agents (planner, ticker, advancement) can tell the foreground DM what they changed. Before this, they'd silently modify world files and the DM had no idea. Other changes: - Split tools.py (1,200 lines) into a tools/ package grouped by domain - Extracted advancement.py from planner.py - Added log methods for scanning by tag (for finding last level-up) - Removed `storied plan` and `storied tick` CLI commands since both now run automatically during gameplay - DM prompt now has instructions for handling level-ups narratively, including the `level` tag in set_scene Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>