Gmail Secretary (Alan)
Safety rules (non-negotiable)
- Never send email automatically. Only create drafts + summaries.
- Prefer labels over moving/deleting.
- Keep the voice reference style-focused (patterns + a few short redacted snippets), not a full archive.
Labels (user-friendly)
Use/create these labels:
- Urgent
- Needs Reply
- Waiting On
- Read Later
- Receipt / Billing
- School
- Clubs
- Mayo
- Admin / Accounts
Classification: Agent-based (Haiku)
Classification uses a Haiku LLM agent (via sessions_spawn) instead of regex.
scripts/triage-and-draft.sh fetches inbox → writes summaries to cache/gmail-inbox-summaries.json- Agent reads summaries, classifies each email, writes results to
cache/gmail-triage-labels.json scripts/apply-labels.sh reads classification results and applies Gmail labels via gog
Agent classification prompt context:
- Student at Stanton College Prep (IB/AP classes)
- Clubs: FBLA, Science Fair, Medical Society, Psi Alpha, NHS
- Project: Mayo Clinic cancer cell simulation
- Companies (Apple, Google, Amazon, etc.) are NOT "School"
- Newsletters/promos → Read Later
- Account security/password/verification → Admin / Accounts
Files
- Voice reference (auto-maintained):
references/voice.md - Draft queue (generated):
/home/delta/.openclaw/workspace/cache/gmail-drafts.md - Triage digest (generated):
/home/delta/.openclaw/workspace/cache/gmail-triage.md - Inbox summaries (intermediate):
/home/delta/.openclaw/workspace/cache/gmail-inbox-summaries.json - Classification results:
/home/delta/.openclaw/workspace/cache/gmail-triage-labels.json
Scripts
- Build/refresh voice reference from Sent mail:
scripts/build-voice-reference.sh (samples last 50 sent messages)- Fetch inbox + extract summaries:
scripts/triage-and-draft.sh- Apply labels from classification:
scripts/apply-labels.sh
Workflow
1) Run triage-and-draft.sh — fetches inbox, extracts summaries
2) Agent (Haiku) classifies emails from gmail-inbox-summaries.json
3) Agent writes results to gmail-triage-labels.json
4) Run apply-labels.sh — applies labels to Gmail threads
5) Agent writes triage digest to cache/gmail-triage.md for nudges