design-handoff
This skill contains shell command directives (!`command`) that may execute system commands. Review carefully before installing.
Pre-computed context
Current branch: !git branch --show-current 2>/dev/null || echo "unknown"
Purpose
The seam between design and planning. /planning:plan's prerequisite check blocks on design-gate evidence; this skill produces that evidence honestly — a binary check read off the artifact, then a handoff summary sourced from the artifacts rather than recalled from conversation memory.
Design artifacts live in <contract_dir>/<topic-slug>/design/ (default docs/topics/) — the topic's contract slice on the task branch, joining the memory slice under contract_tier: local; roots, tier, and precedence resolve per the topic-docs binding ${CLAUDE_PLUGIN_ROOT}/reference/topic-docs.md. Derive <topic-slug> from the task or branch name (kebab-case, ≤40 chars; shared with /planning:design and /planning:plan).
Binary gate — check the artifact, not your memory
Read design-threads.md in the topic's resolved design slice (<contract_dir>/<topic-slug>/design/, default docs/topics/; the memory slice under contract_tier: local) and confirm, thread by thread, that every design thread is one of:
- RESOLVED — the deciding rationale is recorded in the artifact (not merely "decided"), or
- directional — direction agreed AND the remaining detail carries a research tag, or
- TAGGED-DEFERRED — an explicit research tag naming the external investigation needed.
A thread that is unresolved AND untagged is a silent gap → FAIL: list the offending thread(s), route back to /planning:design (its design-threads and discussion rounds) to resolve or tag, and do NOT hand off. This is a binary check read off design-threads.md, not a "did we cover enough?" recap — a producing model rubber-stamps its own recap, so the gate must be read off the file rather than judged from memory.