BOT_EMAIL_SCAN_MODULE.md — PARKED spec (not built)
Status: PARKED (2026-06-07). Sam wants this. ZW-ENGINE-V9 says park it — it adds Gmail + judgment + prioritization + a privacy axis, a NEW capability, and we don't expand the repeatability axis (Manny) and a capability axis at once. Captured here so it isn't lost; do NOT build until the gate below is met.
What it is
A bot command — EMAIL SCAN (or a cron) — where the bot reads Sam's inbox, weighs it against his live queue/obligations/calendar, and reports what matters: "3 things need you today; here's why; here's the suggested action." The "before you ask" loop, applied to email.
Why it's valuable
It's the difference between I do it when you ask and the system surfaces it first. Directly serves the "AI that knows me" goal (the proactive/reflect loop). The Abe-eSIM moment (2026-06-07) is the archetype: an all-around assistant would have seen the email land, recognized the dead-code problem, drafted the call script, and pinged Sam — unprompted.
Why it's PARKED (the honest risk)
- New capability axis (Gmail read + judgment + prioritization), separate from the repeatability axis (new person = new bot). Rule: never expand both at once.
- Privacy/judgment risk — it reads everything and decides what's important; a wrong call is louder than a wrong card.
- Gmail is already reachable (Apps Script sits on the account), so it's contained — which is exactly why it's tempting to rush. Don't.
The unpark GATE (build only when ALL true)
- ✅ Manny bot is wired, self-tested, and stable — no cross-leaks for 7+ days.
- ✅ Retrieval is live (the bot can search its own memory) — so an email scan can check "do I already have a card for this?" before surfacing (else it re-hallucinates, the #274 disease).
- ✅ Sam explicitly greenlights this as the next module.
Design sketch (for when it's time)
- Trigger:
EMAIL SCANcommand (manual) first, then a morning cron once trusted. - Source: Apps Script Gmail read (sam@ + ztreitel@ + zalmy@ — connector sees all three) OR the Gmail MCP.
- Logic: pull last N unread → classify (action / money / family / noise) → cross-check the live queue (dedup) + calendar + obligations → rank → report top 3 with suggested action. Capture-never-blocks; never auto-send; show + confirm before any external action.
- Output: a Telegram brief + optional cards (confirm-gated).
- Safety:
TEST_MODEdefault; no auto-replies; respects the privacy walls (never surfaces family/finance to Mildred's scope).
Related: ASSISTANT_LEARNING_CAPTURE.md (the adaptive brain this feeds) · the proactive morning spine.