Browse the docs

Skills — Craft and build

/crisp-ux-laws

Diagnosis, not theory.

Specialist extensionsuser-invoked

Cognitive science as a diagnostic tool. /crisp-ux-laws applies seven laws of perception and motor behaviour — Fitts, Hick, Miller, Doherty, Von Restorff, Proximity, Common Region — to a component or flow, names the violations, maps each to the CRISP dimension it breaks, and specifies the fix.

The point is diagnosis, not theory. When an interaction feels wrong, these laws are how you name why — and a named cause produces a specific fix rather than another round of guessing.

Reach for it when a problem needs a name:

  • An interaction feels wrong and nobody can articulate why
  • An audit flagged a C, R, or P violation and you want the root cause
  • A design debate needs settling with evidence instead of preference
  • Reviewing interaction complexity before it hardens into the final design
  • Law-to-CRISP-dimension mapping
  • Interaction-complexity diagnosis
  • Actionable rule per law
  • Choice + cognitive-load reductions
Claude Code — /crisp-ux-laws
Hick's Law→ Powerful
Fitts's Law→ Seamless
Miller's Law→ Intelligent
Doherty Threshold→ Responsive
Von Restorff→ Contextual

Illustrative example output — not a real audit.

  • Fitts' Law · Seamless — target size and distance; the interface should not fight the user's body
  • Hick's Law · Powerful — decision time grows with choices; progressive disclosure is the fix
  • Miller's Law · Intelligent — chunk information; users process grouped units, not inventory
  • Doherty Threshold · Responsive — feedback within 400ms is a perception boundary, not a target
  • Von Restorff Effect · Contextual — one clear emphasis per view; isolation creates salience
  • Law of Proximity · Contextual — spatial distance reads as semantic distance
  • Law of Common Region · Contextual — boundaries create groups; ambiguous containers break the mental map
Is this just design theory?

No — every law in the output arrives as a violation table with a specific fix, in the same style as the other CRISP commands. "Delete button 12px with no padding — expand the hit area to 44px" is diagnosis; a lecture on Fitts (1954) is not, and the skill does not produce one.

When does it run inside other commands?

The audits use it as a root-cause layer: an R violation checks Doherty first, a C violation checks Von Restorff, Proximity, and Common Region, a P violation checks Hick and Miller. Run it standalone when you want that layer without a full audit.

Why 400 milliseconds?

The Doherty Threshold — below roughly 400ms a system feels instant, above it users consciously notice the wait. They are qualitatively different experiences, not points on a scale, which is why the Responsive dimension treats it as a boundary.

Which law is most often misapplied?

Miller's. It is not about limiting menus to seven items — it is about chunking, organising information into grouped units so users process insight instead of inventory. The skill applies it to forms, tables, and dashboards accordingly.

zsh
$ npx skills add @laith-wallace/crisp

Installs all fourteen CRISP skills and auto-detects your AI harness. Run /crisp-teach once per project first.

The CRISP Letter

Design evaluation, in writing.

Occasional letters on making AI agents produce work worth shipping. New skills announced here first. No noise.