Design Handoff Brief Skill
Transform feature briefs into structured design briefs that give designers the context they need before opening Figma.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/design-handoff-brief. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit mohitagw15856/pm-claude-skills/skills/design-handoff-brief#main ~/.claude/skills/design-handoff-briefFor one project only, change the path to .claude/skills/design-handoff-brief.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Design Handoff Brief Skill
Show the full text109 lines
| name | description |
|---|---|
| design-handoff-brief | Transform feature briefs into structured design briefs that give designers the context they need before opening Figma. Use when asked to write a design brief, create a design handoff, brief a designer on a new feature, or translate a PRD into design requirements. Produces a brief with user goal, emotional context, success criteria, constraints, edge cases, and out-of-scope boundaries. |
Design Handoff Brief Skill
Produce a design brief that sets designers up for success — grounding them in user context and constraints before they open Figma, not after they've gone in the wrong direction.
Required Inputs
Ask the user for these if not provided:
- Feature brief or PRD (even rough notes work)
- Designer's name or team (for personalisation)
- Technical constraints (any engineering limitations already known)
- Timeline (when does design need to be done?)
What Designers Actually Need (and PMs Often Skip)
- The user's goal, not the feature name
- The emotional state of the user at this moment in the journey
- What success looks like — how will we know the design worked?
- Constraints: technical, legal, brand, accessibility
- Edge cases that must be handled
- What we're explicitly NOT solving for
Process
- Read the feature brief or PRD provided
- Extract user goal (reframe from feature language to user outcome language)
- Identify constraints — technical limitations, brand guidelines, accessibility requirements
- List edge cases the design must handle
- Define success criteria the design should be evaluated against
- Write a "not in scope" section to prevent scope creep in design
- Validate — Confirm every edge case listed is specific enough to design for, and every out-of-scope item is concrete enough to say "no" to
Programmatic Helper
Contrast ratios cannot be eyeballed. The AA line sits at 4.5:1, and #777777
on white is 4.478 (fails) while #767676 is 4.54 (passes) — no amount of
looking at a screenshot separates those. Compute them:
npx --yes notugly fix "#8ab4f8" "#ffffff" # ratio, APCA, and the nearest passing colour
npx --yes notugly onepager <url> --out review.html # every pairing, printable
npx --yes notugly vision # which colours merge for colour-blind viewers
notugly fix returns the ratio, the APCA lightness contrast, and the closest
colour to the one already chosen that passes — same hue, same chroma. Paste
those numbers into the tables below rather than estimating them.
Deterministic, zero dependencies, and no model call — so it costs nothing to run and gives the same answer every time.
Handoff is exactly where contrast gets lost: a designer picks a colour in a tool with no contrast checker, and an engineer implements it faithfully. Put the measured ratio next to every colour in the handoff table so the number travels with the value.
Output Structure
Design Brief: [Feature Name]
User Goal: (in the user's words, not ours) "When I [situation], I want to [motivation] so that I can [outcome]."
Context & Emotional State: [Where is the user in their journey? What are they feeling? What just happened?]
Design Success Criteria:
- [Criterion 1 — measurable where possible]
- [Criterion 2]
- [Criterion 3]
Constraints:
- Technical: [limitations engineering has flagged]
- Brand: [relevant brand guidelines]
- Accessibility: [WCAG level required, any specific requirements]
- Legal/Compliance: [if applicable]
Edge Cases to Design For:
- [Edge case 1]
- [Edge case 2]
- [Edge case 3]
Explicitly Out of Scope:
- [What we are NOT solving in this design iteration]
Reference Material:
- User research: [link]
- Existing patterns: [Figma component library link]
- Competitor examples: [links if relevant]
Quality Checks
- User goal is written in user language (not feature/product language)
- At least one edge case covers an error or failure state
- Success criteria are measurable or observable (not "looks good")
- Out-of-scope section names at least one thing that might seem in scope but isn't
- Technical constraints are specific enough for an engineer to confirm
Anti-Patterns
- Do not write the user goal in feature language ("design the checkout flow") — it must be written from the user's perspective with a motivation and outcome
- Do not skip the "Explicitly Out of Scope" section — without it, designers will inadvertently solve problems not intended for this iteration
- Do not list edge cases that are so generic they apply to any feature (e.g. "handle errors") — each edge case must be specific to this feature's failure modes
- Do not hand off the brief without confirming engineering constraints are accurate — a constraint that is wrong is worse than no constraint
- Do not omit the emotional context of the user — designs without emotional grounding produce technically correct but experientially flat results
| 1 | |
| 2 | name design-handoff-brief |
| 3 | description "Transform feature briefs into structured design briefs that give designers the context they need before opening Figma. Use when asked to write a design brief, create a design handoff, brief a designer on a new feature, or translate a PRD into design requirements. Produces a brief with user goal, emotional context, success criteria, constraints, edge cases, and out-of-scope boundaries." |
| 4 | |
| 5 | |
| 6 | # Design Handoff Brief Skill |
| 7 | |
| 8 | Produce a design brief that sets designers up for success — grounding them in user context and constraints before they open Figma, not after they've gone in the wrong direction. |
| 9 | |
| 10 | ## Required Inputs |
| 11 | |
| 12 | Ask the user for these if not provided: |
| 13 | **Feature brief or PRD** (even rough notes work) |
| 14 | **Designer's name or team** (for personalisation) |
| 15 | **Technical constraints** (any engineering limitations already known) |
| 16 | **Timeline** (when does design need to be done?) |
| 17 | |
| 18 | ## What Designers Actually Need (and PMs Often Skip) |
| 19 | The user's goal, not the feature name |
| 20 | The emotional state of the user at this moment in the journey |
| 21 | What success looks like — how will we know the design worked? |
| 22 | Constraints: technical, legal, brand, accessibility |
| 23 | Edge cases that must be handled |
| 24 | What we're explicitly NOT solving for |
| 25 | |
| 26 | ## Process |
| 27 | Read the feature brief or PRD provided |
| 28 | Extract user goal (reframe from feature language to user outcome language) |
| 29 | Identify constraints — technical limitations, brand guidelines, accessibility requirements |
| 30 | List edge cases the design must handle |
| 31 | Define success criteria the design should be evaluated against |
| 32 | Write a "not in scope" section to prevent scope creep in design |
| 33 | **Validate** — Confirm every edge case listed is specific enough to design for, and every out-of-scope item is concrete enough to say "no" to |
| 34 | |
| 35 | |
| 36 | ## Programmatic Helper |
| 37 | |
| 38 | Contrast ratios cannot be eyeballed. The AA line sits at 4.5:1, and `#777777` |
| 39 | on white is 4.478 (fails) while `#767676` is 4.54 (passes) — no amount of |
| 40 | looking at a screenshot separates those. Compute them: |
| 41 | |
| 42 | |
| 43 | npx --yes notugly fix "#8ab4f8" "#ffffff" # ratio, APCA, and the nearest passing colour |
| 44 | npx --yes notugly onepager <url> --out review.html # every pairing, printable |
| 45 | npx --yes notugly vision # which colours merge for colour-blind viewers |
| 46 | |
| 47 | |
| 48 | `notugly fix` returns the ratio, the APCA lightness contrast, and the closest |
| 49 | colour to the one already chosen that passes — same hue, same chroma. Paste |
| 50 | those numbers into the tables below rather than estimating them. |
| 51 | |
| 52 | Deterministic, zero dependencies, and **no model call** — so it costs nothing to |
| 53 | run and gives the same answer every time. |
| 54 | |
| 55 | Handoff is exactly where contrast gets lost: a designer picks a colour in a tool |
| 56 | with no contrast checker, and an engineer implements it faithfully. Put the |
| 57 | measured ratio next to every colour in the handoff table so the number travels |
| 58 | with the value. |
| 59 | |
| 60 | ## Output Structure |
| 61 | |
| 62 | ### Design Brief: [Feature Name] |
| 63 | |
| 64 | **User Goal:** (in the user's words, not ours) |
| 65 | "When I [situation], I want to [motivation] so that I can [outcome]." |
| 66 | |
| 67 | **Context & Emotional State:** |
| 68 | [Where is the user in their journey? What are they feeling? What just happened?] |
| 69 | |
| 70 | **Design Success Criteria:** |
| 71 | [Criterion 1 — measurable where possible] |
| 72 | [Criterion 2] |
| 73 | [Criterion 3] |
| 74 | |
| 75 | **Constraints:** |
| 76 | Technical: [limitations engineering has flagged] |
| 77 | Brand: [relevant brand guidelines] |
| 78 | Accessibility: [WCAG level required, any specific requirements] |
| 79 | Legal/Compliance: [if applicable] |
| 80 | |
| 81 | **Edge Cases to Design For:** |
| 82 | [Edge case 1] |
| 83 | [Edge case 2] |
| 84 | [Edge case 3] |
| 85 | |
| 86 | **Explicitly Out of Scope:** |
| 87 | [What we are NOT solving in this design iteration] |
| 88 | |
| 89 | **Reference Material:** |
| 90 | User research: [link] |
| 91 | Existing patterns: [Figma component library link] |
| 92 | Competitor examples: [links if relevant] |
| 93 | |
| 94 | ## Quality Checks |
| 95 | |
| 96 | [ ] User goal is written in user language (not feature/product language) |
| 97 | [ ] At least one edge case covers an error or failure state |
| 98 | [ ] Success criteria are measurable or observable (not "looks good") |
| 99 | [ ] Out-of-scope section names at least one thing that might seem in scope but isn't |
| 100 | [ ] Technical constraints are specific enough for an engineer to confirm |
| 101 | |
| 102 | ## Anti-Patterns |
| 103 | |
| 104 | [ ] Do not write the user goal in feature language ("design the checkout flow") — it must be written from the user's perspective with a motivation and outcome |
| 105 | [ ] Do not skip the "Explicitly Out of Scope" section — without it, designers will inadvertently solve problems not intended for this iteration |
| 106 | [ ] Do not list edge cases that are so generic they apply to any feature (e.g. "handle errors") — each edge case must be specific to this feature's failure modes |
| 107 | [ ] Do not hand off the brief without confirming engineering constraints are accurate — a constraint that is wrong is worse than no constraint |
| 108 | [ ] Do not omit the emotional context of the user — designs without emotional grounding produce technically correct but experientially flat results |
| 109 |
Discussion
Browse more free Claude skills or everything in Product.


