Browse the docs

Skills: Craft and build

/crisp-design-eng

Get the motion and details right.

Craft and builduser-invoked

The craft layer of CRISP. /crisp-design-eng closes the gap between an interface that works and one that feels right. It covers motion, micro-interactions (small responses to a single action, like a button press), colour, typography, and the small details that quietly erode trust when they are wrong, even though users cannot say why.

It does not add animation for decoration. It names specific craft problems, such as delayed feedback, easing that makes things feel slow, or motion that is too heavy for how often users trigger it. Then it specifies the exact fix, in code, and the CRISP dimension it repairs.

Use it when the feature works but does not feel right yet:

  • A modal, dropdown, or transition feels janky and you need the problem named and fixed
  • You are adding motion to a component and want it to have a purpose, not just decorate
  • A final polish pass on a screen that works but does not feel finished
  • Running the Mechanical Pre-Flight Checks that /crisp-redesign and /crisp-funnel require before delivery
  • Before-and-after table of craft problems
  • Motion decisions (duration and easing)
  • Performance and reduced-motion flags
  • Every fix linked to a CRISP dimension
Claude Code: /crisp-design-eng
transition: all 300ms→transform 200ms
scale(0) on enter→scale(0.95)+opacity
ease-in dropdown→ease-out curve
400ms duration→R · under 300ms

Illustrative example only. This is not a real audit.

The CRISP framework scores whether a design is good across five dimensions. Design engineering asks the question the framework deliberately does not score: does it feel the way it should? That question has specific, testable answers, and this skill makes them explicit. Many small details, each done correctly, add up to something that feels right, even when users cannot say why.

Will it add animations to my UI?

Only where motion serves a purpose. Its default is restraint: it is as likely to remove an unjustified transition as to add one, and every motion decision records the duration, the easing, and the dimension it serves.

What are the Mechanical Pre-Flight Checks?

A set of objective, countable checks run on a screen before it ships, such as button contrast and text wrapping, locked colour and corner-radius rules, and telltale layout patterns. /crisp-redesign and /crisp-funnel both run them as a final quality check before delivery.

Why OKLCH for colours?

OKLCH is a colour format that is perceptually uniform: equal steps in lightness actually look equal. That makes palettes predictable and accessible contrast easier to reason about. New colour tokens are written in OKLCH, never raw hex.

What is the font doctrine about?

Avoiding the fonts AI tools reach for by default. A reject list covers fonts AI systems choose so often that they have become a giveaway. The selection process then ties the choice to a physical reference, such as the typeface on a museum caption card, rather than "something modern".

zsh
$ npx skills add @laith-wallace/crisp

Installs all fourteen CRISP skills and detects which AI coding tool you use. Run /crisp-teach once per project, before the other skills.

(The CRISP letter)

Design evaluation, in writing.

Occasional emails on getting AI agents to produce work worth shipping. New skills are announced here first. No noise.