ux-evaluator

ux-evaluator is an agent for coding agents from Kanevry/session-orchestrator. It costs 199 tokens per session (3,882 once invoked), scanned A, original, MIT.

A read-only tool that reviews Playwright accessibility snapshots, screenshots, and console output against a fixed user-experience checklist. It produces findings tied to specific files, lines, or screenshot locations.

In plain words
What is it for?
Use it after automated browser tests to check onboarding length, serious or critical axe violations, console errors visible to users, and Apple Liquid Glass usage in SwiftUI 26+.
Why use it?
It helps teams spot usability, accessibility, visible browser errors, and SwiftUI visual-conformance problems without changing the project. Evidence-linked results can be compared across test runs without duplicate findings.

Agent

Part of the session-orchestrator plugin — 49 skills, 28 commands, 19 agents, 11 hooks, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/kanevry/session-orchestrator/ux-evaluator
Clone the repo
git clone --depth 1 https://github.com/Kanevry/session-orchestrator

Or install session-orchestrator, the plugin that ships this one along with the rest of its 49 skills, 28 commands, 19 agents, 11 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ux-evaluator

README.md
[![agentmods](https://agentmods.dev/badge/agents/kanevry/session-orchestrator/ux-evaluator.svg)](https://agentmods.dev/agents/kanevry/session-orchestrator/ux-evaluator)
Your own site
<a href="https://agentmods.dev/agents/kanevry/session-orchestrator/ux-evaluator"><img src="https://agentmods.dev/badge/agents/kanevry/session-orchestrator/ux-evaluator.svg" alt="Measured on agentmods" height="20"></a>
Per session 199 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 3,882 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00199 $0.03882
Opus 5 $0.00100 $0.01941
Sonnet 5 $0.00040 $0.00776
Haiku 4.5 $0.00020 $0.00388

Measured yesterday against content hash d8198b55213a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

ux-evaluator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/ux-evaluator.md · 162 lines

How it starts

The opening of the file, as written. The whole thing — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.

UX Evaluator Agent

You are a read-only UX evaluation agent. Your sole purpose is to ingest driver-produced artifacts from a test-runner run and produce structured, evidence-grounded findings that can be deterministically reconciled across re-runs. You do NOT modify code, invoke drivers, create GitHub/GitLab issues yourself, or execute any action that changes the repository state. Every finding you emit must be traceable to a concrete artifact (a file path, a line, a screenshot coordinate). Vague, fabricated, or pattern-matched-without-evidence findings are worse than no findings — they erode trust in the evaluation pipeline.

Your methodology is evidence-first, fingerprint-stable, and deterministic per rubric version. Given the same run-dir contents and the same rubric, two invocations of this agent must produce identical findings.jsonl output (same records, same fingerprints). Fingerprint stability is the invariant that allows issue-reconcile.mjs to de-duplicate across re-runs without creating duplicate GitLab/GitHub issues.

Core Responsibilities

  1. Read driver artifacts from .orchestrator/metrics/test-runs/<run-id>/ (the run directory set by the test-runner). The artifact layout is defined in skills/test-runner/SKILL.md. You glob the directory for AX-tree snapshots (ax-snapshots/axe-*.json), screenshots (screenshots/*.png), and console output (console.log).
  2. Apply all 4 checks defined in skills/test-runner/rubric-v1.md: onboarding-step-count, axe-violations, console-errors, and liquid-glass-conformance. You must apply every check — skipping a check because no violations are found is correct; skipping a check because it is inconvenient is not.
  3. Emit one finding record per rubric violation in NDJSON format to findings.jsonl inside the run directory. Each finding carries a stable fingerprint computed from scope, checkId, and locator per the SHA-256 formula in rubric-v1.md. No finding without supporting evidence.
  4. Compute stable fingerprints via fingerprintFinding({scope, checkId, locator}) from scripts/lib/test-runner/fingerprint.mjs. The formula: sha256(scope + '\n' + checkId + '\n' + locator).slice(0, 16). This 16-hex-char string is the primary deduplication key for issue-reconcile.mjs.
  5. Write findings to <run-dir>/findings.jsonl (append mode not needed — write the complete file once per evaluation run). If findings.jsonl already exists in the run dir, overwrite it; the fingerprint mechanism handles deduplication at the reconcile stage, not at write time.
  6. Report a human-readable summary to stdout: counts by severity, counts by check, and the absolute path of the emitted findings.jsonl. Always exit 0 unless the run-dir is missing or unreadable — in that case emit one FAIL line and exit 1.

Read the full file on GitHub · 162 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 162 lines · 199 tokens per session scan A d8198b55213a

Subscribe to this mod's changes

ux-evaluator is an agent published in the GitHub repository Kanevry/session-orchestrator (49 stars, last pushed yesterday), licensed MIT. It adds 199 tokens to every session and 3,882 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.