Consolidate claude subprocess calls, add currency denominations, polish UI
The claude -p invocations were scattered across three files, each doing
its own Popen/stdin/stderr plumbing. Now claude.py has three clean
entrypoints: stream_with_tools (DM engine), run_with_tools (planner/
seeder/ticker), and run_prompt (utility formatting like /status). The
callers just call the function they need.
Also replaced the single "gold" integer with a proper 5e purse tracking
all five denominations (cp, sp, ep, gp, pp) — the DM was narrating
coppers and silvers flying around but had no way to persist them.
Other changes:
- /status and /me slash commands use Haiku to format the character sheet
instead of fragile regex parsing
- /me prompt tightened so it doesn't render as a 4-screen D&D Beyond
knockoff (Rich's markdown renderer is generous with spacing)
- Roll notifications now show the reason: [Rolling Investigation...]
instead of generic [Rolling...]
- Prompts moved to prompts/ directory with a CLAUDE.md convention note
- File structure in CLAUDE.md updated to reflect current modules
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>