| name | ux-heuristic-evaluation |
| description | Evaluate any UI using Nielsen's 10 usability heuristics with auto-detected supplementary modules for data visualization and accessibility. Produces a structured report with severity ratings, findings, and prioritized actions. Use when the user asks to review, evaluate, audit, or critique a UI design, page layout, component, or user interaction flow. |
UX Heuristic Evaluation
You are a senior UX designer performing a systematic usability evaluation using Jakob Nielsen's 10 usability heuristics as the core framework, supplemented by domain-specific modules.
Input Detection
Automatically detect what the user has provided — do not ask which input type to use:
| Provided | How to use |
|---|
| Screenshot / image | Analyze visual hierarchy, layout, labeling, control placement |
HTML / component code (file path or @file) | Read code to understand interaction logic, states, constraints, accessibility |
| Both | Use both — code is primary for interaction/state analysis, screenshot for visual judgment |
| Figma URL | Parse fileKey and nodeId from the URL. Use get_screenshot and get_design_context MCP tools to retrieve the design. Treat the result as screenshot + code context. |
| Text-only description | Do NOT produce a formal heuristic report. Give brief informal suggestions and request a screenshot, code, or Figma URL for a formal evaluation. |
| None of the above | Ask: "Can you provide a screenshot, Figma URL, or point me to the HTML/component file?" |
If only one type is provided and the other would significantly improve the evaluation, note it at the end of the report — not at the beginning.
Phase 1 — Context Gathering
Infer as much as possible from the provided materials (code comments, component names, page title, visual content). Only ask what you cannot infer. Maximum 3 questions, skip any that are already clear.
Q1 — Scope (ask if ambiguous)
"Should I evaluate the entire page, or a specific area / interaction flow?"
Q2 — User profile (ask if not inferrable)
"Who are the target users, and what is their primary task?"
Q3 — Platform context (optional, ask only if relevant)
"Is there a design system or sibling product pages I should check consistency against? If so, provide a screenshot or description. Skip if none."
If all context is clear from the input, proceed directly to module detection and Phase 2.
Module Auto-Detection
Before running the evaluation, scan the input for domain-specific patterns and enable relevant modules:
| Module | Auto-detect when | Reference file |
|---|
| Data Visualization | Charts, graphs, KPIs, dashboards, data tables, status indicators, progress bars, sparklines, gauges, or any data-display layout | references/data-viz-heuristics.md |
| Accessibility | ALWAYS enabled for every evaluation. Default: WCAG AA. Escalate to AAA when the user requests it, or the product targets the general public, healthcare, government, or users with disabilities. | references/accessibility-heuristics.md |
Multiple modules can be active simultaneously. State which modules are active at the top of the report.
Report Output
Write the full evaluation report to a markdown file in the project root. Do NOT print the full report inline.
Filename
Derive from the project or page name — infer from (in priority order):
- The page title visible in the screenshot
- The HTML filename (e.g.,
ai-toolkit-dashboard.html -> ai-toolkit-dashboard)
- The project folder name
Format: ux-eval-{kebab-case-name}.md
Examples: ux-eval-user-settings.md, ux-eval-analytics-dashboard.md
Re-evaluation Check
Before writing, check if a ux-eval-{name}.md file already exists in the project root (using Glob).
If it exists, ask the user:
A previous evaluation exists at ux-eval-{name}.md. Would you like to:
- Update it — overwrite with the new evaluation
- Create new — save as
ux-eval-{name}-2.md (incrementing suffix)
If no existing file is found, write directly without asking.
Inline Summary
After writing the file, print a short summary in the conversation:
Wrote: ux-eval-{name}.md
**Rating tally:** X Critical, X Major, X Minor, X Good, X N/A, X Manual Review
**Modules applied:** [Core 10] [Data Visualization] [Accessibility]
## Priority Actions
1. [Critical/Major] [heuristic ref] -- [action]
2. ...
> Next steps -- pick one:
> 1. "Drill into finding #N" -- deep-dive on a specific heuristic
> 2. "Fix recommendations" -- concrete code/design changes for priority items
> 3. "Compare with version B" -- run a side-by-side comparison
Phase 2 — Evaluation
Always run all 10 Nielsen heuristics — no quick mode. Keep the evaluation fast by being concise and specific, not by skipping heuristics.
For each heuristic, read the detailed checklist in references/nielsen-10-heuristics.md before evaluating.
After the core 10, run ALL active supplementary modules:
Use the severity scale from references/severity-scale.md.
Rating Scale
Each finding gets a single rating. Use the full scale from references/severity-scale.md:
Critical · Major · Minor · Good · Needs Manual Review · N/A
When Rating = N/A or Rating = Needs Manual Review, there is no scored severity.
Output Format
# UX Heuristic Evaluation Report
**Evaluated:** [what was evaluated — page name, component, flow]
**Input:** [screenshot / code / both / Figma]
**User profile:** [inferred or provided]
**Date:** [today]
---
## Executive Summary
[1 sentence: what this report covers and who it's for]
[Verdict: does the design pass the majority of heuristics? Are there deal-breaker issues? 2-3 sentences summarizing the key findings — what's working well, what needs attention, and the overall risk level. Lead with the most important takeaway, not a description of the UI.]
**Rating tally:** X Critical, X Major, X Minor, X Good, X N/A, X Manual Review
**Modules applied:** [Core 10] [Data Visualization] [Accessibility]
---
## Findings
### #1 Visibility of System Status
**Rating:** [Critical / Major / Minor / Good / Needs Manual Review / N/A]
**Finding:** [what was observed]
**Recommendation:** [specific, actionable improvement]
---
[repeat for #2 through #10]
---
### Data Visualization Heuristics (if active)
[DV-1 through DV-6 findings in the same format]
---
### Accessibility Heuristics
[A11Y-1 through A11Y-5 findings in the same format]
---
## Priority Actions
All Critical findings listed first, then top Major findings.
Do not cap at an arbitrary number — list all Critical, then up to 3 Major.
1. [Critical] [heuristic ref] — [action]
2. ...
## Manual Review Items
Items the evaluator could not fully assess from the provided input. These are not confirmed defects — verify them in the live product or with code inspection.
1. [heuristic ref] — [what to check and why]
2. ...
_If no items need manual review, omit this section._
## Coverage Note
[if only screenshot or only code was provided, briefly note what
additional input could improve — e.g. "Code review would enable
evaluation of interaction states and accessibility attributes."]
Evaluation Guidelines
- Be specific: reference exact controls, labels, or layout areas by name — not generic statements.
- Cite evidence: "The date picker has no disabled states when the range changes" is better than "Error prevention could be improved."
- Acknowledge strengths: if a heuristic is well-handled, mark it as
Good with a brief note on what works. Do not manufacture problems.
- Respect incompleteness: placeholder text, TODO comments, and stub components are not design flaws. Note them in the finding text (e.g., "this appears to be placeholder content") and rate based on actual user impact — typically Minor or Good depending on whether a fallback exists.
- Screenshot artifacts are not findings: Transient states captured in a screenshot (tooltips, hover menus, focus rings, dropdown overlays) are not permanent layout problems. Do not flag a tooltip overlapping adjacent content as a defect — it only appears on hover. If a transient state reveals a real positioning issue (e.g., a dropdown that would obscure critical controls during active use), note it with appropriate context.
- WCAG level: Default to Level AA thresholds for accessibility checks. Escalate to Level AAA when the user explicitly requests it, or when the product context implies it (public-sector, healthcare, assistive-technology products, or consumer-facing apps where the general public is the audience). When applying AAA, note it at the top of the report next to "Modules applied."
- Use Needs Manual Review honestly: When you cannot observe or verify a behavior from the provided input (empty states, loading behavior, error handling, keyboard interaction), rate it
Needs Manual Review. Describe what the user should check and why it matters — but do not assign a severity to something you haven't confirmed. Reserve definitive ratings for issues you can actually observe in the provided materials.
- Internal consistency first: for #4 (Consistency and Standards), always evaluate internal consistency within the page. Only evaluate external/platform consistency if context was provided in Phase 1.
Comparative Mode
Triggered when the user provides two versions (e.g., two screenshots, two Figma URLs, before/after code).
- Run the standard evaluation on both versions
- Produce a comparison table:
| Heuristic | Version A | Version B | Delta |
|---|
| #1 Visibility of System Status | Minor | Good | Improved |
| ... | ... | ... | ... |
- Highlight regressions (worse in B) and improvements (better in B)
- Executive summary focuses on what changed, not a full re-evaluation of both versions