Ethan runs five-plus daily/hourly evaluator agents (director-mode, claude-efforts, client-next-steps, inbox-consolidator, meeting-intake) that each emit recommendations in isolation — nobody checks whether today's director-mode verdict contradicts yesterday's client-next-steps advice. This nightly job diffs the latest verdicts across evaluators, uses a cheap local gemma call to flag semantic contradictions or duplicated asks, and delivers a single 'your advisors disagree about X' card. It turns a fleet of blind advisors into a board meeting with minutes.
Create ~/.local/bin/eval-contradiction-ledger (bash, ~90 lines). Harvest the newest output artifact from each evaluator cycle (director-mode-eval-run, claude-efforts-eval-cycle, client-next-steps-eval-cycle, daily-inbox-consolidator-cycle, daily-meeting-intake-cycle) — resolve their state/log dirs via `director-mode-state` and the existing *-freshness-check scripts, defaulting to ~/.local/state/