@hegemonart/get-design-done 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/.claude-plugin/marketplace.json +63 -0
  2. package/.claude-plugin/plugin.json +54 -0
  3. package/CHANGELOG.md +221 -0
  4. package/LICENSE +21 -0
  5. package/README.md +724 -0
  6. package/SKILL.md +232 -0
  7. package/agents/README.md +226 -0
  8. package/agents/a11y-mapper.md +118 -0
  9. package/agents/component-taxonomy-mapper.md +88 -0
  10. package/agents/design-advisor.md +139 -0
  11. package/agents/design-assumptions-analyzer.md +171 -0
  12. package/agents/design-auditor.md +383 -0
  13. package/agents/design-context-builder.md +544 -0
  14. package/agents/design-context-checker-gate.md +90 -0
  15. package/agents/design-context-checker.md +260 -0
  16. package/agents/design-discussant.md +98 -0
  17. package/agents/design-doc-writer.md +229 -0
  18. package/agents/design-executor.md +452 -0
  19. package/agents/design-figma-writer.md +302 -0
  20. package/agents/design-fixer.md +180 -0
  21. package/agents/design-integration-checker-gate.md +93 -0
  22. package/agents/design-integration-checker.md +326 -0
  23. package/agents/design-pattern-mapper.md +206 -0
  24. package/agents/design-phase-researcher.md +229 -0
  25. package/agents/design-plan-checker.md +164 -0
  26. package/agents/design-planner.md +352 -0
  27. package/agents/design-reflector.md +175 -0
  28. package/agents/design-research-synthesizer.md +127 -0
  29. package/agents/design-verifier-gate.md +97 -0
  30. package/agents/design-verifier.md +605 -0
  31. package/agents/gdd-graphify-sync.md +100 -0
  32. package/agents/gdd-intel-updater.md +88 -0
  33. package/agents/gdd-learnings-extractor.md +85 -0
  34. package/agents/motion-mapper.md +103 -0
  35. package/agents/token-mapper.md +103 -0
  36. package/agents/visual-hierarchy-mapper.md +95 -0
  37. package/connections/chromatic.md +247 -0
  38. package/connections/claude-design.md +190 -0
  39. package/connections/connections.md +218 -0
  40. package/connections/figma-writer.md +139 -0
  41. package/connections/figma.md +146 -0
  42. package/connections/graphify.md +197 -0
  43. package/connections/pinterest.md +153 -0
  44. package/connections/preview.md +173 -0
  45. package/connections/refero.md +189 -0
  46. package/connections/storybook.md +280 -0
  47. package/hooks/budget-enforcer.js +318 -0
  48. package/hooks/context-exhaustion.js +127 -0
  49. package/hooks/gdd-read-injection-scanner.js +44 -0
  50. package/hooks/hooks.json +44 -0
  51. package/package.json +60 -0
  52. package/reference/BRANCH-PROTECTION.md +65 -0
  53. package/reference/DEPRECATIONS.md +41 -0
  54. package/reference/STATE-TEMPLATE.md +200 -0
  55. package/reference/accessibility.md +190 -0
  56. package/reference/anti-patterns.md +336 -0
  57. package/reference/audit-scoring.md +205 -0
  58. package/reference/checklists.md +137 -0
  59. package/reference/config-schema.md +319 -0
  60. package/reference/debugger-philosophy.md +32 -0
  61. package/reference/heuristics.md +201 -0
  62. package/reference/intel-schema.md +266 -0
  63. package/reference/model-prices.md +37 -0
  64. package/reference/model-tiers.md +118 -0
  65. package/reference/motion.md +285 -0
  66. package/reference/parallelism-rules.md +108 -0
  67. package/reference/priority-matrix.md +31 -0
  68. package/reference/project-skills-guide.md +42 -0
  69. package/reference/review-format.md +107 -0
  70. package/reference/schemas/config.schema.json +41 -0
  71. package/reference/schemas/hooks.schema.json +55 -0
  72. package/reference/schemas/intel.schema.json +191 -0
  73. package/reference/schemas/marketplace.schema.json +72 -0
  74. package/reference/schemas/plugin.schema.json +59 -0
  75. package/reference/shared-preamble.md +82 -0
  76. package/reference/typography.md +229 -0
  77. package/scripts/aggregate-agent-metrics.js +144 -0
  78. package/scripts/apply-branch-protection.sh +75 -0
  79. package/scripts/bootstrap-manifest.txt +3 -0
  80. package/scripts/bootstrap.sh +80 -0
  81. package/scripts/build-intel.cjs +458 -0
  82. package/scripts/detect-stale-refs.cjs +101 -0
  83. package/scripts/extract-changelog-section.cjs +57 -0
  84. package/scripts/release-smoke-test.cjs +169 -0
  85. package/scripts/rollback-release.sh +42 -0
  86. package/scripts/run-injection-scanner-ci.cjs +92 -0
  87. package/scripts/validate-frontmatter.cjs +68 -0
  88. package/scripts/validate-schemas.cjs +225 -0
  89. package/scripts/verify-version-sync.cjs +30 -0
  90. package/skills/add-backlog/SKILL.md +47 -0
  91. package/skills/analyze-dependencies/SKILL.md +184 -0
  92. package/skills/apply-reflections/SKILL.md +112 -0
  93. package/skills/audit/SKILL.md +54 -0
  94. package/skills/brief/SKILL.md +75 -0
  95. package/skills/cache-manager/SKILL.md +120 -0
  96. package/skills/compare/SKILL.md +322 -0
  97. package/skills/complete-cycle/SKILL.md +33 -0
  98. package/skills/darkmode/SKILL.md +331 -0
  99. package/skills/debug/SKILL.md +38 -0
  100. package/skills/design/SKILL.md +281 -0
  101. package/skills/discover/SKILL.md +172 -0
  102. package/skills/discuss/SKILL.md +67 -0
  103. package/skills/do/SKILL.md +45 -0
  104. package/skills/explore/SKILL.md +109 -0
  105. package/skills/extract-learnings/SKILL.md +98 -0
  106. package/skills/fast/SKILL.md +44 -0
  107. package/skills/figma-write/SKILL.md +40 -0
  108. package/skills/graphify/SKILL.md +48 -0
  109. package/skills/health/SKILL.md +48 -0
  110. package/skills/help/SKILL.md +76 -0
  111. package/skills/list-assumptions/SKILL.md +60 -0
  112. package/skills/map/SKILL.md +112 -0
  113. package/skills/new-cycle/SKILL.md +35 -0
  114. package/skills/new-project/SKILL.md +53 -0
  115. package/skills/next/SKILL.md +42 -0
  116. package/skills/note/SKILL.md +47 -0
  117. package/skills/optimize/SKILL.md +120 -0
  118. package/skills/pause/SKILL.md +41 -0
  119. package/skills/plan/SKILL.md +251 -0
  120. package/skills/plant-seed/SKILL.md +47 -0
  121. package/skills/pr-branch/SKILL.md +31 -0
  122. package/skills/progress/SKILL.md +60 -0
  123. package/skills/quick/SKILL.md +43 -0
  124. package/skills/reapply-patches/SKILL.md +31 -0
  125. package/skills/reflect/SKILL.md +73 -0
  126. package/skills/resume/SKILL.md +37 -0
  127. package/skills/review-backlog/SKILL.md +45 -0
  128. package/skills/router/SKILL.md +67 -0
  129. package/skills/scan/SKILL.md +721 -0
  130. package/skills/settings/SKILL.md +78 -0
  131. package/skills/ship/SKILL.md +31 -0
  132. package/skills/sketch/SKILL.md +78 -0
  133. package/skills/sketch-wrap-up/SKILL.md +88 -0
  134. package/skills/skill-manifest/SKILL.md +79 -0
  135. package/skills/spike/SKILL.md +67 -0
  136. package/skills/spike-wrap-up/SKILL.md +81 -0
  137. package/skills/stats/SKILL.md +50 -0
  138. package/skills/style/SKILL.md +193 -0
  139. package/skills/synthesize/SKILL.md +93 -0
  140. package/skills/todo/SKILL.md +54 -0
  141. package/skills/undo/SKILL.md +30 -0
  142. package/skills/update/SKILL.md +36 -0
  143. package/skills/verify/SKILL.md +452 -0
  144. package/skills/warm-cache/SKILL.md +113 -0
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: gdd-settings
3
+ description: "Manage .design/config.json settings. Subcommands: profile, parallelism, cleanup, show."
4
+ argument-hint: "<profile <name>|parallelism <key> <value>|cleanup|show>"
5
+ tools: Read, Write, AskUserQuestion, Bash
6
+ ---
7
+
8
+ # gdd-settings
9
+
10
+ Manages `.design/config.json` — the per-project config for model profile and parallelism. See `reference/config-schema.md` for the full schema.
11
+
12
+ ## Subcommands
13
+
14
+ ### `show`
15
+
16
+ Print the current `.design/config.json` contents, nicely formatted. If the file is missing, print the defaults with a note that no config exists yet.
17
+
18
+ ### `profile <name>`
19
+
20
+ Set `model_profile` to one of `quality`, `balanced`, `budget`. Validate the value; reject anything else with the list of allowed values. Read current config, merge the change, write back. Confirm with the new value.
21
+
22
+ ### `parallelism <key> <value>`
23
+
24
+ Set one field under `parallelism`. Supported keys and value types:
25
+
26
+ | Key | Type |
27
+ |---|---|
28
+ | `enabled` | bool (`true`/`false`) |
29
+ | `max_parallel_agents` | int |
30
+ | `min_tasks_to_parallelize` | int |
31
+ | `min_estimated_savings_seconds` | int |
32
+ | `require_disjoint_touches` | bool |
33
+ | `worktree_isolation` | bool |
34
+
35
+ Validate type; reject otherwise. Read current config, merge, write back. Confirm.
36
+
37
+ ### `cleanup`
38
+
39
+ Use `AskUserQuestion` to pick one or more cleanup actions, then confirm each before executing:
40
+
41
+ 1. Delete `.design/*.md` artifacts (excludes `config.json`, `STATE.md`, `backlog/`).
42
+ 2. Reset `.design/STATE.md` to the template at `reference/STATE-TEMPLATE.md`.
43
+ 3. Clear `.design/backlog/` directory contents.
44
+
45
+ ## Config Read/Write Pattern
46
+
47
+ Always:
48
+
49
+ 1. Read current `.design/config.json` (use defaults below if missing).
50
+ 2. Merge the single field being changed — never overwrite unrelated fields.
51
+ 3. Write back as pretty JSON (2-space indent, trailing newline).
52
+
53
+ ## Default Config
54
+
55
+ If `.design/config.json` does not exist, create it with:
56
+
57
+ ```json
58
+ {
59
+ "model_profile": "balanced",
60
+ "parallelism": {
61
+ "enabled": true,
62
+ "max_parallel_agents": 5,
63
+ "min_tasks_to_parallelize": 2,
64
+ "min_estimated_savings_seconds": 30,
65
+ "require_disjoint_touches": true,
66
+ "worktree_isolation": false,
67
+ "per_stage_override": {}
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## Output
73
+
74
+ End every invocation with:
75
+
76
+ ```
77
+ ## SETTINGS COMPLETE
78
+ ```
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: gdd-ship
3
+ description: "Post-verify PR flow — creates a clean PR branch, invokes code review check, and prepares the PR for merge."
4
+ argument-hint: "[--title <PR title>] [--draft]"
5
+ tools: Read, Write, Bash, AskUserQuestion, Task
6
+ ---
7
+
8
+ # /gdd:ship
9
+
10
+ Closes the verify → merge gap: runs `/gdd:pr-branch` for a clean branch, assembles a PR body from design artifacts, and creates the PR via `gh`.
11
+
12
+ ## Steps
13
+
14
+ 1. **Pre-flight verify check**: Check that `.design/DESIGN-VERIFICATION.md` exists and shows a pass. If missing or failing, ask: "Verify has not completed / failed. Ship anyway? (yes/no)"
15
+ 2. **Clean branch**: Invoke `/gdd:pr-branch` to produce a branch with only `src/` commits (no `.design/` or `.planning/` noise). Use the resulting branch for the PR.
16
+ 3. **PR title**: Use `--title` argument if given, otherwise ask (AskUserQuestion): "PR title?"
17
+ 4. **PR body**: Auto-generate from:
18
+ - Goals section of `.design/DESIGN-PLAN.md`
19
+ - Summary of `.design/DESIGN-VERIFICATION.md` (per-task pass/fail)
20
+ - Top-line audit score from `.design/DESIGN-AUDIT.md` if present
21
+ Format as Markdown with `## Goals`, `## Verification`, `## Audit` sections.
22
+ 5. **Create PR**: Run `gh pr create --title "<title>" --body "<body>" [--draft]` via Bash. If `gh` is not installed, print the full body and instruct the user to create the PR manually.
23
+ 6. **Print PR URL** on success.
24
+
25
+ ## Do Not
26
+
27
+ - Do not push to `main`/`master` directly.
28
+ - Do not include `.design/` or `.planning/` files in the PR branch — that is `/gdd:pr-branch`'s job.
29
+ - Do not skip the verify pre-flight silently — always surface a failure and ask.
30
+
31
+ ## SHIP COMPLETE
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: gdd-sketch
3
+ description: "Multi-variant HTML design exploration. Creates .design/sketches/<slug>/ with N standalone variants. Browser-openable directly — no build step."
4
+ argument-hint: "[topic] [--variants N] [--quick]"
5
+ tools: Read, Write, AskUserQuestion, Bash
6
+ ---
7
+
8
+ # Get Design Done — Sketch
9
+
10
+ **Role:** Multi-variant HTML exploration. Answers "what could this look like?" by generating N standalone HTML variants from a topic prompt. Variants are browser-openable directly — no build step — and can be screenshot by Phase 8 Preview/Playwright tooling later.
11
+
12
+ Unlike `/gdd:spike` (which tests feasibility), `/gdd:sketch` explores visual/directional variants.
13
+
14
+ ## Flag parsing
15
+
16
+ Parse `$ARGUMENTS`:
17
+ - `[topic]` → kebab-case slug (e.g., "hero-redesign")
18
+ - `--variants N` → number of variants (default: 3)
19
+ - `--quick` → skip intake, use DESIGN-CONTEXT.md tokens + sensible defaults
20
+
21
+ ## Step 1 — Intake (unless `--quick`)
22
+
23
+ AskUserQuestion, one at a time:
24
+ 1. "What are you sketching? (component, layout, page)"
25
+ 2. "What directions should the variants explore? (minimal/maximal, dense/spacious, flat/layered, playful/restrained, etc.)"
26
+ 3. "Which design tokens apply? (pick from DESIGN-CONTEXT.md, or use defaults)"
27
+
28
+ If `--quick`: derive directions from topic + pull tokens from `.design/DESIGN-CONTEXT.md` if present, else defaults.
29
+
30
+ ## Step 2 — Create sketch directory
31
+
32
+ - Derive `<slug>` from the topic (kebab-case).
33
+ - `mkdir -p .design/sketches/<slug>/` via Bash.
34
+
35
+ ## Step 3 — Write INTAKE.md
36
+
37
+ Write `.design/sketches/<slug>/INTAKE.md` with:
38
+ - Topic
39
+ - Directions (one bullet per variant)
40
+ - Token references (link to DESIGN-CONTEXT.md or inline list)
41
+ - Timestamp
42
+
43
+ ## Step 4 — Generate N standalone HTML variants
44
+
45
+ For each of N variants (default 3), write `variant-<n>.html` as a **complete standalone HTML file**:
46
+ - `<!DOCTYPE html>` + `<html>` + `<head>` + `<body>`
47
+ - `<style>` block inline with CSS custom properties for tokens (`--color-*`, `--space-*`, `--font-*`)
48
+ - Semantic HTML5 (`<header>`, `<main>`, `<nav>`, `<section>`, etc.)
49
+ - No imports, no bundler, no JS framework — opens in a browser directly via `file://`
50
+ - Each variant explores a different direction from intake
51
+
52
+ ## Step 5 — Write README.md
53
+
54
+ Write `.design/sketches/<slug>/README.md` with:
55
+ - Topic + one-line summary
56
+ - List of variants: `variant-1.html` — direction label — one-line description
57
+ - How to view: "Open each `variant-*.html` in a browser."
58
+ - Next step: "Run `/gdd:sketch-wrap-up <slug>` when ready to pick a winner."
59
+
60
+ ## After writing
61
+
62
+ ```
63
+ ━━━ Sketches created ━━━
64
+ Slug: <slug>
65
+ Directory: .design/sketches/<slug>/
66
+ Variants: N standalone HTML files
67
+ Open variant-*.html in a browser.
68
+ Next: /gdd:sketch-wrap-up <slug>
69
+ ━━━━━━━━━━━━━━━━━━━━━━━━
70
+ ```
71
+
72
+ ## Do Not
73
+
74
+ - Do not write to `src/` — sketches live in `.design/sketches/` only.
75
+ - Do not use build-step syntax (JSX, TS, imports). Standalone HTML only.
76
+ - Do not overwrite an existing sketch slug without asking.
77
+
78
+ ## SKETCH COMPLETE
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: gdd-sketch-wrap-up
3
+ description: "Walk through sketches, pick winner + rationale, group by design area, write project skills to ./.claude/skills/design-<area>-conventions.md."
4
+ argument-hint: "[slug]"
5
+ tools: Read, Write, Glob, AskUserQuestion
6
+ ---
7
+
8
+ # Get Design Done — Sketch Wrap-Up
9
+
10
+ **Role:** Close an open sketch — elicit the winner + rationale from the user, group the decision by design area, and codify it as a project-local skill at `./.claude/skills/design-<area>-conventions.md` so future gdd sessions auto-load the decision.
11
+
12
+ ## Step 1 — Find sketches
13
+
14
+ - Glob `.design/sketches/*/`.
15
+ - If `[slug]` provided → use it directly.
16
+ - If multiple pending (no `WINNER.md`) → AskUserQuestion: "Which sketch are you wrapping up?"
17
+ - If none → print: "No open sketches. Run `/gdd:sketch` first." and exit.
18
+
19
+ ## Step 2 — Walk variants
20
+
21
+ Read the sketch's `README.md`. For each `variant-N.html`:
22
+ - Show the variant's one-line description from README.
23
+ - AskUserQuestion: "Is variant-N a keeper, maybe, or rejected?"
24
+
25
+ ## Step 3 — Elicit winner rationale
26
+
27
+ AskUserQuestion:
28
+ 1. "Which variant is the winner?"
29
+ 2. "What makes variant-N the winning direction? (grounds the decision for future sessions)"
30
+ 3. "Any token implications? (e.g., spacing scale clamp, color adjustment, font-weight shift)"
31
+
32
+ ## Step 4 — Group by design area
33
+
34
+ AskUserQuestion: "Which design area does this winner inform?"
35
+ Options: typography / color / layout / motion / component / interaction
36
+
37
+ ## Step 5 — Write project skill
38
+
39
+ Append to `./.claude/skills/design-<area>-conventions.md` (create if missing):
40
+
41
+ ```markdown
42
+ # Design <Area> Conventions (Project-Local)
43
+
44
+ Auto-loaded in gdd sessions. Captures decisions codified from `/gdd:sketch-wrap-up`.
45
+
46
+ ## Decision from sketch: <slug> (YYYY-MM-DD)
47
+ **Winner**: variant-N (<direction label>)
48
+ **Rationale**: <user rationale>
49
+ **Token implications**: <implications, or "none">
50
+ ```
51
+
52
+ ## Step 6 — Write WINNER.md
53
+
54
+ Write `.design/sketches/<slug>/WINNER.md`:
55
+ ```markdown
56
+ # Winner: variant-N
57
+
58
+ **Slug**: <slug>
59
+ **Area**: <area>
60
+ **Rationale**: <user rationale>
61
+ **Captured**: YYYY-MM-DD
62
+ **Project skill written to**: ./.claude/skills/design-<area>-conventions.md
63
+ ```
64
+
65
+ ## Step 7 — Update sketches SUMMARY.md
66
+
67
+ Append entry to `.design/sketches/SUMMARY.md` (create if missing):
68
+ ```markdown
69
+ - <slug> (YYYY-MM-DD) — winner: variant-N — area: <area> — <one-line rationale>
70
+ ```
71
+
72
+ ## After writing
73
+
74
+ ```
75
+ ━━━ Sketch wrapped ━━━
76
+ Slug: <slug>
77
+ Winner: variant-N
78
+ Area: <area>
79
+ Project skill: ./.claude/skills/design-<area>-conventions.md
80
+ ━━━━━━━━━━━━━━━━━━━━━
81
+ ```
82
+
83
+ ## Do Not
84
+
85
+ - Do not modify other sketch variants or rejected directions.
86
+ - Do not write to `src/` — conventions are design-layer only.
87
+
88
+ ## SKETCH-WRAP-UP COMPLETE
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: gdd-skill-manifest
3
+ description: "Lists all registered GDD skills and agents, with descriptions, from the intel store. Falls back to directory scan if intel store not present."
4
+ tools: Bash, Read, Glob
5
+ ---
6
+
7
+ # /gdd:skill-manifest
8
+
9
+ **Role:** Print a manifest of all registered skills (commands) and agents available in this plugin installation.
10
+
11
+ ## Pre-flight check
12
+
13
+ ```bash
14
+ ls .design/intel/exports.json 2>/dev/null && echo "ready" || echo "missing"
15
+ ```
16
+
17
+ ## Mode 1 — Intel store available
18
+
19
+ Read `.design/intel/exports.json`. Group entries by `kind` (skill vs agent). Print:
20
+
21
+ ```
22
+ ━━━ Skill Manifest ━━━
23
+ Generated from intel store: .design/intel/exports.json
24
+
25
+ SKILLS (Commands)
26
+ ─────────────────
27
+ /gdd:scan gdd-scan
28
+ /gdd:discover gdd-discover
29
+ /gdd:plan gdd-plan
30
+ /gdd:design gdd-design
31
+ /gdd:verify gdd-verify
32
+ /gdd:style gdd-style
33
+ /gdd:darkmode gdd-darkmode
34
+ /gdd:compare gdd-compare
35
+ ... (all skills)
36
+
37
+ AGENTS
38
+ ──────
39
+ design-advisor Design advisor agent
40
+ design-auditor Design auditor agent
41
+ design-context-builder Builds DESIGN-CONTEXT.md from codebase scan
42
+ ... (all agents)
43
+
44
+ Total: <N> skills, <M> agents
45
+ ━━━━━━━━━━━━━━━━━━━━━
46
+ ```
47
+
48
+ To get the description for each skill/agent: read `exports.json` entry and look up the matching file in `files.json`, then read its frontmatter `description` field from `exports.json` (if stored) or from the file directly.
49
+
50
+ ## Mode 2 — Intel store missing (fallback)
51
+
52
+ If `.design/intel/exports.json` is not present, fall back to directory scan:
53
+
54
+ ```bash
55
+ ls skills/
56
+ ls agents/*.md
57
+ ```
58
+
59
+ Print a simplified manifest without descriptions:
60
+
61
+ ```
62
+ ━━━ Skill Manifest (no intel store — run build-intel.cjs for descriptions) ━━━
63
+
64
+ SKILLS: scan, discover, plan, design, verify, style, darkmode, compare, ...
65
+ AGENTS: design-advisor.md, design-auditor.md, ...
66
+ ━━━━━━━━━━━━━━━━━━━━━
67
+ ```
68
+
69
+ ## Filter mode
70
+
71
+ `/gdd:skill-manifest agents` — show agents only
72
+ `/gdd:skill-manifest skills` — show skills only
73
+ `/gdd:skill-manifest <keyword>` — filter by keyword in name or description
74
+
75
+ ## Required reading (conditional)
76
+
77
+ @.design/intel/exports.json (if present)
78
+
79
+ ## SKILL-MANIFEST COMPLETE
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: gdd-spike
3
+ description: "Timeboxed feasibility experiment. Answers 'can this work?' questions. Creates .design/spikes/<slug>/ with hypothesis, timebox, scratch code, findings."
4
+ argument-hint: "[hypothesis] [--timebox <minutes>]"
5
+ tools: Read, Write, Bash, AskUserQuestion
6
+ ---
7
+
8
+ # Get Design Done — Spike
9
+
10
+ **Role:** Timeboxed feasibility experiment. Answers "can this work?" — e.g., "can we use view transitions for this flow?", "does this animation perform on mobile?". Unlike `/gdd:sketch` (visual variants), `/gdd:spike` tests a hypothesis.
11
+
12
+ ## Flag parsing
13
+
14
+ Parse `$ARGUMENTS`:
15
+ - `[hypothesis]` → summary phrase, derives the slug
16
+ - `--timebox <minutes>` → default 60
17
+
18
+ ## Step 1 — Intake
19
+
20
+ AskUserQuestion:
21
+ 1. "What's the hypothesis? (e.g., 'view transitions can replace our current route animations')"
22
+ 2. "What's the timebox? (default 60 minutes)"
23
+ 3. "What would prove it works? (success criteria)"
24
+ 4. "What would prove it doesn't? (failure criteria)"
25
+
26
+ ## Step 2 — Create spike directory
27
+
28
+ - Derive `<slug>` from the hypothesis (kebab-case, short).
29
+ - `mkdir -p .design/spikes/<slug>/scratch/` via Bash.
30
+
31
+ ## Step 3 — Write HYPOTHESIS.md
32
+
33
+ Write `.design/spikes/<slug>/HYPOTHESIS.md`:
34
+ ```markdown
35
+ # Spike: <slug>
36
+
37
+ **Hypothesis**: <statement>
38
+ **Timebox**: <N> minutes
39
+ **Started**: YYYY-MM-DD HH:MM
40
+
41
+ ## Success criteria
42
+ - <criterion>
43
+
44
+ ## Failure criteria
45
+ - <criterion>
46
+
47
+ ## Scratch area
48
+ Experimental code in `./scratch/` — not committed to src/.
49
+ ```
50
+
51
+ ## Step 4 — Announce
52
+
53
+ ```
54
+ ━━━ Spike started ━━━
55
+ Slug: <slug>
56
+ Timebox: <N> minutes
57
+ Work in: .design/spikes/<slug>/scratch/
58
+ When done: /gdd:spike-wrap-up <slug>
59
+ ━━━━━━━━━━━━━━━━━━━━━
60
+ ```
61
+
62
+ ## Do Not
63
+
64
+ - Do not write experimental code to `src/` — use `.design/spikes/<slug>/scratch/`.
65
+ - Do not exceed the timebox without explicit user approval; wrap up and reassess first.
66
+
67
+ ## SPIKE COMPLETE
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: gdd-spike-wrap-up
3
+ description: "Close a spike — capture findings, write decision to STATE.md, update SUMMARY.md."
4
+ argument-hint: "[slug]"
5
+ tools: Read, Write, Glob, AskUserQuestion
6
+ ---
7
+
8
+ # Get Design Done — Spike Wrap-Up
9
+
10
+ **Role:** Close an open spike — capture the verdict, write findings, record a D-XX decision in STATE.md so `plan` sees it when creating tasks.
11
+
12
+ ## Step 1 — Find spike
13
+
14
+ - Glob `.design/spikes/*/`.
15
+ - If `[slug]` provided → use it directly.
16
+ - If multiple pending (no `FINDINGS.md`) → AskUserQuestion: "Which spike are you wrapping up?"
17
+ - If none → print: "No open spikes. Run `/gdd:spike` first." and exit.
18
+
19
+ ## Step 2 — Re-surface hypothesis
20
+
21
+ Read `.design/spikes/<slug>/HYPOTHESIS.md`. Show the hypothesis + success/failure criteria to the user.
22
+
23
+ ## Step 3 — Elicit findings
24
+
25
+ AskUserQuestion:
26
+ 1. "Did it meet success criteria? (yes / no / partial)"
27
+ 2. "What was learned? (1–3 sentences)"
28
+ 3. "Recommendation? (adopt / reject / needs more investigation)"
29
+
30
+ ## Step 4 — Write FINDINGS.md
31
+
32
+ Write `.design/spikes/<slug>/FINDINGS.md`:
33
+ ```markdown
34
+ # Findings: <slug>
35
+
36
+ **Verdict**: yes / no / partial
37
+ **Recommendation**: adopt / reject / needs more investigation
38
+ **Completed**: YYYY-MM-DD HH:MM
39
+
40
+ ## What was learned
41
+ <1–3 sentences>
42
+
43
+ ## Next steps
44
+ <1–2 bullets>
45
+ ```
46
+
47
+ ## Step 5 — Record decision in STATE.md
48
+
49
+ Append a `D-XX` entry under `<decisions>` in `.design/STATE.md`:
50
+ ```
51
+ D-XX: spike/<slug> — <verdict> — <recommendation>
52
+ Rationale: <one line>
53
+ Source: .design/spikes/<slug>/FINDINGS.md
54
+ ```
55
+
56
+ (Increment D-XX from the highest existing number.)
57
+
58
+ ## Step 6 — Update spikes SUMMARY.md
59
+
60
+ Append entry to `.design/spikes/SUMMARY.md` (create if missing):
61
+ ```markdown
62
+ - <slug> (YYYY-MM-DD) — verdict: <yes|no|partial> — recommendation: <adopt|reject|more> — D-XX
63
+ ```
64
+
65
+ ## After writing
66
+
67
+ ```
68
+ ━━━ Spike wrapped ━━━
69
+ Slug: <slug>
70
+ Verdict: <verdict>
71
+ Decision recorded: D-XX
72
+ FINDINGS.md written.
73
+ ━━━━━━━━━━━━━━━━━━━━
74
+ ```
75
+
76
+ ## Do Not
77
+
78
+ - Do not delete the `scratch/` directory — it's a record of what was tried.
79
+ - Do not promote scratch code to `src/` automatically — require a follow-up plan task.
80
+
81
+ ## SPIKE-WRAP-UP COMPLETE
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: gdd-stats
3
+ description: "Cycle stats — decisions made, tasks completed, commits, timeline, git metrics."
4
+ tools: Read, Bash
5
+ ---
6
+
7
+ # /gdd:stats
8
+
9
+ **Role:** Print cycle metrics.
10
+
11
+ ## Step 1 — Read state
12
+
13
+ Read `.design/STATE.md`. Extract:
14
+ - `cycle:` and `started_at` (or per-cycle start date if present in CYCLES.md)
15
+ - D-XX count under `<decisions>`
16
+
17
+ ## Step 2 — Collect git metrics
18
+
19
+ Let `<since>` = cycle start date (fallback to STATE.md `started_at`).
20
+
21
+ ```bash
22
+ git log --oneline --since="<since>" | wc -l # commits
23
+ git diff --stat HEAD~N HEAD # files changed since cycle start
24
+ ```
25
+
26
+ If git unavailable, print `git: unavailable` and skip git metrics.
27
+
28
+ ## Step 3 — Count todos
29
+
30
+ Read `.design/TODO.md` if present:
31
+ - pending: count `- [ ]`
32
+ - in-progress: count `- [-]`
33
+ - done: count `- [x]`
34
+ - group pending by P0/P1/P2/P3 section
35
+
36
+ ## Step 4 — Output
37
+
38
+ ```
39
+ ━━━ Cycle stats ━━━
40
+ Cycle: cycle-1 Started: 2026-04-18
41
+ Decisions made: 12 (D-01..D-12)
42
+ Tasks completed: 8 / 10
43
+ Git commits: 23
44
+ Files changed: 47
45
+ Open todos: 3 (P0: 1, P1: 2, P2: 0, P3: 0)
46
+ Agents spawned: — (no task log)
47
+ ━━━━━━━━━━━━━━━━━━
48
+ ```
49
+
50
+ ## STATS COMPLETE