Usability Review
A usability review is a ranked, evidence-cited critique of a flow: does the user get the job done, and where does the experience get in the way. It is advisory — a finding never sets a non-zero exit or gates a run.
usability strategy
(--strategy usability), matching the CLI. "UX review" is the same feature — you may
see it used informally elsewhere on this site — but the canonical name to search and script
against is usability.
Two ways to run it
Live, as an exploration strategy against a running app:
jevitate explore --url http://localhost:3000 \
--strategy usability --goal "check out with a saved card" \
--app-class consumer --real
# optional: independent checks decide whether the job was done, as on a goal run
jevitate explore --url http://localhost:3000 --strategy usability \
--goal "check out with a saved card" --app-class consumer \
--success urlIncludes:/order/confirmed --real Offline, over a Recording you already captured (jevitate record or a goal run's output):
jevitate ux ./checkout.recording.json --app-class consumer --real
# optional persona + the job the flow pursues, for sharper relevance
jevitate ux ./checkout.recording.json --app-class admin \
--persona "first-time buyer" --job "check out with a saved card" --real Jev scores each observed screen against a cited rubric — Nielsen's 10 heuristics, cognitive-science principles from information scent to choice overload, dark-pattern detection, and a lightweight accessibility tier. Every finding names a real principle and anchors to observed behavior (a control, a quoted string) on the screen it was found on.
What --app-class actually controls
--app-class is required for both paths. It is a calibration signal
for the rubric — it tells Jev what kind of app this is (consumer,
admin, internal, etc.) so it can judge applicability sensibly (a
"choice overload" heuristic reads differently on a consumer checkout than on an internal admin
table).
--app-class does not select or imply a
user persona; it only changes which rubric items apply and how they're weighed. The live review is
calibrated against a default persona, "first-time user". The offline path
(jevitate ux <recording>) accepts an explicit usability --persona.
Don't confuse it with explore --persona name=storageState, which runs the same mission
once per signed-in session and diffs them (see Flags Reference).
Viewport and device
By default every run, the usability review included, uses Playwright's default viewport:
1280×720, desktop, no touch. --viewport <W>x<H> (e.g.
--viewport 375x812) or --device "<name>" (e.g.
--device "iPhone 13") change it; they are mutually exclusive. Below 1024px a
horizontal-overflow check runs too: pure DOM geometry, reported as a signal finding in the
usability review (--check-overflow turns it on at any width).
--show), and
finding grouping is still being redesigned.
Going deeper
- Report Schema —
confidence,coverage,suppressed, and whatcleandoes and doesn't guarantee. - Flags Reference — every flag per strategy.
- MCP & CLI — full command syntax for both the live and offline paths.
- Testing Modes — how usability fits among the other five
jevitate exploremodes.