49b88af3cc
The real upgrade over the ChatGPT prose-recap workflow: structured data capture via tools Lyra drives during a live session, with stats computed from real data. - lyra/poker.py: domain pack (separate from core memory) — poker_sessions, poker_hands, persistent poker_players (villain file) + player_reads; functions for session lifecycle (start/buyin/end with net+hours), tolerant hand logging, villain upsert/reads, and session/running stats ($/hr, by stake/venue/game) - tools.py: 8 poker tools wired into the chat tool loop (start_session, add_buyin, log_hand, add_read, end_session, session_stats, running_stats, get_villain_file) — partial/terse input tolerated - import/: Brian's real .md session-log format (reference for the phase-2 recap) - tests: lifecycle/net math, partial hand logging, villain upsert, running stats, tool dispatch Verified live: a full talk-through session persisted as structured rows (session +240, AKs hand, seat-5 read) — she drove the tools from natural chat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>