# Mailroom

A Gmail sorter that uses readable rules and low-cost AI, all undoable.

Card 6 of 26 in Kevin Liu's collection. 2026. Data and Agent.

- Live: https://mailroom.kevinliu.studio/
- Source: https://github.com/Kevin-Liu-01/mailroom
- Inks: 1
- Health 292, attack 109, defence 110, speed 109

## The numbers

- **61 commits**. Receipt: `git rev-list --count bc389e255`
- **2 GitHub stars**. Receipt: `gh api repos/Kevin-Liu-01/mailroom --jq .stargazers_count (2026-10-30)`
- **16 check files**. Receipt: `gh api repos/Kevin-Liu-01/mailroom/git/trees/bc389e255?recursive=1 | grep -cE <glob>`
- **4.69 commits per active day**. Receipt: `61 commits over 13 distinct commit dates, 2026-09-25 to 2026-10-24`

## Trait

**Per-Rule Cap**. Trash rules past their cap refuse to run, so no hit takes over half its Health. Receipt: `mailroom@bc389e255:src/lib/engine/run.ts:125-126; src/lib/policy/schema.ts:69; README.md:58`

## Moves

- Rules hits for 65 and goes first. Rules you can read in one screen become Gmail filters, so new mail is labeled the moment it lands, at no cost. Receipt: `mailroom@bc389e255:README.md:9-10, 23, 26`
- Five Questions hits for 21 five times, 95% of the time. An AI model answers five questions about each email the rules miss, like “needs action”, as probabilities. Receipt: `mailroom@bc389e255:src/lib/ai/triage.ts:43-67; README.md:9-12`
- Ask In Plain Words hits for 105, 95% of the time. Ask in plain words, like “who hasn’t replied to me”, and get an editable Gmail search with ranked results. Receipt: `mailroom@bc389e255:README.md:24; src/lib/search/compile.ts; src/lib/search/rerank.ts`
- Undo restores 50 health. Every run previews first and writes a receipt, and Undo puts labels, filters and policy back, whole or per message. Receipt: `mailroom@bc389e255:README.md:56; README.md:46; src/app/api/runs/[id]/undo/route.ts`

Facts pinned at commit bc389e255 on 2026-10-24.

Back to every card: https://www.kevinliu.studio/
