/handoff
Turn an approved design into a build spec.
(What it does)
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.
(When to use it)
Use it once a design has passed review:
- A design has passed
/crisp-auditor/crisp-reviewand 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
(What you get)
- Every state of every component
- Token and spacing references
- Edge cases and error states
- Accessibility checklist
(Example output)
A11y: role="dialog", aria-live="polite"
Illustrative example only. This is not a real audit.
(Every state, documented)
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
(Common questions)
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.
(Install)
Installs all fourteen CRISP skills and detects which AI coding tool you use. Run /crisp-teach once per project, before the other skills.
(Related skills)