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.
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.