@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.
- package/.claude-plugin/marketplace.json +63 -0
- package/.claude-plugin/plugin.json +54 -0
- package/CHANGELOG.md +221 -0
- package/LICENSE +21 -0
- package/README.md +724 -0
- package/SKILL.md +232 -0
- package/agents/README.md +226 -0
- package/agents/a11y-mapper.md +118 -0
- package/agents/component-taxonomy-mapper.md +88 -0
- package/agents/design-advisor.md +139 -0
- package/agents/design-assumptions-analyzer.md +171 -0
- package/agents/design-auditor.md +383 -0
- package/agents/design-context-builder.md +544 -0
- package/agents/design-context-checker-gate.md +90 -0
- package/agents/design-context-checker.md +260 -0
- package/agents/design-discussant.md +98 -0
- package/agents/design-doc-writer.md +229 -0
- package/agents/design-executor.md +452 -0
- package/agents/design-figma-writer.md +302 -0
- package/agents/design-fixer.md +180 -0
- package/agents/design-integration-checker-gate.md +93 -0
- package/agents/design-integration-checker.md +326 -0
- package/agents/design-pattern-mapper.md +206 -0
- package/agents/design-phase-researcher.md +229 -0
- package/agents/design-plan-checker.md +164 -0
- package/agents/design-planner.md +352 -0
- package/agents/design-reflector.md +175 -0
- package/agents/design-research-synthesizer.md +127 -0
- package/agents/design-verifier-gate.md +97 -0
- package/agents/design-verifier.md +605 -0
- package/agents/gdd-graphify-sync.md +100 -0
- package/agents/gdd-intel-updater.md +88 -0
- package/agents/gdd-learnings-extractor.md +85 -0
- package/agents/motion-mapper.md +103 -0
- package/agents/token-mapper.md +103 -0
- package/agents/visual-hierarchy-mapper.md +95 -0
- package/connections/chromatic.md +247 -0
- package/connections/claude-design.md +190 -0
- package/connections/connections.md +218 -0
- package/connections/figma-writer.md +139 -0
- package/connections/figma.md +146 -0
- package/connections/graphify.md +197 -0
- package/connections/pinterest.md +153 -0
- package/connections/preview.md +173 -0
- package/connections/refero.md +189 -0
- package/connections/storybook.md +280 -0
- package/hooks/budget-enforcer.js +318 -0
- package/hooks/context-exhaustion.js +127 -0
- package/hooks/gdd-read-injection-scanner.js +44 -0
- package/hooks/hooks.json +44 -0
- package/package.json +60 -0
- package/reference/BRANCH-PROTECTION.md +65 -0
- package/reference/DEPRECATIONS.md +41 -0
- package/reference/STATE-TEMPLATE.md +200 -0
- package/reference/accessibility.md +190 -0
- package/reference/anti-patterns.md +336 -0
- package/reference/audit-scoring.md +205 -0
- package/reference/checklists.md +137 -0
- package/reference/config-schema.md +319 -0
- package/reference/debugger-philosophy.md +32 -0
- package/reference/heuristics.md +201 -0
- package/reference/intel-schema.md +266 -0
- package/reference/model-prices.md +37 -0
- package/reference/model-tiers.md +118 -0
- package/reference/motion.md +285 -0
- package/reference/parallelism-rules.md +108 -0
- package/reference/priority-matrix.md +31 -0
- package/reference/project-skills-guide.md +42 -0
- package/reference/review-format.md +107 -0
- package/reference/schemas/config.schema.json +41 -0
- package/reference/schemas/hooks.schema.json +55 -0
- package/reference/schemas/intel.schema.json +191 -0
- package/reference/schemas/marketplace.schema.json +72 -0
- package/reference/schemas/plugin.schema.json +59 -0
- package/reference/shared-preamble.md +82 -0
- package/reference/typography.md +229 -0
- package/scripts/aggregate-agent-metrics.js +144 -0
- package/scripts/apply-branch-protection.sh +75 -0
- package/scripts/bootstrap-manifest.txt +3 -0
- package/scripts/bootstrap.sh +80 -0
- package/scripts/build-intel.cjs +458 -0
- package/scripts/detect-stale-refs.cjs +101 -0
- package/scripts/extract-changelog-section.cjs +57 -0
- package/scripts/release-smoke-test.cjs +169 -0
- package/scripts/rollback-release.sh +42 -0
- package/scripts/run-injection-scanner-ci.cjs +92 -0
- package/scripts/validate-frontmatter.cjs +68 -0
- package/scripts/validate-schemas.cjs +225 -0
- package/scripts/verify-version-sync.cjs +30 -0
- package/skills/add-backlog/SKILL.md +47 -0
- package/skills/analyze-dependencies/SKILL.md +184 -0
- package/skills/apply-reflections/SKILL.md +112 -0
- package/skills/audit/SKILL.md +54 -0
- package/skills/brief/SKILL.md +75 -0
- package/skills/cache-manager/SKILL.md +120 -0
- package/skills/compare/SKILL.md +322 -0
- package/skills/complete-cycle/SKILL.md +33 -0
- package/skills/darkmode/SKILL.md +331 -0
- package/skills/debug/SKILL.md +38 -0
- package/skills/design/SKILL.md +281 -0
- package/skills/discover/SKILL.md +172 -0
- package/skills/discuss/SKILL.md +67 -0
- package/skills/do/SKILL.md +45 -0
- package/skills/explore/SKILL.md +109 -0
- package/skills/extract-learnings/SKILL.md +98 -0
- package/skills/fast/SKILL.md +44 -0
- package/skills/figma-write/SKILL.md +40 -0
- package/skills/graphify/SKILL.md +48 -0
- package/skills/health/SKILL.md +48 -0
- package/skills/help/SKILL.md +76 -0
- package/skills/list-assumptions/SKILL.md +60 -0
- package/skills/map/SKILL.md +112 -0
- package/skills/new-cycle/SKILL.md +35 -0
- package/skills/new-project/SKILL.md +53 -0
- package/skills/next/SKILL.md +42 -0
- package/skills/note/SKILL.md +47 -0
- package/skills/optimize/SKILL.md +120 -0
- package/skills/pause/SKILL.md +41 -0
- package/skills/plan/SKILL.md +251 -0
- package/skills/plant-seed/SKILL.md +47 -0
- package/skills/pr-branch/SKILL.md +31 -0
- package/skills/progress/SKILL.md +60 -0
- package/skills/quick/SKILL.md +43 -0
- package/skills/reapply-patches/SKILL.md +31 -0
- package/skills/reflect/SKILL.md +73 -0
- package/skills/resume/SKILL.md +37 -0
- package/skills/review-backlog/SKILL.md +45 -0
- package/skills/router/SKILL.md +67 -0
- package/skills/scan/SKILL.md +721 -0
- package/skills/settings/SKILL.md +78 -0
- package/skills/ship/SKILL.md +31 -0
- package/skills/sketch/SKILL.md +78 -0
- package/skills/sketch-wrap-up/SKILL.md +88 -0
- package/skills/skill-manifest/SKILL.md +79 -0
- package/skills/spike/SKILL.md +67 -0
- package/skills/spike-wrap-up/SKILL.md +81 -0
- package/skills/stats/SKILL.md +50 -0
- package/skills/style/SKILL.md +193 -0
- package/skills/synthesize/SKILL.md +93 -0
- package/skills/todo/SKILL.md +54 -0
- package/skills/undo/SKILL.md +30 -0
- package/skills/update/SKILL.md +36 -0
- package/skills/verify/SKILL.md +452 -0
- package/skills/warm-cache/SKILL.md +113 -0
package/README.md
ADDED
|
@@ -0,0 +1,724 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# GET DESIGN DONE
|
|
4
|
+
|
|
5
|
+
**Agent-orchestrated design pipeline for Claude Code. Five stages, thirty specialized agents, nine tool connections — from brief to verified shipping work.**
|
|
6
|
+
|
|
7
|
+
**Solves the "Claude made it look fine but nothing ties together" problem: no design system extraction, no reference grounding, no verification against the brief.**
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@hegemonart/get-design-done)
|
|
10
|
+
[](https://github.com/hegemonart/get-design-done/actions/workflows/ci.yml)
|
|
11
|
+
[](https://nodejs.org/)
|
|
12
|
+
[](https://github.com/hegemonart/get-design-done/releases/tag/v1.0.7)
|
|
13
|
+
[](LICENSE)
|
|
14
|
+
|
|
15
|
+
<br>
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
claude plugin marketplace add hegemonart/get-design-done
|
|
19
|
+
claude plugin install get-design-done@get-design-done
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Works on macOS, Linux, and Windows. Requires Claude Code + Node 22/24.**
|
|
23
|
+
|
|
24
|
+
<br>
|
|
25
|
+
|
|
26
|
+
*"Claude ships code fast. Get Design Done makes sure it ships design."*
|
|
27
|
+
|
|
28
|
+
<br>
|
|
29
|
+
|
|
30
|
+
[Why I Built This](#why-i-built-this) · [How It Works](#how-it-works) · [Commands](#commands) · [Connections](#connections) · [Why It Works](#why-it-works)
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
> [!IMPORTANT]
|
|
37
|
+
> ### Already have a Claude Design bundle?
|
|
38
|
+
>
|
|
39
|
+
> If you exported a design from [claude.ai/design](https://claude.ai/design), you can skip Stages 1–3 entirely:
|
|
40
|
+
>
|
|
41
|
+
> ```
|
|
42
|
+
> /gdd:handoff ./my-design.html
|
|
43
|
+
> ```
|
|
44
|
+
>
|
|
45
|
+
> This parses the bundle's CSS custom properties into D-XX design decisions, runs the verification pass with Handoff Faithfulness scoring, and optionally writes implementation status back to Figma. Full format at [`connections/claude-design.md`](connections/claude-design.md).
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Why I Built This
|
|
50
|
+
|
|
51
|
+
I'm a designer who ships with Claude Code. The code-side workflow (GSD, Speckit, BMAD) is mature. The design-side workflow is not.
|
|
52
|
+
|
|
53
|
+
What I kept running into: Claude happily generates UI, but the output is *disconnected*. Tokens don't match the existing system. Contrast ratios silently drift below WCAG. Hierarchy gets reinvented per screen. Anti-patterns from old stacks leak into new ones. And none of it is caught until the PR review, because nothing verified the output against the original design brief.
|
|
54
|
+
|
|
55
|
+
So I built Get Design Done. Same philosophy as GSD — **the complexity is in the system, not in your workflow**. Behind the scenes: thirty specialized agents, a queryable intel store, tier-aware model routing, connection probes across Figma/Refero/Pinterest/Storybook/Chromatic/Graphify/Preview, and a self-improvement loop that tunes itself from measured telemetry. What you see: a few commands that just work.
|
|
56
|
+
|
|
57
|
+
The pipeline does the work *and* verifies it. I trust the workflow. It gets design done.
|
|
58
|
+
|
|
59
|
+
— **Hegemon**
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
Design-side vibecoding has the same failure mode as code-side vibecoding: describe what you want, AI generates something, it looks plausible, it falls apart at scale because nothing tied the output back to the brief.
|
|
64
|
+
|
|
65
|
+
Get Design Done fixes that. It's the context engineering layer for design work in Claude Code. Capture the brief, inventory the system, ground in real references, decompose into atomic design tasks, verify against the brief — then ship.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Who This Is For
|
|
70
|
+
|
|
71
|
+
Designers and design-engineers who want Claude Code to do serious design work — and expect it to respect the design system, the brief, and WCAG.
|
|
72
|
+
|
|
73
|
+
Built-in quality gates catch real problems: Handoff Faithfulness scoring on Claude Design bundles, contrast audits across the full palette × surface matrix, anti-pattern detection from the NNG catalog, dark-mode architecture verification, and motion-system consistency checks.
|
|
74
|
+
|
|
75
|
+
### v1.0.7 Highlights
|
|
76
|
+
|
|
77
|
+
- **Full CI/CD pipeline** — Five-job GitHub Actions matrix (lint → validate → test → security + size-budget) across Node 22/24 × Linux/macOS/Windows. Blocking markdownlint, link checker, JSON schema validation, frontmatter validator, stale-ref detector, shellcheck, gitleaks, injection scanner, agent size-budget enforcement. Release automation auto-tags and publishes GitHub Releases on manifest version bumps.
|
|
78
|
+
- **Self-improvement loop** — The `design-reflector` agent reads cycle telemetry and proposes concrete improvements: frontmatter tuning, reference additions, budget adjustments, question pruning, and global-skill promotion to `~/.claude/gdd/global-skills/`. Nothing auto-applies — you review and accept each proposal via `/gdd:apply-reflections`.
|
|
79
|
+
- **Cost optimization layer** — `gdd-router` + `gdd-cache-manager` + `budget-enforcer` hook + tier-aware agent frontmatter + lazy checker gates + streaming synthesizer. Target: 50–70% per-task token-cost reduction versus pre-layer baseline, with no regression on the design-quality floor.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Getting Started
|
|
84
|
+
|
|
85
|
+
### Option A — Claude Code marketplace (recommended)
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
claude plugin marketplace add hegemonart/get-design-done
|
|
89
|
+
claude plugin install get-design-done@get-design-done
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Option B — npm / pnpm
|
|
93
|
+
|
|
94
|
+
Published as a scoped package. Works with any npm-compatible client:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm install -g @hegemonart/get-design-done
|
|
98
|
+
pnpm add -g @hegemonart/get-design-done
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Either path installs the pipeline skill and triggers a `SessionStart` bootstrap hook, which provisions the companion reference library `~/.claude/libs/awesome-design-md` on first run (idempotent — subsequent sessions run `git pull --ff-only`).
|
|
102
|
+
|
|
103
|
+
Verify with:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
/gdd:help
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
> [!TIP]
|
|
110
|
+
> Run Claude Code with `--dangerously-skip-permissions` for the intended frictionless flow. GDD is built for autonomous multi-stage execution; approving every file read and `git commit` defeats the purpose.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## How It Works
|
|
115
|
+
|
|
116
|
+
> **New to the codebase?** Run `/gdd:map` first. It spawns 5 parallel specialist mappers (tokens, components, visual hierarchy, a11y, motion) and writes `.design/map/` — rich structured data the Explore stage consumes, much better than the grep-based fallback.
|
|
117
|
+
|
|
118
|
+
### 1. Brief
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
/gdd:brief
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
One command captures the design problem before any scanning or exploration. The skill asks five questions via `AskUserQuestion` — one at a time, only for unanswered sections:
|
|
125
|
+
|
|
126
|
+
1. **Problem** — The user-facing outcome you're solving
|
|
127
|
+
2. **Audience** — Primary user, device, context
|
|
128
|
+
3. **Constraints** — Tech stack, brand, time, a11y requirements
|
|
129
|
+
4. **Success Metrics** — How you'll know it worked
|
|
130
|
+
5. **Scope** — What's in, what's out
|
|
131
|
+
|
|
132
|
+
You approve the brief. Now the rest of the pipeline has something to verify against.
|
|
133
|
+
|
|
134
|
+
**Creates:** `.design/BRIEF.md`
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### 2. Explore
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
/gdd:explore
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Unified inventory + interview.** (The old `scan` and `discover` commands are deprecated aliases that route here.)
|
|
145
|
+
|
|
146
|
+
The skill probes connection availability (Figma, Refero, Pinterest, Preview, Storybook, Chromatic, Graphify, Figma Writer, Claude Design), then:
|
|
147
|
+
|
|
148
|
+
1. **Inventory scan** — If `.design/map/` exists and is fresher than `src/`, consumes the structured map output. Otherwise runs a grep-based inventory pass
|
|
149
|
+
2. **Design interview** — Spawns `design-discussant`, which runs an adaptive interview grounded in the brief and what it found in the code
|
|
150
|
+
3. **Baseline audit** — Writes `DESIGN.md` (current state), `DESIGN-DEBT.md` (known gaps), and `DESIGN-CONTEXT.md` (decisions + architectural responsibility map + Mermaid flow diagram)
|
|
151
|
+
|
|
152
|
+
The deeper you engage in the interview, the more the downstream planner and executors build *your* vision rather than reasonable defaults.
|
|
153
|
+
|
|
154
|
+
**Creates:** `DESIGN.md`, `DESIGN-DEBT.md`, `DESIGN-CONTEXT.md`
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### 3. Plan
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
/gdd:plan
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The skill:
|
|
165
|
+
|
|
166
|
+
1. **Researches** — `design-phase-researcher` investigates how to implement, guided by `DESIGN-CONTEXT.md` decisions. Consults Graphify knowledge graph when available, so dependency queries are O(1) instead of grep-based guessing
|
|
167
|
+
2. **Plans** — `design-planner` decomposes into atomic tasks, annotates with Chromatic change-risk and Storybook component fan-out
|
|
168
|
+
3. **Verifies** — `design-plan-checker` validates the plan against the brief and context, loops until it passes
|
|
169
|
+
|
|
170
|
+
Each task is small enough to execute in a fresh context window. No degradation, no abbreviated outputs.
|
|
171
|
+
|
|
172
|
+
**Creates:** `DESIGN-PLAN.md`
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### 4. Design
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
/gdd:design
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The skill runs the plan. For each task:
|
|
183
|
+
|
|
184
|
+
1. **Fresh context per task** — Full context budget for implementation, zero accumulated garbage
|
|
185
|
+
2. **Tier-aware routing** — Each agent carries a `default-tier` frontmatter field (haiku/sonnet/opus); the router + `budget.json` override determine actual tier per spawn. Cheap work runs on Haiku; precise work on Opus
|
|
186
|
+
3. **Atomic commits per task** — Every task gets its own commit, keeping git history surgical
|
|
187
|
+
4. **Streaming synthesizer** — Parallel-agent outputs collapse through a single Haiku call before returning to main context, so the orchestrator stays cache-aligned
|
|
188
|
+
|
|
189
|
+
Walk away, come back to completed work with a clean commit history.
|
|
190
|
+
|
|
191
|
+
**Creates:** `DESIGN-SUMMARY.md`, plus per-task commits
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
### 5. Verify
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
/gdd:verify
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**This is where the pipeline proves the output matches the brief.**
|
|
202
|
+
|
|
203
|
+
The skill spawns four agents in sequence, each with cheap-gate precursors:
|
|
204
|
+
|
|
205
|
+
1. **`design-verifier`** — Scores output against brief + context + plan. Runs Phase 4B visual evidence via Preview (Playwright screenshots) when available, plus Chromatic delta narration on the visual regression diff
|
|
206
|
+
2. **`design-auditor`** — Runs the NNG heuristic sweep, WCAG contrast pass across the full palette × surface matrix, typography system audit, motion framework audit, and anti-pattern detector
|
|
207
|
+
3. **`design-integration-checker`** — Cross-file consistency: token naming, component taxonomy, visual hierarchy, a11y labels
|
|
208
|
+
4. **`design-fixer`** — Proposes fixes for each gap, scoped and prioritized
|
|
209
|
+
|
|
210
|
+
If handoff mode (`/gdd:verify --post-handoff` or `/gdd:handoff <bundle>`), an additional **Handoff Faithfulness** section scores color / typography / spacing / component-structure adherence with PASS/WARN/FAIL thresholds.
|
|
211
|
+
|
|
212
|
+
**Creates:** `DESIGN-VERIFICATION.md`
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
### 6. Ship → Reflect → Next Cycle
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
/gdd:ship # Clean PR branch + gh pr create
|
|
220
|
+
/gdd:reflect # Post-cycle improvement proposals
|
|
221
|
+
/gdd:apply-reflections # Review + selectively apply proposals
|
|
222
|
+
/gdd:complete-cycle # Archive cycle to .design/archive/cycle-N/
|
|
223
|
+
/gdd:new-cycle # Start next cycle with fresh STATE.md
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Or let the router figure out the next step:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
/gdd:next # Auto-detect state and run the next step
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Loop **brief → explore → plan → design → verify → ship** per cycle. Each cycle reflects on itself and proposes improvements to the system — frontmatter estimates, tier assignments, reference additions, budget caps, question pruning, global-skill promotion. You decide what to accept.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### Standalone commands (no pipeline init required)
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
/gdd:handoff <bundle.html> # Skip scan/discover/plan, route direct to verify
|
|
240
|
+
/gdd:style Button # Generate component handoff doc
|
|
241
|
+
/gdd:darkmode # Audit dark mode architecture + contrast
|
|
242
|
+
/gdd:compare # Delta between baseline and verification
|
|
243
|
+
/gdd:sketch # Multi-variant HTML exploration
|
|
244
|
+
/gdd:spike # Timeboxed feasibility experiment
|
|
245
|
+
/gdd:figma-write <mode> # Write decisions back to Figma
|
|
246
|
+
/gdd:graphify <subcommand> # Manage Graphify knowledge graph
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Why It Works
|
|
252
|
+
|
|
253
|
+
### Context Engineering
|
|
254
|
+
|
|
255
|
+
Claude Code does great design work *if* you give it the context it needs. Most workflows don't. GDD handles the context layer for you:
|
|
256
|
+
|
|
257
|
+
| File | What it does |
|
|
258
|
+
|------|--------------|
|
|
259
|
+
| `.design/BRIEF.md` | Problem, audience, constraints, metrics, scope — the verification target |
|
|
260
|
+
| `.design/DESIGN.md` | Current-state inventory: tokens, components, hierarchy, a11y, motion |
|
|
261
|
+
| `.design/DESIGN-DEBT.md` | Known gaps and technical-design debt |
|
|
262
|
+
| `.design/DESIGN-CONTEXT.md` | D-XX decisions, architectural responsibility map, Mermaid flow diagram |
|
|
263
|
+
| `.design/DESIGN-PLAN.md` | Atomic tasks with Touches:, Chromatic risk, Storybook fan-out |
|
|
264
|
+
| `.design/DESIGN-SUMMARY.md` | What happened per task, committed to history |
|
|
265
|
+
| `.design/DESIGN-VERIFICATION.md` | Scored audit against brief + context + plan |
|
|
266
|
+
| `.design/STATE.md` | Position, connections, handoff source, decisions — memory across sessions |
|
|
267
|
+
| `.design/intel/` | 10 queryable JSON slices: files, exports, symbols, tokens, components, patterns, dependencies, decisions, debt, cross-reference graph |
|
|
268
|
+
| `.design/CYCLES.md` | Cycle lifecycle + archived cycles in `.design/archive/` |
|
|
269
|
+
|
|
270
|
+
Size budgets are tiered per agent (XXL: 700, XL: 500, Large: 300, Default: 200 lines). Stay under, get consistent output. The `agent-size-budget` CI job blocks violations.
|
|
271
|
+
|
|
272
|
+
### 30 Specialized Agents
|
|
273
|
+
|
|
274
|
+
Every stage uses the same pattern: a thin orchestrator skill spawns specialized agents, collects results, routes to the next step.
|
|
275
|
+
|
|
276
|
+
| Stage | Orchestrator does | Agents do |
|
|
277
|
+
|-------|------------------|-----------|
|
|
278
|
+
| Brief | Runs interview, writes BRIEF.md | — |
|
|
279
|
+
| Map | Coordinates parallel spawn | 5 mappers investigate tokens, components, visual hierarchy, a11y, motion |
|
|
280
|
+
| Explore | Probes connections, runs inventory | `design-context-builder` + `design-context-checker` gate → full checker |
|
|
281
|
+
| Plan | Validates, manages iteration | `design-phase-researcher`, `design-planner`, `design-plan-checker` loop |
|
|
282
|
+
| Design | Dispatches tasks | `design-executor` per task, streaming-synthesizer merge |
|
|
283
|
+
| Verify | Presents results, routes fixes | `design-verifier`, `design-auditor`, `design-integration-checker`, `design-fixer` (each with cheap Haiku gate precursor) |
|
|
284
|
+
| Post-cycle | Review proposals | `design-reflector` reads telemetry + learnings, proposes improvements |
|
|
285
|
+
|
|
286
|
+
All agents carry `default-tier: haiku|sonnet|opus` + `tier-rationale` in frontmatter. Every agent opens with `@reference/shared-preamble.md` so the first agent in a session pays full cost and the rest ride Anthropic's 5-minute prompt cache.
|
|
287
|
+
|
|
288
|
+
### 9 Tool Connections
|
|
289
|
+
|
|
290
|
+
Every connection is optional. The pipeline degrades gracefully — a grep-based fallback exists for every missing tool.
|
|
291
|
+
|
|
292
|
+
| Connection | Type | Purpose |
|
|
293
|
+
|-----------|------|---------|
|
|
294
|
+
| Figma Desktop | MCP (`mcp__figma-desktop__*`) | Token extraction, design context pre-population |
|
|
295
|
+
| Figma Writer | MCP (`mcp__figma__use_figma`) | Write decisions back to Figma (annotate, tokenize, Code Connect) |
|
|
296
|
+
| Refero | MCP (`mcp__refero__*`) | Reference design search during exploration |
|
|
297
|
+
| Pinterest | MCP (`mcp__mcp-pinterest__*`) | Visual inspiration boards alongside Refero |
|
|
298
|
+
| Preview (Playwright) | MCP (`mcp__Claude_Preview__*`) | Live page screenshots for visual verification |
|
|
299
|
+
| Storybook | HTTP (`localhost:6006`) | Component inventory, a11y per story, story stubs |
|
|
300
|
+
| Chromatic | CLI (`npx chromatic`) | Visual regression delta narration and change-risk scoping |
|
|
301
|
+
| Graphify | CLI (`graphify`) | Knowledge graph: component↔token↔decision relationships |
|
|
302
|
+
| Claude Design | Bundle adapter | Parse HTML export → D-XX decisions, Handoff Faithfulness scoring |
|
|
303
|
+
|
|
304
|
+
See [`connections/connections.md`](connections/connections.md) for the full index and capability matrix.
|
|
305
|
+
|
|
306
|
+
### Atomic Git Commits
|
|
307
|
+
|
|
308
|
+
Each task gets its own commit immediately after completion:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
abc123f docs(cycle-1): DESIGN-CONTEXT.md decisions locked
|
|
312
|
+
def456g feat(cycle-1): unify button tokens across surfaces
|
|
313
|
+
hij789k feat(cycle-1): fix dark-mode contrast on CardMuted
|
|
314
|
+
lmn012o feat(cycle-1): motion tokens for modal presentation
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
> [!NOTE]
|
|
318
|
+
> **Benefits:** `git bisect` finds the exact task that broke contrast. Each task is independently revertable via `/gdd:undo`. Clear history for Claude in future sessions. `/gdd:pr-branch` strips `.design/` and `.planning/` commits for a clean code-review branch.
|
|
319
|
+
|
|
320
|
+
### Self-Improvement
|
|
321
|
+
|
|
322
|
+
After each design cycle, `/gdd:reflect` reads `.design/learnings/`, `.design/telemetry/costs.jsonl`, and `.design/agent-metrics.json` and proposes concrete improvements:
|
|
323
|
+
|
|
324
|
+
- **Frontmatter updates** — agent duration estimates and tier assignments from measured data
|
|
325
|
+
- **Reference additions** — anti-patterns and heuristics that appeared ≥3 cycles
|
|
326
|
+
- **Budget adjustments** — cost caps tuned from actual spend patterns
|
|
327
|
+
- **Question pruning** — discussant questions that consistently got low-value answers
|
|
328
|
+
- **Global skill promotion** — project findings promoted to `~/.claude/gdd/global-skills/` for cross-project use
|
|
329
|
+
|
|
330
|
+
**Nothing auto-applies.** Every proposal requires explicit review via `/gdd:apply-reflections` — diff, accept, skip, or edit each one. The discipline mirrors the `design-figma-writer` proposal→confirm pattern.
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Commands
|
|
335
|
+
|
|
336
|
+
All commands use the `/gdd:` namespace.
|
|
337
|
+
|
|
338
|
+
### Core pipeline
|
|
339
|
+
|
|
340
|
+
| Command | What it does |
|
|
341
|
+
|---------|--------------|
|
|
342
|
+
| `/gdd:brief` | Stage 1 — problem, audience, constraints, metrics, scope |
|
|
343
|
+
| `/gdd:explore [--skip-interview] [--skip-scan]` | Stage 2 — inventory scan + design interview |
|
|
344
|
+
| `/gdd:plan` | Stage 3 — research + decompose into atomic tasks + verify plan |
|
|
345
|
+
| `/gdd:design` | Stage 4 — execute tasks with fresh context per task |
|
|
346
|
+
| `/gdd:verify [--post-handoff]` | Stage 5 — verifier + auditor + integration checker + fixer |
|
|
347
|
+
| `/gdd:handoff <bundle>` | Skip scan/discover/plan, route direct to verify from Claude Design bundle |
|
|
348
|
+
| `/gdd:next` | Auto-detect pipeline state and run next step |
|
|
349
|
+
| `/gdd:map` | Parallel codebase mapping — 5 specialist mappers |
|
|
350
|
+
|
|
351
|
+
### Lifecycle
|
|
352
|
+
|
|
353
|
+
| Command | What it does |
|
|
354
|
+
|---------|--------------|
|
|
355
|
+
| `/gdd:new-project [--name]` | Initialize project — PROJECT.md + STATE.md + cycle-1 |
|
|
356
|
+
| `/gdd:new-cycle [<goal>]` | Start new design cycle |
|
|
357
|
+
| `/gdd:complete-cycle [<note>]` | Archive cycle to `.design/archive/cycle-N/` |
|
|
358
|
+
| `/gdd:ship [--draft]` | Clean PR branch + `gh pr create` |
|
|
359
|
+
|
|
360
|
+
### Standalone
|
|
361
|
+
|
|
362
|
+
| Command | What it does |
|
|
363
|
+
|---------|--------------|
|
|
364
|
+
| `/gdd:style [ComponentName]` | Generate component handoff doc |
|
|
365
|
+
| `/gdd:darkmode` | Audit dark mode architecture + contrast |
|
|
366
|
+
| `/gdd:compare` | Delta between DESIGN.md baseline and DESIGN-VERIFICATION.md |
|
|
367
|
+
| `/gdd:figma-write <mode>` | Write decisions back to Figma (annotate/tokenize/mappings) |
|
|
368
|
+
| `/gdd:graphify <subcommand>` | Manage Graphify knowledge graph (build/query/status/diff) |
|
|
369
|
+
| `/gdd:sketch [topic] [--variants N]` | Multi-variant HTML exploration |
|
|
370
|
+
| `/gdd:spike [hypothesis] [--timebox]` | Timeboxed feasibility experiment |
|
|
371
|
+
| `/gdd:sketch-wrap-up`, `/gdd:spike-wrap-up` | Distill winner + findings into project-local convention skills |
|
|
372
|
+
|
|
373
|
+
### Audit & Self-Improvement
|
|
374
|
+
|
|
375
|
+
| Command | What it does |
|
|
376
|
+
|---------|--------------|
|
|
377
|
+
| `/gdd:audit [--retroactive] [--quick]` | Wraps verifier + auditor + reflector |
|
|
378
|
+
| `/gdd:reflect [--dry-run] [--cycle]` | On-demand post-cycle reflection |
|
|
379
|
+
| `/gdd:apply-reflections [--filter]` | Review + selectively apply reflection proposals |
|
|
380
|
+
| `/gdd:optimize` | Emit cost-optimization recommendations from telemetry |
|
|
381
|
+
| `/gdd:warm-cache` | Pre-warm common agent prompts for prompt cache |
|
|
382
|
+
|
|
383
|
+
### Knowledge Layer
|
|
384
|
+
|
|
385
|
+
| Command | What it does |
|
|
386
|
+
|---------|--------------|
|
|
387
|
+
| `/gdd:analyze-dependencies [--slice]` | Token fan-out, component call-graph, decision traceability, circular dep detection |
|
|
388
|
+
| `/gdd:extract-learnings [--cycle]` | Extract decisions, lessons, patterns, surprises → LEARNINGS.md |
|
|
389
|
+
| `/gdd:skill-manifest [--refresh]` | Browse all registered skills + agents from intel store |
|
|
390
|
+
|
|
391
|
+
### Execution speed
|
|
392
|
+
|
|
393
|
+
| Command | What it does |
|
|
394
|
+
|---------|--------------|
|
|
395
|
+
| `/gdd:quick [--skip <agent>] [stage]` | Run pipeline skipping optional agents for speed |
|
|
396
|
+
| `/gdd:fast <task>` | Trivial inline task — no subagents, no pipeline, no artifacts |
|
|
397
|
+
| `/gdd:do <natural language>` | Natural-language router — parses intent, confirms, dispatches |
|
|
398
|
+
| `/gdd:discuss [topic] [--all]` | Adaptive design interview — appends D-XX decisions to STATE.md |
|
|
399
|
+
|
|
400
|
+
### Idea capture
|
|
401
|
+
|
|
402
|
+
| Command | What it does |
|
|
403
|
+
|---------|--------------|
|
|
404
|
+
| `/gdd:note <add\|list\|promote> [text]` | Zero-friction notes → NOTES.md |
|
|
405
|
+
| `/gdd:plant-seed [--trigger] [text]` | Forward-looking idea with trigger condition |
|
|
406
|
+
| `/gdd:add-backlog [text]` | Park an idea in backlog |
|
|
407
|
+
| `/gdd:review-backlog` | Promote or archive parked items |
|
|
408
|
+
| `/gdd:todo <add\|list\|pick>` | Design-scoped todo list |
|
|
409
|
+
|
|
410
|
+
### Session
|
|
411
|
+
|
|
412
|
+
| Command | What it does |
|
|
413
|
+
|---------|--------------|
|
|
414
|
+
| `/gdd:pause [context]` | Write session handoff to `.design/HANDOFF.md` |
|
|
415
|
+
| `/gdd:resume` | Restore context and route to next step |
|
|
416
|
+
| `/gdd:progress [--forensic]` | Pipeline position + recommended next action |
|
|
417
|
+
| `/gdd:health` | Artifact health report for `.design/` |
|
|
418
|
+
| `/gdd:stats` | Cycle metrics — decisions, commits, todos |
|
|
419
|
+
| `/gdd:help` | Full command list |
|
|
420
|
+
|
|
421
|
+
### Safety
|
|
422
|
+
|
|
423
|
+
| Command | What it does |
|
|
424
|
+
|---------|--------------|
|
|
425
|
+
| `/gdd:undo [<sha>]` | Safe revert with dependency check |
|
|
426
|
+
| `/gdd:pr-branch [<base>]` | Strip `.design/` + `.planning/` commits for clean code-review branch |
|
|
427
|
+
| `/gdd:debug [<symptom>]` | Symptom-driven design investigation with persistent state |
|
|
428
|
+
| `/gdd:list-assumptions [--area]` | Surface implicit design assumptions baked into the codebase |
|
|
429
|
+
|
|
430
|
+
### Configuration
|
|
431
|
+
|
|
432
|
+
| Command | What it does |
|
|
433
|
+
|---------|--------------|
|
|
434
|
+
| `/gdd:settings <profile\|parallelism\|cleanup\|show>` | Manage `.design/config.json` |
|
|
435
|
+
| `/gdd:update [--dry-run]` | Update plugin to latest release |
|
|
436
|
+
| `/gdd:reapply-patches [--dry-run]` | Reapply `reference/` customizations after an update |
|
|
437
|
+
|
|
438
|
+
Full command reference with argument specs: [`SKILL.md`](SKILL.md).
|
|
439
|
+
|
|
440
|
+
---
|
|
441
|
+
|
|
442
|
+
## Connections
|
|
443
|
+
|
|
444
|
+
All connections are optional — the pipeline degrades gracefully when any connection is unavailable.
|
|
445
|
+
|
|
446
|
+
### Figma MCP
|
|
447
|
+
|
|
448
|
+
When the official Figma Desktop MCP is active, `explore` reads Figma variables and pre-populates design decisions from your file. Falls back to code-only analysis. Setup: [`connections/figma.md`](connections/figma.md).
|
|
449
|
+
|
|
450
|
+
### Figma Writer MCP
|
|
451
|
+
|
|
452
|
+
`design-figma-writer` writes decisions back to Figma via the remote `use_figma` MCP — annotates frames, tokenizes local styles, registers Code Connect mappings. Proposal → confirm discipline with `--dry-run` and `--confirm-shared` guards. Setup: [`connections/figma-writer.md`](connections/figma-writer.md).
|
|
453
|
+
|
|
454
|
+
### Refero MCP
|
|
455
|
+
|
|
456
|
+
When Refero is active, `explore` pulls visual references to ground design decisions. Requires an API token in `~/.claude.json`:
|
|
457
|
+
|
|
458
|
+
```json
|
|
459
|
+
{
|
|
460
|
+
"mcpServers": {
|
|
461
|
+
"refero": {
|
|
462
|
+
"type": "http",
|
|
463
|
+
"url": "https://mcp.refero.design/mcp",
|
|
464
|
+
"headers": { "Authorization": "Bearer YOUR_REFERO_TOKEN" }
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
Falls back to `~/.claude/libs/awesome-design-md/`. Setup: [`connections/refero.md`](connections/refero.md).
|
|
471
|
+
|
|
472
|
+
### Pinterest MCP
|
|
473
|
+
|
|
474
|
+
When the Pinterest MCP (`terryso/mcp-pinterest`) is active, `explore` pulls visual inspiration boards alongside Refero. ToolSearch-only probe — no API key required. Fallback chain: Pinterest → Refero → awesome-design-md. Setup: [`connections/pinterest.md`](connections/pinterest.md).
|
|
475
|
+
|
|
476
|
+
### Preview (Playwright)
|
|
477
|
+
|
|
478
|
+
When the Claude Preview MCP is active, `verify` runs live page screenshots on `? VISUAL` verification gaps, so the auditor grades actual rendered output rather than inferring from code. Setup: [`connections/preview.md`](connections/preview.md).
|
|
479
|
+
|
|
480
|
+
### Storybook
|
|
481
|
+
|
|
482
|
+
When Storybook is running on `localhost:6006`, `explore` pulls component inventory, `verify` runs per-story a11y passes, and `design` can generate `.stories.tsx` stubs. Setup: [`connections/storybook.md`](connections/storybook.md).
|
|
483
|
+
|
|
484
|
+
### Chromatic
|
|
485
|
+
|
|
486
|
+
When Chromatic CLI is available, `plan` uses `--trace-changed=expanded` for change-risk scoping and `verify` narrates visual regression deltas. Setup: [`connections/chromatic.md`](connections/chromatic.md).
|
|
487
|
+
|
|
488
|
+
### Graphify
|
|
489
|
+
|
|
490
|
+
When Graphify CLI is available, `plan` and `design-integration-checker` consult the component↔token↔decision knowledge graph before grep searches — dependency queries become O(1). Setup: [`connections/graphify.md`](connections/graphify.md).
|
|
491
|
+
|
|
492
|
+
### Claude Design
|
|
493
|
+
|
|
494
|
+
Drop a Claude Design bundle (HTML export from [claude.ai/design](https://claude.ai/design)) into your project root and run `/gdd:handoff <path>`. The pipeline skips Scan → Discover → Plan, parses the bundle CSS custom properties into D-XX design decisions, runs `verify --post-handoff` for Handoff Faithfulness scoring, and optionally writes implementation status back to Figma. Full format: [`connections/claude-design.md`](connections/claude-design.md).
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## Configuration
|
|
499
|
+
|
|
500
|
+
GDD stores project settings in `.design/config.json`. Configure via `/gdd:settings` or edit directly.
|
|
501
|
+
|
|
502
|
+
### Core
|
|
503
|
+
|
|
504
|
+
| Setting | Options | Default | What it controls |
|
|
505
|
+
|---------|---------|---------|------------------|
|
|
506
|
+
| `mode` | `yolo`, `interactive` | `interactive` | Auto-approve vs confirm at each step |
|
|
507
|
+
| `profile` | `quality`, `balanced`, `budget`, `inherit` | `balanced` | Model tier policy (see below) |
|
|
508
|
+
| `parallelism` | `aggressive`, `conservative`, `off` | `conservative` | Wave parallelism for `design` stage |
|
|
509
|
+
|
|
510
|
+
### Model profiles
|
|
511
|
+
|
|
512
|
+
Each agent carries a `default-tier: haiku|sonnet|opus` in frontmatter. The active profile + `tier_overrides` in `budget.json` determine actual tier per spawn.
|
|
513
|
+
|
|
514
|
+
| Profile | Planning | Execution | Verification |
|
|
515
|
+
|---------|----------|-----------|--------------|
|
|
516
|
+
| `quality` | Opus | Opus | Sonnet |
|
|
517
|
+
| `balanced` (default) | Opus | Sonnet | Sonnet |
|
|
518
|
+
| `budget` | Sonnet | Sonnet | Haiku |
|
|
519
|
+
| `inherit` | Inherit | Inherit | Inherit |
|
|
520
|
+
|
|
521
|
+
Use `inherit` when using non-Anthropic providers or to follow the current runtime model selection.
|
|
522
|
+
|
|
523
|
+
### Budget + optimization
|
|
524
|
+
|
|
525
|
+
`.design/budget.json` controls the cost layer:
|
|
526
|
+
|
|
527
|
+
```json
|
|
528
|
+
{
|
|
529
|
+
"per_task_cap_usd": 2.00,
|
|
530
|
+
"per_phase_cap_usd": 20.00,
|
|
531
|
+
"tier_overrides": {
|
|
532
|
+
"design-planner": "opus",
|
|
533
|
+
"design-verifier": "haiku"
|
|
534
|
+
},
|
|
535
|
+
"auto_downgrade_on_cap": true,
|
|
536
|
+
"cache_ttl_seconds": 3600,
|
|
537
|
+
"enforcement_mode": "enforce"
|
|
538
|
+
}
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
`enforcement_mode`: `enforce` (hard-block on cap breach) | `warn` (warn + continue) | `log` (silent log). Use `log` during adoption to observe the hook's decisions without blocking.
|
|
542
|
+
|
|
543
|
+
Full schema: [`reference/config-schema.md`](reference/config-schema.md).
|
|
544
|
+
|
|
545
|
+
---
|
|
546
|
+
|
|
547
|
+
## Knowledge Layer
|
|
548
|
+
|
|
549
|
+
The knowledge layer gives the pipeline persistent memory and O(1) lookups across all design surface files.
|
|
550
|
+
|
|
551
|
+
### Intel store (`.design/intel/`)
|
|
552
|
+
|
|
553
|
+
Ten queryable JSON slices that index the design surface:
|
|
554
|
+
|
|
555
|
+
| Slice | Contents |
|
|
556
|
+
|-------|----------|
|
|
557
|
+
| `files.json` | All tracked files with mtime + git hash |
|
|
558
|
+
| `exports.json` | Named exports: skill commands + agent names |
|
|
559
|
+
| `symbols.json` | Markdown headings + section anchors |
|
|
560
|
+
| `tokens.json` | Design token references (color, spacing, typography, radius) |
|
|
561
|
+
| `components.json` | Component names + referencing files |
|
|
562
|
+
| `patterns.json` | Design pattern classifications by concern |
|
|
563
|
+
| `dependencies.json` | @-reference and reads-from relationships |
|
|
564
|
+
| `decisions.json` | Architectural decisions from DESIGN-CONTEXT.md |
|
|
565
|
+
| `debt.json` | Design debt items from DESIGN-DEBT.md |
|
|
566
|
+
| `graph.json` | Cross-reference graph: nodes + edges |
|
|
567
|
+
|
|
568
|
+
Build the intel store:
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
node scripts/build-intel.cjs --force
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
Incremental updates fire automatically via the `gdd-intel-updater` agent after file edits.
|
|
575
|
+
|
|
576
|
+
### Context exhaustion hook
|
|
577
|
+
|
|
578
|
+
`hooks/context-exhaustion.js` auto-records a `<paused>` resumption block in `.design/STATE.md` when session context reaches 85%. Run `/gdd:resume` in the next session to restore context.
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
## Optimization Layer
|
|
583
|
+
|
|
584
|
+
Every `/gdd:*` command and agent spawn passes through a cross-cutting optimization layer. Target: **50–70% per-task token-cost reduction** vs the pre-optimization baseline, with no regression on the design-quality floor.
|
|
585
|
+
|
|
586
|
+
- **`gdd-router` skill** — First-step intent router. Returns `{path: fast|quick|full, model_tier_overrides, estimated_cost_usd, cache_hits}`. Cheap Haiku call; gates every downstream spawn.
|
|
587
|
+
- **`gdd-cache-manager` skill + `/gdd:warm-cache`** — Maintains `.design/cache-manifest.json` and pre-warms common agent system prompts so Anthropic's 5-min prompt cache fires on the shared preamble.
|
|
588
|
+
- **`budget-enforcer` PreToolUse hook** — Intercepts every `Agent` spawn. Hard-blocks on cap breach (actionable error), auto-downgrades at 80% soft-threshold, short-circuits on cache hit. Without the hook, optimization is advisory; with it, violations are impossible.
|
|
589
|
+
- **Lazy checker gates** (`design-verifier-gate`, `design-integration-checker-gate`, `design-context-checker-gate`) — Cheap Haiku heuristic decides whether to spawn the expensive full checker.
|
|
590
|
+
- **Streaming synthesizer** (`skills/synthesize/`) — N parallel-mapper outputs collapse through a single Haiku call before returning to main context.
|
|
591
|
+
- **Cost telemetry** — `.design/telemetry/costs.jsonl` appends one row per spawn decision: `{ts, agent, tier, tokens_in, tokens_out, cache_hit, est_cost_usd, cycle, phase}`. Aggregated to `.design/agent-metrics.json`. Consumed by `/gdd:optimize` and `design-reflector`.
|
|
592
|
+
|
|
593
|
+
Regression baseline: [`test-fixture/baselines/phase-10.1/`](test-fixture/baselines/phase-10.1/) — methodology README + `pre-baseline-cost-report.md` + `cost-report.md`. Phase 13 CI diffs against `cost-report.md` to catch regressions.
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
## Testing & CI
|
|
598
|
+
|
|
599
|
+
GDD ships with a locked test suite. Every push and PR runs a five-job pipeline across a cross-platform matrix — Node 22/24 × Linux/macOS/Windows.
|
|
600
|
+
|
|
601
|
+
### Run tests locally
|
|
602
|
+
|
|
603
|
+
```bash
|
|
604
|
+
npm test
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
Zero third-party test dependencies — the runner is Node's built-in `node:test` + `node:assert/strict`.
|
|
608
|
+
|
|
609
|
+
### CI pipeline
|
|
610
|
+
|
|
611
|
+
```
|
|
612
|
+
lint → validate → test (matrix) → security + size-budget
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
- **Lint** — `markdownlint-cli2@0.13.0` (pinned), link checker via `lycheeverse/lychee-action@v2` (blocking)
|
|
616
|
+
- **Validate** — JSON schema validation (`plugin.schema.json`, `marketplace.schema.json`, `hooks.schema.json`, `config.schema.json`, `intel.schema.json`), agent frontmatter validator, stale-ref detector (fails on any `/design:*` legacy namespace or deprecated agent/stage names), `claude plugin validate .`
|
|
617
|
+
- **Test** — Node 22/24 × Linux/macOS/Windows, fail-fast disabled
|
|
618
|
+
- **Security** — `ludeeus/action-shellcheck@master` on `scripts/`, `gitleaks/gitleaks-action@v2` secrets scan with `.gitleaks.toml` allowlist, injection scanner over all shipped reference/skills/agents
|
|
619
|
+
- **Size-budget** — Blocking tier enforcement (XXL: 700, XL: 500, Large: 300, Default: 200 lines) with actionable override guidance
|
|
620
|
+
|
|
621
|
+
### What's covered
|
|
622
|
+
|
|
623
|
+
- **Agent hygiene** — frontmatter completeness, line-count tier budgets, required-reading path validity, `/gdd:` namespace consistency
|
|
624
|
+
- **System contracts** — config schema, command↔skill parity, hooks integrity, atomic writes to `.design/STATE.md`, frontmatter parser edge cases, model-profile resolution, `/gdd:health` output shape, worktree safety, semver bump sequence, STATE-TEMPLATE drift
|
|
625
|
+
- **Pipeline + data** — end-to-end smoke on `test-fixture/`, mapper JSON-schema validation (tokens, components, a11y, motion, hierarchy), parallelism-engine decision table, `Touches:` field parsing, cycle lifecycle, `.design/intel/` incremental-update correctness, regression-baseline drift detector
|
|
626
|
+
- **Feature correctness** — `/gdd:sketch` variant determinism, 9-connection probe contracts with mocked MCPs, `design-figma-writer` dry-run discipline, `design-reflector` proposal-only shape, deprecated-name redirects, NNG heuristic coverage, injection-scanner hook behavior, optimization-layer schema enforcement
|
|
627
|
+
|
|
628
|
+
### Release automation
|
|
629
|
+
|
|
630
|
+
`.github/workflows/release.yml` auto-tags and publishes a GitHub Release when `.claude-plugin/plugin.json` version changes. Release body is extracted from the matching `CHANGELOG.md` section. A release-time smoke test (`scripts/release-smoke-test.cjs`) diffs a fresh checkout against `test-fixture/baselines/phase-13/` before the release publishes.
|
|
631
|
+
|
|
632
|
+
From **v1.0.6 forward**, every PR MUST pass `npm test` before merging to `main`. Baselines in `test-fixture/baselines/phase-<N>/` lock each phase's structural state — re-lock explicitly rather than relaxing tests. See [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## Distribution
|
|
637
|
+
|
|
638
|
+
**Ships with the plugin:**
|
|
639
|
+
- `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json` — manifest
|
|
640
|
+
- `SKILL.md` — root pipeline router
|
|
641
|
+
- `skills/` — 55 stage + standalone skills
|
|
642
|
+
- `agents/` — 30 specialized agent specs
|
|
643
|
+
- `connections/` — 9 connection specs
|
|
644
|
+
- `reference/` — curated design reference (shared preamble, model tiers, model prices, schemas, DEPRECATIONS, config schema)
|
|
645
|
+
- `hooks/`, `scripts/bootstrap.sh`
|
|
646
|
+
|
|
647
|
+
**Dev-only (gitignored, not distributed):**
|
|
648
|
+
- `.planning/` — GSD planning artifacts for GDD's own development
|
|
649
|
+
- `.claude/memory/` — session-level memory
|
|
650
|
+
- `.claude/settings.local.json`
|
|
651
|
+
|
|
652
|
+
---
|
|
653
|
+
|
|
654
|
+
## Develop locally
|
|
655
|
+
|
|
656
|
+
```bash
|
|
657
|
+
git clone https://github.com/hegemonart/get-design-done.git
|
|
658
|
+
cd get-design-done
|
|
659
|
+
npm ci
|
|
660
|
+
npm test
|
|
661
|
+
claude --plugin-dir ./
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
From inside Claude Code:
|
|
665
|
+
|
|
666
|
+
```
|
|
667
|
+
/reload-plugins
|
|
668
|
+
claude plugin validate .
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the branch strategy, PR checklist, required checks, and baseline re-lock procedure.
|
|
672
|
+
|
|
673
|
+
---
|
|
674
|
+
|
|
675
|
+
## Troubleshooting
|
|
676
|
+
|
|
677
|
+
**Commands not found after install?**
|
|
678
|
+
- Restart Claude Code to reload commands/skills
|
|
679
|
+
- Verify files exist in `~/.claude/plugins/marketplaces/hegemonart/get-design-done/` or the npm install path
|
|
680
|
+
- Run `/gdd:help` to list registered commands
|
|
681
|
+
|
|
682
|
+
**Pipeline stuck or artifacts missing?**
|
|
683
|
+
```
|
|
684
|
+
/gdd:health
|
|
685
|
+
/gdd:progress --forensic
|
|
686
|
+
```
|
|
687
|
+
The forensic mode runs a 6-check integrity audit — stale artifacts, dangling decisions, unfinished handoffs, orphan cycles, schema drift, injection-scanner warnings.
|
|
688
|
+
|
|
689
|
+
**Want to see what the router and budget-enforcer are doing?**
|
|
690
|
+
Set `enforcement_mode: "log"` in `.design/budget.json` — the hook writes every decision to `.design/telemetry/costs.jsonl` without blocking.
|
|
691
|
+
|
|
692
|
+
**Updating to the latest version?**
|
|
693
|
+
```
|
|
694
|
+
/gdd:update
|
|
695
|
+
```
|
|
696
|
+
Previews the changelog before applying. Local customizations in `reference/` are preserved; use `/gdd:reapply-patches` if they need re-stitching after a structural update.
|
|
697
|
+
|
|
698
|
+
### Uninstall
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
claude plugin uninstall get-design-done@get-design-done
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
Or, if installed via npm:
|
|
705
|
+
|
|
706
|
+
```bash
|
|
707
|
+
npm uninstall -g @hegemonart/get-design-done
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
This removes all GDD skills, agents, hooks, and settings while preserving your other configurations and your `.design/` project artifacts.
|
|
711
|
+
|
|
712
|
+
---
|
|
713
|
+
|
|
714
|
+
## License
|
|
715
|
+
|
|
716
|
+
MIT License. See [LICENSE](LICENSE) for details.
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
<div align="center">
|
|
721
|
+
|
|
722
|
+
**Claude Code is powerful. Get Design Done makes it ship design.**
|
|
723
|
+
|
|
724
|
+
</div>
|