Ethan generates a huge volume of Socratic questions, commit whispers, and tablet briefs — but nothing tracks which ones he ever actually answered on the stylus. This scans the tablet sync inbox for stylus replies and matches them back to the originating question, then emails a weekly 'unanswered intent' digest of the top 5 questions he keeps ignoring, which is itself the strongest signal about what he's avoiding.
Create ~/.local/bin/whisper-reconcile (bash+python). Read question emissions from the socratic-tablet-brief and commit-socratic-tablet-brief output logs under ~/.local/state/ (fall back to grepping ~/Tablet/briefs/*.md for question lines), hashing each question to an 8-char id stored in ~/.local/state/whisper-reconcile/ledger.jsonl with {id, question, project, emitted_at, answered_at}. Poll tablet-sync.braceyourself.solutions for stylus replies (same path stylus-reply-router already uses) and fuzzy-match reply text to the nearest open question by project+recency, stamping answered_at. Weekly systemd timer (Sun 07:00) runs --digest, which ranks unanswered questions by age x repeat-count and pipes them through send-formatted-email to Ethan. Reuse existing whisper-debt-ledger conventions for state dir layout.
**Created**
- `~/bin/whisper-reconcile` (~110 lines python, executable) — `scan` harvests every question line out of your tablet question sources (morning-brief PDFs, `Tablet/inbox/*.pdf` pondercards/commit-reviews/question sheets, `Tablet/briefs`, `Tablet/morning`, `Tablet/Inbox`), hashes each to an 8-char id, and keeps it in `~/.local/state/whisper-reconcile/ledger.jsonl` as `{id, question, project, emitted_at, answered_at, repeats}`. Project comes from the nearest markdown header. Then it reads your OCR'd stylus notes (`~/Tablet/Notes/*.txt`, the same source stylus-reply-router uses) and fuzzy-matches each handwritten answer chunk back to the nearest open question, scoring 70% text similarity / 30% recency, and stamps `answered_at`. `digest [--email]` ranks the unanswered by age × repeat-count and emails the top 5 through `send-formatted-email admin --no-reply-expected`.
- `~/bin/whisper-reconcile.test.sh` — 13 assertions, fully sandboxed via `WR_HOME`/`WR_STATE`/`WR_NOTES`/`WR_EMAIL_TO` so it can never touch the real ledger or send real mail.
- Four systemd user units: `whisper-reconcile-scan.timer` (daily 06:30) and `whisper-reconcile-digest.timer` (Sun 07:00, scans then emails), both enabled, memory- and CPU-capped.
**Verified**
- RED first: 11 of 13 assertions failed before the script existed; all 13 pass now.
- Real-data E2E: `scan` read 405 sources, harvested 527 questions, and matched 15 to stylus replies you actually wrote. `digest` renders the rea