gdd-handoff
Initialize a design cycle from a Claude Design handoff bundle, then route to verify in
post-handoff mode. This skill is the named home for the inline Handoff Routing block in
the root pipeline router (SKILL.md); invoking {{command_prefix}}handoff <path> runs the
same sequence. See connections/claude-design.md for bundle formats and parsing rules.
Role
You do no design work yourself. You resolve a handoff bundle, seed .design/STATE.md for a
handoff-sourced cycle, dispatch the synthesizer + discussant agents, and hand off to the
verify skill. Stages scan/discover/plan are skipped by design - a handoff bundle replaces them.
Invocation Contract
- Input: a bundle path or hosted URL as the argument, OR
--from-handoff <path>, OR a previously-recordedhandoff_pathin.design/STATE.md. - Output: a handoff-sourced
.design/STATE.mdand a routed call toSkill("get-design-done:verify", "--post-handoff").
Procedure
1. Resolve the bundle path
{{command_prefix}}handoff <path>-> bundle path is the argument.--from-handoff <path>-> bundle path is the value after the flag.- A
https://api.anthropic.com/v1/design/h/<hash>URL in the arguments -> treat as the bundle. - None of the above -> read
handoff_pathfrom.design/STATE.md. Still absent -> error: "Provide a bundle path: {{command_prefix}}handoff ./path/to/bundle.html". - For a file path: verify the file exists; if not, error "Bundle not found at ".
2. Initialize STATE.md
- If
.design/STATE.mddoes not exist, copyreference/STATE-TEMPLATE.mdto.design/STATE.md. - In
<position>set:handoff_source(per the bundle format - see the claude-design connection table),handoff_path: <resolved path>,skipped_stages: scan, discover, plan,status: handoff-sourced,stage: verify. - In
<connections>setclaude_design: available; leave every other connection unchanged.
3. Spawn the synthesizer in handoff mode
Task("design-research-synthesizer", """ mode: handoff handoff_path: <resolved bundle path> state_path: .design/STATE.md """)
Wait for ## SYNTHESIZE COMPLETE.
4. Spawn the discussant in from-handoff mode
Task("design-discussant", """ <mode>--from-handoff</mode> <required_reading>.design/STATE.md</required_reading> """)
Wait for ## DISCUSS COMPLETE. This step surfaces every (tentative) decision for user
confirmation; do not skip it - implementing against unconfirmed inferred values is the primary
handoff failure mode.
5. Route to verify
Skill("get-design-done:verify", "--post-handoff")
Verify relaxes the DESIGN-PLAN.md prerequisite for handoff flows and adds a Handoff Faithfulness section to DESIGN-VERIFICATION.md.
6. Optional write-back (post-verify)
After verify completes without FAIL-level gaps, check STATE.md <connections> for figma:.
If figma: available, offer to write implementation status back to Figma (annotates frames +
Code Connect mappings) via agents/design-figma-writer.md with mode: implementation-status.
Skip silently when figma is not_configured or unavailable.
Do Not
- Do not run scan, discover, or plan - the bundle replaces them.
- Do not promote PDF/PPTX-sourced decisions to
(locked)without explicit user confirmation. - Do not commit raw extracted bundle files - only persist decisions to STATE.md.
Cross-references
connections/claude-design.md- bundle formats, field catalogue, confidence tagging.- Root
SKILL.md## Handoff Routing- the inline routing this skill wraps. get-design-done:verify(--post-handoff) - the stage this skill routes to.


