hegemonart

get-design-done

"Master design pipeline for Claude Code. 5-stage workflow: Brief → Explore → Plan → Design → Verify. Run 'brief' first in any new project to capture the design problem, then 'explore' to inventory the codebase and interview for context. Invoke without arguments for status and auto-routing."

hegemonart 3 1 Updated 3d ago

Resources

21
GitHub

Install

npx skillscat add hegemonart/get-design-done

Install via the SkillsCat registry.

SKILL.md

Get Design Done — Pipeline Router

Entry point for the get-design-done toolkit. Establishes the /gdd: command namespace.

Brief → Explore → Plan → Design → Verify  →  next

The 5-stage pipeline. scan and discover are now merged into explore — their old aliases still route through for backward compatibility.

Each stage produces artifacts in .design/ inside the current project.

Command Reference

Command Skill Purpose
brief get-design-done:gdd-brief Stage 1 of 5 — capture problem, audience, constraints, metrics, scope → BRIEF.md
explore get-design-done:gdd-explore Stage 2 of 5 — inventory scan + design interview → DESIGN.md, DESIGN-DEBT.md, DESIGN-CONTEXT.md
plan get-design-done:plan Stage 3 of 5 — decompose into tasks → DESIGN-PLAN.md
design get-design-done:design Stage 4 of 5 — execute tasks → DESIGN-SUMMARY.md
verify get-design-done:verify Stage 5 of 5 — score + audit → DESIGN-VERIFICATION.md
handoff <path> inline Skip scan/discover/plan; initialize from Claude Design bundle; route to verify
map get-design-done:gdd-map Parallel codebase mapping — spawns 5 mappers → .design/map/*.md + .design/DESIGN-MAP.md
next get-design-done:gdd-next Route to the next pipeline stage based on STATE.md
help get-design-done:gdd-help List all commands with one-line descriptions
style [ComponentName] get-design-done:gdd-style Generate component handoff doc → .design/DESIGN-STYLE-[Name].md
darkmode get-design-done:gdd-darkmode Audit dark mode architecture + contrast + anti-patterns → .design/DARKMODE-AUDIT.md
compare get-design-done:gdd-compare Delta between DESIGN.md baseline and DESIGN-VERIFICATION.md → .design/COMPARE-REPORT.md
figma-write <mode> get-design-done:gdd-figma-write Write design decisions to Figma (annotate/tokenize/mappings)
figma-extract <file-url-or-key> get-design-done:gdd-figma-extract Off-context Figma design-system extraction → compact local digest (DESIGN.md + tokens.json + components.json), zero raw JSON in context
graphify <subcommand> get-design-done:gdd-graphify Manage Graphify knowledge graph (build/query/status/diff)
discuss [topic] [--all] [--spec] [--cycle <name>] get-design-done:gdd-discuss Adaptive design interview — spawns design-discussant; appends D-XX decisions to STATE.md
list-assumptions [--area] get-design-done:gdd-list-assumptions Surface implicit design assumptions baked into the codebase
Audit & Session
audit [--retroactive] [--quick] [--no-reflect] get-design-done:gdd-audit Wraps design-verifier + design-auditor + design-reflector; --retroactive audits full cycle scope
reflect [--dry-run] [--cycle <slug>] get-design-done:gdd-reflect On-demand reflection — reads cycle data, produces improvement proposals → .design/reflections/<slug>.md
apply-reflections [--filter <type>] [--dry-run] get-design-done:gdd-apply-reflections Review + selectively apply reflection proposals (FRONTMATTER/REFERENCE/BUDGET/QUESTION/GLOBAL-SKILL)
pause [context] get-design-done:gdd-pause Write numbered checkpoint to .design/checkpoints/NN-*.md
resume [N] get-design-done:gdd-resume Restore session from checkpoint N (or list checkpoints if no arg)
continue [N] get-design-done:gdd-continue Alias for /gdd:resume
recall <query> get-design-done:gdd-recall Search cross-cycle memory (decisions, learnings, experience archives)
timeline [N|N-M|all] get-design-done:gdd-timeline Narrative retrospective across completed cycles
Lifecycle
start [--budget <t>] [--skip-interview] [--dismiss-nudge] get-design-done:start First-Run Proof Path — scans UI code, returns one concrete first fix. No STATE.md writes.
new-project [--name <n>] get-design-done:gdd-new-project Initialize project — PROJECT.md + STATE.md + cycle-1
new-cycle [<goal>] get-design-done:gdd-new-cycle Start a new design cycle; writes .design/CYCLES.md entry
complete-cycle [<note>] get-design-done:gdd-complete-cycle Archive cycle artifacts to .design/archive/cycle-N/; reset STATE.md
Execution speed
quick [--skip <agent>] [stage] get-design-done:gdd-quick Run pipeline skipping optional agents for speed
fast <task> get-design-done:gdd-fast Trivial inline task — no subagents, no pipeline, no artifacts
Debug & Workflow
debug [<symptom>] get-design-done:gdd-debug Symptom-driven design investigation; persistent state in .design/DEBUG.md
do <natural language> get-design-done:gdd-do Natural-language router — parses intent, confirms, dispatches
report-issue [<cmd>] [--force-report] get-design-done:report-issue Consent-gated GitHub issue reporter — triage, pseudonymize, draft to disk, submit via gh (no auto-mode; hardcoded destination)
Ship & Safety
ship [--title <t>] [--draft] get-design-done:gdd-ship Post-verify PR flow — clean branch + gh pr create
pr-branch [<base>] get-design-done:gdd-pr-branch Strip .design/ and .planning/ commits for clean code-review branch
undo [<sha>] get-design-done:gdd-undo Safe revert with dependency check
Ops
progress [--forensic] get-design-done:gdd-progress Pipeline position + recommended next action; --forensic runs 6-check integrity audit
health get-design-done:gdd-health Artifact health report for .design/
todo <add|list|pick> [text] get-design-done:gdd-todo Design todo list → .design/TODO.md
stats get-design-done:gdd-stats Cycle metrics — decisions, commits, todos
Idea capture
note <add|list|promote> [text] get-design-done:gdd-note Zero-friction notes → .design/NOTES.md
plant-seed [--trigger <cond>] [text] get-design-done:gdd-plant-seed Forward-looking idea with trigger → .design/SEEDS.md
add-backlog [text] get-design-done:gdd-add-backlog Park an idea → .design/backlog/BACKLOG.md
review-backlog get-design-done:gdd-review-backlog Walk parked items; promote/archive
Exploration
sketch [topic] [--variants N] [--quick] get-design-done:gdd-sketch Multi-variant HTML exploration → .design/sketches/<slug>/variant-*.html
sketch-wrap-up [slug] get-design-done:gdd-sketch-wrap-up Pick winner + rationale → writes ./.claude/skills/design-<area>-conventions.md
spike [hypothesis] [--timebox N] get-design-done:gdd-spike Timeboxed feasibility experiment → .design/spikes/<slug>/
spike-wrap-up [slug] get-design-done:gdd-spike-wrap-up Capture findings + D-XX decision → .design/spikes/<slug>/FINDINGS.md
scan (deprecated) get-design-done:scan Alias — use explore instead
discover (deprecated) get-design-done:discover Alias — use explore instead
Configuration
settings <profile|parallelism|cleanup|show> get-design-done:gdd-settings Manage .design/config.json — model profile, parallelism, cleanup
Maintenance
update [--dry-run] [--version <tag>] get-design-done:gdd-update Update plugin to latest release; preserves config + local skills
reapply-patches [--dry-run] get-design-done:gdd-reapply-patches Reapply reference/ customizations after an update
analyze-dependencies [--slice <name>] get-design-done:analyze-dependencies Query the .design/intel/ store — dependency slices, graph queries, phase-scoped reads
extract-learnings [--cycle <slug>] get-design-done:extract-learnings Extract decisions, lessons, patterns, and surprises from a completed cycle → .design/cycles/<slug>/LEARNINGS.md
skill-manifest [--refresh] get-design-done:skill-manifest List or refresh the local skill manifest used by the router for discovery
quality-gate get-design-done:quality-gate Phase 25 — parallel lint/type/test/visual command runner; classifies failures via quality-gate-runner agent
turn-closeout get-design-done:turn-closeout Phase 25 — Stop-hook mirror skill; finalizes per-turn STATE blocks and emits closeout events
bandit-status get-design-done:bandit-status Phase 27.5 — read-only diagnostic surface for the bandit posterior; per-(agent, bin, delegate, tier) snapshots (alpha, beta, mean, stddev, count, last-used). Use /gdd:bandit-reset to mutate.
openrouter-status [--refresh] get-design-done:gdd-openrouter-status Phase 33.6 — read-only OpenRouter catalog + tier-mapping diagnostic; surfaces catalog freshness (vs 24h TTL), last-fetch, resolved opus/sonnet/haiku → model mappings, per-tier preview. --refresh re-fetches (needs OPENROUTER_API_KEY).
peers get-design-done:peers Phase 27 — /gdd:peers capability matrix command; shows installed peer-CLIs (codex/gemini/cursor/copilot/qwen), allowlist status, claimed roles, posterior delta vs local
peer-cli-customize get-design-done:peer-cli-customize Phase 27 — rewire role→peer mappings on a per-agent basis (edits frontmatter delegate_to: directly)
peer-cli-add get-design-done:peer-cli-add Phase 27 — guided ladder for adding a brand-new peer (verification ladder + adapter scaffolding + capability-matrix update)
watch-authorities [--refresh] [--since <date>] [--feed <name>] [--schedule <cadence>] get-design-done:gdd-watch-authorities Run design-authority-watcher — fetch curated feeds, diff snapshot, classify new entries → .design/authority-report.md (consumed by /gdd:reflect)
benchmark <component|--wave N|--list|--refresh component> get-design-done:gdd-benchmark Harvest + synthesize per-component design specs from 18 design systems → reference/components/<name>.md
benchmark <component|--wave N|--list|--refresh component> get-design-done:gdd-benchmark Harvest + synthesize per-component design specs from 18 design systems → reference/components/<name>.md

Handoff Routing

Check FIRST — before any other routing logic. If $ARGUMENTS starts with handoff OR contains --from-handoff:

  1. Extract bundle path:

    • handoff <path> → bundle path is the second argument
    • --from-handoff <path> → bundle path is the value after the flag
    • Neither has a path → check STATE.md handoff_path; if absent, error: "Provide a bundle path: /gdd:handoff ./path/to/bundle.html"
    • Verify the file exists; if not, error: "Bundle not found at "
  2. Initialize STATE.md:

    • If .design/STATE.md does not exist: copy reference/STATE-TEMPLATE.md to .design/STATE.md
    • Set in <position>: handoff_source: claude-design-html, handoff_path: <resolved path>, skipped_stages: scan, discover, plan, status: handoff-sourced, stage: verify
    • Set in <connections>: claude_design: available; all others remain not_configured
  3. Spawn design-research-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 design-discussant in --from-handoff mode:

    Task("design-discussant", """
    <mode>--from-handoff</mode>
    <required_reading>.design/STATE.md</required_reading>
    """)

    Wait for ## DISCUSS COMPLETE.

  5. Route to verify with --post-handoff flag:

    Skill("get-design-done:verify", "--post-handoff")
  6. Optional: Bidirectional write-back (post-verify, offered to user)
    After verify completes without FAIL-level gaps:

    • Check STATE.md <connections> for figma: (the unified remote MCP covers both reads and writes as of v1.0.7.1)
    • figma: not_configured or figma: unavailable → skip (no offer)
    • figma: available → offer: "Write implementation status back to Figma? (annotates frames + Code Connect mappings)"
      Options: [yes, write back] [dry-run, show proposal only] [skip]
    • If yes or dry-run: spawn agents/design-figma-writer.md with mode: implementation-status, dry_run: <true|false>

Routing Logic

When invoked without arguments (or with status), show pipeline state and suggest next action:

1. No .design/ and no BRIEF.md → Suggest brief first: "New project — run /gdd:brief to capture the problem."
2. BRIEF.md exists, no DESIGN.md → Route to explore
3. DESIGN.md + DESIGN-CONTEXT.md exist, no DESIGN-PLAN.md → Route to plan
4. DESIGN-PLAN.md exists, DESIGN-SUMMARY.md missing → Route to design
5. DESIGN-SUMMARY.md exists, DESIGN-VERIFICATION.md missing → Route to verify
6. DESIGN-VERIFICATION.md exists → Show summary + offer to start new cycle

Status Display

━━━ Get Design Done Pipeline ━━━
[✓] Brief      → .design/BRIEF.md
[✓] Explore    → DESIGN.md + DESIGN-DEBT.md + DESIGN-CONTEXT.md   (stage 2-of-5; replaces scan+discover)
[→] Plan       ← current stage (3-of-5)
[ ] Design     (4-of-5)
[ ] Verify     (5-of-5)

Use [✓] for complete, [→] for current, [ ] for pending, [!] for gaps/errors.

Jump Mode

If $ARGUMENTS is a stage or command name — invoke it directly, no state check:

/gdd:brief     → Skill("get-design-done:gdd-brief")
/gdd:explore   → Skill("get-design-done:gdd-explore")
/gdd:plan      → Skill("get-design-done:plan")          # stage 3-of-5
/gdd:design    → Skill("get-design-done:design")        # stage 4-of-5
/gdd:verify    → Skill("get-design-done:verify")        # stage 5-of-5
/gdd:handoff   → [Handoff Routing] (inline — see ## Handoff Routing above)
/gdd:map       → Skill("get-design-done:gdd-map")       # parallel codebase mapping
/gdd:next      → Skill("get-design-done:gdd-next")
/gdd:help      → Skill("get-design-done:gdd-help")
/gdd:style     → Skill("get-design-done:gdd-style")
/gdd:darkmode     → Skill("get-design-done:gdd-darkmode")
/gdd:compare      → Skill("get-design-done:gdd-compare")
/gdd:figma-write  → Skill("get-design-done:gdd-figma-write")
/gdd:graphify     → Skill("get-design-done:gdd-graphify")
/gdd:discuss          → Skill("get-design-done:gdd-discuss")
/gdd:list-assumptions → Skill("get-design-done:gdd-list-assumptions")
/gdd:progress         → Skill("get-design-done:gdd-progress")
/gdd:health           → Skill("get-design-done:gdd-health")
/gdd:todo             → Skill("get-design-done:gdd-todo")
/gdd:stats            → Skill("get-design-done:gdd-stats")
# --- Idea capture ---
/gdd:note           → Skill("get-design-done:gdd-note")
/gdd:plant-seed     → Skill("get-design-done:gdd-plant-seed")
/gdd:add-backlog    → Skill("get-design-done:gdd-add-backlog")
/gdd:review-backlog → Skill("get-design-done:gdd-review-backlog")
/gdd:scan      → Skill("get-design-done:gdd-explore")   # deprecated alias → explore
/gdd:discover  → Skill("get-design-done:gdd-explore")   # deprecated alias → explore
# --- Configuration ---
/gdd:settings        → Skill("get-design-done:gdd-settings")
# --- Maintenance ---
/gdd:update          → Skill("get-design-done:gdd-update")
/gdd:reapply-patches → Skill("get-design-done:gdd-reapply-patches")
# --- Audit & Session ---
/gdd:audit              → Skill("get-design-done:gdd-audit")
/gdd:reflect            → Skill("get-design-done:gdd-reflect")
/gdd:apply-reflections  → Skill("get-design-done:gdd-apply-reflections")
/gdd:watch-authorities  → Skill("get-design-done:gdd-watch-authorities")
/gdd:benchmark          → Skill("get-design-done:gdd-benchmark")
/gdd:pause              → Skill("get-design-done:gdd-pause")
/gdd:resume             → Skill("get-design-done:gdd-resume")
/gdd:continue           → Skill("get-design-done:gdd-continue")
/gdd:recall             → Skill("get-design-done:gdd-recall")
/gdd:timeline           → Skill("get-design-done:gdd-timeline")
# --- Lifecycle ---
/gdd:start           → Skill("get-design-done:start")          # leaf command, no STATE.md
/gdd:new-project     → Skill("get-design-done:gdd-new-project")
/gdd:new-cycle       → Skill("get-design-done:gdd-new-cycle")
/gdd:complete-cycle  → Skill("get-design-done:gdd-complete-cycle")
# --- Execution speed ---
/gdd:quick           → Skill("get-design-done:gdd-quick")
/gdd:fast            → Skill("get-design-done:gdd-fast")
# --- Debug & Workflow ---
/gdd:debug           → Skill("get-design-done:gdd-debug")
/gdd:do              → Skill("get-design-done:gdd-do")
/gdd:report-issue    → Skill("get-design-done:report-issue")
# --- Ship & Safety ---
/gdd:ship            → Skill("get-design-done:gdd-ship")
/gdd:pr-branch       → Skill("get-design-done:gdd-pr-branch")
/gdd:undo            → Skill("get-design-done:gdd-undo")
# --- Exploration ---
/gdd:sketch          → Skill("get-design-done:gdd-sketch")
/gdd:sketch-wrap-up  → Skill("get-design-done:gdd-sketch-wrap-up")
/gdd:spike           → Skill("get-design-done:gdd-spike")
/gdd:spike-wrap-up   → Skill("get-design-done:gdd-spike-wrap-up")
# --- Bootstrap (not slash-routed) ---
# using-gdd → injected at SessionStart by hooks/inject-using-gdd.sh
#   (disable-model-invocation: true). The skill-discipline contract;
#   not a user-invoked command — see skills/using-gdd/SKILL.md.

Pass remaining arguments through: /gdd:explore --skip-interviewSkill("get-design-done:gdd-explore", "--skip-interview").

Do Not

  • Do not perform any design work yourself — route to the stage skill.
  • Do not skip stages unless the user explicitly passes a stage argument.
  • Do not create or modify .design/ files — the stage skills own their artifacts.