Methodology

Where every finding comes from

A report is only as trustworthy as the weakest claim in it. So we made claims falsifiable: each finding is either a measured rule violation or a recorded agent run — never an opinion.

Layer 1 — Deterministic rules

Roughly 60% of findings come from rules that cannot hallucinate: contrast ratios, touch-target sizes, Dynamic Type breakage, missing accessibility labels, focus order. Each threshold is bound directly to its source — WCAG 2.2, Apple's HIG, EN 301 549 — and never generated by a model. When a value is measured, the report shows the number.

A measured finding — the number is the evidence

AP-CON-001 MAJOR Major severity

The "Upgrade" link text renders below the AA contrast minimum against the card background.

  • Settings
  • Upgrade link
  • default
  • iPhone 15

Evidence

measured
4.33:1
required
4.5:1
foreground
#6E8F86
background
#FAFAF8

Reproduced in 3 of 3 attempts

Suggested fix

Darken the link color to at least #0E6E5C (5.9:1 on paper) or increase weight; do not rely on color alone.

WCAG 1.4.3 EN 301 549 11.1.4.3

Layer 2 — Recorded agent runs

An agent drives your app for real across a task matrix — core flows (onboarding, search, checkout) times environment variants (dark mode, 200% font, VoiceOver on, different locales, low connectivity). Every failed run is recorded step by step. The customer does not ask "is this true?" — they watch it.

Layer 3 — Narrative lens

Six curated lenses — motor-limited, low-vision, first-time, impatient-expert, older, screen-reader — interpret and prioritize the raw findings from Layers 1 and 2. The model narrates evidence; it never produces data or numbers.

The reproducibility filter

Agent runs are not deterministic: the same task can take different paths. So every runtime task runs three times and reports the median. A runtime finding that does not reproduce in at least two of three attempts is dropped before it reaches your report. You see the ratio on every card.

Versioned rules

The rule catalog is versioned, and every report records the exact version it was audited against. When a rule changes, past reports still say what they meant.

Why we do not report false positives

A finding you have to argue with costs more trust than it is worth. If a rule is not sure, it stays out of the report. We would rather under-report cleanly than pad a score with noise — the report has to be something you can forward to your team without a caveat.