@hegemonart/get-design-done 1.57.2 → 1.58.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 (159) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/CHANGELOG.md +87 -0
  4. package/README.md +1 -1
  5. package/SKILL.md +2 -6
  6. package/connections/cursor.md +0 -1
  7. package/hooks/gdd-intel-trigger.js +2 -2
  8. package/package.json +3 -3
  9. package/reference/DEPRECATIONS.md +18 -11
  10. package/reference/live-mode-integration.md +1 -1
  11. package/reference/registry.json +1 -1
  12. package/reference/skill-graph.md +1 -5
  13. package/reference/skill-metadata.md +4 -4
  14. package/reference/skill-placeholders.md +2 -2
  15. package/scripts/lib/manifest/scaffolder.cjs +1 -1
  16. package/scripts/lib/manifest/schemas/skills.schema.json +1 -1
  17. package/scripts/lib/manifest/skills.json +4 -24
  18. package/scripts/lib/new-addendum.cjs +1 -1
  19. package/scripts/lib/worktree-resolve.cjs +4 -16
  20. package/sdk/cli/commands/build.ts +2 -2
  21. package/sdk/cli/index.js +2 -2
  22. package/sdk/cli/index.ts +1 -1
  23. package/skills/README.md +82 -0
  24. package/skills/bootstrap-ds/SKILL.md +1 -1
  25. package/skills/compare/SKILL.md +1 -1
  26. package/skills/new-cycle/SKILL.md +1 -1
  27. package/skills/new-skill/SKILL.md +5 -5
  28. package/skills/peer-cli-customize/SKILL.md +0 -1
  29. package/skills/peers/SKILL.md +1 -1
  30. package/skills/reflect/procedures/capability-gap-scan.md +0 -1
  31. package/skills/report-issue/report-issue-procedure.md +0 -1
  32. package/skills/synthesize/SKILL.md +1 -1
  33. package/skills/turn-closeout/SKILL.md +1 -1
  34. package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +0 -48
  35. package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +0 -95
  36. package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +0 -109
  37. package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +0 -170
  38. package/dist/claude-code/.claude/skills/audit/SKILL.md +0 -79
  39. package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +0 -94
  40. package/dist/claude-code/.claude/skills/benchmark/SKILL.md +0 -65
  41. package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +0 -43
  42. package/dist/claude-code/.claude/skills/brief/SKILL.md +0 -145
  43. package/dist/claude-code/.claude/skills/budget/SKILL.md +0 -45
  44. package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +0 -66
  45. package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +0 -126
  46. package/dist/claude-code/.claude/skills/check-update/SKILL.md +0 -98
  47. package/dist/claude-code/.claude/skills/compare/SKILL.md +0 -82
  48. package/dist/claude-code/.claude/skills/compare/compare-rubric.md +0 -171
  49. package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +0 -81
  50. package/dist/claude-code/.claude/skills/connections/SKILL.md +0 -71
  51. package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +0 -608
  52. package/dist/claude-code/.claude/skills/context/SKILL.md +0 -137
  53. package/dist/claude-code/.claude/skills/continue/SKILL.md +0 -24
  54. package/dist/claude-code/.claude/skills/darkmode/SKILL.md +0 -76
  55. package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +0 -258
  56. package/dist/claude-code/.claude/skills/debug/SKILL.md +0 -41
  57. package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +0 -119
  58. package/dist/claude-code/.claude/skills/design/SKILL.md +0 -118
  59. package/dist/claude-code/.claude/skills/design/design-procedure.md +0 -304
  60. package/dist/claude-code/.claude/skills/discover/SKILL.md +0 -78
  61. package/dist/claude-code/.claude/skills/discover/discover-procedure.md +0 -222
  62. package/dist/claude-code/.claude/skills/discuss/SKILL.md +0 -96
  63. package/dist/claude-code/.claude/skills/do/SKILL.md +0 -45
  64. package/dist/claude-code/.claude/skills/explore/SKILL.md +0 -118
  65. package/dist/claude-code/.claude/skills/explore/explore-procedure.md +0 -267
  66. package/dist/claude-code/.claude/skills/export/SKILL.md +0 -30
  67. package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +0 -114
  68. package/dist/claude-code/.claude/skills/fast/SKILL.md +0 -91
  69. package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +0 -64
  70. package/dist/claude-code/.claude/skills/figma-write/SKILL.md +0 -50
  71. package/dist/claude-code/.claude/skills/graphify/SKILL.md +0 -49
  72. package/dist/claude-code/.claude/skills/health/SKILL.md +0 -99
  73. package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +0 -44
  74. package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +0 -69
  75. package/dist/claude-code/.claude/skills/help/SKILL.md +0 -87
  76. package/dist/claude-code/.claude/skills/instinct/SKILL.md +0 -111
  77. package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +0 -61
  78. package/dist/claude-code/.claude/skills/list-pins/SKILL.md +0 -27
  79. package/dist/claude-code/.claude/skills/live/SKILL.md +0 -98
  80. package/dist/claude-code/.claude/skills/locale/SKILL.md +0 -51
  81. package/dist/claude-code/.claude/skills/map/SKILL.md +0 -89
  82. package/dist/claude-code/.claude/skills/migrate/SKILL.md +0 -70
  83. package/dist/claude-code/.claude/skills/migrate-context/SKILL.md +0 -123
  84. package/dist/claude-code/.claude/skills/new-addendum/SKILL.md +0 -81
  85. package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +0 -37
  86. package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +0 -87
  87. package/dist/claude-code/.claude/skills/new-project/SKILL.md +0 -53
  88. package/dist/claude-code/.claude/skills/new-skill/SKILL.md +0 -90
  89. package/dist/claude-code/.claude/skills/next/SKILL.md +0 -68
  90. package/dist/claude-code/.claude/skills/note/SKILL.md +0 -48
  91. package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +0 -86
  92. package/dist/claude-code/.claude/skills/optimize/SKILL.md +0 -97
  93. package/dist/claude-code/.claude/skills/override/SKILL.md +0 -86
  94. package/dist/claude-code/.claude/skills/paper-write/SKILL.md +0 -54
  95. package/dist/claude-code/.claude/skills/pause/SKILL.md +0 -77
  96. package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +0 -88
  97. package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +0 -161
  98. package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +0 -90
  99. package/dist/claude-code/.claude/skills/peers/SKILL.md +0 -96
  100. package/dist/claude-code/.claude/skills/pencil-write/SKILL.md +0 -54
  101. package/dist/claude-code/.claude/skills/pin/SKILL.md +0 -37
  102. package/dist/claude-code/.claude/skills/plan/SKILL.md +0 -105
  103. package/dist/claude-code/.claude/skills/plan/plan-procedure.md +0 -278
  104. package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +0 -48
  105. package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +0 -32
  106. package/dist/claude-code/.claude/skills/progress/SKILL.md +0 -107
  107. package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +0 -90
  108. package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +0 -101
  109. package/dist/claude-code/.claude/skills/quick/SKILL.md +0 -44
  110. package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +0 -32
  111. package/dist/claude-code/.claude/skills/recall/SKILL.md +0 -75
  112. package/dist/claude-code/.claude/skills/reflect/SKILL.md +0 -85
  113. package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +0 -120
  114. package/dist/claude-code/.claude/skills/report-issue/SKILL.md +0 -53
  115. package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +0 -120
  116. package/dist/claude-code/.claude/skills/resume/SKILL.md +0 -93
  117. package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +0 -46
  118. package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +0 -42
  119. package/dist/claude-code/.claude/skills/roi/SKILL.md +0 -54
  120. package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +0 -35
  121. package/dist/claude-code/.claude/skills/router/SKILL.md +0 -89
  122. package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +0 -65
  123. package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +0 -78
  124. package/dist/claude-code/.claude/skills/router/router-rules.md +0 -84
  125. package/dist/claude-code/.claude/skills/scan/SKILL.md +0 -92
  126. package/dist/claude-code/.claude/skills/scan/scan-procedure.md +0 -732
  127. package/dist/claude-code/.claude/skills/settings/SKILL.md +0 -87
  128. package/dist/claude-code/.claude/skills/ship/SKILL.md +0 -48
  129. package/dist/claude-code/.claude/skills/sketch/SKILL.md +0 -78
  130. package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +0 -92
  131. package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +0 -79
  132. package/dist/claude-code/.claude/skills/spike/SKILL.md +0 -67
  133. package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +0 -86
  134. package/dist/claude-code/.claude/skills/start/SKILL.md +0 -67
  135. package/dist/claude-code/.claude/skills/start/start-procedure.md +0 -115
  136. package/dist/claude-code/.claude/skills/state/SKILL.md +0 -106
  137. package/dist/claude-code/.claude/skills/stats/SKILL.md +0 -51
  138. package/dist/claude-code/.claude/skills/style/SKILL.md +0 -71
  139. package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +0 -150
  140. package/dist/claude-code/.claude/skills/synthesize/SKILL.md +0 -94
  141. package/dist/claude-code/.claude/skills/timeline/SKILL.md +0 -66
  142. package/dist/claude-code/.claude/skills/todo/SKILL.md +0 -64
  143. package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +0 -95
  144. package/dist/claude-code/.claude/skills/undo/SKILL.md +0 -31
  145. package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +0 -54
  146. package/dist/claude-code/.claude/skills/unpin/SKILL.md +0 -31
  147. package/dist/claude-code/.claude/skills/update/SKILL.md +0 -56
  148. package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +0 -78
  149. package/dist/claude-code/.claude/skills/verify/SKILL.md +0 -113
  150. package/dist/claude-code/.claude/skills/verify/verify-procedure.md +0 -511
  151. package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +0 -81
  152. package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +0 -82
  153. package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +0 -26
  154. package/hooks/run-hook.cmd +0 -35
  155. package/skills/discover/SKILL.md +0 -78
  156. package/skills/discover/discover-procedure.md +0 -222
  157. package/skills/new-cycle/milestone-completeness-rubric.md +0 -87
  158. package/skills/scan/SKILL.md +0 -92
  159. package/skills/scan/scan-procedure.md +0 -732
@@ -1,115 +0,0 @@
1
- ---
2
- name: start-procedure
3
- type: heuristic
4
- version: 1.0.0
5
- phase: 28.5
6
- tags: [start, first-run, proof-path, scan, writer-agent, handoff]
7
- last_updated: 2026-05-18
8
- ---
9
-
10
- # Start Skill - Full Procedure
11
-
12
- Extracted from `skills/start/SKILL.md` per Phase 28.5 D-10 (extract-then-link, never delete
13
- content). The skill keeps its arguments table, step headings, and non-goals; the per-step
14
- operational detail (interview JSON shape, scan invocation, writer spawn payload, handoff
15
- template) lives here so the SKILL stays under the 100-line cap.
16
-
17
- The companion file `./start-interview.md` (Phase 27 ship) holds the 5-question copy,
18
- defaults, and validation rules. This file documents what `/gdd:start` does WITH the answers.
19
-
20
- ## Step 0 - Dismiss-only shortcut
21
-
22
- If invoked with `--dismiss-nudge`:
23
-
24
- 1. `touch ~/.claude/gdd-nudge-dismissed` (Windows: equivalent). Ignore errors silently.
25
- 2. Print exactly: `Nudge dismissed. Delete ~/.claude/gdd-nudge-dismissed to re-enable.`
26
- 3. Exit with `## START COMPLETE` marker.
27
-
28
- Do not proceed to any other step.
29
-
30
- ## Step 1 - Detect UI root
31
-
32
- Run the detector:
33
-
34
- ```bash
35
- node "${CLAUDE_PLUGIN_ROOT}/scripts/lib/detect-ui-root.cjs" "$(pwd)"
36
- ```
37
-
38
- Capture the JSON output. Branches:
39
-
40
- - `kind: "backend-only"` → print the frontend-only diagnostic below, write nothing, exit with `## START COMPLETE`. The diagnostic copy is:
41
- > `/gdd:start` is for frontend codebases. This repo looks backend-only (detected `<framework>`). The plugin can still help with design references and component libraries imported by your clients - but there is no UI surface here to scan. Exiting without creating `.design/`.
42
- - `kind: null` (no package.json, no UI dir) → print a short "Nothing recognizable here - point me at a frontend repo and try again." and exit.
43
- - Any other `kind` → proceed with `detected.path` as the scan root.
44
-
45
- ## Step 2 - Run the 5-question interview
46
-
47
- Read `./start-interview.md` for the exact question copy, defaults, and validation rules.
48
-
49
- If `--skip-interview`, skip this step and use the defaults documented in that file.
50
-
51
- Otherwise, ask the five questions in order using `AskUserQuestion`:
52
-
53
- 1. Pain point (text, required, single-line cap 120 chars)
54
- 2. Target area confirmation (detected path)
55
- 3. Budget / latency preference (enum: fast / balanced / thorough)
56
- 4. Framework + design-system confirmation (from detection)
57
- 5. Figma / canvas workflow (enum: figma / canvas / neither / skip)
58
-
59
- Any early exit at Q1 → abort with a one-line pointer to `/gdd:scan`.
60
-
61
- Store the answers + detection result in `.design/.start-context.json`:
62
-
63
- ```json
64
- {
65
- "schema_version": "1.0",
66
- "detected": { "kind": "...", "path": "...", "framework": "...", "design_system": "...", "confidence": 0.85 },
67
- "interview": { "pain": "...", "target_area": "...", "budget": "balanced", "framework_confirmed": true, "design_system_confirmed": true, "figma_workflow": "skip" },
68
- "generated_at": "<ISO-8601>"
69
- }
70
- ```
71
-
72
- `.design/` is created here for the first time. `.design/STATE.md` is NOT written.
73
-
74
- ## Step 3 - Scan findings
75
-
76
- Run the findings engine:
77
-
78
- ```bash
79
- node "${CLAUDE_PLUGIN_ROOT}/scripts/lib/start-findings-engine.cjs" \
80
- --root "<detected.path>" \
81
- --budget "<budget>" \
82
- --pain "<pain_point>"
83
- ```
84
-
85
- Capture the JSON. The output carries at most three findings, each with stable IDs `F1`..`F3`, plus `bestFirstProofId` (may be null).
86
-
87
- Append the engine output to `.design/.start-context.json` under a `scan` key.
88
-
89
- ## Step 4 - Spawn the writer
90
-
91
- Dispatch `Task` with:
92
-
93
- - `subagent_type: design-start-writer`
94
- - `description: "Write .design/START-REPORT.md"`
95
- - `prompt:` a short instruction pointing the agent at `.design/.start-context.json` and asking it to emit the report per its Output contract. Include a reminder that it must produce exactly 7 H2 sections plus the JSON block, and must not write `STATE.md`.
96
-
97
- Wait for the agent to complete. The agent writes `.design/START-REPORT.md`.
98
-
99
- ## Step 5 - Print the handoff
100
-
101
- Read the final line of `.design/START-REPORT.md` to capture the suggested command.
102
-
103
- Print exactly (one line, no emoji):
104
-
105
- ```
106
- Report written to .design/START-REPORT.md. Next: run <suggested_command> to see the first proof.
107
- ```
108
-
109
- If `bestFirstProofId` was null, the suggested command is `/gdd:brief` (the default fallback).
110
-
111
- Emit `## START COMPLETE` and exit.
112
-
113
- ## Failure handling
114
-
115
- Every error path exits with `## START COMPLETE` and a one-line pointer. Do not half-write files: if the writer agent fails, keep `.design/.start-context.json` and tell the user they can rerun. Do not delete `.design/` unless it was empty before the run.
@@ -1,106 +0,0 @@
1
- ---
2
- name: gdd-state
3
- description: "Query, recover, or roll back the Phase 57 SQLite state backbone. Use when you need to inspect the decisions/blockers/plans tables with a raw SELECT, rebuild a corrupt state.sqlite from the markdown STATE.md, or revert to the markdown-only source of truth by removing state.sqlite. Activates for requests involving querying the SQLite state database, recovering from SQLite corruption, or reverting the migration (demigrate)."
4
- argument-hint: "<query \"<sql>\" | recover | demigrate>"
5
- user-invocable: true
6
- tools: Read, Bash, Grep, Glob
7
- ---
8
-
9
- # /gdd:state
10
-
11
- The Phase 57 SQLite state backbone is opt-in (`--migrate-state`) and fully reversible.
12
- Markdown `.design/STATE.md` is always the human-editable SoT; SQLite is a faster query
13
- layer derived from it. This skill exposes three subcommands for operating on that layer.
14
-
15
- ## Subcommands
16
-
17
- | Subcommand | What it does |
18
- |---|---|
19
- | `/gdd:state query "<sql>"` | Run a read-only SELECT against `.design/state.sqlite`. |
20
- | `/gdd:state recover` | Rotate the current sqlite to a `.bak` and rebuild from markdown. |
21
- | `/gdd:state demigrate` | Remove `.design/state.sqlite`; markdown becomes the SoT again. |
22
-
23
- ---
24
-
25
- ## query
26
-
27
- Execute a read-only SELECT against the state database.
28
-
29
- The engine opens the file with `readonly:true` so all writes are rejected at the
30
- engine level. A first-token denylist (Set membership, no regex) additionally blocks
31
- DROP, DELETE, UPDATE, INSERT, ALTER, ATTACH, CREATE, PRAGMA, VACUUM, ANALYZE,
32
- REINDEX, and REPLACE before the connection is opened.
33
-
34
- ```bash
35
- node -e '
36
- const qs = require("./scripts/lib/state/query-surface.cjs");
37
- const result = qs.query(process.argv[1], { projectRoot: process.cwd() });
38
- console.log(JSON.stringify(result, null, 2));
39
- ' "<sql>"
40
- ```
41
-
42
- Outputs `{ rows: [...], backend: "sqlite" }` on success, or
43
- `{ degraded: true, message: "..." }` when SQLite is not active.
44
-
45
- Degrades gracefully (no throw) when `BACKEND==='markdown'` or when
46
- `.design/state.sqlite` has not been created yet (run `--migrate-state` first).
47
-
48
- ---
49
-
50
- ## recover
51
-
52
- Rotate the current (possibly corrupt) `.design/state.sqlite` to `.bak.0`, then
53
- rebuild a fresh database from the markdown `.design/STATE.md` using
54
- `migrate-to-sqlite.cjs` in force mode. Runs `PRAGMA integrity_check` on the
55
- result and reports the outcome.
56
-
57
- ```bash
58
- node -e '
59
- const qs = require("./scripts/lib/state/query-surface.cjs");
60
- const result = qs.recover({ projectRoot: process.cwd() });
61
- console.log(JSON.stringify(result, null, 2));
62
- '
63
- ```
64
-
65
- Outputs `{ recovered: true, integrity: true, message: "..." }` on success.
66
-
67
- Backup rotation keeps at most 10 files (`.bak.0` through `.bak.9`). The oldest
68
- backup is overwritten when the cap is reached.
69
-
70
- ---
71
-
72
- ## demigrate
73
-
74
- Remove `.design/state.sqlite` so the markdown `STATE.md` becomes the SoT again.
75
- Idempotent: if the file does not exist, returns a clear no-op message without error.
76
- A backup is taken in `.bak.0` before removal.
77
-
78
- ```bash
79
- node -e '
80
- const qs = require("./scripts/lib/state/query-surface.cjs");
81
- const result = qs.demigrate({ projectRoot: process.cwd() });
82
- console.log(JSON.stringify(result, null, 2));
83
- '
84
- ```
85
-
86
- Outputs `{ demigrated: true, message: "..." }` when the file was removed, or
87
- `{ demigrated: false, message: "..." }` when it was already absent (no-op).
88
-
89
- To re-enable SQLite after a demigrate, run `--migrate-state` again.
90
-
91
- ---
92
-
93
- ## Key design decisions
94
-
95
- - **Markdown is always the SoT.** SQLite is opt-in via `--migrate-state` and
96
- reversible via `demigrate`. The markdown file is never silently overwritten.
97
- - **Read-only queries only.** The `query` subcommand enforces SELECT-only via both
98
- the engine (`readonly:true`) and a defense-in-depth denylist. No writes
99
- are possible through this skill.
100
- - **Backup rotation cap.** `rotateBak` shifts `.bak.0..8` up by one index and caps
101
- at `.bak.9` (10 files total). The oldest backup is overwritten automatically.
102
- - **Graceful degradation.** All subcommands return a clear `{ degraded, message }`
103
- object (no throw) when `better-sqlite3` is not installed or when
104
- `GDD_STATE_BACKEND=markdown` is set.
105
-
106
- ## STATE COMPLETE
@@ -1,51 +0,0 @@
1
- ---
2
- name: gdd-stats
3
- description: "Cycle stats - decisions made, tasks completed, commits, timeline, git metrics."
4
- tools: Read, Bash
5
- disable-model-invocation: true
6
- ---
7
-
8
- # /gdd:stats
9
-
10
- **Role:** Print cycle metrics.
11
-
12
- ## Step 1 - Read state
13
-
14
- Read `.design/STATE.md`. Extract:
15
- - `cycle:` and `started_at` (or per-cycle start date if present in CYCLES.md)
16
- - D-XX count under `<decisions>`
17
-
18
- ## Step 2 - Collect git metrics
19
-
20
- Let `<since>` = cycle start date (fallback to STATE.md `started_at`).
21
-
22
- ```bash
23
- git log --oneline --since="<since>" | wc -l # commits
24
- git diff --stat HEAD~N HEAD # files changed since cycle start
25
- ```
26
-
27
- If git unavailable, print `git: unavailable` and skip git metrics.
28
-
29
- ## Step 3 - Count todos
30
-
31
- Read `.design/TODO.md` if present:
32
- - pending: count `- [ ]`
33
- - in-progress: count `- [-]`
34
- - done: count `- [x]`
35
- - group pending by P0/P1/P2/P3 section
36
-
37
- ## Step 4 - Output
38
-
39
- ```
40
- ━━━ Cycle stats ━━━
41
- Cycle: cycle-1 Started: 2026-04-18
42
- Decisions made: 12 (D-01..D-12)
43
- Tasks completed: 8 / 10
44
- Git commits: 23
45
- Files changed: 47
46
- Open todos: 3 (P0: 1, P1: 2, P2: 0, P3: 0)
47
- Agents spawned: — (no task log)
48
- ━━━━━━━━━━━━━━━━━━
49
- ```
50
-
51
- ## STATS COMPLETE
@@ -1,71 +0,0 @@
1
- ---
2
- name: gdd-style
3
- description: "Generate a component handoff doc at `.design/DESIGN-STYLE-<ComponentName>.md` by dispatching the `design-doc-writer` agent in one of two modes: post-pipeline (uses `DESIGN-SUMMARY.md`) or pre-pipeline fallback (uses `DESIGN.md` + source). Use when the user wants a single-component spec covering tokens, states, and AI-slop detection. Invoke with a ComponentName, or with no argument to list available components."
4
- argument-hint: "[ComponentName]"
5
- user-invocable: true
6
- ---
7
-
8
- # gdd-style - Component Handoff Doc Generator
9
-
10
- Generates a per-component style spec at `.design/DESIGN-STYLE-[ComponentName].md`. This is a **standalone command**, not a pipeline stage.
11
-
12
- For the full mode-detection logic, source-resolution fallback chain (10 paths), agent-spawn payload, and STYL-05 section spec, see `./style-doc-procedure.md`. For the cross-skill output discipline (artifact prefix, completion marker, MUST-NOT-write list), see `../../reference/shared-preamble.md#output-contract-reminders`. For the raw-hex audit signal used in Token Semantic Health Score, see `../../reference/shared-preamble.md#token-first-reasoning`.
13
-
14
- Output artifact naming: `.design/DESIGN-STYLE-[ComponentName].md` - Title-cased component name, one file per invocation.
15
-
16
- ---
17
-
18
- ## Scope
19
-
20
- This command is **additive and non-destructive**:
21
-
22
- - It is NOT a pipeline stage - no `.design/STATE.md` read or write contract.
23
- - Output lives in the `DESIGN-STYLE-*.md` namespace - distinct from the pipeline namespace (`DESIGN.md`, `DESIGN-CONTEXT.md`, `DESIGN-PLAN.md`, `DESIGN-SUMMARY.md`, `DESIGN-VERIFICATION.md`).
24
- - It does not modify any pipeline artifact.
25
- - It does not invoke the pipeline router.
26
- - One doc per invocation - no batch mode in v3.
27
-
28
- This separation is a pre-roadmap decision recorded in `.planning/STATE.md`: utility commands use distinct prefixes (`DESIGN-STYLE-[Component].md`); the pipeline owns the `DESIGN-*.md` namespace without qualifiers.
29
-
30
- ---
31
-
32
- ## Workflow
33
-
34
- 1. **Argument check** - if `$ARGUMENTS` is empty, enter list mode (see `./style-doc-procedure.md#component-source-resolution`); display available components from `src/components/` + `.design/tasks/`, then exit.
35
- 2. **Mode detect** - `DESIGN-SUMMARY.md` exists → post-pipeline; else `DESIGN.md` exists → pre-pipeline; else abort with a "run /get-design-done scan first" message. Full decision tree at `./style-doc-procedure.md#mode-detection`.
36
- 3. **Source resolve** - search the 10-path fallback chain for a file matching the ComponentName. On zero matches: abort. On multiple matches: prompt the user to disambiguate.
37
- 4. **Agent spawn** - dispatch `design-doc-writer` with the mode-specific `<required_reading>` block and the STYL-05 section list. The full Task payload + STYL-05 spec live in `./style-doc-procedure.md#agent-spawn-payload`.
38
- 5. **Confirm + report** - after the agent emits `## DOC COMPLETE`, verify the output path exists and report success.
39
-
40
- ---
41
-
42
- ## Constraints
43
-
44
- This command MUST NOT (per `../../reference/shared-preamble.md#output-contract-reminders`):
45
-
46
- - Write to `DESIGN.md`, `DESIGN-SUMMARY.md`, `DESIGN-VERIFICATION.md`, `DESIGN-CONTEXT.md`, or `.design/STATE.md`
47
- - Invoke the pipeline router (this command is a leaf invocation, not a pipeline stage)
48
- - Require Figma or Refero MCPs - v3 uses only local source files and `.design/` artifacts (MCP enrichment is reserved for a future version)
49
- - Produce more than one output file per invocation - no batch mode in v3
50
-
51
- ---
52
-
53
- ## Examples
54
-
55
- **Example 1: Named component**
56
-
57
- ```
58
- /get-design-done style Button
59
- ```
60
-
61
- Resolves `src/components/Button.tsx`, detects post-pipeline mode (DESIGN-SUMMARY.md exists), spawns `design-doc-writer` with `pipeline_complete: true`, writes `.design/DESIGN-STYLE-Button.md`.
62
-
63
- **Example 2: No argument (list mode)**
64
-
65
- ```
66
- /get-design-done style
67
- ```
68
-
69
- Globs component files and prompts the user to specify a ComponentName. Exits without generating any file. See `./style-doc-procedure.md#component-source-resolution` for the full glob path list.
70
-
71
- ## STYLE COMPLETE
@@ -1,150 +0,0 @@
1
- ---
2
- name: style-doc-procedure
3
- type: meta-rules
4
- version: 1.0.0
5
- phase: 28.5
6
- tags: [style, handoff, component-spec, doc-writer, procedure, extracted]
7
- last_updated: 2026-05-18
8
- ---
9
-
10
- Source: extracted from `skills/style/SKILL.md` (Phase 28.5 rework - D-10 extract-then-link).
11
- The skill's essential routing + mode-detection stays in `../skills/style/SKILL.md`; this file
12
- holds the agent-spawn payload, source-resolution paths, and the per-section spec the
13
- `design-doc-writer` agent produces. See `./shared-preamble.md#output-contract-reminders` for
14
- the cross-skill output discipline.
15
-
16
- # Style Doc Procedure
17
-
18
- Detailed procedure for the `gdd-style` standalone command - companion to
19
- `../skills/style/SKILL.md`. Read this file when executing the agent-spawn step (Step 4 in the
20
- skill) or when wiring the source-resolution fallback chain. The SKILL.md keeps the essential
21
- mode detection + decision tree; this file holds the deep methodology.
22
-
23
- ---
24
-
25
- ## Mode Detection
26
-
27
- ```
28
- If .design/DESIGN-SUMMARY.md exists:
29
- mode = post-pipeline (STYL-03)
30
- pipeline_complete = true
31
-
32
- Elif .design/DESIGN.md exists:
33
- mode = pre-pipeline (STYL-04)
34
- pipeline_complete = false
35
-
36
- Else:
37
- Abort: "No .design/ artifacts found. Run /get-design-done scan first to initialize."
38
- ```
39
-
40
- The mode controls which files are supplied to the agent in `<required_reading>`.
41
-
42
- ---
43
-
44
- ## Component Source Resolution
45
-
46
- Search for a source file matching the provided ComponentName (case-insensitive):
47
-
48
- 1. `src/components/[ComponentName].tsx`
49
- 2. `src/components/[ComponentName].jsx`
50
- 3. `src/components/[ComponentName].vue`
51
- 4. `src/components/[ComponentName].svelte`
52
- 5. `src/**/[ComponentName]/index.tsx`
53
- 6. `src/**/[ComponentName]/index.jsx`
54
- 7. `components/[ComponentName].tsx`
55
- 8. `components/[ComponentName].jsx`
56
- 9. `components/[ComponentName].vue`
57
- 10. `components/[ComponentName].svelte`
58
-
59
- **If multiple matches found:** Present the list to the user and prompt them to specify the exact path. Do not proceed until a single file is selected.
60
-
61
- **If zero matches found:** Abort with: "Component [ComponentName] not found in expected paths. Verify the name matches a file in src/components/ or components/."
62
-
63
- When `$ARGUMENTS` is empty, the skill enters **list mode** - glob the same source roots, also list task names from `.design/tasks/*.md` (if directory exists), display the list, and prompt the user to specify a ComponentName. Exit without generating any file.
64
-
65
- ---
66
-
67
- ## Agent Spawn Payload
68
-
69
- Once mode and source path are resolved, spawn the `design-doc-writer` agent:
70
-
71
- ```
72
- Task("design-doc-writer", """
73
- <required_reading>
74
- [If pipeline_complete=true:]
75
- @.design/STATE.md
76
- @.design/DESIGN-SUMMARY.md
77
- @.design/DESIGN-CONTEXT.md
78
- @<component_source_path>
79
- [Else (pipeline_complete=false):]
80
- @.design/DESIGN.md
81
- @<component_source_path>
82
- @reference/anti-patterns.md
83
- @reference/audit-scoring.md
84
- </required_reading>
85
-
86
- Generate a handoff spec for component <ComponentName>.
87
-
88
- Context:
89
- component_name: <ComponentName>
90
- component_source_path: <resolved absolute path>
91
- pipeline_complete: <true|false>
92
- output_path: .design/DESIGN-STYLE-<ComponentName>.md
93
-
94
- Produce the doc per STYL-05 sections:
95
- - Spacing Tokens (used by component)
96
- - Color Tokens (used by component)
97
- - Typography Scale (used by component)
98
- - Component States (default, hover, focus, active, disabled, etc.)
99
- - Token Semantic Health Score (raw-hex-ratio formula — see ./shared-preamble.md#token-first-reasoning)
100
- - AI-Slop Detection (using ./anti-patterns.md BAN/SLOP patterns)
101
- [If pipeline_complete=true:]
102
- - Decisions Applied (D-XX from DESIGN-SUMMARY.md that mention this component)
103
-
104
- Emit ## DOC COMPLETE when the output file is written.
105
- """)
106
- ```
107
-
108
- After the agent emits `## DOC COMPLETE`, confirm the file exists at `output_path` and report success to the user.
109
-
110
- ---
111
-
112
- ## STYL-05 Section Spec
113
-
114
- Each generated `.design/DESIGN-STYLE-[ComponentName].md` SHOULD contain (in this order):
115
-
116
- 1. **Spacing Tokens** - every spacing token the component uses (paddings, gaps, margins). Cross-reference `./composition.md` for the 4 px / 8 px modular scale discipline.
117
- 2. **Color Tokens** - every color token the component uses (background, foreground, border, focus ring, state-overlays). Cross-reference `./palette-catalog.md` for naming convention and `./shared-preamble.md#token-first-reasoning` for the raw-hex audit threshold.
118
- 3. **Typography Scale** - type ramps the component reaches into (label, body, code, etc.) with size + line-height + weight. Cross-reference `./typography.md`.
119
- 4. **Component States** - default, hover, focus, active, disabled, loading, error. Each row: token diff vs default.
120
- 5. **Token Semantic Health Score** - raw-hex ratio = `raw_hex_count / total_color_uses`. Healthy < 5 %.
121
- 6. **AI-Slop Detection** - apply `./anti-patterns.md` `BAN-*` and `SLOP-*` patterns to the component source. List violations.
122
- 7. **Decisions Applied** (post-pipeline only) - D-XX entries from `DESIGN-SUMMARY.md` that name or describe this component.
123
-
124
- ---
125
-
126
- ## Examples
127
-
128
- **Example 1: Named component**
129
-
130
- ```
131
- /get-design-done style Button
132
- ```
133
-
134
- - Resolves component: `src/components/Button.tsx`
135
- - Detects mode: DESIGN-SUMMARY.md exists → post-pipeline
136
- - Spawns `design-doc-writer` with `pipeline_complete: true`
137
- - Output: `.design/DESIGN-STYLE-Button.md`
138
-
139
- **Example 2: No argument (list mode)**
140
-
141
- ```
142
- /get-design-done style
143
- ```
144
-
145
- - Globs component files from `src/components/`
146
- - Displays available components and exits without generating any file.
147
-
148
- ---
149
-
150
- *Imported by: `../skills/style/SKILL.md`. Maintained as part of Phase 28.5 (Bucket 2 rework).*
@@ -1,94 +0,0 @@
1
- ---
2
- name: synthesize
3
- description: "Streaming synthesizer - collapses N parallel-agent markdown outputs into one compact merged summary via a single Haiku 4.5 call. Invoked inline by orchestrators (skills/map/, skills/discover/, skills/plan/) after parallel spawns return. Not user-invocable."
4
- tools: Read, Task
5
- user-invocable: false
6
- disable-model-invocation: true
7
- ---
8
-
9
- @reference/shared-preamble.md
10
-
11
- # synthesize
12
-
13
- ## Role
14
-
15
- Reusable streaming synthesizer. You receive N markdown strings (parallel-agent outputs) plus a directive, emit one compact merged output in the format the directive specifies. Inline-invoked - no Task() spawn overhead; thin Haiku 4.5 merge call wrapped in a skill.
16
-
17
- You are not an orchestrator, not an auditor, not a second-pass reviewer. You preserve every distinct signal from the inputs, consolidate duplicates with source tags, and return a single merged artifact. The invoking orchestrator writes the result to disk; you do not touch the filesystem.
18
-
19
- ## When to use
20
-
21
- **Use synthesize when:**
22
- - Parallel-mapper / parallel-researcher produced N overlapping outputs and main-context doesn't need them verbatim.
23
- - The downstream consumer wants one cross-cutting summary (e.g., `.design/DESIGN-PATTERNS.md` merged from 5 per-concern mappers).
24
- - The per-agent output files remain on disk as drill-down - the synthesized artifact becomes the compact canonical input.
25
-
26
- **Do NOT use synthesize when:**
27
- - A single-agent flow produced the output (nothing to merge).
28
- - A verify/check-mode flow returned a structured gap list (merging breaks the gap-id → severity → location mapping).
29
- - A downstream consumer needs every byte verbatim for grep (e.g., decision-wiring checker that matches exact D-XX anchors).
30
-
31
- ## Input Contract
32
-
33
- The invoking orchestrator passes three fields:
34
-
35
- - `outputs: string[]` - N labeled strings, each pre-labeled with `=== from <agent-name> ===\n<content>` so the merge call can trace per-signal provenance.
36
- - `directive: string` - merge instruction (format, target length, which headers to preserve, how to tag sources). Default when empty: `"produce a single merged summary preserving all distinct signals, grouped by natural section headers"`.
37
- - `output_shape: "markdown" | "json"` - controls the output format. Defaults to `"markdown"`.
38
-
39
- ## Implementation
40
-
41
- Single Haiku 4.5 call with this exact merge-prompt template:
42
-
43
- ```
44
- You have received {N} outputs from parallel agents. Each output is labeled with its source.
45
-
46
- Directive: {directive}
47
-
48
- Outputs:
49
- {each labeled with === from <agent-name> === and its full content}
50
-
51
- Produce the merged result in the format specified by the directive.
52
- Preserve every distinct signal — do NOT drop content. Consolidate duplicates
53
- (same finding mentioned by multiple agents) into a single entry with the
54
- source-agent names listed. Keep section headers intact when the directive
55
- requests section preservation.
56
-
57
- Emit ONLY the merged output — no preamble, no meta-commentary.
58
- ```
59
-
60
- Tier is hard-coded to `haiku` per D-14. Orchestrators should **not** re-route this to Sonnet - the merge is structure-preserving, not generative, and Haiku handles it without quality loss.
61
-
62
- ## Output Contract
63
-
64
- - **Markdown shape (`output_shape: "markdown"`)** → emit the merged markdown inline, then `## SYNTHESIS COMPLETE` on its own final line. No code fence wrapping the merged output.
65
- - **JSON shape (`output_shape: "json"`)** → emit the merged JSON object inline (no fence), then `## SYNTHESIS COMPLETE` on its own final line.
66
-
67
- The orchestrator is responsible for:
68
- - Stripping the `## SYNTHESIS COMPLETE` marker before writing to the target file.
69
- - Persisting the merged artifact to disk (e.g., `.design/DESIGN-PATTERNS.md`).
70
- - Keeping per-agent files on disk as drill-down evidence.
71
-
72
- ## Cost and Tier
73
-
74
- Hard-coded to Haiku 4.5 per D-14. `budget.json.tier_overrides.synthesize` can override. Typical cost per invocation: $0.002–$0.02 - dominated by input tokens (5 × ~1500-line mapper outputs ≈ 7.5k input tokens, merge output ≈ 1k output tokens).
75
-
76
- ## Failure Modes
77
-
78
- - **Empty `outputs: []`** → emit an empty string followed immediately by `## SYNTHESIS COMPLETE`. Do NOT error - the orchestrator handles the empty case (e.g., `--only <name>` in map skipped the parallel dispatch).
79
- - **Empty `directive`** → apply the default directive: `"produce a single merged summary preserving all distinct signals, grouped by natural section headers"`.
80
- - **Haiku call fails** → fall back to naive concatenation with `\n---\n` separators between each `outputs[i]` entry, emit the fallback as the merged result, and log a telemetry warning (`synthesize_fallback: true`) so Phase 11 reflector can measure the failure rate. Always emit `## SYNTHESIS COMPLETE` after the fallback body.
81
- - **`output_shape` is neither `markdown` nor `json`** → treat as `markdown` (default) and proceed.
82
-
83
- ## Non-Goals
84
-
85
- - Does **NOT** spawn Task() agents. Synthesize is a thin skill, not an orchestrator.
86
- - Does **NOT** write files. The invoking orchestrator owns the target path.
87
- - Does **NOT** validate directive semantics. If the directive is nonsensical, the merge output will reflect that - garbage in, garbage out is acceptable for an internal-use skill.
88
- - Does **NOT** re-rank or re-score the inputs. Preservation is the contract.
89
-
90
- ## Completion Marker
91
-
92
- ```
93
- ## SYNTHESIS COMPLETE
94
- ```
@@ -1,66 +0,0 @@
1
- ---
2
- name: gdd-timeline
3
- description: "Narrative retrospective across cycles: reads EXPERIENCE.md files and git log to produce a timeline view."
4
- argument-hint: "[<cycle-N> | <from>-<to> | all]"
5
- tools: Read, Bash, Glob
6
- disable-model-invocation: true
7
- ---
8
-
9
- @reference/retrieval-contract.md
10
- @reference/cycle-handoff-preamble.md
11
-
12
- # /gdd:timeline
13
-
14
- Generates a narrative retrospective across one or more completed cycles by reading `.design/archive/cycle-N/EXPERIENCE.md` files and correlating with `git log`.
15
-
16
- ## Steps
17
-
18
- 1. **Parse argument**: accepted forms:
19
- - `cycle-N` or `N` - single cycle
20
- - `N-M` - inclusive range
21
- - `all` or no argument - all archived cycles
22
-
23
- 2. **Discover archives**: glob `.design/archive/cycle-*/EXPERIENCE.md`. Sort by cycle number. Filter to requested range.
24
-
25
- 3. **For each cycle archive**:
26
- a. Read `EXPERIENCE.md` - extract sections: Goal, Decisions made, Learnings graduated, What died, Handoff to next cycle.
27
- b. Read `DESIGN-SUMMARY.md` (if present) for shipped artifacts list.
28
- c. Run:
29
- ```bash
30
- git log --oneline --after="<cycle start date>" --before="<cycle end date>" -- .design/ 2>/dev/null | head -10
31
- ```
32
- to correlate with commits. Use dates from `EXPERIENCE.md` Opened/Ended headers if present.
33
-
34
- 4. **Print timeline** in this shape:
35
-
36
- ```
37
- ## Timeline: Cycle 1 → Cycle 3
38
-
39
- ---
40
-
41
- ### Cycle 1 — <goal headline>
42
-
43
- **Opened with**: <first meaningful action>
44
- **Key decisions**: <D-XX summary>, <D-XX summary>
45
- **Surprises**: <what was unexpected>
46
- **What we'd do differently**: <retrospective note>
47
- **Shipped**: <artifact list or "see DESIGN-SUMMARY.md">
48
-
49
- ---
50
-
51
- ### Cycle 2 — <goal headline>
52
- ...
53
- ```
54
-
55
- 5. **No archives found**: print
56
- ```
57
- No archived cycles found in .design/archive/.
58
- Complete a cycle first with /gdd:complete-cycle.
59
- ```
60
-
61
- ## Do Not
62
-
63
- - Do not modify any file.
64
- - Do not run git commands that write or stage (only `git log` for read).
65
-
66
- ## TIMELINE COMPLETE