UX Review
Use this skill as a user-protection failsafe. It exists to catch confusing,
redundant, jargon-heavy, inaccessible, or misleading interfaces before they
ship or before they are approved.
Read references/reviewer-memory.md when the task is UI-heavy, when labels or
workflow complexity are in question, or when maintaining this skill itself.
Mandatory Independence
- If the user explicitly names
$uxreview, spawn independent UX-review
subagents whenever tooling allows.
- Default explicit swarm:
naive, intermediate, and expert.
- Minimum fallback only when capacity is unavailable:
naive plus expert.
Mark that downgrade as #FALLBACK.
#FALLBACK is allowed only when subagent tooling is unavailable in the
environment or repeated spawn attempts fail.
- Keep persona prompts independent. Do not tell one persona what another found.
- Each persona must issue its own findings and verdict before synthesis.
- If
$review or $architect are also named, keep UX reviewers distinct. They
may inform the larger review, but they are not optional.
- If
$review is also named, uxreview remains the specialist human-usable
verdict. review may synthesize release impact, but it should not silently
replace or duplicate the UX swarm unless #FALLBACK is declared.
- If persona verdicts disagree, treat that disagreement as a product-risk
signal. Do not smooth it away in synthesis.
Evidence Contract
- Prefer a live UI, screenshot, prototype, or browser inspection over code-only
inference.
- If only implementation is available, say
implementation-only and treat
UI-sensitive claims as unverified until a visible artifact is inspected.
- For UI-heavy work,
Approved requires direct inspection of a visible
artifact. Code-only or spec-only review caps the best verdict at
Conditional Approval.
- Cite concrete evidence: visible label, control, focus path, state change,
error text, empty state, responsive layout, or keyboard behavior.
- Do not approve a UI because the code is clean.
Review Gates
Check these explicitly:
- Task clarity: does the user know what this screen/workflow is for?
- Next-step clarity: is the obvious action visible and named well?
- Labeling and terminology: plain language, no internal ids, no duplicate
concepts with different names, no different concepts with the same name.
- Critical distinctions: source, ownership, permanence, scope, and consequence
are visible where the decision is made.
- Recognition over recall: the UI should show choices and consequences instead
of making the user remember them.
- Workflow simplicity: minimal steps, minimal mode switching, minimal guessing.
- Feedback and recovery: success, waiting, failure, and blocked states explain
what happened and what to do next.
- Accessibility: keyboard reachability, focus visibility, semantic controls,
readable contrast, motion restraint, and usable target sizes.
- Scale and supervision: provenance, filters, diagnostics, batch actions, and
large-state usability for operational surfaces.
- False confidence: polished styling must not hide ambiguous behavior, silent
failure, or missing consequences.
Run these explicit passes:
- Primary walkthrough: entry point -> orientation -> decision -> action ->
feedback -> completion.
- Misuse pass: likely wrong click, wrong source, wrong scope, wrong expectation,
and wrong recovery path.
- Hidden-consequence test: what will the user think happens, what actually
happens, what persists, what changes scope, and what is externally visible.
- State coverage: inspect or explicitly mark uninspected
entry, happy path,
waiting, empty, error, permission/approval, responsive, and
keyboard-only states where applicable.
Persona Charters
Use these default charters:
naive: first-time or occasional user. Prioritize plain language, obvious
next steps, fear/confusion triggers, and whether the happy path is clear.
intermediate: familiar with the domain but not product internals.
Prioritize workflow efficiency, terminology consistency, and recovery.
expert: technical or operational user. Prioritize provenance, overrides,
diagnostics, auditability, scale, and trustworthy advanced behavior.
Each persona should answer:
- what they think the screen/workflow does;
- what they would do next;
- what confused or slowed them down;
- what would make them mistrust the system;
- the top changes required before approval;
- their verdict.
Verdicts
Use one verdict per persona and one final synthesized verdict:
Blocking: users are likely to fail, misinterpret, or take unsafe action.
Conditional Approval: usable with specific fixes or missing validation.
Approved: no blocking UX risk found in the reviewed scope.
Do not mark Approved if labels are misleading, critical distinctions are
hidden, keyboard/accessibility behavior is broken, or a visible artifact was
available but not inspected.
If the skill was explicitly named and the mandatory subagent contract did not
run, the best possible verdict is Conditional Approval with #FALLBACK.
If the fallback minimum was also not met, the final verdict must be Blocking.
Output Format
Use this structure:
Execution Mode
Planned Reviewer Set
Actual Reviewer Set
Subagents Used
Fallback Reason
Contract Degradation
Observed Evidence
Inference Or Unverified Claims
Blocking UX Issues
Terminology And Meaning Risks
Critical Distinctions
State Coverage
High-Value Improvements
Persona Verdicts
Workflow Recommendations
Accessibility And Visual Notes
Validation Status
Final Verdict
If no serious UX findings are discovered, say so plainly and state what was
actually inspected.
Field Memory
references/reviewer-memory.md stores durable, generalizable lessons for
this skill.
- Update it only when skill maintenance is in scope and the lesson is likely to
matter again across products.
- Keep additions terse and principle-level, not project-specific.
Anti-Patterns
- Do not accept raw type ids, internal jargon, or implementation terms in
user-facing controls when clearer labels exist.
- Do not accept invisible tabs, unlabeled icon-only controls, or color-only
state changes.
- Do not let a nice layout compensate for unclear workflow meaning.
- Do not merge multiple personas into one "user view".
- Do not smooth away persona disagreement when it reveals real user risk.
- Do not report polish feedback before blocking clarity or trust failures.
- Do not approve "simple" flows that hide consequences or provenance.
- Do not downgrade to fewer subagents for convenience, speed, or token economy
without labeling
#FALLBACK and naming the blocked capability.
1---2name: uxreview3description: Run focused human user-experience reviews of products, apps, websites, workflows, dashboards, forms, modals, navigation, and frontend designs. Use when Codex is asked for a UX review, usability review, design review, product workflow critique, naive/intermediate/expert user review, accessibility/usability pass, or when a frontend implementation must be checked for whether users can do what they need simply, confidently, and pleasantly.4---56# UX Review78Use this skill as a user-protection failsafe. It exists to catch confusing,9redundant, jargon-heavy, inaccessible, or misleading interfaces before they10ship or before they are approved.1112Read `references/reviewer-memory.md` when the task is UI-heavy, when labels or13workflow complexity are in question, or when maintaining this skill itself.1415## Mandatory Independence1617- If the user explicitly names `$uxreview`, spawn independent UX-review18 subagents whenever tooling allows.19- Default explicit swarm: `naive`, `intermediate`, and `expert`.20- Minimum fallback only when capacity is unavailable: `naive` plus `expert`.21 Mark that downgrade as `#FALLBACK`.22- `#FALLBACK` is allowed only when subagent tooling is unavailable in the23 environment or repeated spawn attempts fail.24- Keep persona prompts independent. Do not tell one persona what another found.25- Each persona must issue its own findings and verdict before synthesis.26- If `$review` or `$architect` are also named, keep UX reviewers distinct. They27 may inform the larger review, but they are not optional.28- If `$review` is also named, `uxreview` remains the specialist human-usable29 verdict. `review` may synthesize release impact, but it should not silently30 replace or duplicate the UX swarm unless `#FALLBACK` is declared.31- If persona verdicts disagree, treat that disagreement as a product-risk32 signal. Do not smooth it away in synthesis.3334## Evidence Contract3536- Prefer a live UI, screenshot, prototype, or browser inspection over code-only37 inference.38- If only implementation is available, say `implementation-only` and treat39 UI-sensitive claims as unverified until a visible artifact is inspected.40- For UI-heavy work, `Approved` requires direct inspection of a visible41 artifact. Code-only or spec-only review caps the best verdict at42 `Conditional Approval`.43- Cite concrete evidence: visible label, control, focus path, state change,44 error text, empty state, responsive layout, or keyboard behavior.45- Do not approve a UI because the code is clean.4647## Review Gates4849Check these explicitly:5051- Task clarity: does the user know what this screen/workflow is for?52- Next-step clarity: is the obvious action visible and named well?53- Labeling and terminology: plain language, no internal ids, no duplicate54 concepts with different names, no different concepts with the same name.55- Critical distinctions: source, ownership, permanence, scope, and consequence56 are visible where the decision is made.57- Recognition over recall: the UI should show choices and consequences instead58 of making the user remember them.59- Workflow simplicity: minimal steps, minimal mode switching, minimal guessing.60- Feedback and recovery: success, waiting, failure, and blocked states explain61 what happened and what to do next.62- Accessibility: keyboard reachability, focus visibility, semantic controls,63 readable contrast, motion restraint, and usable target sizes.64- Scale and supervision: provenance, filters, diagnostics, batch actions, and65 large-state usability for operational surfaces.66- False confidence: polished styling must not hide ambiguous behavior, silent67 failure, or missing consequences.6869Run these explicit passes:7071- Primary walkthrough: entry point -> orientation -> decision -> action ->72 feedback -> completion.73- Misuse pass: likely wrong click, wrong source, wrong scope, wrong expectation,74 and wrong recovery path.75- Hidden-consequence test: what will the user think happens, what actually76 happens, what persists, what changes scope, and what is externally visible.77- State coverage: inspect or explicitly mark uninspected `entry`, `happy path`,78 `waiting`, `empty`, `error`, `permission/approval`, `responsive`, and79 `keyboard-only` states where applicable.8081## Persona Charters8283Use these default charters:8485- `naive`: first-time or occasional user. Prioritize plain language, obvious86 next steps, fear/confusion triggers, and whether the happy path is clear.87- `intermediate`: familiar with the domain but not product internals.88 Prioritize workflow efficiency, terminology consistency, and recovery.89- `expert`: technical or operational user. Prioritize provenance, overrides,90 diagnostics, auditability, scale, and trustworthy advanced behavior.9192Each persona should answer:9394- what they think the screen/workflow does;95- what they would do next;96- what confused or slowed them down;97- what would make them mistrust the system;98- the top changes required before approval;99- their verdict.100101## Verdicts102103Use one verdict per persona and one final synthesized verdict:104105- `Blocking`: users are likely to fail, misinterpret, or take unsafe action.106- `Conditional Approval`: usable with specific fixes or missing validation.107- `Approved`: no blocking UX risk found in the reviewed scope.108109Do not mark `Approved` if labels are misleading, critical distinctions are110hidden, keyboard/accessibility behavior is broken, or a visible artifact was111available but not inspected.112If the skill was explicitly named and the mandatory subagent contract did not113run, the best possible verdict is `Conditional Approval` with `#FALLBACK`.114If the fallback minimum was also not met, the final verdict must be `Blocking`.115116## Output Format117118Use this structure:119120- `Execution Mode`121- `Planned Reviewer Set`122- `Actual Reviewer Set`123- `Subagents Used`124- `Fallback Reason`125- `Contract Degradation`126- `Observed Evidence`127- `Inference Or Unverified Claims`128- `Blocking UX Issues`129- `Terminology And Meaning Risks`130- `Critical Distinctions`131- `State Coverage`132- `High-Value Improvements`133- `Persona Verdicts`134- `Workflow Recommendations`135- `Accessibility And Visual Notes`136- `Validation Status`137- `Final Verdict`138139If no serious UX findings are discovered, say so plainly and state what was140actually inspected.141142## Field Memory143144- `references/reviewer-memory.md` stores durable, generalizable lessons for145 this skill.146- Update it only when skill maintenance is in scope and the lesson is likely to147 matter again across products.148- Keep additions terse and principle-level, not project-specific.149150## Anti-Patterns151152- Do not accept raw type ids, internal jargon, or implementation terms in153 user-facing controls when clearer labels exist.154- Do not accept invisible tabs, unlabeled icon-only controls, or color-only155 state changes.156- Do not let a nice layout compensate for unclear workflow meaning.157- Do not merge multiple personas into one "user view".158- Do not smooth away persona disagreement when it reveals real user risk.159- Do not report polish feedback before blocking clarity or trust failures.160- Do not approve "simple" flows that hide consequences or provenance.161- Do not downgrade to fewer subagents for convenience, speed, or token economy162 without labeling `#FALLBACK` and naming the blocked capability.