Skip to content
Back to skills

Mail Interaction Parity

ASecurity

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.

  • 6,969 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 20, 2026
ai-agentstestingbackend

Works with

  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add BuilderIO/agent-native --skill mail-interaction-parity --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mail Interaction Parity?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mail Interaction Parity
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/builderio-mail-interaction-parity/badge)](https://www.skillsdirectory.com/skills/builderio-mail-interaction-parity)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mail-interaction-parity
description: >-
  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.
---

# Mail Interaction Parity

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

1. Read `mail-backends`, `inbox-reads-and-triage`, `email-drafts`, and
   `context-awareness` before touching connected mail or application state.
2. Run the app with deterministic synthetic mail when Gmail credentials are not
   available. Synthetic mail is not a live Gmail mailbox.
3. Open Mail and Superhuman side by side at the same viewport size. Record the
   exact Superhuman build/date and the Mail commit under test.
4. 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.
5. 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`:

1. Reset both products to the same starting state.
2. Perform the numbered Superhuman steps and record the resulting URL, focused
   element, visible rows, toast/banner, network state, and elapsed feel.
3. Repeat the exact intent in Mail, including the same alternate input paths
   (mouse, keyboard, touch, drag, paste, blur, reopen, refresh, and failure).
4. Mark `match`, `partial`, or `gap`. A `partial` requires a concrete next
   action; a `gap` must name the missing product capability or state.
5. 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.

Files in this skill

  • SKILL.md3.7 KB
  • references/2026-09-12-initial-pass.md10.3 KB
  • references/interaction-matrix.md92.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…