Mail Interaction Parity
SkillAI & modelsLets your agent compare two email apps interaction by interaction and log which behaviors match.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Mail Interaction Parity skill
About this skill
Exhaustively test Mail against Superhuman Mail interaction-by-interaction. Use when changing Mail UX, validating keyboard/gesture/autocomplete behavior, or running a side-by-side parity pass.
What this skill tells your AI
The instructions your AI receives, as published by builderio/agent-native in templates/mail/.agents/skills/mail-interaction-parity/SKILL.md and read by ahel’s review.
Use this as the acceptance workflow for Mail behavior. The target is observable interaction parity: the same intent, focus transition, visible state, keyboard result, optimistic feedback, and recovery path. Do not claim product parity from static inspection alone.
Before testing
- Read
mail-backends,inbox-reads-and-triage,email-drafts, andcontext-awarenessbefore touching connected mail or application state. - Run the app with deterministic synthetic mail when Gmail credentials are not available. Synthetic mail is not a live Gmail mailbox.
- Open Mail and Superhuman side by side at the same viewport size. Record the exact Superhuman build/date and the Mail commit under test.
- Seed or choose disposable messages that cover: one message, multi-message thread, unread, starred, labelled, draft, scheduled, attachment, HTML body, failed mutation, and partial account coverage.
- Never send during the default pass. If a live round trip is explicitly approved, use only addresses the current user explicitly allowlisted for that run; use an exact user-approved subject/body and verify both Sent and Inbox afterward. Do not persist private addresses in fixtures or docs.
Side-by-side protocol
For every case in references/interaction-matrix.md:
- Reset both products to the same starting state.
- Perform the numbered Superhuman steps and record the resulting URL, focused element, visible rows, toast/banner, network state, and elapsed feel.
- Repeat the exact intent in Mail, including the same alternate input paths (mouse, keyboard, touch, drag, paste, blur, reopen, refresh, and failure).
- Mark
match,partial, orgap. Apartialrequires a concrete next action; agapmust name the missing product capability or state. - Re-run the case after each fix, then run its neighboring cases. A fix is not complete until success, cancellation, loading, empty, error, rollback, and refresh/deep-link states remain distinguishable.
Use stable Mail landmarks where present: [data-mail-email-row],
[data-thread-key], #mail-search, #mail-search-suggestions,
[data-search-item], [data-mail-compose], and the application-state keys
described in context-awareness.
Safety and truthfulness
- Draft, queue, and inspect by default. A click, shortcut, or agent action that sends is an external side effect and needs explicit approval.
- Do not use random recipients, generated addresses, or third-party inboxes for round-trip tests. The user's per-run allowlist is hard, not a suggestion.
- Treat a local fallback as local. Treat a failed or incomplete account read as an error/partial result, never as an empty or successful mailbox.
- Do not report “bug free” or “1:1” globally. Report the tested case IDs, evidence, and remaining gaps.
Verification
Run focused unit/action tests first, then a browser pass at 1440×900, 1024×768, 768×1024, and 390×844 when the browser harness is available. Check mouse, keyboard, touch, focus, loading, empty, error, undo, deep link, and refresh. Capture console errors and failed requests. For action changes, call the action and read the result back. For UI changes, exercise the exact broken path in a real browser or clearly record why the browser was unavailable.
The exhaustive cases are in
references/interaction-matrix.md; official comparison anchors are linked
there so the behavior baseline can be revisited when Superhuman changes.
Signals
- GitHub stars
- 7k
- Forks
- 613
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
mail-interaction-parity- Source
- github.com/builderio/agent-native