cli/assets/gemini/skills/heuristic/SKILL.md
Produce a scored heuristic critique of the UI using Nielsen's 10 + 6 design laws + optional persona walkthroughs. Outputs a machine-parseable scorecard plus a 0-100 UsabilityScore (the judged companion to the deterministic UICraftScore). Invoke when the user asks for heuristic on their UI, or mentions 'heuristic' alongside design / UI / frontend work.
npx skillsauth add educlopez/ui-craft heuristicInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
Security scan pending...
This skill is queued for security scanning. Results will appear when the scan completes.
Context: this sub-skill is one lens of the broader ui-craft skill. If the ui-craft skill is also installed, read its SKILL.md first for Discovery + Anti-Slop + Craft Test, then apply the specific lens below.
Score the UI at $ARGUMENTS against Nielsen's 10 + 6 design laws. Load the ui-craft skill.
Step 1 — Load the methodology. Read references/heuristics.md for the full rubric, scoring definitions, design law details, and the required output format. Do NOT invent a new format or a new scale.
Step 2 — Walk Nielsen's 10 heuristics. Score each 1-5 per the rubric:
For every heuristic, write a concrete finding — quote text, count elements, name the broken flow. Vague findings are rejected.
Step 3 — Audit the 6 design laws. PASS / FAIL each with a specific detail:
Step 4 — Persona walkthrough (if --persona= present). If the args include --persona=<name>, load references/personas.md and run the matching walkthrough checklist. Supported: priya, jordan, adaeze, kwame, margo, all. Output the walkthrough as a | Checklist item | Pass/Fail | Finding | Impact | table. Without the flag, skip this step.
Step 5 — Rank findings by impact tag. Impact order: blocks-conversion > adds-friction > reduces-trust > minor-polish. Include at most 5 findings in the ranked list; cut anything at minor-polish unless there are no higher-impact findings.
Step 6 — Compute the UsabilityScore. Roll the scorecard into a 0-100 number + grade per the UsabilityScore formula in references/heuristics.md: heuristic_base = round(((mean(nielsen_scores) − 1) / 4) × 100), minus 5 × (failed design laws), clamped [0,100]. Same A/B/C/D/F bands as UICraftScore. Always label it (judged) — it is not deterministic and must never gate CI. If the args include --json, also emit the machine-readable block. If the user asks for the full picture, build the Extended quality report by fetching the deterministic UICraftScore (node scripts/eval.mjs <path> --json or the score_ui MCP tool) and placing both side by side — never average them.
Step 7 — Output. Use the exact scorecard format in references/heuristics.md:
## Heuristic Scorecard table## Design Law Audit table## Persona Walkthrough table (only if --persona= was passed)## Top findings (ranked by impact) — numbered list, 3-5 items## UsabilityScore block — the 0-100 score + grade + component breakdownKnob awareness: knob-agnostic. Usability is not a knob — a 2 is a 2 whether CRAFT_LEVEL is 3 or 9. Do not soften scores based on CRAFT_LEVEL.
Output contract:
Do NOT edit code. This is a scored critique.
Next step: Fix the findings, then /finalize — the scorecard is the input to a gated ship (rung 3).
tools
--- name: redesign description: "Redesign an existing site or app without losing what already works — audits the current surface first, classifies what to preserve (brand, IA, SEO, content), picks a refresh/reskin/rebuild scope, then modernizes deliberately. Use when the user says "redesign", "modernize this site", "refresh the UI", "make this look current", or points at an existing page/URL they want improved rather than rebuilt from scratch. Invoke when the user asks for redesign on their UI,
tools
--- name: quieter description: "Tone down visual noise — lowers variance and motion, simplifies layout and color weight, keeps hierarchy clear. Use when the UI feels loud, busy, or over-designed, or when the user says "quieter", "more restrained", "simpler", or "tone it down". Invoke when the user asks for quieter on their UI, or mentions 'quieter' alongside design / UI / frontend work." --- <!-- HARNESS MIRROR — do not edit here. Canonical source: commands/quieter.md. After editing source, cop
tools
--- name: bolder description: "Amplify personality — raises layout variance and motion, strengthens typography and one signature detail, without slop. Use when the UI works but feels safe, flat, or "template-y", or when the user says "bolder", "more personality", "more creative", or "make it pop" (still professional). Invoke when the user asks for bolder on their UI, or mentions 'bolder' alongside design / UI / frontend work." --- <!-- HARNESS MIRROR — do not edit here. Canonical source: comman
tools
--- name: redesign description: "Redesign an existing site or app without losing what already works — audits the current surface first, classifies what to preserve (brand, IA, SEO, content), picks a refresh/reskin/rebuild scope, then modernizes deliberately. Use when the user says "redesign", "modernize this site", "refresh the UI", "make this look current", or points at an existing page/URL they want improved rather than rebuilt from scratch. Invoke when the user asks for redesign on their UI,