Browse the docs

Skills: Craft and build

/handoff

Turn an approved design into a build spec.

The core loopuser-invoked

The bridge from approved design to build. /handoff turns a reviewed design into a complete developer spec: every component, every state of every element, design tokens and spacing, interactions with exact timings and easing curves, edge cases, an accessibility checklist, and every piece of copy written out in full. Nothing is left as "TBD".

The reasoning is simple: any state the spec leaves out, a developer will have to invent. That hands a design decision to someone who was never meant to make it. The spec removes the guesswork before any code is written.

Use it once a design has passed review:

  • A design has passed /crisp-audit or /crisp-review and is moving to build
  • Work is going to another developer, a contractor, or an AI agent in a separate session
  • A component keeps coming back from build with made-up empty states and missing error handling
  • Every state of every component
  • Token and spacing references
  • Edge cases and error states
  • Accessibility checklist
Claude Code: /handoff
EmptyState
spacing: space-8color: text-mutedicon: size-12
ApprovalCard
variant: inlinez-index: overlay
States: default · loading · success · error · disabled
A11y: role="dialog", aria-live="polite"

Illustrative example only. This is not a real audit.

For each interactive element, the spec covers every state. The states most often missing from designs are the ones users hit at the worst moments:

  • Default, hover, focus, active, and disabled
  • Loading: skeleton, spinner, or optimistic update, and why
  • Empty: never "No data available"
  • Error: the exact message and how the user recovers
  • Success: what confirms the action, and exactly what it did
When should I run it?

After a design has passed /crisp-audit or /crisp-review. Handoff assumes the design decisions are already made. Its job is to make them precise enough to build without follow-up questions.

Does it cover accessibility?

It includes a keyboard, screen reader, and visual checklist, which is enough for a well-built component. For a check against each WCAG 2.2 AA criterion (the widely used web accessibility standard) with code fixes, run /crisp-a11y. The two are designed to work together.

Why does it insist on exact copy?

Because "TBD" text ships. Every heading, button label, empty state, and error message is written out word for word, so the built product matches the reviewed design, down to the wording.

What level of precision should I expect?

The skill's own standard: "fade in" is not enough, "opacity 0 to 1, 200ms, ease-out" is. Wherever your design system has a token, the spec references it via .crisp.md.

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.