@hegemonart/get-design-done 1.48.0 → 1.50.0

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 (70) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +8 -2
  3. package/CHANGELOG.md +93 -0
  4. package/README.md +4 -0
  5. package/SKILL.md +2 -1
  6. package/agents/design-auditor.md +37 -4
  7. package/agents/design-context-builder.md +2 -0
  8. package/agents/design-debt-crawler.md +36 -5
  9. package/agents/design-executor.md +2 -0
  10. package/agents/design-fixer.md +4 -1
  11. package/agents/design-planner.md +2 -0
  12. package/agents/design-reflector.md +2 -0
  13. package/agents/design-research-synthesizer.md +2 -0
  14. package/agents/design-verifier.md +7 -15
  15. package/dist/claude-code/.claude/skills/audit/SKILL.md +1 -1
  16. package/dist/claude-code/.claude/skills/brief/SKILL.md +1 -1
  17. package/dist/claude-code/.claude/skills/compare/SKILL.md +1 -1
  18. package/dist/claude-code/.claude/skills/connections/SKILL.md +1 -1
  19. package/dist/claude-code/.claude/skills/darkmode/SKILL.md +1 -1
  20. package/dist/claude-code/.claude/skills/design/SKILL.md +1 -1
  21. package/dist/claude-code/.claude/skills/discover/SKILL.md +1 -1
  22. package/dist/claude-code/.claude/skills/do/SKILL.md +1 -1
  23. package/dist/claude-code/.claude/skills/explore/SKILL.md +1 -1
  24. package/dist/claude-code/.claude/skills/fast/SKILL.md +1 -1
  25. package/dist/claude-code/.claude/skills/health/SKILL.md +2 -2
  26. package/dist/claude-code/.claude/skills/live/SKILL.md +1 -1
  27. package/dist/claude-code/.claude/skills/new-skill/SKILL.md +90 -0
  28. package/dist/claude-code/.claude/skills/plan/SKILL.md +1 -1
  29. package/dist/claude-code/.claude/skills/progress/SKILL.md +9 -1
  30. package/dist/claude-code/.claude/skills/quick/SKILL.md +1 -1
  31. package/dist/claude-code/.claude/skills/scan/SKILL.md +1 -1
  32. package/dist/claude-code/.claude/skills/ship/SKILL.md +1 -1
  33. package/dist/claude-code/.claude/skills/verify/SKILL.md +1 -1
  34. package/hooks/gdd-design-quality-check.js +340 -0
  35. package/hooks/hooks.json +9 -0
  36. package/package.json +12 -2
  37. package/reference/anti-slop-rubric.md +173 -0
  38. package/reference/audit-scoring.md +4 -0
  39. package/reference/debt-categories.md +20 -1
  40. package/reference/registry.json +28 -0
  41. package/reference/reviewer-confidence-gate.md +108 -0
  42. package/reference/skill-authoring-contract.md +97 -15
  43. package/reference/skill-graph.md +118 -0
  44. package/reference/visual-tells.md +383 -0
  45. package/scripts/lib/confidence-route.cjs +60 -0
  46. package/scripts/lib/manifest/scaffolder.cjs +261 -0
  47. package/scripts/lib/manifest/schemas/skills.schema.json +14 -0
  48. package/scripts/lib/manifest/skills.json +26 -18
  49. package/scripts/lib/worktree-resolve.cjs +221 -0
  50. package/sdk/mcp/gdd-state/server.js +37 -4
  51. package/sdk/mcp/gdd-state/tools/shared.ts +61 -0
  52. package/skills/audit/SKILL.md +1 -1
  53. package/skills/brief/SKILL.md +1 -1
  54. package/skills/compare/SKILL.md +1 -1
  55. package/skills/connections/SKILL.md +1 -1
  56. package/skills/darkmode/SKILL.md +1 -1
  57. package/skills/design/SKILL.md +1 -1
  58. package/skills/discover/SKILL.md +1 -1
  59. package/skills/do/SKILL.md +1 -1
  60. package/skills/explore/SKILL.md +1 -1
  61. package/skills/fast/SKILL.md +1 -1
  62. package/skills/health/SKILL.md +2 -2
  63. package/skills/live/SKILL.md +1 -1
  64. package/skills/new-skill/SKILL.md +90 -0
  65. package/skills/plan/SKILL.md +1 -1
  66. package/skills/progress/SKILL.md +9 -1
  67. package/skills/quick/SKILL.md +1 -1
  68. package/skills/scan/SKILL.md +1 -1
  69. package/skills/ship/SKILL.md +1 -1
  70. package/skills/verify/SKILL.md +1 -1
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "Get Design Done — 5-stage agent-orchestrated design pipeline with 9 connections, handoff-first workflow, bidirectional Figma write-back, 22+ specialized agents, queryable knowledge layer (intel store, dependency analysis, learnings extraction), and a self-improvement loop (reflector, frontmatter + budget feedback, global-skills layer). v1.20.0 ships the SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream, and resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) for rate-limit + 429 + context-overflow recovery. Full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation (auto-tag + GitHub Release + release-time smoke test).",
8
- "version": "1.48.0"
8
+ "version": "1.50.0"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "get-design-done",
13
13
  "source": "./",
14
14
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), Claude Design handoff, bidirectional Figma write-back, and a queryable intel store (.design/intel/) for dependency and learnings queries. Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation. Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression. v1.20.0 SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream at .design/telemetry/events.jsonl, resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) with rate-limit + 429 + context-overflow recovery, and TypeScript toolchain.",
15
- "version": "1.48.0",
15
+ "version": "1.50.0",
16
16
  "author": {
17
17
  "name": "hegemonart"
18
18
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "get-design-done",
3
3
  "short_name": "gdd",
4
- "version": "1.48.0",
4
+ "version": "1.50.0",
5
5
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), handoff-first workflow via Claude Design bundles, bidirectional Figma write-back (annotations, Code Connect), queryable intel store (`.design/intel/`) for O(1) design surface lookups, and self-improvement loop (reflector agent, frontmatter + budget feedback, global-skills layer at `~/.claude/gdd/global-skills/`). Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings, reflect, apply-reflections. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows, lint + schema + frontmatter + stale-ref + shellcheck + gitleaks + injection-scan + blocking size-budget) and release automation (auto-tag + GitHub Release + release-time smoke test). Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression. v1.20.0 SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream at .design/telemetry/events.jsonl, resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) with rate-limit + 429 + context-overflow recovery, and TypeScript toolchain. v1.27.7 ships gdd-mcp (Phase 27.7): 12 read-only MCP tools for sub-3s priming. v1.28.0 (Phase 28): Foundational References Tier 2 — 5 new reference files (color-theory, composition, proportion-systems, i18n, contrast-advanced), 2 verifier i18n probes + 1 explore i18n-readiness probe, 12 additive cross-link insertions across 10 existing references, 2 orthogonal audit-scoring lens-tags (composition_alignment + i18n_readiness).",
6
6
  "author": {
7
7
  "name": "hegemonart",
@@ -71,7 +71,13 @@
71
71
  "flutter",
72
72
  "email",
73
73
  "print",
74
- "pdf"
74
+ "pdf",
75
+ "worktree-safe",
76
+ "anti-slop",
77
+ "confidence-gate",
78
+ "anti-slop-rubric",
79
+ "skill-composition",
80
+ "skill-graph"
75
81
  ],
76
82
  "skills": [
77
83
  "./skills/"
package/CHANGELOG.md CHANGED
@@ -4,6 +4,99 @@ All notable changes to get-design-done are documented here. Versions follow [sem
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.50.0] - 2026-06-03
8
+
9
+ ### Phase 50 - Authoring Contract v3
10
+
11
+ Two cross-repo-validated additions to the authoring contract. A verb-based anti-slop rubric catches a different
12
+ class of failure than the noun-based 7-pillar audit (the pillars ask "is the typography wrong?", the verb axes ask
13
+ "is it generically AI-default?"). And a machine-parseable skill-composition manifest fills the "no skill calls
14
+ another skill" gap with a DAG validator and an auto-generated skill graph. Planned and executed via the GSD pipeline
15
+ (3 parallel executor subagents). No new runtime dependency, no new egress. This closes the 45-to-50 release run.
16
+
17
+ ### Breaking changes
18
+
19
+ - **Skill descriptions move to a multi-paragraph v3 form** (`<what>. Use when <triggers>. Activates for requests
20
+ involving <kw1>, <kw2>, <kw3>.`). Both the v2 and v3 forms are accepted for one minor version (transition window);
21
+ `/gdd:health` reports adoption ("Skills: N/88 in v3 form"). The 1024-char cap is unchanged. A new boilerplate-cohort
22
+ lint (`validate:skill-frontmatter`) fails CI if three or more skills share an identical opening sentence.
23
+ - **Two new CI gates guard the composition graph.** `validate:composition-graph` fails on a cycle or a dangling
24
+ `composes_with`/`next_skills` reference; `build:skill-graph:check` fails if `reference/skill-graph.md` drifts from
25
+ `skills.json`. Authors adding composition edges must keep the graph acyclic and the generated graph current.
26
+
27
+ ### Added
28
+
29
+ - **`reference/anti-slop-rubric.md`**: 5 orthogonal verb axes (Directness, Distinctness, Hierarchy, Authenticity,
30
+ Density), 1-10 each; `sum < 35/50` routes a finding to `design-debt-crawler` as `category: aesthetic-slop`.
31
+ `design-auditor` emits `verb_axes_scored` as a lens-tag (no pillar change, mirrors `emotion_levels`).
32
+ - **`reference/visual-tells.md` v2**: the 8 Phase-49 categories plus 5 more (stock-photo-people, badge-spam,
33
+ oversized-single-word, motion-without-content-intent, narrator-from-a-distance-UI), each cross-linked to its
34
+ primary verb axis.
35
+ - **Skill composition manifest**: optional `composes_with`/`next_skills` frontmatter (documented in the skills
36
+ schema), `scripts/validate-composition-graph.cjs` (cycle + dangling-ref detection), and an auto-generated
37
+ `reference/skill-graph.md` (mermaid, grouped by lifecycle stage) via `scripts/generate-skill-graph.cjs`.
38
+ - **`reference/skill-authoring-contract.md` v3** (description form + transition window + composition fields) +
39
+ **`/gdd:new-skill`** scaffolder (`scripts/lib/manifest/scaffolder.cjs`, @clack/prompts) that emits a v3-compliant
40
+ skill, with `composes_with` suggestions by lifecycle stage.
41
+ - **Description migration**: 18 high-traffic skills (brief, explore, plan, design, verify, audit, scan, discover, do,
42
+ ship, health, progress, live, connections, darkmode, compare, fast, quick) moved to the v3 form; the rest follow
43
+ gradually under the transition window. `/gdd:health` + `/gdd:progress` surface adoption and composition-graph readiness.
44
+
45
+ ### Notes
46
+
47
+ - 6-manifest lockstep at **v1.50.0** + `OFF_CADENCE_VERSIONS.add('1.50.0')` + 37 `manifests-version.txt` baselines +
48
+ plugin keywords (`anti-slop-rubric`, `skill-composition`, `skill-graph`). Re-locked: skill-list (88), registry (175),
49
+ registry-diff, phase-42 count (112), 6 `*-after.md` byte snapshots (brief/design/explore/verify + health/progress),
50
+ the phase-28.5 distribution + warn count (4 -> 5, progress crossed 100 lines), tarball golden 907 -> 912 (+5).
51
+ - The verb axes are an orthogonal lens (no new pillar, no scoring-math change). `composes_with`/`next_skills` are
52
+ optional in v3 (mandatory deferred to v4). Out of scope: rubric auto-fix, LLM-judge of axes, skill body migration.
53
+
54
+ ---
55
+
56
+ ## [1.49.0] - 2026-06-03
57
+
58
+ ### Phase 49 - Quick Anti-Slop Floor
59
+
60
+ Three small, atomic safety and policy primitives identified in the cross-repo synthesis, each low-risk and
61
+ high-signal: a worktree redirect that ends the recurring `.planning/` leak, a free anti-slop regex pass on every
62
+ front-end file write, and a reviewer confidence gate that stops severity inflation. Planned and executed via the
63
+ GSD pipeline (3 parallel executor subagents). No new runtime dependency, no new egress.
64
+
65
+ ### Breaking changes
66
+
67
+ - **`.design/` and `.planning/` writes redirect to the main repo root inside a git worktree.** `scripts/lib/worktree-resolve.cjs`
68
+ detects a worktree (`git rev-parse --git-dir` vs `--git-common-dir`) and the gdd-state write path (`resolveStatePath`,
69
+ used by all 11 state tools) now resolves STATE there, with a one-line stderr notice. Outside a worktree, behavior is
70
+ unchanged. Tooling that assumed `.design/` always lived under `process.cwd()` should resolve through the helper.
71
+ - **Findings now carry a `confidence` field and design-fixer filters on it.** design-auditor, design-verifier, and
72
+ design-debt-crawler emit `confidence: 0.0-1.0` per finding; design-fixer drops `## Tentative` findings and routes
73
+ BLOCKER/MAJOR findings below 0.8 confidence to user review instead of auto-fix. Consumers of these findings should
74
+ read the new field.
75
+
76
+ ### Added
77
+
78
+ - **`scripts/lib/worktree-resolve.cjs`** (resolveRepoRoot / isWorktree / resolveDesignRoot / resolvePlanningRoot;
79
+ graceful fallback, injectable exec) wired into the state write path + a one-line worktree note in the 7
80
+ artifact-writer agents.
81
+ - **`hooks/gdd-design-quality-check.js`**: an advisory PostToolUse hook scanning `Write`/`Edit`/`MultiEdit` to
82
+ `.tsx`/`.vue`/`.svelte`/`.astro` for 8 default-AI-aesthetic tells (gradient spam, generic CTAs, centered-everything,
83
+ font-inter default, purple/violet default, glassmorphism spam, isometric fallback, decorative motion). WARN-only,
84
+ emits a `design_quality_warn` event. Catalogued in **`reference/visual-tells.md`** (8 named categories with diagnostic
85
+ regex + remediation).
86
+ - **Reviewer confidence gate**: a 4-question Pre-Report Gate + the `confidence` field across the three audit agents,
87
+ a `scripts/lib/confidence-route.cjs` routing helper (`fix` / `user-review` / `drop`), and
88
+ **`reference/reviewer-confidence-gate.md`** (template + rationale + 4 before/after examples).
89
+
90
+ ### Notes
91
+
92
+ - 6-manifest lockstep at **v1.49.0** + `OFF_CADENCE_VERSIONS.add('1.49.0')` + 37 `manifests-version.txt` baselines +
93
+ plugin keywords (`worktree-safe`, `anti-slop`, `confidence-gate`). Baselines re-locked: hook-list (19),
94
+ resilience-primitives (39 `scripts/lib/*.cjs`), registry (173), tarball golden 902 -> 907 (+5).
95
+ - WARN-only hook (never blocks); auto-fix of matched tells is out of scope (proposal-only); the verb-based anti-slop
96
+ rubric and a wider tell catalog are deferred to Phase 50.
97
+
98
+ ---
99
+
7
100
  ## [1.48.0] - 2026-06-03
8
101
 
9
102
  ### Phase 48 - Audit & Pillar Expansion
package/README.md CHANGED
@@ -257,6 +257,10 @@ All 14 runtimes receive their native artifact layout (`skills/`, `command/`, `ag
257
257
 
258
258
  **Audit and pillar expansion (v1.48.0).** Four audit-side gaps close at once. The copy pillar gets a real rubric (`reference/copy-quality.md` + `copy-auditor`): microcopy, error and empty-state text, ARIA and alt text, voice alignment, with an i18n overflow lens. A project-wide `design-debt-crawler` walks an existing codebase (not just the current cycle), enumerates raw color literals, anti-patterns, untokenized components, and contrast/density issues, and writes a priority-scored `.design/debt/DEBT-CATALOG.md`. A `brief-auditor` grades the brief against five anti-patterns (vague verbs, missing audience, immeasurable success criteria, scope creep, missing anti-goals) and surfaces a non-blocking `/gdd:discuss brief` pointer. And the Stage 4.5 quality-gate gains an `a11y` failure class so `axe` / `pa11y` / `lighthouse` regressions route to `design-fixer` like any other gate failure. **No new runtime dependency.**
259
259
 
260
+ **Quick anti-slop floor (v1.49.0).** Three small safety primitives. A worktree redirect (`scripts/lib/worktree-resolve.cjs`) sends `.design/` and `.planning/` writes to the main repo root when GDD runs inside a git worktree, so artifacts never leak into an ephemeral checkout. A design-quality PostToolUse hook (`gdd-design-quality-check.js`) runs a free regex pass on every `.tsx`/`.vue`/`.svelte`/`.astro` write and warns on eight default-AI-aesthetic tells (gradient spam, generic CTAs, centered-everything, font-inter defaults, purple/violet defaults, glassmorphism spam, isometric fallbacks, decorative motion), catalogued in `reference/visual-tells.md`. And a reviewer confidence gate adds a `confidence: 0.0-1.0` field plus a 4-question Pre-Report Gate to every audit finding: HIGH and CRITICAL findings need at least 0.8 confidence and cited proof, low-confidence findings stay tentative and never reach `design-fixer`. The hook is WARN-only and there is **no new runtime dependency**.
261
+
262
+ **Authoring contract v3 (v1.50.0).** Two additions. A verb-based anti-slop rubric (`reference/anti-slop-rubric.md`) scores five orthogonal axes (Directness, Distinctness, Hierarchy, Authenticity, Density); a sum below 35/50 routes a finding to the debt crawler as `aesthetic-slop`. It rides as a lens-tag on the existing 7-pillar audit, so it catches "generically AI-default" where the pillars catch "wrong". And a machine-parseable skill-composition manifest: optional `composes_with` / `next_skills` frontmatter, a DAG validator (`validate:composition-graph` fails on cycles or dangling refs), and an auto-generated `reference/skill-graph.md`. Skill descriptions move to a multi-paragraph v3 form (`<what>. Use when <triggers>. Activates for requests involving <kw>.`) with both forms accepted during a transition window, a boilerplate-cohort lint, and a `/gdd:new-skill` scaffolder. **No new runtime dependency.**
263
+
260
264
  Verify with:
261
265
 
262
266
  ```
package/SKILL.md CHANGED
@@ -2,7 +2,7 @@
2
2
  name: get-design-done
3
3
  short_name: gdd
4
4
  description: "Master design pipeline for Claude Code. 5-stage workflow: Brief → Explore → Plan → Design → Verify. Run 'brief' first in any new project to capture the design problem, then 'explore' to inventory the codebase and interview for context. Invoke without arguments for status and auto-routing."
5
- argument-hint: "[brief|explore|plan|design|verify|handoff|map|next|help|status|style|darkmode|live|compare|figma-write|graphify|discuss|list-assumptions|progress|health|todo|stats|note|plant-seed|add-backlog|review-backlog|scan|discover|settings|update|reapply-patches|audit|pause|resume|new-cycle|debug|quick|new-project|complete-cycle|fast|do|ship|undo|pr-branch|sketch|sketch-wrap-up|spike|spike-wrap-up|reflect|apply-reflections|analyze-dependencies|extract-learnings|skill-manifest|pin|unpin|list-pins|warm-cache|optimize|cache-manager|watch-authorities|check-update|benchmark|recall|timeline|continue|zoom-out]"
5
+ argument-hint: "[brief|explore|plan|design|verify|handoff|map|next|help|status|style|darkmode|live|compare|figma-write|graphify|discuss|list-assumptions|progress|health|todo|stats|note|plant-seed|add-backlog|review-backlog|scan|discover|settings|update|reapply-patches|audit|pause|resume|new-cycle|debug|quick|new-project|complete-cycle|fast|do|ship|undo|pr-branch|sketch|sketch-wrap-up|spike|spike-wrap-up|reflect|apply-reflections|analyze-dependencies|extract-learnings|skill-manifest|pin|unpin|list-pins|new-skill|warm-cache|optimize|cache-manager|watch-authorities|check-update|benchmark|recall|timeline|continue|zoom-out]"
6
6
  user-invocable: true
7
7
  ---
8
8
 
@@ -93,6 +93,7 @@ Each stage produces artifacts in `.design/` inside the current project.
93
93
  | `pin <skill>` | `get-design-done:gdd-pin` | Phase 46 - write standalone shortcut aliases for a gdd skill across every installed harness dir (so `/audit` resolves alongside `/gdd:audit`); metadata comes from the skills.json catalogue |
94
94
  | `unpin <skill>` | `get-design-done:gdd-unpin` | Phase 46 - remove pinned aliases for a skill (only files carrying the gdd-pinned-skill marker) |
95
95
  | `list-pins` | `get-design-done:gdd-list-pins` | Phase 46 - show pinned aliases per harness with their source skill and last-pinned timestamp |
96
+ | `new-skill <name>` | `get-design-done:gdd-new-skill` | Phase 50 - interactive scaffolder for a new Phase 28.5 + v3-compliant skill (multi-paragraph description, lifecycle stage, optional composes_with); writes source/skills/<name>/SKILL.md |
96
97
  | `quality-gate` | `get-design-done:quality-gate` | Phase 25 - parallel lint/type/test/visual command runner; classifies failures via quality-gate-runner agent |
97
98
  | `turn-closeout` | `get-design-done:turn-closeout` | Phase 25 - Stop-hook mirror skill; finalizes per-turn STATE blocks and emits closeout events |
98
99
  | `bandit-status` | `get-design-done:bandit-status` | Phase 27.5 - read-only diagnostic surface for the bandit posterior; per-(agent, bin, delegate, tier) snapshots (alpha, beta, mean, stddev, count, last-used). Use `/gdd:bandit-reset` to mutate. |
@@ -47,6 +47,9 @@ Minimum expected files:
47
47
  - `.design/tasks/` - what was actually done (glob all task files)
48
48
  - **Domain-index navigation (Phase 45):** the 7 entry-points `reference/{typography,color,spatial,motion,interaction,responsive,ux-writing}.md` index every fragment below. For a pillar, load the relevant domain index first, then drill into the specific fragments it lists only as the pillar needs them - this is the cheap navigation layer over the detailed fragments.
49
49
  - `reference/audit-scoring.md` - existing 7-category scoring rubric (understand, do not duplicate)
50
+ - `reference/anti-slop-rubric.md` - the five verb axes scored after the pillar pass (see Anti-slop scoring section)
51
+ - `reference/visual-tells.md` - default-AI tell catalog; each tell names the verb axis it degrades
52
+ - `reference/reviewer-confidence-gate.md` - Pre-Report Gate, the `confidence` field, and the routing rule applied to every finding
50
53
  - `reference/brand-voice.md` - voice axes, archetype library, and tone-by-context table (use when auditing Pillar 1: Copy)
51
54
  - `reference/gestalt.md` - 8 Gestalt principles with scoring rubrics (use when auditing Pillar 2: Visual Hierarchy)
52
55
  - `reference/visual-hierarchy-layout.md` - Z-order, whitespace, grids, and reading-order patterns (use when auditing Pillar 2: Visual Hierarchy)
@@ -321,6 +324,24 @@ grep -rEn "w-4 h-4|w-5 h-5|w-6 h-6" src/ --include="*.tsx" --include="*.jsx" 2>/
321
324
 
322
325
  ---
323
326
 
327
+ ## Anti-slop scoring
328
+
329
+ After the 7-pillar pass, apply the verb-axis lens from `reference/anti-slop-rubric.md`. This is **orthogonal** and **v2-compatible additive** under `scoring_contract_version: v2` (see the contract note above): it adds NO eighth scored pillar, leaves the reserved Pillar 8 unscored, and changes neither the /28 total here nor the weighted 0-100 score in `reference/audit-scoring.md`.
330
+
331
+ Score five axes 1-10 each per the rubric (do not inline the scales or examples; the rubric is the source of truth):
332
+
333
+ - **Directness** - does copy and CTA name the specific product, verb, and outcome?
334
+ - **Distinctness** - is the palette and type a recorded brand decision, not the default reach?
335
+ - **Hierarchy** - one focal point and an obvious reading order, not flat competing weight?
336
+ - **Authenticity** - real product and shipped copy, not stock scenes, lorem, or badge spam?
337
+ - **Density** - density chosen for the content, not inflated to fill space?
338
+
339
+ Emit the result as a lens-tag on the relevant finding: `verb_axes_scored: {directness, distinctness, hierarchy, authenticity, density}`. Record which `reference/visual-tells.md` categories matched as evidence. The lens-tag is registered in `reference/audit-scoring.md` under Lens-Tags (Orthogonal).
340
+
341
+ When `directness + distinctness + hierarchy + authenticity + density < 35` (of 50), the work reads as generically AI-default even if pillars pass: flag an `aesthetic-slop` debt item for `agents/design-debt-crawler.md` (per `reference/debt-categories.md`) and note it in the Priority Fix List with the per-axis scores. A sum at or above 35 is not a pillar pass; it only means no aesthetic-slop routing.
342
+
343
+ ---
344
+
324
345
  ## Domain checklist addendum (Tier-3)
325
346
 
326
347
  If DESIGN-CONTEXT.md carries a `<domain>` line (set by `design-context-builder` Step 0F - `finance` / `healthcare` / `gaming` / `civic`), **also** run that pack's `## Audit checklist` from `reference/domains/<domain>-patterns.md` and fold its findings into the relevant pillar:
@@ -357,6 +378,10 @@ For each of the 7 pillars:
357
378
  3. Assign a score (1–4) with specific evidence
358
379
  4. Identify the top gap for this pillar (one concrete, actionable finding)
359
380
 
381
+ ### Step 3.5: Pre-Report Gate + confidence
382
+
383
+ Before writing any finding into the Priority Fix List or Detailed Findings, run the four-question Pre-Report Gate from `reference/reviewer-confidence-gate.md`: (a) can you cite `file:line`, (b) can you state the failure mode in one sentence, (c) did you read context beyond the matched line, (d) is the implied severity defensible? Stamp every priority-fix finding with a `confidence` value (`0.0-1.0`): `>= 0.8` when all four pass, `0.5-0.8` for partial evidence, `< 0.5` for an unconfirmed pattern match (common for the code-only Visual Hierarchy and Color pillars, where runtime cannot be seen). Move every `< 0.5` finding into a `## Tentative` section instead of the Priority Fix List, so a low-confidence guess never escalates to remediation. Confidence is independent of the 1-4 pillar scores and does not change them.
384
+
360
385
  ### Step 4: Write DESIGN-AUDIT.md
361
386
 
362
387
  Write `.design/DESIGN-AUDIT.md` using the output format below.
@@ -414,11 +439,19 @@ supplement_note: "Supplements 7-category 0-10 system in reference/audit-scoring.
414
439
 
415
440
  ## Priority Fix List
416
441
 
417
- Listed by impact. Top 3 fixes the verifier should weight heavily.
442
+ Listed by impact. Top 3 fixes the verifier should weight heavily. Each finding carries a `confidence` value (see `reference/reviewer-confidence-gate.md`); findings below `0.5` go in `## Tentative`, not here.
443
+
444
+ 1. **[Pillar N: specific issue]** (confidence: [0.0-1.0]) [user impact] [concrete fix with file reference]
445
+ 2. **[Pillar N: specific issue]** (confidence: [0.0-1.0]) [user impact] [concrete fix with file reference]
446
+ 3. **[Pillar N: specific issue]** (confidence: [0.0-1.0]) [user impact] [concrete fix with file reference]
447
+
448
+ ---
449
+
450
+ ## Tentative
451
+
452
+ Low-confidence findings (`confidence < 0.5`, per `reference/reviewer-confidence-gate.md`): pattern matches not confirmed by reading context, or runtime-only concerns the code-only pass cannot verify. Surfaced for human review; never auto-escalated to design-fixer.
418
453
 
419
- 1. **[Pillar N — specific issue]** [user impact] [concrete fix with file reference]
420
- 2. **[Pillar N — specific issue]** — [user impact] — [concrete fix with file reference]
421
- 3. **[Pillar N — specific issue]** — [user impact] — [concrete fix with file reference]
454
+ - [Pillar N: finding] (confidence: [N], unconfirmed because [reason])
422
455
 
423
456
  ---
424
457
 
@@ -561,6 +561,8 @@ Iterate until the user confirms. Then write the artifact.
561
561
 
562
562
  ## Output: .design/DESIGN-CONTEXT.md
563
563
 
564
+ Before writing any `.design/` artifact, resolve the main repo root via `scripts/lib/worktree-resolve.cjs` (`resolveDesignRoot`) so a worktree run writes to the main checkout and does not leak.
565
+
564
566
  Create `.design/` directory if needed. Write `.design/DESIGN-CONTEXT.md`:
565
567
 
566
568
  ```markdown
@@ -60,6 +60,8 @@ listed file before acting. Minimum expected files:
60
60
 
61
61
  - @reference/debt-categories.md
62
62
  - @reference/anti-patterns.md
63
+ - @reference/anti-slop-rubric.md
64
+ - @reference/reviewer-confidence-gate.md
63
65
 
64
66
  `reference/debt-categories.md` is the taxonomy you classify against and the source of
65
67
  the priority-scoring model. `reference/anti-patterns.md` is the BAN-NN and SLOP-NN
@@ -157,6 +159,25 @@ grep -rEn "No data|No results|Nothing here|went wrong|error occurred" src/ \
157
159
  Flag meaningful images without `alt`, icon-only controls without an accessible name,
158
160
  placeholder used as the only label, and generic empty or error copy.
159
161
 
162
+ **aesthetic-slop** (generically AI-default even when pillars pass): the orthogonal
163
+ verb-axis class from `reference/anti-slop-rubric.md`. `agents/design-auditor.md` scores
164
+ five axes (Directness, Distinctness, Hierarchy, Authenticity, Density, 1-10 each) and routes
165
+ any finding summing below 35 of 50 here as `category: aesthetic-slop`, carrying its
166
+ `verb_axes_scored` values plus matched `reference/visual-tells.md` categories as evidence.
167
+
168
+ ### Step 2.5: Pre-Report Gate + confidence
169
+
170
+ Before cataloging any finding, run the four-question Pre-Report Gate from
171
+ `reference/reviewer-confidence-gate.md`: (a) can you cite `file:line`, (b) can you state the
172
+ failure mode in one sentence, (c) did you read context beyond the matched line (the token
173
+ definition, the call site), and (d) is the class assignment defensible? Stamp every catalog
174
+ row with a `confidence` value (`0.0-1.0`): `>= 0.8` when all four pass, `0.5-0.8` when evidence
175
+ is partial, `< 0.5` for a pattern match you could not confirm (for example an unresolved
176
+ contrast pair or a literal that may be inside a token definition). Move every `< 0.5` finding
177
+ into a `## Tentative` section instead of the ranked findings table, so a low-confidence guess
178
+ never escalates to remediation. Confidence is independent of priority: a high-priority debt
179
+ item can still be low confidence and belongs in `## Tentative` until confirmed.
180
+
160
181
  ### Step 3: Group and score
161
182
 
162
183
  Group findings by the seven debt classes. For each finding, assign the three priority
@@ -212,17 +233,27 @@ note: "Project-scoped retroactive debt catalog. Does NOT read STATE.md completed
212
233
  | density-spacing | N | P |
213
234
  | typography-drift | N | P |
214
235
  | a11y-text | N | P |
236
+ | aesthetic-slop | N | P |
215
237
 
216
238
  ---
217
239
 
218
240
  ## Findings (ranked by priority)
219
241
 
220
- | Priority | Class | Location | Finding | V × E × P | Suggested command |
221
- |----------|-------|----------|---------|-----------|-------------------|
222
- | 18 | color-literal | src/Card.tsx:42 | Raw #1a73e8 instead of token | 3×3×2 | `/gdd:fast "replace #1a73e8 with semantic token in Card.tsx"` |
223
- | 12 | anti-pattern | src/Hero.tsx:8 | BAN-02 gradient text on heading | 3×2×2 | `/gdd:fast "remove BAN-02 gradient text in Hero.tsx"` |
242
+ | Priority | Class | Location | Finding | V × E × P | Confidence | Suggested command |
243
+ |----------|-------|----------|---------|-----------|------------|-------------------|
244
+ | 18 | color-literal | src/Card.tsx:42 | Raw #1a73e8 instead of token | 3×3×2 | 0.9 | `/gdd:fast "replace #1a73e8 with semantic token in Card.tsx"` |
245
+ | 12 | anti-pattern | src/Hero.tsx:8 | BAN-02 gradient text on heading | 3×2×2 | 0.85 | `/gdd:fast "remove BAN-02 gradient text in Hero.tsx"` |
246
+
247
+ (One row per finding with `confidence >= 0.5`. The Suggested command column always carries a `/gdd:fast "<finding>"` string. Findings below `0.5` go in `## Tentative` below, not in this table.)
248
+
249
+ ---
250
+
251
+ ## Tentative
252
+
253
+ Findings with `confidence < 0.5` (pattern matches not confirmed by reading context, per
254
+ `reference/reviewer-confidence-gate.md`). Listed for human review; never auto-escalated.
224
255
 
225
- (One row per finding. The Suggested command column always carries a `/gdd:fast "<finding>"` string.)
256
+ - [class] [location]: [finding] (confidence: [N], unconfirmed because [reason])
226
257
 
227
258
  ---
228
259
 
@@ -395,6 +395,8 @@ Apply these rules automatically during execution. Track all deviations in the ta
395
395
 
396
396
  ## Task Output - .design/tasks/task-NN.md
397
397
 
398
+ Before writing any `.design/` artifact, resolve the main repo root via `scripts/lib/worktree-resolve.cjs` (`resolveDesignRoot`) so a worktree run writes to the main checkout and does not leak.
399
+
398
400
  After completing the task's implementation work, write `.design/tasks/task-NN.md` (where NN = task_id from prompt context). Create `.design/tasks/` directory first if it does not exist.
399
401
 
400
402
  Format (locked - do not alter structure):
@@ -48,6 +48,8 @@ The orchestrating stage supplies a `<required_reading>` block in the prompt. Rea
48
48
 
49
49
  **Invariant:** read all listed files FIRST, before making any changes.
50
50
 
51
+ **Worktree-root invariant:** before writing any `.design/` artifact (for example a `<blocker>` entry to `.design/STATE.md`), resolve the main repo root via `scripts/lib/worktree-resolve.cjs` so a worktree run writes to the canonical `.design/` and does not leak artifacts into the worktree checkout.
52
+
51
53
  ---
52
54
 
53
55
  ## Prompt Context Fields
@@ -88,7 +90,8 @@ Parse every entry in that section. The `G-NN` identifier, severity classificatio
88
90
  4. Filter by severity based on `auto_mode`:
89
91
  - Always include: `BLOCKER`, `MAJOR`
90
92
  - Include only if `auto_mode=true`: `MINOR`, `COSMETIC`
91
- 5. Build an ordered list: BLOCKER first, then MAJOR, then (if included) MINOR, COSMETIC.
93
+ 5. **Confidence routing filter (Phase 49, see `reference/reviewer-confidence-gate.md`).** Drop any gap that sits under a `## Tentative` heading: those never reach you. Then drop any `BLOCKER` or `MAJOR` gap whose `confidence` field is below `0.8` and route it to user review instead of auto-fix, since a high-severity gap without strong evidence is exactly the inflated-severity case the gate exists to catch. A gap missing its `confidence` field is treated as below the floor. The shared decision lives in `scripts/lib/confidence-route.cjs` (`route({ severity, confidence, tentative })` returns `'fix' | 'user-review' | 'drop'`); fix only the gaps it routes to `'fix'`.
94
+ 6. Build an ordered list: BLOCKER first, then MAJOR, then (if included) MINOR, COSMETIC.
92
95
 
93
96
  If no in-scope gaps are found (e.g., verifier found only MINOR gaps and `auto_mode=false`), emit `## FIX COMPLETE` immediately with "No in-scope gaps to fix."
94
97
 
@@ -227,6 +227,8 @@ Before finalizing task list:
227
227
 
228
228
  ## Output Format
229
229
 
230
+ Before writing any `.design/` artifact, resolve the main repo root via `scripts/lib/worktree-resolve.cjs` (`resolveDesignRoot`) so a worktree run writes to the main checkout and does not leak.
231
+
230
232
  Write `.design/DESIGN-PLAN.md` with this exact structure:
231
233
 
232
234
  ```markdown
@@ -62,6 +62,8 @@ Minimum expected inputs (skip gracefully if absent, note what's missing):
62
62
 
63
63
  ## Output
64
64
 
65
+ Before writing any `.design/` artifact, resolve the main repo root via `scripts/lib/worktree-resolve.cjs` (`resolveDesignRoot`) so a worktree run writes to the main checkout and does not leak.
66
+
65
67
  Write `.design/reflections/<cycle-slug>.md`. If `--dry-run` is set in the spawning prompt, print proposals to stdout only - do not write the file.
66
68
 
67
69
  If the capability-gap pattern scan emitted any events during this run, include a `## Capability gaps emitted` heading listing each `event_id` with the source signal kind (`intel` | `posterior` | `trajectory`) and the `suggested_kind` (`agent` | `skill`) per event. Plan 29-03 reads these events from `.design/gep/events.jsonl` to cluster recurring `capability_gap` events for `/gdd:apply-reflections`.
@@ -161,6 +161,8 @@ Read .design/STATE.md
161
161
 
162
162
  ## Output
163
163
 
164
+ Before writing any `.design/` artifact, resolve the main repo root via `scripts/lib/worktree-resolve.cjs` (`resolveDesignRoot`) so a worktree run writes to the main checkout and does not leak.
165
+
164
166
  Single file: `.design/DESIGN-CONTEXT.md`.
165
167
 
166
168
  ## Record
@@ -33,6 +33,7 @@ The orchestrating stage supplies a `<required_reading>` block in the prompt. Rea
33
33
  - `.design/DESIGN-CONTEXT.md` - goals, must-haves, brand direction, references
34
34
  - `.design/tasks/` - what was actually done (glob all task files)
35
35
  - `reference/audit-scoring.md` - scoring rubric for category weights
36
+ - `reference/reviewer-confidence-gate.md` - Pre-Report Gate, the `confidence` field, and the gap routing rule
36
37
  - `reference/heuristics.md` - NNG heuristics H-01..H-10 scoring guide
37
38
  - `reference/review-format.md` - visual UAT presentation format
38
39
  - `reference/accessibility.md` - WCAG checklist for accessibility scoring
@@ -40,6 +41,8 @@ The orchestrating stage supplies a `<required_reading>` block in the prompt. Rea
40
41
  - `connections/chromatic.md` - Chromatic CLI connection spec (probe, baseline management, fallback)
41
42
  - `connections/storybook.md` - Storybook HTTP probe and a11y integration details
42
43
 
44
+ **Worktree-root invariant:** before writing `.design/DESIGN-VERIFICATION.md` (or any `.design/` artifact), resolve the main repo root via `scripts/lib/worktree-resolve.cjs` so a worktree run writes to the canonical `.design/` and does not leak artifacts into the worktree checkout.
45
+
43
46
  ## Prompt Context Fields
44
47
 
45
48
  The stage embeds these fields in its prompt:
@@ -440,6 +443,8 @@ Classify each gap:
440
443
  - `MINOR` - noticeable issue; fix if time allows
441
444
  - `COSMETIC` - polish only; defer to later
442
445
 
446
+ **Pre-Report Gate (Phase 49, see `reference/reviewer-confidence-gate.md`).** Before emitting each gap, answer the four questions: (a) can you cite `file:line`, (b) can you state the failure mode in one sentence, (c) did you read context beyond the modified file, (d) is the severity defensible? Stamp every gap with a `confidence` field (`0.0-1.0`): `>= 0.8` when all four pass, `0.5-0.8` when evidence is partial, `< 0.5` for an unconfirmed hunch. A BLOCKER or MAJOR requires `confidence >= 0.8` plus a `file:line` citation plus a one-sentence failure mode; below that, lower the severity or move it to `## Tentative`. Confidence is independent of severity. Move every `< 0.5` gap into a `## Tentative` section so it is surfaced but never reaches `design-fixer`.
447
+
443
448
  For each gap, emit an entry in the locked gap format:
444
449
 
445
450
  ```
@@ -452,6 +457,7 @@ For each gap, emit an entry in the locked gap format:
452
457
  - Actual: [what is true]
453
458
  - Location: [file:line or UI element]
454
459
  - Suggested fix: [one-line hint]
460
+ - confidence: [0.0-1.0]
455
461
  ```
456
462
 
457
463
  Order gaps: BLOCKER first, then MAJOR, MINOR, COSMETIC. Number sequentially (G-01, G-02, ...).
@@ -464,21 +470,7 @@ If zero gaps found: skip this section entirely - do NOT emit `## GAPS FOUND`.
464
470
 
465
471
  **Skip if `chromatic` is `not_configured` or `unavailable` in STATE.md `<connections>`.**
466
472
 
467
- If `.design/chromatic-results.json` exists:
468
- 1. Read .design/chromatic-results.json
469
- 2. Check if this is a first run (all entries have status: "new"):
470
- → First run: emit "Baseline established - no regressions detected (first run creates baseline)."
471
- 3. For subsequent runs, narrate changes:
472
- For each story entry in results:
473
- - status "unchanged" → PASS <StoryTitle>:<StoryName>
474
- - status "changed" → CHANGED <StoryTitle>:<StoryName> (visual change detected - review on chromatic.com)
475
- - status "new" → NEW <StoryTitle>:<StoryName> (first snapshot - not a regression)
476
- - status "error" → ERROR <StoryTitle>:<StoryName> - investigate
477
- 4. Emit summary: "Total: N stories. X unchanged. Y changed. Z new. W errors."
478
- 5. If Y > 0 (changed stories): flag as "VISUAL REGRESSION CANDIDATES - review required on chromatic.com before merging"
479
- 6. Append narration to DESIGN-VERIFICATION.md ## Visual Regression section (create section if absent)
480
-
481
- If .design/chromatic-results.json does not exist: skip; emit no note.
473
+ If `.design/chromatic-results.json` exists, read it and narrate. First run (all entries `status: "new"`): emit "Baseline established - no regressions detected (first run creates baseline)." Subsequent runs, per story entry: `unchanged` → PASS, `changed` → CHANGED (review on chromatic.com), `new` → NEW (first snapshot, not a regression), `error` → ERROR (investigate). Emit summary "Total: N stories. X unchanged. Y changed. Z new. W errors." If any changed (Y > 0), flag "VISUAL REGRESSION CANDIDATES - review required on chromatic.com before merging". Append the narration to the DESIGN-VERIFICATION.md `## Visual Regression` section (create it if absent). If the file does not exist: skip; emit no note.
482
474
 
483
475
  ---
484
476
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-audit
3
- description: "Run a design audit by spawning design-auditor, design-integration-checker, and (optionally) design-verifier + design-reflector agents, then printing a consolidated 6-pillar score summary. Use when the user wants to score the current design, retroactively verify a completed cycle, or quickly re-check after a fix."
3
+ description: "Run a design audit by spawning design-auditor, design-integration-checker, and (optionally) design-verifier + design-reflector agents, then printing a consolidated 6-pillar score summary. Use when the user wants to score the current design, retroactively verify a completed cycle, or quickly re-check after a fix. Activates for requests involving scoring an existing design, retroactively reviewing quality, or re-checking after a fix."
4
4
  argument-hint: "[--retroactive] [--quick] [--no-reflect]"
5
5
  tools: Read, Write, Task, Glob, Bash
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-brief
3
- description: "Stage 1 of 5 design intake that captures problem statement, audience, constraints, success metrics, and scope into .design/BRIEF.md, and bootstraps .design/STATE.md if missing. Use when starting a new design cycle and before /gdd:explore."
3
+ description: "Stage 1 of 5 design intake that captures problem statement, audience, constraints, success metrics, and scope into .design/BRIEF.md, and bootstraps .design/STATE.md if missing. Use when starting a new design cycle and before /gdd:explore. Activates for requests involving capturing a problem statement, defining audience and constraints, or starting a new design brief."
4
4
  argument-hint: "[--re-brief to redo intake on existing project]"
5
5
  tools: Read, Write, AskUserQuestion, mcp__gdd_state__frontmatter_update, mcp__gdd_state__set_status, mcp__gdd_state__update_progress, mcp__gdd_state__get
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-compare
3
- description: "Compute the delta between the `DESIGN.md` baseline (from scan) and the `DESIGN-VERIFICATION.md` result (from verify), reporting per-category score delta, anti-pattern delta (resolved vs new), must-have pass/fail change, and design drift (regressions without covering tasks in `DESIGN-PLAN.md`). Use after `verify` to measure whether a design pipeline cycle actually improved the design. Writes `.design/COMPARE-REPORT.md`."
3
+ description: "Compute the delta between the `DESIGN.md` baseline (from scan) and the `DESIGN-VERIFICATION.md` result (from verify), reporting per-category score delta, anti-pattern delta (resolved vs new), must-have pass/fail change, and design drift (regressions without covering tasks in `DESIGN-PLAN.md`). Use after `verify` to measure whether a design pipeline cycle actually improved the design. Writes `.design/COMPARE-REPORT.md`. Activates for requests involving diffing a design baseline against verification output, or a before-after design delta."
4
4
  argument-hint: ""
5
5
  user-invocable: true
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-connections
3
- description: "Interactive onboarding wizard for the 33 external integrations the pipeline supports - probes all (`figma`, `refero`, `preview`, `storybook`, `chromatic`, `graphify`, `pinterest`, `claude-design`, `paper-design`, `pencil-dev`, `21st-dev`, `magic-patterns`, `lazyweb`, `mobbin`, `slack`, `discord`, `linear`, `jira`, `notion`, `lottie`, `rive`, `framer`, `penpot`, `webflow`, `v0-dev`, `plasmic`, `builder-io`, `launchdarkly`, `statsig`, `growthbook`, `usertesting`, `maze`, `hotjar`), recommends based on project type, walks the user through setup (auto-run MCP install or copy-command fallback), writes results to `STATE.md <connections>`. Use after `/gdd:new-project` or whenever the user wants to add, inspect, or skip a connection. Re-runnable anytime."
3
+ description: "Interactive onboarding wizard for the 33 external integrations the pipeline supports - probes all (`figma`, `refero`, `preview`, `storybook`, `chromatic`, `graphify`, `pinterest`, `claude-design`, `paper-design`, `pencil-dev`, `21st-dev`, `magic-patterns`, `lazyweb`, `mobbin`, `slack`, `discord`, `linear`, `jira`, `notion`, `lottie`, `rive`, `framer`, `penpot`, `webflow`, `v0-dev`, `plasmic`, `builder-io`, `launchdarkly`, `statsig`, `growthbook`, `usertesting`, `maze`, `hotjar`), recommends based on project type, walks the user through setup (auto-run MCP install or copy-command fallback), writes results to `STATE.md <connections>`. Use after `/gdd:new-project` or whenever the user wants to add, inspect, or skip a connection. Re-runnable anytime. Activates for requests involving setting up external integrations, probing Figma or preview or storybook, or onboarding tools."
4
4
  argument-hint: "[list | <connection-name> | --auto]"
5
5
  user-invocable: true
6
6
  tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, ToolSearch
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-darkmode
3
- description: "Audit a project's dark mode implementation - detects architecture (CSS custom props, Tailwind `dark:` prefix, or JS class toggle), runs architecture-specific contrast / token-override / anti-pattern / meta-property checks, and writes a prioritized fix list to `.design/DARKMODE-AUDIT.md`. Use when the user wants to verify dark mode quality without re-running the full design pipeline. Read-only - no score writeback to `DESIGN.md`."
3
+ description: "Audit a project's dark mode implementation - detects architecture (CSS custom props, Tailwind `dark:` prefix, or JS class toggle), runs architecture-specific contrast / token-override / anti-pattern / meta-property checks, and writes a prioritized fix list to `.design/DARKMODE-AUDIT.md`. Use when the user wants to verify dark mode quality without re-running the full design pipeline. Read-only - no score writeback to `DESIGN.md`. Activates for requests involving auditing dark mode, checking dark-theme contrast, or dark-mode anti-patterns."
4
4
  argument-hint: ""
5
5
  user-invocable: true
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: design
3
- description: "Stage 4 of 5 orchestrator that reads DESIGN-PLAN.md, partitions tasks by wave + parallel-safe flag, and spawns design-executor agents with the appropriate isolation (worktree for parallel batches, in-place for sequential tail). Use when DESIGN-PLAN.md is approved and ready for implementation."
3
+ description: "Stage 4 of 5 orchestrator that reads DESIGN-PLAN.md, partitions tasks by wave + parallel-safe flag, and spawns design-executor agents with the appropriate isolation (worktree for parallel batches, in-place for sequential tail). Use when DESIGN-PLAN.md is approved and ready for implementation. Activates for requests involving implementing UI, building components, or turning a plan into working interface code."
4
4
  argument-hint: "[--auto] [--parallel] [--variants N]"
5
5
  user-invocable: true
6
6
  tools: Read, Write, Bash, Grep, Glob, Task, AskUserQuestion, mcp__gdd_state__get, mcp__gdd_state__transition_stage, mcp__gdd_state__update_progress, mcp__gdd_state__set_status, mcp__gdd_state__add_blocker, mcp__gdd_state__resolve_blocker, mcp__gdd_state__checkpoint
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: discover
3
- description: "Stage 1.5 of 4 orchestrator that probes Figma / Refero / Pinterest connections, spawns design-context-builder (auto-detect + interview) and (via lazy gate) design-context-checker (6-dimension validator), producing .design/DESIGN-CONTEXT.md. Use after /gdd:scan when a fast-path context build is wanted instead of the full /gdd:explore."
3
+ description: "Stage 1.5 of 4 orchestrator that probes Figma / Refero / Pinterest connections, spawns design-context-builder (auto-detect + interview) and (via lazy gate) design-context-checker (6-dimension validator), producing .design/DESIGN-CONTEXT.md. Use after /gdd:scan when a fast-path context build is wanted instead of the full /gdd:explore. Activates for requests involving detecting an existing design system, inventorying tokens and components, or onboarding a brownfield repo."
4
4
  argument-hint: "[--auto]"
5
5
  user-invocable: true
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-do
3
- description: "Natural-language design task router. Parses your intent, maps to the right gdd command(s), confirms before executing."
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
4
  argument-hint: "<natural language description>"
5
5
  tools: Read, Write, AskUserQuestion
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
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."
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
4
  argument-hint: "[--skip-interview] [--skip-scan]"
5
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
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-fast
3
- description: "Trivial inline design task. No subagents, no planning documents, no pipeline stages. Just do the thing described."
3
+ description: "Trivial inline design task. No subagents, no planning documents, no pipeline stages. Just do the thing described. Activates for requests involving a single quick design fix, a one-shot change, or a fast targeted edit."
4
4
  argument-hint: "<task description>"
5
5
  tools: Read, Write, Edit, Bash, Grep, Glob
6
6
  disable-model-invocation: true
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-health
3
- description: "Reports .design/ artifact health - staleness, missing files, token drift, broken state transitions."
3
+ description: "Reports .design/ artifact health - staleness, missing files, token drift, broken state transitions. Activates for requests involving checking .design artifact health, staleness, token drift, or broken state transitions."
4
4
  tools: Read, Bash, Glob, Grep, mcp__gdd_state__get
5
5
  disable-model-invocation: true
6
6
  ---
@@ -90,7 +90,7 @@ After the health table, surface the Phase 28.5 skill-authoring contract drift si
90
90
  - `Skill-length: <total> total | <clean> clean | <warnings> warn (>=100) | <blockers> block (>=250)`
91
91
  - If blockers > 0: list each blocker as a row `- <name> (<lines> lines)`. Else: print `All skills within contract.`
92
92
 
93
- Thresholds: warn >=100, block >=250 (D-01). Strict description-format off by default (D-02). See `./health-skill-length-report.md` for the JSON shape and threshold rationale.
93
+ Thresholds: warn >=100, block >=250 (D-01). Strict description-format off by default (D-02). Then add two compact Phase 50 lines from `scripts/lib/manifest/skills.json`: `Skills: <n>/<total> in v3 description form` (descriptions matching `/Activates for requests involving/i`) and `Composition: <edges> edges | <cycles> cycles` (`composes_with`/`next_skills` fan-out; cycles via `scripts/validate-composition-graph.cjs` when present, else `0`). See `./health-skill-length-report.md` for the JSON shape and threshold rationale.
94
94
 
95
95
  ## Do Not
96
96
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-live
3
- description: "Live in-browser design mode. The user picks a DOM element on a running dev server (via the Claude Preview MCP), the agent generates N design variants in one batch, they hot-swap in place through HMR or preview_eval using a data-gdd-variant marker, the user accepts or discards, and the whole pick-generate-accept loop persists to .design/live-sessions so it survives a crash or resume. Use when the user wants to iterate on the look of a live component against a real running server, asks to try variants on a page, or runs the live command with a url; falls back to a screenshot-only degraded mode on harnesses without MCP support."
3
+ description: "Live in-browser design mode. The user picks a DOM element on a running dev server (via the Claude Preview MCP), the agent generates N design variants in one batch, they hot-swap in place through HMR or preview_eval using a data-gdd-variant marker, the user accepts or discards, and the whole pick-generate-accept loop persists to .design/live-sessions so it survives a crash or resume. Use when the user wants to iterate on the look of a live component against a real running server, asks to try variants on a page, or runs the live command with a url; falls back to a screenshot-only degraded mode on harnesses without MCP support. Activates for requests involving in-browser design iteration, picking an element on a dev server, or generating variants with hot-swap."
4
4
  argument-hint: "[--variants N] [--resume <session-id>] [url]"
5
5
  tools: Read, Write, Edit, Bash, Glob, Grep, Task
6
6
  user-invocable: true