Inbox Triage
Does: sorts your inbox into reply-now / reply-later / ignore, and drafts the urgent replies for your approval. Solves: an inbox so full you don't know where to start. Triggers on: "triage my inbox" · "what emails need a reply"
How Maxim does this (consume the connector — never rebuild it)
Maxim does not ship its own Gmail integration. It uses the email connector you already have — the Anthropic Gmail / Google Workspace connector (vetted, GA, all users) or any email MCP you've added — and adds the layer the raw connector lacks: a triage framework, a privacy gate, and confidence. (ADR-018 + ADR-012: Maxim is the governed brain; the connector is the hands.)
Per-surface availability (verified 2026-06-26):
- Claude Desktop / web: turn on the Google Workspace → Gmail connector (
+→ Manage connectors). Works immediately. - Claude Code: the Anthropic Gmail connector authenticates at claude.ai → Settings → Connectors, then appears in Claude Code automatically; or
claude mcp adda Gmail MCP (use--scope userso it's available everywhere, including scheduled runs).
What it does, step by step
- Pull recent unread via the connector (e.g.
is:unread newer_than:1d). Read-only. - Classify each message — reply-now / reply-later / ignore — using the Eisenhower matrix (urgency × importance), with the sender + ask + deadline as signals.
- Draft replies for the reply-now set. The connector is draft-only and cannot send — drafts wait in your Gmail for one-tap manual send. This is a platform-enforced safety, on top of Maxim's own.
- Return a digest: counts per bucket + the drafts awaiting you + the 1–2 that actually matter today.
Behavioral + governance overlay
- Frameworks (cited per ADR-007): Eisenhower Matrix (urgency × importance) · Fogg Behavior Model (surface the easiest high-value reply first to beat inbox paralysis).
- CSO auto-loop (non-negotiable): email is personal data.
security-analystgates the run — message bodies/addresses are never copied into logs or external output; the RunLog stores counts and message-ids, not content. - No auto-send, ever: drafts only (the connector enforces it; Maxim's dry-run reinforces it).
- No-fabrication: it triages only what the connector returns; it never invents senders, deadlines, or "urgent" flags.
- Confidence tag (ADR-010) on the triage — 🟡 if the connector isn't connected (it'll tell you how to connect, not guess).
The unattended "every morning" version
The same skill, wrapped by mxm-orchestrator (ADR-022) as a scheduled workflow: runs each morning via the usage-aware-scheduler, dry-run by default, bounded by a budget guard, idempotent (won't re-draft the same thread), and draft-only end to end. Definition: orchestrator/workflows/inbox-triage.mjs. Go-live requires a connected email tool + explicit operator approval (/mxm-workflow go-live inbox-triage). For headless/scheduled runs, use a user-scoped Gmail MCP (interactive Desktop connectors assume the app is open).
Output
A triage digest — reply-now (with drafts ready) · reply-later · ignore — counts + the 1–2 that matter most. Nothing sent.