experience-judge
Score the visual quality of the public surfaces the experience-audit organ captured — layout, typography, coherence, trust — and record verdicts. Use when asked to judge, review, or grade how the publ
SKILL.md.claude/skills/experience-judge/SKILL.md
GitHubexperience-judge
experience-audit.py measures the MECHANICAL rungs of a visitor's experience (reachable, fast, light, no broken images, no console errors, has a title). It cannot judge whether the page looks good. This skill is that missing rung: read the latest capture, score each surface on layout, typography, coherence, trust (each 0-5), and append the verdict to the judgment register so the effector can file bounded visual-fix tasks.
A judgment is pinned to the exact pixels it judged: cite the screenshot's sha256. A re-sweep that
changes the capture invalidates the old verdict — so judge against the CURRENT artifact only.
Steps
Read the latest sweep artifact.
logs/experience-audit.json(schemalimen.experience_audit.v1). If it is missing or stale, runpython3 scripts/experience-audit.py --sweepfirst (needs playwright + chromium for screenshots; the http tier captures no shots, so a real visual judgment requires the playwright tier). Each surface entry carries itsurl,screenshot_sha256,captured_at, and the mechanical rungs already scored.View each surface's shot.
logs/experience/shots/<id>.png(latest capture, overwritten each sweep). Confirm the file's sha256 matches the artifact'sscreenshot_sha256before judging — if they differ, re-sweep (the shot is newer/older than the recorded judgment target).Score each surface 0-5 on:
- layout — spacing, alignment, hierarchy, responsive fit
- typography — legibility, scale, consistent families/weights
- coherence — visual consistency with the rest of the estate; does it feel like one brand
- trust — does it read as credible/professional to a first-time visitor (the demand-funnel test)
Set
verdict: passwhen the surface is clearly acceptable to show a buyer;verdict: failwhen a visible defect would repel the visitor. Record concrete, PII-clean, public-safedefectsand onesuggested_fix.
Append rows to the register. For each judged surface, append a row under its id in
institutio/observatory/experience-judgments.yaml(newest last), withjudged_at,captured_at(copied from the artifact),screenshot_sha256,model(your model id or a human handle),verdict,scores,defects,suggested_fix. Keep the existing schema exactly — runpython3 scripts/experience-audit.py --doctorand confirm it exits 0 (it validates verdicts and 0-5 scores).Open a PR. Branch
feat/experience-judgments-<mmdd>offorigin/mainin a worktree, stage ONLYinstitutio/observatory/experience-judgments.yaml, commit (body ends with theCo-Authored-By: Claude Fable 5line), push, and open a PR whose body cites each judged surface's screenshot sha256 (the pixels the verdict is pinned to) and summarizes the scores. Do not commit anything underlogs/(gitignored artifacts). The effector (generate-experience-backlog.py) reads the merged verdicts and files boundedEXP-<surface>-visualtasks for anyverdict: fail.