@hegemonart/get-design-done 1.59.2 → 1.59.4

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 (161) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +56 -0
  4. package/SKILL.md +2 -0
  5. package/agents/design-advisor.md +1 -1
  6. package/agents/design-context-checker-gate.md +0 -1
  7. package/agents/design-context-checker.md +0 -1
  8. package/agents/design-context-reviewer-gate.md +0 -1
  9. package/agents/design-context-reviewer.md +0 -1
  10. package/agents/design-integration-checker-gate.md +0 -1
  11. package/agents/design-integration-checker.md +0 -1
  12. package/agents/design-plan-checker.md +0 -1
  13. package/agents/design-verifier-gate.md +0 -1
  14. package/agents/design-verifier.md +0 -1
  15. package/agents/prototype-gate.md +0 -1
  16. package/agents/quality-gate-runner.md +0 -1
  17. package/figma-plugin/README.md +61 -0
  18. package/figma-plugin/code.ts +36 -0
  19. package/figma-plugin/manifest.json +12 -0
  20. package/figma-plugin/package-lock.json +35 -0
  21. package/figma-plugin/package.json +12 -0
  22. package/figma-plugin/src/export-variables.ts +144 -0
  23. package/figma-plugin/src/payload-schema.ts +250 -0
  24. package/figma-plugin/tsconfig.json +16 -0
  25. package/figma-plugin/ui.html +44 -0
  26. package/hooks/gdd-intel-trigger.js +3 -3
  27. package/package.json +6 -1
  28. package/reference/DEPRECATIONS.md +3 -3
  29. package/reference/live-mode-integration.md +1 -1
  30. package/reference/registry.json +1 -1
  31. package/reference/skill-metadata.md +4 -4
  32. package/reference/skill-placeholders.md +2 -2
  33. package/scripts/build-skills.cjs +146 -0
  34. package/scripts/generate-skill-frontmatter.cjs +243 -0
  35. package/scripts/lib/manifest/scaffolder.cjs +1 -1
  36. package/scripts/lib/manifest/schemas/skills.schema.json +1 -1
  37. package/scripts/lib/manifest/skills.json +1 -1
  38. package/scripts/lib/new-addendum.cjs +1 -1
  39. package/scripts/skill-templates/README.md +90 -0
  40. package/scripts/skill-templates/add-backlog/SKILL.md +48 -0
  41. package/scripts/skill-templates/analyze-dependencies/SKILL.md +95 -0
  42. package/scripts/skill-templates/apply-reflections/SKILL.md +109 -0
  43. package/scripts/skill-templates/apply-reflections/apply-reflections-procedure.md +170 -0
  44. package/scripts/skill-templates/audit/SKILL.md +79 -0
  45. package/scripts/skill-templates/bandit-reset/SKILL.md +91 -0
  46. package/scripts/skill-templates/bandit-status/SKILL.md +94 -0
  47. package/scripts/skill-templates/benchmark/SKILL.md +65 -0
  48. package/scripts/skill-templates/bootstrap-ds/SKILL.md +43 -0
  49. package/scripts/skill-templates/brief/SKILL.md +145 -0
  50. package/scripts/skill-templates/budget/SKILL.md +45 -0
  51. package/scripts/skill-templates/cache-manager/SKILL.md +66 -0
  52. package/scripts/skill-templates/cache-manager/cache-policy.md +126 -0
  53. package/scripts/skill-templates/check-update/SKILL.md +98 -0
  54. package/scripts/skill-templates/compare/SKILL.md +82 -0
  55. package/scripts/skill-templates/compare/compare-rubric.md +171 -0
  56. package/scripts/skill-templates/complete-cycle/SKILL.md +81 -0
  57. package/scripts/skill-templates/connections/SKILL.md +71 -0
  58. package/scripts/skill-templates/connections/connections-onboarding.md +608 -0
  59. package/scripts/skill-templates/context/SKILL.md +137 -0
  60. package/scripts/skill-templates/continue/SKILL.md +24 -0
  61. package/scripts/skill-templates/darkmode/SKILL.md +76 -0
  62. package/scripts/skill-templates/darkmode/darkmode-audit-procedure.md +258 -0
  63. package/scripts/skill-templates/debug/SKILL.md +41 -0
  64. package/scripts/skill-templates/debug/debug-feedback-loops.md +119 -0
  65. package/scripts/skill-templates/design/SKILL.md +118 -0
  66. package/scripts/skill-templates/design/design-procedure.md +304 -0
  67. package/scripts/skill-templates/discuss/SKILL.md +96 -0
  68. package/scripts/skill-templates/do/SKILL.md +45 -0
  69. package/scripts/skill-templates/explore/SKILL.md +118 -0
  70. package/scripts/skill-templates/explore/explore-procedure.md +267 -0
  71. package/scripts/skill-templates/export/SKILL.md +30 -0
  72. package/scripts/skill-templates/extract-learnings/SKILL.md +114 -0
  73. package/scripts/skill-templates/fast/SKILL.md +91 -0
  74. package/scripts/skill-templates/figma-extract/SKILL.md +64 -0
  75. package/scripts/skill-templates/figma-write/SKILL.md +50 -0
  76. package/scripts/skill-templates/graphify/SKILL.md +49 -0
  77. package/scripts/skill-templates/health/SKILL.md +99 -0
  78. package/scripts/skill-templates/health/health-mcp-detection.md +44 -0
  79. package/scripts/skill-templates/health/health-skill-length-report.md +69 -0
  80. package/scripts/skill-templates/help/SKILL.md +60 -0
  81. package/scripts/skill-templates/instinct/SKILL.md +111 -0
  82. package/scripts/skill-templates/list-assumptions/SKILL.md +61 -0
  83. package/scripts/skill-templates/list-pins/SKILL.md +27 -0
  84. package/scripts/skill-templates/live/SKILL.md +98 -0
  85. package/scripts/skill-templates/locale/SKILL.md +51 -0
  86. package/scripts/skill-templates/map/SKILL.md +89 -0
  87. package/scripts/skill-templates/migrate/SKILL.md +70 -0
  88. package/scripts/skill-templates/migrate-context/SKILL.md +123 -0
  89. package/scripts/skill-templates/new-addendum/SKILL.md +81 -0
  90. package/scripts/skill-templates/new-cycle/SKILL.md +37 -0
  91. package/scripts/skill-templates/new-project/SKILL.md +53 -0
  92. package/scripts/skill-templates/new-skill/SKILL.md +90 -0
  93. package/scripts/skill-templates/next/SKILL.md +68 -0
  94. package/scripts/skill-templates/note/SKILL.md +48 -0
  95. package/scripts/skill-templates/openrouter-status/SKILL.md +86 -0
  96. package/scripts/skill-templates/optimize/SKILL.md +97 -0
  97. package/scripts/skill-templates/override/SKILL.md +86 -0
  98. package/scripts/skill-templates/paper-write/SKILL.md +54 -0
  99. package/scripts/skill-templates/pause/SKILL.md +77 -0
  100. package/scripts/skill-templates/peer-cli-add/SKILL.md +88 -0
  101. package/scripts/skill-templates/peer-cli-add/peer-cli-protocol.md +161 -0
  102. package/scripts/skill-templates/peer-cli-customize/SKILL.md +89 -0
  103. package/scripts/skill-templates/peers/SKILL.md +96 -0
  104. package/scripts/skill-templates/pencil-write/SKILL.md +54 -0
  105. package/scripts/skill-templates/pin/SKILL.md +37 -0
  106. package/scripts/skill-templates/plan/SKILL.md +105 -0
  107. package/scripts/skill-templates/plan/plan-procedure.md +278 -0
  108. package/scripts/skill-templates/plant-seed/SKILL.md +48 -0
  109. package/scripts/skill-templates/pr-branch/SKILL.md +32 -0
  110. package/scripts/skill-templates/progress/SKILL.md +107 -0
  111. package/scripts/skill-templates/quality-gate/SKILL.md +90 -0
  112. package/scripts/skill-templates/quality-gate/threat-modeling.md +101 -0
  113. package/scripts/skill-templates/quick/SKILL.md +44 -0
  114. package/scripts/skill-templates/reapply-patches/SKILL.md +32 -0
  115. package/scripts/skill-templates/recall/SKILL.md +75 -0
  116. package/scripts/skill-templates/reflect/SKILL.md +85 -0
  117. package/scripts/skill-templates/reflect/procedures/capability-gap-scan.md +119 -0
  118. package/scripts/skill-templates/report-issue/SKILL.md +53 -0
  119. package/scripts/skill-templates/report-issue/report-issue-procedure.md +119 -0
  120. package/scripts/skill-templates/resume/SKILL.md +93 -0
  121. package/scripts/skill-templates/review-backlog/SKILL.md +46 -0
  122. package/scripts/skill-templates/review-decisions/SKILL.md +42 -0
  123. package/scripts/skill-templates/roi/SKILL.md +54 -0
  124. package/scripts/skill-templates/rollout-status/SKILL.md +35 -0
  125. package/scripts/skill-templates/router/SKILL.md +89 -0
  126. package/scripts/skill-templates/router/capability-gap-emitter.md +65 -0
  127. package/scripts/skill-templates/router/router-pick-emitter.md +78 -0
  128. package/scripts/skill-templates/router/router-rules.md +84 -0
  129. package/scripts/skill-templates/settings/SKILL.md +87 -0
  130. package/scripts/skill-templates/ship/SKILL.md +48 -0
  131. package/scripts/skill-templates/sketch/SKILL.md +78 -0
  132. package/scripts/skill-templates/sketch-wrap-up/SKILL.md +92 -0
  133. package/scripts/skill-templates/skill-manifest/SKILL.md +79 -0
  134. package/scripts/skill-templates/spike/SKILL.md +67 -0
  135. package/scripts/skill-templates/spike-wrap-up/SKILL.md +86 -0
  136. package/scripts/skill-templates/start/SKILL.md +67 -0
  137. package/scripts/skill-templates/start/start-procedure.md +115 -0
  138. package/scripts/skill-templates/state/SKILL.md +106 -0
  139. package/scripts/skill-templates/stats/SKILL.md +51 -0
  140. package/scripts/skill-templates/style/SKILL.md +71 -0
  141. package/scripts/skill-templates/style/style-doc-procedure.md +150 -0
  142. package/scripts/skill-templates/synthesize/SKILL.md +94 -0
  143. package/scripts/skill-templates/timeline/SKILL.md +66 -0
  144. package/scripts/skill-templates/todo/SKILL.md +64 -0
  145. package/scripts/skill-templates/turn-closeout/SKILL.md +95 -0
  146. package/scripts/skill-templates/undo/SKILL.md +31 -0
  147. package/scripts/skill-templates/unlock-decision/SKILL.md +54 -0
  148. package/scripts/skill-templates/unpin/SKILL.md +31 -0
  149. package/scripts/skill-templates/update/SKILL.md +56 -0
  150. package/scripts/skill-templates/using-gdd/SKILL.md +78 -0
  151. package/scripts/skill-templates/verify/SKILL.md +113 -0
  152. package/scripts/skill-templates/verify/verify-procedure.md +511 -0
  153. package/scripts/skill-templates/warm-cache/SKILL.md +81 -0
  154. package/scripts/skill-templates/watch-authorities/SKILL.md +82 -0
  155. package/scripts/skill-templates/zoom-out/SKILL.md +26 -0
  156. package/sdk/cli/commands/build.ts +2 -2
  157. package/sdk/cli/index.js +2 -2
  158. package/sdk/cli/index.ts +1 -1
  159. package/skills/README.md +22 -14
  160. package/skills/help/SKILL.md +28 -55
  161. package/skills/new-skill/SKILL.md +5 -5
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: gdd-watch-authorities
3
+ description: "Fetches the design-authority feed whitelist, diffs against .design/authority-snapshot.json, and writes .design/authority-report.md (consumed by {{command_prefix}}reflect). Authority monitoring only - no trend-watching."
4
+ argument-hint: "[--refresh] [--since <date>] [--feed <name>] [--schedule <weekly|daily|monthly>]"
5
+ tools: Read, Write, Task, Bash
6
+ ---
7
+
8
+ # {{command_prefix}}watch-authorities
9
+
10
+ Runs `design-authority-watcher` on demand. Fetches the curated design-authority feed whitelist, diffs against the prior snapshot, classifies new entries into five buckets, and writes `.design/authority-report.md`. Phase 11's reflector picks up the report automatically when you next run `{{command_prefix}}reflect`.
11
+
12
+ Authority-monitoring only. Not trend-watching. See `reference/authority-feeds.md` §"Rejected kinds" for what this skill will never fetch.
13
+
14
+ ## Steps
15
+
16
+ 1. **Parse args.** Extract optional flags: `--refresh`, `--since <date>`, `--feed <name>`, `--schedule <cadence>`. Anything that doesn't match one of these is an error - print `Unknown flag: <arg>. Valid flags: --refresh --since <date> --feed <name> --schedule <weekly|daily|monthly>.` and STOP.
17
+
18
+ Mutual exclusion rules:
19
+ - `--schedule` is handled entirely by this skill - it does not combine with the other three. If `--schedule` is present alongside any of `--refresh | --since | --feed`, print `--schedule cannot combine with other flags. Schedule registration runs this skill with no flags at the configured cadence.` and STOP.
20
+ - `--refresh` and `--since` are mutually exclusive - print `--refresh and --since are mutually exclusive. --refresh re-seeds the snapshot silently; --since surfaces a backlog from a boundary date. Pick one.` and STOP.
21
+
22
+ 2. **Handle `--schedule <cadence>` branch** (early-return).
23
+
24
+ If `--schedule` is set:
25
+ - Validate cadence ∈ {`weekly`, `daily`, `monthly`}; else print `Unknown cadence: <value>. Use one of: weekly, daily, monthly.` and STOP.
26
+ - Probe for the scheduled-tasks MCP via ToolSearch:
27
+
28
+ ```
29
+ ToolSearch({ query: "scheduled-tasks", max_results: 3 })
30
+ ```
31
+
32
+ - If the probe returns an empty result set: print `scheduled-tasks MCP not connected. Install it with: claude mcp add scheduled-tasks ... then retry with --schedule.` - this is a documented fallback (not an error). Terminate with `## WATCH COMPLETE` and exit 0.
33
+ - If the probe returns one or more `scheduled-tasks` tools: register the cron. Discover the MCP's registration tool name at runtime from the ToolSearch result and follow its schema. Target command: `{{command_prefix}}watch-authorities` with NO flags (the cron invokes the default diff-and-report behavior). Cadence → cron expression mapping:
34
+ - `weekly` → `0 9 * * 1` (Mondays 09:00 local)
35
+ - `daily` → `0 9 * * *` (every day 09:00 local)
36
+ - `monthly` → `0 9 1 * *` (1st of each month 09:00 local)
37
+ - After registration: print `Scheduled {{command_prefix}}watch-authorities to run <cadence>.` and terminate with `## WATCH COMPLETE`.
38
+
39
+ 3. **Validate `--since <date>`** (if present).
40
+
41
+ Accept ISO8601 (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM:SSZ`). Sanity-check via Bash `date -d "<value>" +%s` (GNU) or the POSIX equivalent `python3 -c "from datetime import datetime; datetime.fromisoformat('<value>'.replace('Z','+00:00'))"`. On parse failure: print `Invalid --since value: <value>. Use ISO8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).` and STOP.
42
+
43
+ If the parsed date is earlier than `2020-01-01`, ask: `Very old --since value: <value>. Did you mean something more recent? Proceed? [y/N]`. On anything other than `y`/`Y`, STOP.
44
+
45
+ 4. **Spawn the watcher.**
46
+
47
+ Build the `Task(subagent_type="design-authority-watcher", ...)` prompt. The prompt supplies the agent's required-reading block (watcher step 0), echoes the invocation flags verbatim (watcher Flags section), and instructs the agent to follow its own fetch/diff/classify/write loop:
48
+
49
+ ```
50
+ Task("design-authority-watcher", """
51
+ <required_reading>
52
+ @reference/authority-feeds.md
53
+ @.design/authority-snapshot.json
54
+ @.design/STATE.md
55
+ </required_reading>
56
+
57
+ Invocation flags: <joined flag list or "none">
58
+
59
+ Fetch the feeds listed in reference/authority-feeds.md, diff against .design/authority-snapshot.json,
60
+ classify new entries per the D-17 decision table, write .design/authority-snapshot.json and
61
+ .design/authority-report.md.
62
+
63
+ Terminate with ## WATCH COMPLETE.
64
+ """)
65
+ ```
66
+
67
+ `<joined flag list>` is the subset of `--refresh | --since <date> | --feed <name>` actually passed - e.g., `--refresh`, `--since 2026-03-01`, `--feed wai-aria-apg`, `--refresh --feed radix-ui-releases`, or literally `none` when no flags were supplied.
68
+
69
+ 5. **Print summary.**
70
+
71
+ After the agent returns:
72
+ - If STATE.md gained a `<blocker type="contract-violation">` on this run (snapshot version mismatch, hash-format violation, or over-200 entries per feed), surface the blocker verbatim and stop - do not print the default "review and reflect" line.
73
+ - Otherwise print the agent's one-line stdout summary (normal mode: `Surfaced N entries across M feeds. K skipped. See .design/authority-report.md.`; first-run / refresh mode: `Seeded snapshot for N feeds — next run will surface new entries.`) followed by: `Review and reflect: {{command_prefix}}reflect`.
74
+
75
+ 6. **Terminate with `## WATCH COMPLETE`.**
76
+
77
+ ## Do Not
78
+
79
+ - Do not modify `agents/design-authority-watcher.md`.
80
+ - Do not modify `agents/design-reflector.md` - Phase 13.2 does not touch the reflector agent (CONTEXT.md D-25).
81
+ - Do not write to `.design/authority-snapshot.json` or `.design/authority-report.md` directly - those are the agent's writes.
82
+ - Do not fetch URLs outside `reference/authority-feeds.md`. The whitelist is the allow-list.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: zoom-out
3
+ description: "Asks the agent to go up a layer of abstraction and map the relevant modules and callers using the project's CONTEXT.md vocabulary. Use when the user is working in an unfamiliar area of code and needs orientation before deep work."
4
+ disable-model-invocation: true
5
+ argument-hint: "[scope]"
6
+ ---
7
+
8
+ Source: mattpocock/skills (MIT) - adapted with permission. See `../NOTICE` for the full attribution block.
9
+
10
+ # Zoom Out
11
+
12
+ **Role:** Give the user a map, not a fix.
13
+
14
+ I don't know this area of code well. Go up a layer of abstraction. Give me a map of all the relevant modules and callers, using the project's domain glossary (`CONTEXT.md`) vocabulary.
15
+
16
+ When invoked, produce a one-screen map that names:
17
+
18
+ 1. **Modules in scope** - one-line description of each, using terms from `CONTEXT.md` (see `./../reference/context-md-format.md` for the schema). Do not invent terms.
19
+ 2. **Callers** - who calls these modules from elsewhere, with file paths.
20
+ 3. **Seams** - where data crosses module boundaries, named per `./../reference/architecture-vocabulary.md`.
21
+
22
+ Do not propose fixes. Do not write code. The output is a map.
23
+
24
+ If `CONTEXT.md` is absent, suggest `{{command_prefix}}discuss` to start one, but still produce the map using basenames and inferred terms.
25
+
26
+ ## ZOOM-OUT COMPLETE
@@ -1,7 +1,7 @@
1
1
  // sdk/cli/commands/build.ts — Phase 42 (COMPILE-06).
2
2
  //
3
3
  // `gdd-sdk build skills [--harness <id>] [--zip] [--check]` — compile the per-harness skill bundles
4
- // from skill-templates/ via the orchestrator scripts/build-skills.cjs. The orchestrator is a separate
4
+ // from scripts/skill-templates/ via the orchestrator scripts/build-skills.cjs. The orchestrator is a separate
5
5
  // dep-free CJS process (no bundling entanglement with the SDK); we resolve it relative to the package
6
6
  // root and spawn it, forwarding stdout/stderr.
7
7
  //
@@ -30,7 +30,7 @@ const BUILD_FLAGS: readonly FlagSpec[] = [
30
30
 
31
31
  export const BUILD_USAGE = `gdd-sdk build skills [flags]
32
32
 
33
- Compile per-harness skill bundles from skill-templates/ into dist/<bundle>/ (and regenerate the
33
+ Compile per-harness skill bundles from scripts/skill-templates/ into dist/<bundle>/ (and regenerate the
34
34
  committed Claude-Code surface skills/). One source, N provider bundles.
35
35
 
36
36
  Flags:
package/sdk/cli/index.js CHANGED
@@ -9664,7 +9664,7 @@ var BUILD_FLAGS = [
9664
9664
  ];
9665
9665
  var BUILD_USAGE = `gdd-sdk build skills [flags]
9666
9666
 
9667
- Compile per-harness skill bundles from skill-templates/ into dist/<bundle>/ (and regenerate the
9667
+ Compile per-harness skill bundles from scripts/skill-templates/ into dist/<bundle>/ (and regenerate the
9668
9668
  committed Claude-Code surface skills/). One source, N provider bundles.
9669
9669
 
9670
9670
  Flags:
@@ -9984,7 +9984,7 @@ Commands:
9984
9984
  query <op> Typed STATE.md read operations.
9985
9985
  audit Probe connections + dry-run verify.
9986
9986
  init Bootstrap a new project.
9987
- build skills Compile per-harness skill bundles from skill-templates/.
9987
+ build skills Compile per-harness skill bundles from scripts/skill-templates/.
9988
9988
  dashboard Open the GDD dashboard (TUI; --web for the browser graph).
9989
9989
 
9990
9990
  Use 'gdd-sdk <command> -h' for command-specific flags.
package/sdk/cli/index.ts CHANGED
@@ -36,7 +36,7 @@ Commands:
36
36
  query <op> Typed STATE.md read operations.
37
37
  audit Probe connections + dry-run verify.
38
38
  init Bootstrap a new project.
39
- build skills Compile per-harness skill bundles from skill-templates/.
39
+ build skills Compile per-harness skill bundles from scripts/skill-templates/.
40
40
  dashboard Open the GDD dashboard (TUI; --web for the browser graph).
41
41
 
42
42
  Use 'gdd-sdk <command> -h' for command-specific flags.
package/skills/README.md CHANGED
@@ -1,14 +1,21 @@
1
- # `skill-templates/` - Editable Skill Source (Single Source of Truth)
1
+ # `scripts/skill-templates/` - Editable Skill Source (Single Source of Truth)
2
2
 
3
3
  This directory is the **only** place to edit skill content. Every `SKILL.md` and sibling
4
4
  doc here is the editable truth - the per-skill prose, examples, procedure files
5
5
  (`*-procedure.md`, `*-rules.md`, emitters, etc.) all live here.
6
6
 
7
7
  The user-facing `skills/` directory at the repo root is a **build artifact**, not source.
8
- It's gitignored and regenerated automatically:
8
+ It is **committed** (since v1.58.1, NOT gitignored) and regenerated from this directory:
9
9
 
10
- - on `npm install` (via the `prepare` lifecycle script) - so developer clones work immediately
10
+ - on `npm install` (via the `prepare` lifecycle script) - so contributor clones rebuild it from source
11
11
  - on `npm pack` / `npm publish` (via `prepack`) - so the published tarball ships pre-built skills
12
+ - on demand via `node scripts/build-skills.cjs`, with the `build:skills:check` drift gate (CI)
13
+ failing the build whenever the committed `skills/` no longer matches `scripts/skill-templates/`
14
+
15
+ It stays in git because the Claude Code marketplace install path git-clones the plugin
16
+ **without** running `npm install`, so `./skills/` must already exist post-clone. v1.58.0
17
+ briefly gitignored it and broke that path; v1.58.1 restored it as a committed, drift-gated
18
+ build output.
12
19
 
13
20
  End users installing `@hegemonart/get-design-done` from the npm registry receive a tarball
14
21
  with `skills/` already built; no build step runs on their machine.
@@ -23,32 +30,33 @@ The previous layout (Phase 42) put templates under `source/skills/` AND committe
23
30
  rendered `skills/` alongside. That meant 232 tracked files for 116 distinct skills with
24
31
  identical content modulo a single placeholder substitution. Pure git churn.
25
32
 
26
- v1.58.0 fixes this: templates are tracked once at `skill-templates/`, the rendered output
33
+ v1.58.0 fixes this: templates are tracked once at `scripts/skill-templates/`, the rendered output
27
34
  is generated on demand.
28
35
 
29
36
  ## Source-of-truth split (what lives where)
30
37
 
31
38
  | Concern | Source of truth | How it reaches `skills/` |
32
39
  |---|---|---|
33
- | **Body content** (everything below the frontmatter) | `skill-templates/<slug>/SKILL.md` | `scripts/build-skills.cjs` walks `skill-templates/`, applies per-harness placeholder substitution, writes to `skills/` |
34
- | **Universal frontmatter** (`name`, `description`, `argument-hint`, `tools`, `user-invocable`, `disable-model-invocation`) | `scripts/lib/manifest/skills.json` | `scripts/generate-skill-frontmatter.cjs` writes the managed block into `skill-templates/<slug>/SKILL.md`, then `build:skills` copies it onward |
35
- | **Non-managed frontmatter** (e.g. `color`, `model`, custom keys) | `skill-templates/<slug>/SKILL.md` itself (preserved verbatim) | carried through both generators unchanged |
40
+ | **Body content** (everything below the frontmatter) | `scripts/skill-templates/<slug>/SKILL.md` | `scripts/build-skills.cjs` walks `scripts/skill-templates/`, applies per-harness placeholder substitution, writes to `skills/` |
41
+ | **Universal frontmatter** (`name`, `description`, `argument-hint`, `tools`, `user-invocable`, `disable-model-invocation`) | `scripts/lib/manifest/skills.json` | `scripts/generate-skill-frontmatter.cjs` writes the managed block into `scripts/skill-templates/<slug>/SKILL.md`, then `build:skills` copies it onward |
42
+ | **Non-managed frontmatter** (e.g. `color`, `model`, custom keys) | `scripts/skill-templates/<slug>/SKILL.md` itself (preserved verbatim) | carried through both generators unchanged |
36
43
 
37
- The forward direction is **`skills.json` -> `skill-templates/` -> `skills/`**.
44
+ The forward direction is **`skills.json` -> `scripts/skill-templates/` -> `skills/`**.
38
45
  Treat that direction as canonical; the `--extract` mode of `generate-skill-frontmatter.cjs` exists
39
46
  only to seed the manifest from current sources when reconciling drift.
40
47
 
41
48
  ## Editing protocol
42
49
 
43
- 1. **Edit body** -> modify `skill-templates/<slug>/SKILL.md` (anything below the frontmatter delimiter).
50
+ 1. **Edit body** -> modify `scripts/skill-templates/<slug>/SKILL.md` (anything below the frontmatter delimiter).
44
51
  2. **Edit universal frontmatter** -> modify `scripts/lib/manifest/skills.json`, then run
45
52
  `npm run generate:skill-frontmatter`.
46
- 3. **Edit non-managed frontmatter** -> modify `skill-templates/<slug>/SKILL.md` directly; the generator
53
+ 3. **Edit non-managed frontmatter** -> modify `scripts/skill-templates/<slug>/SKILL.md` directly; the generator
47
54
  preserves it.
48
- 4. **Regenerate the built surface** -> `npm run build:skills`. This rewrites the gitignored
49
- `skills/<slug>/SKILL.md` byte-for-byte from the templates.
55
+ 4. **Regenerate the built surface** -> `npm run build:skills`. This rewrites the committed
56
+ `skills/<slug>/SKILL.md` byte-for-byte from the templates; commit the regenerated `skills/`
57
+ alongside your template edit so the `build:skills:check` drift gate stays green.
50
58
  5. **Verify the build** -> `npm run build:skills:check` (CI gate) confirms compile determinism
51
- and that the on-disk `skills/` matches what `skill-templates/` would generate.
59
+ and that the on-disk `skills/` matches what `scripts/skill-templates/` would generate.
52
60
 
53
61
  ## Placeholders
54
62
 
@@ -68,7 +76,7 @@ Full grammar + the per-harness substitution table: `reference/skill-placeholders
68
76
 
69
77
  ## What npm ships
70
78
 
71
- `package.json` `files` lists `skills/` (the built surface); `skill-templates/` is repo-only and
79
+ `package.json` `files` lists `skills/` (the built surface); `scripts/skill-templates/` is repo-only and
72
80
  is **not** distributed via npm. The `prepack` lifecycle runs `npm run build:skills` so the tarball
73
81
  always contains a freshly-built `skills/`.
74
82
 
@@ -7,73 +7,46 @@ disable-model-invocation: true
7
7
 
8
8
  # Get Design Done - Help
9
9
 
10
- **Role:** Print a formatted reference of all `/gdd:` commands, grouped by purpose.
10
+ **Role:** Print a complete, formatted reference of every `/gdd:` command with a one-line description. The list is built from the skill manifest at runtime so it can never drift from the installed skills.
11
11
 
12
12
  ---
13
13
 
14
- ## Output
14
+ ## Procedure
15
15
 
16
- Print the following table:
16
+ 1. **Read the manifest.** Open `scripts/lib/manifest/skills.json`. Its `skills` array is the source of truth: one object per skill, each with a `name` (the command, used as `/gdd:<name>`) and a `description`. Some records also carry `user_invocable`, `disable_model_invocation`, `composes_with`, `next_skills`, and `registered_in_phase` - use those only to refine grouping, never to drop a skill.
17
+
18
+ 2. **Cover every skill.** The output must include every object in `skills` exactly once. Do not hardcode a command list and do not print a fixed count - the only authority is the manifest you just read. If a skill is in the manifest, it appears in the help; if it is removed from the manifest, it disappears from the help automatically.
19
+
20
+ 3. **One-line each.** For every skill, emit `/gdd:<name>` followed by a single condensed line drawn from its `description`. Trim each description to its first sentence (cut at the first sentence-ending period) so the table stays scannable. Strip any leading "Stage N of 5" boilerplate into a short `Stage N` tag where it helps. Never invent a description - if a record has only a terse `description`, use it verbatim (condensed).
21
+
22
+ 4. **Group sensibly.** The manifest has no explicit category field, so derive groups from what each skill does and lead with the ones users reach for first. A good order:
23
+ - **Pipeline stages (run in order):** `brief`, `explore`, `plan`, `design`, `verify` - the five-stage spine, in that sequence.
24
+ - **Standalone analysis:** one-shot audits and deltas (for example `style`, `darkmode`, `compare`, `audit`, `start`).
25
+ - **Navigation and status:** `next`, `help`, `progress`, `health`, `stats`, `quick`, `fast`.
26
+ - **Exploration and ideation:** `discuss`, `list-assumptions`, `sketch`, `sketch-wrap-up`, `spike`, `spike-wrap-up`, `map`, `bootstrap-ds`.
27
+ - **Lifecycle and session:** `new-project`, `new-cycle`, `complete-cycle`, `pause`, `resume`, `continue`, `do`, `ship`, `pr-branch`, `undo`.
28
+ - **Everything else:** every remaining skill not yet listed, alphabetically. This catch-all is what guarantees completeness - sweep the manifest for any `name` you have not already printed and place it here.
29
+
30
+ Grouping is a presentation aid, not a filter. If you are ever unsure where a skill belongs, fall back to a single alphabetical list of all manifest skills - completeness beats tidy buckets.
31
+
32
+ 5. **Render.** Use this header and shape (a fenced reference block):
17
33
 
18
34
  ```
19
- ━━━ Get Design Done Command Reference ━━━
35
+ === Get Design Done - Command Reference ===
20
36
 
21
37
  Pipeline stages (run in order):
22
- brief Stage 1 capture problem statement, audience, constraints → BRIEF.md
23
- explore Stage 2 inventory scan + design context interview → DESIGN.md, DESIGN-DEBT.md, DESIGN-CONTEXT.md
24
- plan Stage 3 — decompose into executable tasks → DESIGN-PLAN.md
25
- design Stage 4 — execute tasks with wave coordination → DESIGN-SUMMARY.md
26
- verify Stage 5 — audit, verify, score → DESIGN-VERIFICATION.md
38
+ brief <first sentence of brief.description>
39
+ explore <first sentence of explore.description>
40
+ ...
27
41
 
28
42
  Standalone analysis:
29
- style [Component] Generate component handoff doc → DESIGN-STYLE-[Name].md
30
- darkmode Audit dark mode architecture + contrast → DARKMODE-AUDIT.md
31
- compare Delta between baseline and verification COMPARE-REPORT.md
32
-
33
- Ergonomics:
34
- next Route to the next pipeline stage based on STATE.md
35
- help This reference
36
- progress Show current pipeline state
37
- health Health check of .design/ artifacts
38
- quick Fast pass through the whole pipeline
39
- fast Aggressive speed mode
40
-
41
- Exploration:
42
- discuss Open discussion thread with design-discussant agent
43
- list-assumptions Print active D-XX decisions from STATE.md
44
- sketch Open a design sketch scratchpad
45
- sketch-wrap-up Close sketch and merge learnings
46
- spike Time-boxed exploratory spike
47
- spike-wrap-up Close spike and capture outcomes
48
- map Map the codebase structure
49
- audit Run audit-only pass
50
-
51
- Maintenance:
52
- note Record a quick note to STATE.md
53
- plant-seed Record an idea for later
54
- add-backlog Append item to backlog
55
- review-backlog Review pending backlog
56
- todo List/manage design TODOs
57
- stats Print pipeline stats
58
- settings View/edit plugin settings
59
- update Update the plugin
60
- reapply-patches Reapply any pending patches
61
- debug Enter systematic debugging mode
62
- undo Revert the last stage action
63
-
64
- Lifecycle:
65
- new-project Initialize STATE.md + .design/ directory
66
- new-cycle Start a new design cycle on an existing project
67
- complete-cycle Archive the current cycle
68
- pause Pause work and save context
69
- resume Resume paused work
70
- do Execute a specific task
71
- ship Create PR from completed work
72
- pr-branch Create/switch PR branch
73
-
74
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
+ ...
44
+
45
+ (continue for every group, ending with the alphabetical catch-all)
75
46
  ```
76
47
 
48
+ Pad command names to a consistent column so descriptions align. Keep the `/gdd:` convention: show the bare name in the table (it is already understood to be a `/gdd:` command), and use the full `/gdd:<name>` form in any surrounding prose.
49
+
77
50
  ## Update notice (safe-window surface)
78
51
 
79
52
  After the command reference, emit the plugin-update banner if one is present:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-new-skill
3
- description: "Scaffolds a new Phase-28.5 + Phase-50-compliant skill: gathers a name, a multi-paragraph v3 description, a lifecycle stage, an allowed-tools list, and optional composes_with neighbours, then writes skill-templates/<name>/SKILL.md from the pure generator. Use when adding a brand-new gdd skill and you want the frontmatter, length cap, and v3 description form correct from the first commit. Activates for requests involving authoring a skill, scaffolding a command, creating a new SKILL.md, or adding a slash command."
3
+ description: "Scaffolds a new Phase-28.5 + Phase-50-compliant skill: gathers a name, a multi-paragraph v3 description, a lifecycle stage, an allowed-tools list, and optional composes_with neighbours, then writes scripts/skill-templates/<name>/SKILL.md from the pure generator. Use when adding a brand-new gdd skill and you want the frontmatter, length cap, and v3 description form correct from the first commit. Activates for requests involving authoring a skill, scaffolding a command, creating a new SKILL.md, or adding a slash command."
4
4
  argument-hint: "<skill-name>"
5
5
  tools: Read, Write, Bash, AskUserQuestion
6
6
  user-invocable: true
@@ -8,7 +8,7 @@ user-invocable: true
8
8
 
9
9
  # /gdd:new-skill
10
10
 
11
- **Role:** Interactively scaffold a contract-compliant skill. Gather the fields, then write `skill-templates/<name>/SKILL.md` from the pure generator at `scripts/lib/manifest/scaffolder.cjs`. This skill writes ONE source file. It does NOT touch `scripts/lib/manifest/skills.json` and does NOT run the build; it prints the exact follow-up commands instead.
11
+ **Role:** Interactively scaffold a contract-compliant skill. Gather the fields, then write `scripts/skill-templates/<name>/SKILL.md` from the pure generator at `scripts/lib/manifest/scaffolder.cjs`. This skill writes ONE source file. It does NOT touch `scripts/lib/manifest/skills.json` and does NOT run the build; it prints the exact follow-up commands instead.
12
12
 
13
13
  Read `reference/skill-authoring-contract.md` first for the length cap, the frontmatter required fields, and the v3 description form.
14
14
 
@@ -27,7 +27,7 @@ Either way the answers feed the same record builder. Never block waiting on a TT
27
27
 
28
28
  ## Step 1 - Gather the fields
29
29
 
30
- 1. **name**: the slug from `$ARGUMENTS` if present, else ask. Must match `^[a-z0-9][a-z0-9-._]*$`. Reject `skill-templates/<name>/` collisions.
30
+ 1. **name**: the slug from `$ARGUMENTS` if present, else ask. Must match `^[a-z0-9][a-z0-9-._]*$`. Reject `scripts/skill-templates/<name>/` collisions.
31
31
  2. **description**: a multi-paragraph v3 form. Sentence one is what the skill does. Sentence two is `Use when <triggers>`. Sentence three is `Activates for requests involving <kw1>, <kw2>, <kw3>.` Keep it 20 to 1024 chars.
32
32
  3. **lifecycle stage**: pick one of brief / explore / plan / verify / ship / figma / token / report (free text allowed). This seeds the composition suggestions.
33
33
  4. **tools**: a comma list (for example `Read, Write, Bash`). Empty means inherit-all.
@@ -45,7 +45,7 @@ Present the suggestions; let the user accept, edit, or clear them.
45
45
 
46
46
  ## Step 2 - Length pre-check
47
47
 
48
- Before writing, estimate the body length. If the planned body would exceed about 100 lines, warn the user (the authoring contract warns at 100 and blocks at 250) and suggest extracting domain content into a co-located `skill-templates/<name>/<topic>.md` reference. The generated skeleton is small; the warning is for the prose the user will add next.
48
+ Before writing, estimate the body length. If the planned body would exceed about 100 lines, warn the user (the authoring contract warns at 100 and blocks at 250) and suggest extracting domain content into a co-located `scripts/skill-templates/<name>/<topic>.md` reference. The generated skeleton is small; the warning is for the prose the user will add next.
49
49
 
50
50
  ## Step 3 - Write the file
51
51
 
@@ -66,7 +66,7 @@ process.stdout.write(s.renderSkillMd(rec));
66
66
  "
67
67
  ```
68
68
 
69
- `buildSkillRecord` throws on an invalid name, an out-of-budget description, or a malformed tools list. Surface the thrown message to the user and re-prompt the offending field. Capture stdout and write it verbatim to `skill-templates/<name>/SKILL.md` via the Write tool.
69
+ `buildSkillRecord` throws on an invalid name, an out-of-budget description, or a malformed tools list. Surface the thrown message to the user and re-prompt the offending field. Capture stdout and write it verbatim to `scripts/skill-templates/<name>/SKILL.md` via the Write tool.
70
70
 
71
71
  ## Step 4 - Tell the user the follow-up
72
72