@hegemonart/get-design-done 1.57.2 → 1.57.3

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 (146) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/CHANGELOG.md +48 -0
  4. package/README.md +1 -1
  5. package/SKILL.md +2 -6
  6. package/connections/cursor.md +0 -1
  7. package/package.json +1 -2
  8. package/reference/skill-graph.md +1 -5
  9. package/scripts/lib/manifest/skills.json +3 -23
  10. package/scripts/lib/worktree-resolve.cjs +4 -16
  11. package/skills/README.md +46 -0
  12. package/skills/bootstrap-ds/SKILL.md +1 -1
  13. package/skills/compare/SKILL.md +1 -1
  14. package/skills/new-cycle/SKILL.md +1 -1
  15. package/skills/peer-cli-customize/SKILL.md +0 -1
  16. package/skills/peers/SKILL.md +1 -1
  17. package/skills/reflect/procedures/capability-gap-scan.md +0 -1
  18. package/skills/report-issue/report-issue-procedure.md +0 -1
  19. package/skills/synthesize/SKILL.md +1 -1
  20. package/skills/turn-closeout/SKILL.md +1 -1
  21. package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +0 -48
  22. package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +0 -95
  23. package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +0 -109
  24. package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +0 -170
  25. package/dist/claude-code/.claude/skills/audit/SKILL.md +0 -79
  26. package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +0 -94
  27. package/dist/claude-code/.claude/skills/benchmark/SKILL.md +0 -65
  28. package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +0 -43
  29. package/dist/claude-code/.claude/skills/brief/SKILL.md +0 -145
  30. package/dist/claude-code/.claude/skills/budget/SKILL.md +0 -45
  31. package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +0 -66
  32. package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +0 -126
  33. package/dist/claude-code/.claude/skills/check-update/SKILL.md +0 -98
  34. package/dist/claude-code/.claude/skills/compare/SKILL.md +0 -82
  35. package/dist/claude-code/.claude/skills/compare/compare-rubric.md +0 -171
  36. package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +0 -81
  37. package/dist/claude-code/.claude/skills/connections/SKILL.md +0 -71
  38. package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +0 -608
  39. package/dist/claude-code/.claude/skills/context/SKILL.md +0 -137
  40. package/dist/claude-code/.claude/skills/continue/SKILL.md +0 -24
  41. package/dist/claude-code/.claude/skills/darkmode/SKILL.md +0 -76
  42. package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +0 -258
  43. package/dist/claude-code/.claude/skills/debug/SKILL.md +0 -41
  44. package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +0 -119
  45. package/dist/claude-code/.claude/skills/design/SKILL.md +0 -118
  46. package/dist/claude-code/.claude/skills/design/design-procedure.md +0 -304
  47. package/dist/claude-code/.claude/skills/discover/SKILL.md +0 -78
  48. package/dist/claude-code/.claude/skills/discover/discover-procedure.md +0 -222
  49. package/dist/claude-code/.claude/skills/discuss/SKILL.md +0 -96
  50. package/dist/claude-code/.claude/skills/do/SKILL.md +0 -45
  51. package/dist/claude-code/.claude/skills/explore/SKILL.md +0 -118
  52. package/dist/claude-code/.claude/skills/explore/explore-procedure.md +0 -267
  53. package/dist/claude-code/.claude/skills/export/SKILL.md +0 -30
  54. package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +0 -114
  55. package/dist/claude-code/.claude/skills/fast/SKILL.md +0 -91
  56. package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +0 -64
  57. package/dist/claude-code/.claude/skills/figma-write/SKILL.md +0 -50
  58. package/dist/claude-code/.claude/skills/graphify/SKILL.md +0 -49
  59. package/dist/claude-code/.claude/skills/health/SKILL.md +0 -99
  60. package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +0 -44
  61. package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +0 -69
  62. package/dist/claude-code/.claude/skills/help/SKILL.md +0 -87
  63. package/dist/claude-code/.claude/skills/instinct/SKILL.md +0 -111
  64. package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +0 -61
  65. package/dist/claude-code/.claude/skills/list-pins/SKILL.md +0 -27
  66. package/dist/claude-code/.claude/skills/live/SKILL.md +0 -98
  67. package/dist/claude-code/.claude/skills/locale/SKILL.md +0 -51
  68. package/dist/claude-code/.claude/skills/map/SKILL.md +0 -89
  69. package/dist/claude-code/.claude/skills/migrate/SKILL.md +0 -70
  70. package/dist/claude-code/.claude/skills/migrate-context/SKILL.md +0 -123
  71. package/dist/claude-code/.claude/skills/new-addendum/SKILL.md +0 -81
  72. package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +0 -37
  73. package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +0 -87
  74. package/dist/claude-code/.claude/skills/new-project/SKILL.md +0 -53
  75. package/dist/claude-code/.claude/skills/new-skill/SKILL.md +0 -90
  76. package/dist/claude-code/.claude/skills/next/SKILL.md +0 -68
  77. package/dist/claude-code/.claude/skills/note/SKILL.md +0 -48
  78. package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +0 -86
  79. package/dist/claude-code/.claude/skills/optimize/SKILL.md +0 -97
  80. package/dist/claude-code/.claude/skills/override/SKILL.md +0 -86
  81. package/dist/claude-code/.claude/skills/paper-write/SKILL.md +0 -54
  82. package/dist/claude-code/.claude/skills/pause/SKILL.md +0 -77
  83. package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +0 -88
  84. package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +0 -161
  85. package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +0 -90
  86. package/dist/claude-code/.claude/skills/peers/SKILL.md +0 -96
  87. package/dist/claude-code/.claude/skills/pencil-write/SKILL.md +0 -54
  88. package/dist/claude-code/.claude/skills/pin/SKILL.md +0 -37
  89. package/dist/claude-code/.claude/skills/plan/SKILL.md +0 -105
  90. package/dist/claude-code/.claude/skills/plan/plan-procedure.md +0 -278
  91. package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +0 -48
  92. package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +0 -32
  93. package/dist/claude-code/.claude/skills/progress/SKILL.md +0 -107
  94. package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +0 -90
  95. package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +0 -101
  96. package/dist/claude-code/.claude/skills/quick/SKILL.md +0 -44
  97. package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +0 -32
  98. package/dist/claude-code/.claude/skills/recall/SKILL.md +0 -75
  99. package/dist/claude-code/.claude/skills/reflect/SKILL.md +0 -85
  100. package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +0 -120
  101. package/dist/claude-code/.claude/skills/report-issue/SKILL.md +0 -53
  102. package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +0 -120
  103. package/dist/claude-code/.claude/skills/resume/SKILL.md +0 -93
  104. package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +0 -46
  105. package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +0 -42
  106. package/dist/claude-code/.claude/skills/roi/SKILL.md +0 -54
  107. package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +0 -35
  108. package/dist/claude-code/.claude/skills/router/SKILL.md +0 -89
  109. package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +0 -65
  110. package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +0 -78
  111. package/dist/claude-code/.claude/skills/router/router-rules.md +0 -84
  112. package/dist/claude-code/.claude/skills/scan/SKILL.md +0 -92
  113. package/dist/claude-code/.claude/skills/scan/scan-procedure.md +0 -732
  114. package/dist/claude-code/.claude/skills/settings/SKILL.md +0 -87
  115. package/dist/claude-code/.claude/skills/ship/SKILL.md +0 -48
  116. package/dist/claude-code/.claude/skills/sketch/SKILL.md +0 -78
  117. package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +0 -92
  118. package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +0 -79
  119. package/dist/claude-code/.claude/skills/spike/SKILL.md +0 -67
  120. package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +0 -86
  121. package/dist/claude-code/.claude/skills/start/SKILL.md +0 -67
  122. package/dist/claude-code/.claude/skills/start/start-procedure.md +0 -115
  123. package/dist/claude-code/.claude/skills/state/SKILL.md +0 -106
  124. package/dist/claude-code/.claude/skills/stats/SKILL.md +0 -51
  125. package/dist/claude-code/.claude/skills/style/SKILL.md +0 -71
  126. package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +0 -150
  127. package/dist/claude-code/.claude/skills/synthesize/SKILL.md +0 -94
  128. package/dist/claude-code/.claude/skills/timeline/SKILL.md +0 -66
  129. package/dist/claude-code/.claude/skills/todo/SKILL.md +0 -64
  130. package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +0 -95
  131. package/dist/claude-code/.claude/skills/undo/SKILL.md +0 -31
  132. package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +0 -54
  133. package/dist/claude-code/.claude/skills/unpin/SKILL.md +0 -31
  134. package/dist/claude-code/.claude/skills/update/SKILL.md +0 -56
  135. package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +0 -78
  136. package/dist/claude-code/.claude/skills/verify/SKILL.md +0 -113
  137. package/dist/claude-code/.claude/skills/verify/verify-procedure.md +0 -511
  138. package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +0 -81
  139. package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +0 -82
  140. package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +0 -26
  141. package/hooks/run-hook.cmd +0 -35
  142. package/skills/discover/SKILL.md +0 -78
  143. package/skills/discover/discover-procedure.md +0 -222
  144. package/skills/new-cycle/milestone-completeness-rubric.md +0 -87
  145. package/skills/scan/SKILL.md +0 -92
  146. package/skills/scan/scan-procedure.md +0 -732
@@ -1,222 +0,0 @@
1
- ---
2
- name: discover-procedure
3
- type: meta-rules
4
- version: 1.0.0
5
- phase: 28.5
6
- tags: [discover, procedure, extracted, pipeline-stage, connection-probe, design-context-builder]
7
- last_updated: 2026-05-18
8
- ---
9
-
10
- Source: extracted from `skills/discover/SKILL.md` (Phase 28.5 rework - D-10 extract-then-link).
11
- The skill's essential workflow stays in `../skills/discover/SKILL.md`; this file holds the
12
- detail the agent reaches for when executing a specific step (state integration, three
13
- connection probes, design-context-builder + design-context-checker agent prompts, lazy gate
14
- prompt, auto-mode CSS detection).
15
-
16
- # Discover Procedure
17
-
18
- Detailed procedure for the get-design-done `discover` Stage 1.5 orchestrator. Companion to
19
- `../skills/discover/SKILL.md`. Read this file when executing a specific discover step.
20
-
21
- ---
22
-
23
- ## State Integration
24
-
25
- 1. Read `.design/STATE.md`.
26
- - If missing: create minimal skeleton from `reference/STATE-TEMPLATE.md` with stage=discover, status=in_progress, task_progress=0/1, and log warning: "STATE.md not found - created fresh. If this is a resumed session, run /get-design-done:scan first."
27
- - If present and stage==discover and status==in_progress: RESUME - continue existing interview; do not reset.
28
- - Otherwise: normal transition - set frontmatter stage=discover, <position> stage=discover, status=in_progress, task_progress=0/1.
29
- 2. **Probe connection availability** - ToolSearch runs FIRST because MCP tools may be in the deferred tool set. This is the canonical probe pattern (spec lives in `connections/connections.md`; copied inline because SKILL.md has no include mechanism - if the probe pattern changes, update all stages that copied it). See §Connection Probes below.
30
- 3. Update last_checkpoint. Write STATE.md.
31
-
32
- ---
33
-
34
- ## Connection Probes
35
-
36
- ### A - Figma probe (variant-agnostic)
37
-
38
- ```
39
- A1. ToolSearch({ query: "figma get_metadata use_figma", max_results: 10 })
40
- A2. Parse tool names matching /^mcp__([^_]*figma[^_]*)__(get_metadata|use_figma)$/i
41
- into read-capable and write-capable prefix sets.
42
- A3. Empty read set -> figma: not_configured (skip all Figma paths)
43
- One or more matches -> pick prefix via tiebreaker:
44
- (1) both-sets > reads-only,
45
- (2) `figma` > others,
46
- (3) non-`figma-desktop` > desktop,
47
- (4) alphabetical.
48
- A4. Call {prefix}get_metadata:
49
- Success -> figma: available (prefix=mcp__<prefix>__, writes=<true|false>)
50
- Error -> figma: unavailable
51
- ```
52
-
53
- ### B - Refero probe (ToolSearch presence is sufficient - no tool call needed)
54
-
55
- ```
56
- B1. ToolSearch({ query: "refero", max_results: 5 })
57
- B2. Empty result -> refero: not_configured
58
- Non-empty -> refero: available
59
- ```
60
-
61
- ### C - Pinterest probe (ToolSearch-only, same pattern as Refero)
62
-
63
- ```
64
- C1. ToolSearch({ query: "mcp-pinterest", max_results: 5 })
65
- C2. Empty result -> pinterest: not_configured
66
- Non-empty -> pinterest: available
67
- ```
68
-
69
- No live `pinterest_search` call at probe time - ToolSearch presence is sufficient. The synthesizer makes the actual search calls.
70
-
71
- ### D - Lazyweb probe (ToolSearch-only - free, discover Tier 1 per D-01)
72
-
73
- ```
74
- D1. ToolSearch({ query: "lazyweb", max_results: 5 })
75
- D2. Empty result -> lazyweb: not_configured
76
- Non-empty -> lazyweb: available
77
- ```
78
-
79
- ### E - Mobbin probe (ToolSearch-only - paid, discover Tier 2 per D-01)
80
-
81
- ```
82
- E1. ToolSearch({ query: "mobbin", max_results: 5 })
83
- E2. Empty result -> mobbin: not_configured
84
- Non-empty -> mobbin: available
85
- ```
86
-
87
- **Reference-source tier order (cost-aware, D-01):** Lazyweb (free, tried first) → Mobbin / Refero (paid, whichever is bound + subscribed) → Pinterest → awesome-design-md → WebFetch.
88
-
89
- After all probes (A, B, C, D, E), update `.design/STATE.md` `<connections>` with the results and continue. Downstream stages (design-context-builder) read `<connections>` from STATE.md rather than re-probing.
90
-
91
- ---
92
-
93
- ## Auto Mode
94
-
95
- Auto Mode CSS detection (when `auto_mode: true` is passed to the builder):
96
-
97
- 1. If tailwind.config.{js,cjs,mjs,ts} exists -> Tailwind-only project
98
- - Skip CSS file grep
99
- - Parse tailwind.config for color palette, spacing scale, font families
100
- - Use tailwind.config values as the baseline style signal
101
- 2. Else -> fall through to existing CSS file grep logic
102
-
103
- ---
104
-
105
- ## Step 1 - Spawn design-context-builder
106
-
107
- ```
108
- Task("design-context-builder", """
109
- <required_reading>
110
- @.design/STATE.md
111
- @reference/audit-scoring.md
112
- @reference/anti-patterns.md
113
- </required_reading>
114
-
115
- You are the design-context-builder agent. Auto-detect existing design system
116
- state via grep/glob before asking questions. Interview the user ONLY for areas
117
- where auto-detect returned no confident answer. Write .design/DESIGN-CONTEXT.md.
118
-
119
- Baseline audit directory detection (ordered fallback chain):
120
- 1. If src/ exists -> use src/
121
- 2. Elif app/ exists -> use app/ (Next.js App Router)
122
- 3. Elif pages/ exists -> use pages/ (Next.js Pages Router)
123
- 4. Elif lib/ exists -> use lib/ (library-only projects)
124
- 5. Else -> flag "layout unknown", skip baseline, note in DESIGN-CONTEXT.md
125
-
126
- Common gray areas to probe during discovery (Area 7):
127
- 1. font-change risk — switching type families when existing UI has body copy in a specific family. Ask: "Is the current body font intentional or inherited? OK to change?"
128
- 2. token-layer introduction risk — adding CSS custom properties to a codebase that uses direct values. Ask: "Do you want design tokens (--primary, --surface) or inline values (hex, rgb)?"
129
- 3. Component rebuild vs restyle — when to keep existing component, when to rebuild from scratch. Ask: "For <component>, restyle in place or rebuild?"
130
-
131
- Context:
132
- auto_mode: <true|false>
133
-
134
- Output file: .design/DESIGN-CONTEXT.md
135
- Emit `## CONTEXT COMPLETE` when done.
136
- """)
137
- ```
138
-
139
- Wait for `## CONTEXT COMPLETE`. Update STATE.md task_progress = 0.5.
140
-
141
- ---
142
-
143
- ## Step 1.75 - Lazy gate: should design-context-checker run? (Plan 10.1-04, D-21)
144
-
145
- Spawn the cheap Haiku gate before the full context-checker:
146
-
147
- Task("design-context-checker-gate", """
148
- <required_reading>
149
- @.design/STATE.md
150
- </required_reading>
151
-
152
- You are the design-context-checker-gate.
153
-
154
- Context:
155
- diff_files: <git diff `--name-only` HEAD~1..HEAD>
156
- diff_body: (not needed - single-file heuristic)
157
- baseline_sha: <HEAD~1>
158
-
159
- Apply the heuristic (DESIGN-CONTEXT.md in diff_files?). Emit JSON + `## GATE COMPLETE`.
160
- """)
161
-
162
- Wait for `## GATE COMPLETE`. Parse JSON:
163
-
164
- - `spawn: false` -> append `lazy_skipped: true` telemetry row for `design-context-checker`, skip Step 2, set STATE.md `<position>` as if checker passed (rationale: DESIGN-CONTEXT.md didn't change, last validation still holds), emit `design-context-checker skipped — <rationale>`.
165
- - `spawn: true` -> proceed to Step 2 as currently written.
166
-
167
- **Note:** On first-run discover, the builder just wrote DESIGN-CONTEXT.md so the gate returns `spawn: true`. The gate meaningfully short-circuits only on re-runs where the builder made no changes.
168
-
169
- **Parallel synthesizer note:** discover does not spawn parallel researchers in v1, so `skills/synthesize/` is not wired here. If future variants spawn N parallel interviewers/auto-detectors, wire synthesize between dispatch and collate as in `skills/map/` Step 3.5.
170
-
171
- ---
172
-
173
- ## Step 2 - Spawn design-context-checker
174
-
175
- ```
176
- Task("design-context-checker", """
177
- <required_reading>
178
- @.design/STATE.md
179
- @.design/DESIGN-CONTEXT.md
180
- </required_reading>
181
-
182
- You are the design-context-checker agent. Validate DESIGN-CONTEXT.md across
183
- 6 dimensions. Return APPROVED or BLOCKED with per-dimension verdicts.
184
-
185
- Emit `## CONTEXT CHECK COMPLETE` when done.
186
- """)
187
- ```
188
-
189
- Wait for `## CONTEXT CHECK COMPLETE`.
190
-
191
- ---
192
-
193
- ## Step 3 - Handle checker verdict
194
-
195
- If APPROVED: proceed to state update.
196
- If BLOCKED: present dimensions that BLOCKED to user, offer fix-and-retry loop (re-spawn builder with specific fix instructions). Do not proceed to planning.
197
-
198
- ---
199
-
200
- ## State Update (exit)
201
-
202
- 1. Set <position> status=completed, task_progress=1/1.
203
- 2. Set <timestamps> discover_completed_at=<ISO 8601 now>.
204
- 3. Update last_checkpoint. Write STATE.md.
205
-
206
- ---
207
-
208
- ## After Writing
209
-
210
- ```
211
- === Discovery complete ===
212
- Saved: .design/DESIGN-CONTEXT.md
213
-
214
- Baseline score: [N]/100 ([grade])
215
- Key issues: [top issue 1], [top issue 2], [top issue 3]
216
-
217
- Next: /get-design-done:plan
218
- -> Decomposes your context into executable design tasks.
219
- ==========================
220
- ```
221
-
222
- Do not proceed to planning automatically unless `--auto` was passed.
@@ -1,96 +0,0 @@
1
- ---
2
- name: gdd-discuss
3
- description: "Adaptive design interview command that spawns design-discussant in normal / --all / --spec mode to gather decisions via one-question-at-a-time AskUserQuestion, writing D-XX entries to STATE.md <decisions>. Use when locking design decisions outside the main pipeline or backfilling missing context."
4
- argument-hint: "[topic] [--all] [--spec] [--cycle <name>]"
5
- tools: Read, Write, Task
6
- ---
7
-
8
- # /gdd:discuss
9
-
10
- **Role:** You are the `/gdd:discuss` command. You spawn the `design-discussant` agent with the right mode and context.
11
-
12
- ## Step 1 - Read state
13
-
14
- Read `.design/STATE.md`. Note:
15
- - Current `cycle:` frontmatter value
16
- - Highest existing `D-XX` number under `<decisions>`
17
-
18
- If `.design/STATE.md` does not exist, tell the user to run `/gdd:brief` first and stop.
19
-
20
- ## Step 2 - Parse arguments
21
-
22
- Inspect `$ARGUMENTS`:
23
- - Free-text before flags → `<topic>`
24
- - `--all` → batch gray-areas mode
25
- - `--spec` → Socratic ambiguity scoring mode
26
- - `--cycle <name>` → scope decisions to that cycle
27
-
28
- ## Step 3 - Spawn design-discussant
29
-
30
- ```
31
- Task("design-discussant", """
32
- <required_reading>
33
- @.design/STATE.md
34
- @.design/BRIEF.md
35
- @.design/DESIGN-CONTEXT.md
36
- @./.claude/skills
37
- </required_reading>
38
-
39
- <mode>{normal|--all|--spec}</mode>
40
- <topic>{topic or omit}</topic>
41
- <cycle>{cycle-name or omit}</cycle>
42
-
43
- Run an adaptive design interview. Append D-XX decisions to STATE.md <decisions> block.
44
- Emit `## DISCUSS COMPLETE` when done.
45
- """)
46
- ```
47
-
48
- Use only the modes the user actually passed. Missing flags → `<mode>normal</mode>`.
49
-
50
- ## Step 4 - Inline glossary maintenance (CONTEXT.md)
51
-
52
- When a fuzzy phrase is resolved into a sharper term, or a new domain concept is named
53
- during the interview: write to `./CONTEXT.md` IMMEDIATELY (do NOT batch). Use the schema
54
- in `./../../reference/context-md-format.md` - H2 heading per term, body paragraph,
55
- optional `**Aliases:**` line for term-merging. Multi-context repos use `CONTEXT-MAP.md`
56
- plus per-area `<area>/CONTEXT.md`. CONTEXT.md is lazy-created on the first term write.
57
-
58
- ## Step 5 - Session wrap: ADR-offer scan
59
-
60
- For each decision recorded this session, check ALL three criteria from
61
- `./../../reference/adr-format.md`: (a) **hard-to-reverse**, (b) **surprising-without-context**,
62
- (c) **real-tradeoff**. If ALL three hold, offer to author `docs/adr/NNNN-<slug>.md`. If
63
- ANY criterion fails, the decision stays in STATE.md `<decisions>`. Routine choices are
64
- NEVER auto-promoted.
65
-
66
- ## Step 6 - Report
67
-
68
- Wait for `## DISCUSS COMPLETE`. Re-read STATE.md. Count new D-XX entries since Step 1. Print:
69
-
70
- ```
71
- ━━━ Discuss complete ━━━
72
- New decisions: N (D-XX through D-YY)
73
- Mode: normal | --all | --spec
74
- Cycle: <name or "default">
75
- ━━━━━━━━━━━━━━━━━━━━━━━━
76
- ```
77
-
78
- ## Constraints
79
-
80
- - Do not run the interview yourself - always spawn the agent.
81
- - Do not touch files outside `.design/`.
82
-
83
- ## Rationalizations - Thought to Reality
84
-
85
- The shortcuts an agent takes during a discuss session, and what each one costs the decision record:
86
-
87
- | Thought | Reality |
88
- |---------|---------|
89
- | "I'll ask all eight questions at once to save time." | Batched questions overwhelm the user; one-at-a-time keeps each decision clean and prevents coupled answers. |
90
- | "I can run the interview inline instead of spawning the discussant." | The skill's contract is to always spawn the agent - running it yourself skips the discussant's mode handling and D-XX numbering. |
91
- | "This answer is good enough, I'll record it as a decision without follow-up." | A vague answer ("modern", "clean") recorded as a D-XX locks in an undecided premise; reject and re-ask once. |
92
- | "I'll batch all the new D-XX entries into STATE.md at the end." | Decisions written atomically per answer survive an interrupted session; batching loses everything if the session drops. |
93
- | "The glossary term can wait until I write the summary." | CONTEXT.md is written immediately per term - a deferred glossary entry is a naming inconsistency the next cycle inherits. |
94
- | "Every decision this session is worth an ADR." | ADRs require all three criteria (hard-to-reverse, surprising, real-tradeoff); auto-promoting routine choices buries the genuinely essential ones. |
95
-
96
- ## DISCUSS COMMAND COMPLETE
@@ -1,45 +0,0 @@
1
- ---
2
- name: gdd-do
3
- description: "Natural-language design task router. Parses your intent, maps to the right gdd command(s), confirms before executing. Activates for requests involving a natural-language design request, routing intent to the right command, or not knowing which skill to use."
4
- argument-hint: "<natural language description>"
5
- tools: Read, Write, AskUserQuestion
6
- ---
7
-
8
- # /gdd:do
9
-
10
- Takes a free-form description, maps it to a `/gdd:*` command, confirms with the user, then routes.
11
-
12
- ## Intent parsing table
13
-
14
- | Intent signals | Maps to |
15
- |---|---|
16
- | "explore", "scan", "what design patterns", "what components" | `/gdd:explore` |
17
- | "discuss", "decide", "what should we use for", "help me decide" | `/gdd:discuss` |
18
- | "plan", "create tasks", "what tasks do we need" | `@get-design-done plan` |
19
- | "design", "implement", "build", "execute" | `@get-design-done design` |
20
- | "verify", "check", "audit", "review" | `/gdd:audit` |
21
- | "sketch", "explore directions", "try designs", "variant" | `/gdd:sketch` |
22
- | "spike", "experiment", "feasibility", "test if" | `/gdd:spike` |
23
- | "fix [specific thing]" | `/gdd:fast` |
24
- | "pause", "stop", "save my place" | `/gdd:pause` |
25
- | "resume", "pick back up", "continue where I left off" | `/gdd:resume` |
26
- | "ship", "PR", "submit", "merge" | `/gdd:ship` |
27
- | "undo", "revert", "roll back" | `/gdd:undo` |
28
-
29
- ## Steps
30
-
31
- 1. Parse the argument text. Match it against the intent signals table. Choose the best fit.
32
- 2. If two intents tie, ask (AskUserQuestion): "Did you mean <option A> or <option B>?"
33
- 3. Print the routing decision in this exact shape:
34
- ```
35
- I'll run `/gdd:<command>` — "<one-line rationale>". Confirm? (yes/no)
36
- ```
37
- 4. On confirmation: invoke the target skill with any parameters extracted from the input (e.g., topic for `discuss`, symptom for `debug`).
38
- 5. On rejection: ask "What did you mean instead?" and retry once, then abort gracefully.
39
-
40
- ## Do Not
41
-
42
- - Do not execute the target command without confirmation.
43
- - Do not invent new commands - if no intent matches, say so and list the closest options.
44
-
45
- ## DO COMPLETE
@@ -1,118 +0,0 @@
1
- ---
2
- name: gdd-explore
3
- description: "Stage 2 of 5 - unified exploration merging inventory grep + design interview. Probes 6 connections, scans the codebase, conducts the AskUserQuestion interview, and writes .design/DESIGN.md + DESIGN-DEBT.md + DESIGN-CONTEXT.md. Use after /gdd:brief to map the existing system and lock decisions before planning. Activates for requests involving researching design direction, gathering references, or exploring visual options."
4
- argument-hint: "[--skip-interview] [--skip-scan] [--incremental] [--full]"
5
- tools: Read, Write, Bash, Grep, Glob, Task, AskUserQuestion, mcp__gdd_state__get, mcp__gdd_state__transition_stage, mcp__gdd_state__probe_connections, mcp__gdd_state__update_progress, mcp__gdd_state__set_status, mcp__gdd_state__add_blocker, mcp__gdd_state__checkpoint, mcp__gdd_state__add_decision
6
- ---
7
-
8
- # Get Design Done - Explore
9
-
10
- **Role:** You are the Explore stage. Stage 2 of 5 in the get-design-done pipeline.
11
-
12
- **Purpose:** Unified exploration merging the former `scan` (inventory grep) and `discover` (context interview) stages. Produces `.design/DESIGN.md`, `.design/DESIGN-DEBT.md`, and `.design/DESIGN-CONTEXT.md`.
13
-
14
- Full procedure detail: `./explore-procedure.md`.
15
-
16
- ---
17
-
18
- ## Stage entry
19
-
20
- All STATE.md persistence goes through `gdd-state` MCP tools - no direct edits. Plain design docs (DESIGN.md / DESIGN-DEBT.md / DESIGN-CONTEXT.md) use `Write`.
21
-
22
- 1. `mcp__gdd_state__transition_stage` with `to: "explore"`. On gate failure: print blockers from `error.context.blockers` verbatim, do not advance.
23
- 2. `mcp__gdd_state__get` (no args) -> snapshot `state` for downstream steps.
24
-
25
- ---
26
-
27
- ## Step 1 - Connection probe
28
-
29
- Probe six connections, then batch-write results via ONE `mcp__gdd_state__probe_connections` call (unspecified connections keep their existing value):
30
-
31
- - **A - Figma** (variant-agnostic): ToolSearch + regex parse of `get_metadata` / `use_figma` prefixes -> tiebreaker selection (`both-sets > reads-only`, `figma > others`, `non-figma-desktop`, alphabetical) -> live `{prefix}get_metadata` call -> `available` / `unavailable` / `not_configured` (with `prefix=` + `writes=`).
32
- - **B - Refero**: ToolSearch presence sufficient.
33
- - **C - 21st.dev**: ToolSearch `mcp__21st` presence.
34
- - **D - Magic Patterns**: ToolSearch `mcp__magic_patterns` presence.
35
- - **E - paper.design**: ToolSearch `mcp__paper` + live `get_selection` call.
36
- - **F - pencil.dev**: `find . -name "*.pen"` file-presence.
37
-
38
- Full probe specs + commit-results JSON shape: `./explore-procedure.md` §Step 1.
39
-
40
- ## Step 1.5 - 21st.dev Prior-Art Check (when `21st-dev: available`)
41
-
42
- For each greenfield component in scope: `21st_magic_component_search(component_name, limit: 3)`. Fit >= 80% -> add `<prior-art>` block to DESIGN.md recommending adoption; fit < 80% -> note as reference, build custom. If `svgl_get_brand_logo` available and brand assets are in scope, call per logo and save SVGs to `.design/assets/`. Skip entirely if no greenfield components in scope. Detail: `./explore-procedure.md` §Step 1.5.
43
-
44
- ---
45
-
46
- ## Step 2 - Inventory scan (unless `--skip-scan`)
47
-
48
- **Map pre-check**: if `.design/map/` exists with all 5 files (`tokens.md`, `components.md`, `visual-hierarchy.md`, `a11y.md`, `motion.md`) fresher than `src/`, consume them and skip the grep pass. Otherwise grep and, after Step 4, suggest `/gdd:map` for the next cycle.
49
-
50
- **Parallelism decision**: read `.design/config.json` + `reference/parallelism-rules.md`. Record verdict via `mcp__gdd_state__set_status` (`"explore_parallel"` / `"explore_serial"`). Parallel -> multiple `Task()` in one response; serial -> sequential.
51
-
52
- **Incremental batching (Phase 53, default)**: `--incremental` (default; `--full` opts out) runs the change classifier first via the fingerprint store, groups the DesignContext graph into Louvain community batches, and dispatches mappers per the verdict (SKIP=0, PARTIAL=affected batches only, FULL=all). Engine: `scripts/lib/explore-parallel-runner` + `scripts/lib/mappers/incremental-discover.cjs`; dispatch concurrency comes from `concurrency-tuner.cjs`. Detail: `./explore-procedure.md` §Incremental Batching.
53
-
54
- Run the canonical scan grep/glob inventory (POSIX ERE, preserving PLAT-01/02): component detection (Glob `**/*.{tsx,jsx,vue,svelte}`), color extraction (hex / rgb / hsl / Tailwind arbitrary), typography scan (font-family / Tailwind `font-*` / `text-*`), motion scan (`transition` / `animate-` / `@keyframes` / `framer-motion`), token detection (tailwind.config / CSS custom properties / token JSON), layout detection (ordered fallback `src/` -> `app/` -> `pages/` -> `lib/` -> unknown). Write `.design/DESIGN.md` + `.design/DESIGN-DEBT.md`. Then `mcp__gdd_state__update_progress` for scan progress. Detail: `./explore-procedure.md` §Step 2.
55
-
56
- **Step 2.x - i18n readiness probe (informational, per D-04)**: check `package.json` deps against `{react-intl, next-intl, i18next, vue-i18n, formatjs, lingui}` -> `framework-managed`; else grep `Intl.(DateTimeFormat|NumberFormat|...)` in `src/` -> `partial`; else `none`. Emit single line `Localization readiness: <state>` in the report. NO gate, NO blocking - surface signal only (D-07). Detail: `./explore-procedure.md` §Step 2.x.
57
-
58
- ## Step 2.5 - Detect prior sketches and project-local conventions
59
-
60
- - **Sketches**: list `.design/sketches/*` slugs, group by `WINNER.md` present (completed) vs absent (pending). Record via `mcp__gdd_state__set_status: "explore_sketches_present"`. Include in DESIGN.md "Prior Explorations" section.
61
- - **Project-local skills**: read `./.claude/skills/design-*-conventions.md` -> include in DESIGN-CONTEXT.md `<project_conventions>` (these override defaults).
62
- - **Global skills**: `~/.claude/gdd/global-skills/*.md` (other than README) -> prepend to `<project_conventions>` under `<global_conventions>` sub-block. Project-local D-XX wins on conflict.
63
-
64
- ## Step 2.6 - Graph review (gate then reviewer)
65
-
66
- Runs only when Step 2's mapper batch + synthesizer produced `.design/context-graph.json`. Skip the whole step if the file is absent (pre-Phase-52 project, or `--skip-scan`).
67
-
68
- 1. **Gate first (cheap Haiku check).** Spawn `design-context-reviewer-gate` via `Task()` with the classifier signal from Step 2's incremental batching pass: `change_pct` (fingerprint classifier `pct`), `classifier_action` (`SKIP` / `PARTIAL_UPDATE` / `ARCHITECTURE_UPDATE` / `FULL_UPDATE`), and `graph_path: ".design/context-graph.json"`. Gate emits a single-line `{spawn, rationale}` JSON decision then `## GATE COMPLETE`.
69
- 2. **If `spawn: false`**: record `mcp__gdd_state__set_status: "explore_graph_review_skipped"`, log the gate `rationale` (e.g., "project change 3% < 5% threshold"), set telemetry `lazy_skipped: true`. Done - proceed to Step 3.
70
- 3. **If `spawn: true`**: spawn `design-context-reviewer` via `Task()` with `<required_reading>` pointing at `.design/STATE.md`, `.design/context-graph.json`, `reference/design-context-schema.md`, `reference/design-context-tag-vocab.md`. The reviewer runs `scripts/validate-design-context.cjs --json` as the deterministic floor (checks 1/2/3/5) then layers the semantic checks (4/6/7/8/9) and returns the 9-check verdict inline (`APPROVED` or `REJECT`).
71
- 4. **Capture verdict (read-only contract).** The reviewer does NOT write `.design/DESIGN-CONTEXT-REVIEW.md` - it is `reads-only: true, writes: []`. WARN findings surface through `scripts/lib/health-mirror#getHealthChecks` as `status: 'warn'`; a hard-reject maps to `status: 'fail'`. Record the overall verdict via `mcp__gdd_state__set_status: "explore_graph_review_approved"` (or `"_rejected"`).
72
- 5. **On REJECT**: record `mcp__gdd_state__add_blocker` with the reviewer's blocking-issues list verbatim. Do not advance to Step 3 until the synthesizer or the implicated mapper is re-run. On `APPROVED` (with or without WARNs): proceed.
73
-
74
- ---
75
-
76
- ## Step 3 - Design interview (unless `--skip-interview`)
77
-
78
- **Run inline - NEVER spawn `design-discussant` as a subagent.** `AskUserQuestion` only renders the native picker from the top-level skill context; spawning degrades to plain markdown (broken in Claude Desktop).
79
-
80
- - **3.a Pre-load context**: state.decisions snapshot -> BRIEF.md -> DESIGN.md -> DESIGN-CONTEXT.md `<gray_areas>` -> project conventions. If `figma: available`, call `{prefix}get_variable_defs` and draft tentative D-XX entries.
81
- - **3.b Identify question set**: skip areas already covered by D-XX or project convention. Default coverage: cycle goal, audience, brand direction (if no tokens), color/typography/spacing primitives (if undetected), motion preferences, gray areas from DESIGN-CONTEXT.md.
82
- - **3.c Ask one at a time**: `AskUserQuestion` with 4 concrete options + "Other" / "Skip". Reject generic answers ("modern", "clean") with one follow-up.
83
- - **3.d Record after each answer**: `mcp__gdd_state__add_decision` (atomic, auto-assigns D-NN); append a quality-classified JSON line to `.design/learnings/question-quality.jsonl`.
84
- - **3.e Produce DESIGN-CONTEXT.md**: summarize locked decisions, remaining gray areas, Figma tentatives. Frontmatter `status: complete`.
85
-
86
- Full interview protocol + JSON line schema: `./explore-procedure.md` §Step 3.
87
-
88
- ---
89
-
90
- ## Step 4 - Close out explore
91
-
92
- - If the synthesizer / mapper batch ran in Step 2: `mcp__gdd_state__update_progress` with `task_progress: "<done>/<total>"`, `status: "explore_mappers_done"`.
93
- - If Step 2.6 ran the graph review: ensure the verdict status is recorded (`explore_graph_review_approved` / `_rejected` / `_skipped`); on `_rejected` do NOT checkpoint until re-run.
94
- - `mcp__gdd_state__checkpoint` - bumps `last_checkpoint`.
95
- - Stage advance to `plan` happens at the next stage's entry (plan owns its own `transition_stage`); do not edit frontmatter directly.
96
-
97
- ## After Writing
98
-
99
- Print: "=== Explore complete ===\nSaved: .design/DESIGN.md, .design/DESIGN-DEBT.md, .design/DESIGN-CONTEXT.md\nNext: @get-design-done plan".
100
-
101
- <HARD-GATE>
102
- Do NOT transition to plan (or invoke `/gdd:plan`) until BOTH `.design/DESIGN.md` AND `.design/DESIGN-CONTEXT.md` are committed AND the user has approved them. If this project uses a custom `.design` location, read the artifact paths from `.design/STATE.md` rather than assuming the default.
103
- </HARD-GATE>
104
-
105
- ## Rationalizations - Thought to Reality
106
-
107
- The shortcut excuses an agent reaches for during explore, and the drift each one introduces:
108
-
109
- | Thought | Reality |
110
- |---------|---------|
111
- | "I already know this codebase, I can skip the inventory scan." | An unscanned codebase hides the tokens/components you'll duplicate - the grep pass exists to stop you reinventing what's there. |
112
- | "The six connection probes are noise, I'll assume Figma is off." | A skipped probe means a wrong connection assumption silently breaks the design stage's tool dispatch. |
113
- | "`--skip-interview` is fine, the brief covered it." | The interview locks the gray areas the brief left fuzzy; skipping it ships undecided D-XX into planning. |
114
- | "I'll batch all the interview questions to save round-trips." | Batched questions overwhelm the user and smuggle in coupled assumptions - one-at-a-time keeps each decision clean. |
115
- | "DESIGN-DEBT.md is optional, the scan was clean enough." | Unrecorded debt resurfaces as an unexplained constraint three stages later with no provenance. |
116
- | "Prior sketches and project conventions don't apply this cycle." | Ignored conventions get overridden by defaults, producing inconsistency the audit will flag against the rest of the system. |
117
-
118
- ## EXPLORE COMPLETE