design-handoff-spec
Skill4 starsChanged 27 days agoMITView on GitHub
Use when handing a design over to developers, writing a design spec, handoff document, redlines or annotations for a screen, component or flow, or listing the states, edge cases, responsive behaviour and interactions developers need from a Figma file or mockup.
In this repository30 other files it gives its agents.
- accessibility-auditSkill
- api-design-reviewSkill
- api-test-writerSkill
- architecture-diagramSkill
- bug-debuggerSkill
- bug-report-writerSkill
- changelog-writerSkill
- codebase-onboardingSkill
- code-reviewSkill
- database-schema-designSkill
- dependency-upgradeSkill
- design-reviewSkill
- dockerize-appSkill
- figma-design-compareSkill
- flaky-test-fixerSkill
- git-commit-writerSkill
- github-actions-ciSkill
- playwright-e2e-testsSkill
- prd-writerSkill
- proof-of-done-liteSkill
- readme-writerSkill
- refactor-plannerSkill
- security-auditSkill
- seo-auditSkill
- test-case-generatorSkill
- test-plan-writerSkill
- test-writerSkill
- ux-research-synthesisSkill
- ux-writingSkill
- web-performance-auditSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 89
Never invent a value, colour, copy or state.
- Distinctive: line 90
Prefer design tokens and existing components over raw values.
- Distinctive: line 91
Write behaviour, not implementation: "the list keeps its scroll position when returning from details", not code.
- Distinctive: line 93
If an input is a screenshot only, say which values are measured from pixels and may be off by a pixel or two.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Design Handoff Spec
Overview
Developers build what is specified and guess the rest. A handoff spec removes the guessing: every state, edge case, breakpoint and interaction is written down, with exact values or design tokens, and anything not yet decided is listed as an open question instead of being invented.
Inputs
- The design: Figma frames (via the Figma MCP server if connected), exported screens, or a description.
- The design system or token names, if any (colours, type styles, spacing scale, components).
- Platform and breakpoints (web, iOS, Android; for example 360, 768, 1280).
Method
- Inventory. List the screens in the flow and, per screen, the components in reading order. Note which are existing design-system components and which are new.
- Layout and values. For each component: size behaviour (fixed, hug, fill), spacing, alignment, type style, colour. Use token names when they exist; use raw values only when there is no token, and mark them
(no token). - States. For every interactive or data-driven component, fill in the states table below. A state that is not designed is an open question.
- Content rules. Minimum and maximum length, what happens to long text (wrap, truncate with ellipsis, tooltip), number and date formats, images that fail to load.
- Responsive behaviour. What changes at each breakpoint: stacking, hiding, column count, font size, navigation pattern.
- Interactions and motion. Trigger, result, duration and easing; what happens on slow network; where focus goes.
- Accessibility. Focus order, keyboard behaviour, accessible names for icon buttons, what screen readers announce on errors and updates, reduced-motion behaviour.
- Edge cases from the checklist below.
- Acceptance criteria that a tester can check, and open questions with an owner.
States checklist
| Component type | States to specify |
| Buttons, links, chips | default, hover, focus, pressed, disabled, loading |
| Inputs | empty, placeholder, filled, focus, error with message, disabled, read-only |
| Lists, tables, feeds | loading, empty (first use and no results), one item, many items, error, partial load |
| Pages and sections | loading, success, error, no permission, offline |
| Overlays (modal, sheet, toast) | open, close, scroll when content is long, what closes it |
Edge cases checklist
- Very long and very short text: names, titles, translations (German is about 30% longer).
- 0, 1 and many items; the largest realistic number.
- Missing data: no avatar, no image, optional fields empty.
- Slow network and failures: what shows while waiting, retry.
- Permissions: what a user without access sees.
- Small screens, large text settings and zoom to 200%.
- Right-to-left languages, if supported.
Output
# Handoff: <feature or screen>
**Platforms and breakpoints:** <…>
**Design file:** <link and frame names>
## Screens and components
### <Screen name>
| Component | Design system? | Layout | Type | Colour | Spacing |
|---|---|---|---|---|---|
#### States
| Component | State | Looks like | Behaviour |
|---|---|---|---|
#### Content rules
#### Responsive
| Breakpoint | Change |
|---|---|
#### Interactions
| Trigger | Result | Motion |
|---|---|---|
#### Accessibility
## Edge cases
## Acceptance criteria
- [ ] Given <…>, when <…>, then <…>
## Open questions
| Question | Owner | Needed by |
|---|---|---|Rules
- Never invent a value, colour, copy or state. If the design does not show it, it goes in Open questions.
- Prefer design tokens and existing components over raw values; flag every new component.
- Write behaviour, not implementation: "the list keeps its scroll position when returning from details", not code.
- One spec per flow; keep values in tables so they are easy to scan and check.
- If an input is a screenshot only, say which values are measured from pixels and may be off by a pixel or two.
Common mistakes
- Specifying only the happy path at one screen width.
- Copying every pixel value when a token exists, so the build drifts from the design system.
- "Loading state: TBD" left with no owner.
- Error states with no error message text.
Made by Wageesha Tripathi · LinkedIn · Email · More skills
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

