@hegemonart/get-design-done 1.57.2 → 1.57.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/CHANGELOG.md +48 -0
  4. package/README.md +1 -1
  5. package/SKILL.md +2 -6
  6. package/connections/cursor.md +0 -1
  7. package/package.json +1 -2
  8. package/reference/skill-graph.md +1 -5
  9. package/scripts/lib/manifest/skills.json +3 -23
  10. package/scripts/lib/worktree-resolve.cjs +4 -16
  11. package/skills/README.md +46 -0
  12. package/skills/bootstrap-ds/SKILL.md +1 -1
  13. package/skills/compare/SKILL.md +1 -1
  14. package/skills/new-cycle/SKILL.md +1 -1
  15. package/skills/peer-cli-customize/SKILL.md +0 -1
  16. package/skills/peers/SKILL.md +1 -1
  17. package/skills/reflect/procedures/capability-gap-scan.md +0 -1
  18. package/skills/report-issue/report-issue-procedure.md +0 -1
  19. package/skills/synthesize/SKILL.md +1 -1
  20. package/skills/turn-closeout/SKILL.md +1 -1
  21. package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +0 -48
  22. package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +0 -95
  23. package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +0 -109
  24. package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +0 -170
  25. package/dist/claude-code/.claude/skills/audit/SKILL.md +0 -79
  26. package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +0 -94
  27. package/dist/claude-code/.claude/skills/benchmark/SKILL.md +0 -65
  28. package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +0 -43
  29. package/dist/claude-code/.claude/skills/brief/SKILL.md +0 -145
  30. package/dist/claude-code/.claude/skills/budget/SKILL.md +0 -45
  31. package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +0 -66
  32. package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +0 -126
  33. package/dist/claude-code/.claude/skills/check-update/SKILL.md +0 -98
  34. package/dist/claude-code/.claude/skills/compare/SKILL.md +0 -82
  35. package/dist/claude-code/.claude/skills/compare/compare-rubric.md +0 -171
  36. package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +0 -81
  37. package/dist/claude-code/.claude/skills/connections/SKILL.md +0 -71
  38. package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +0 -608
  39. package/dist/claude-code/.claude/skills/context/SKILL.md +0 -137
  40. package/dist/claude-code/.claude/skills/continue/SKILL.md +0 -24
  41. package/dist/claude-code/.claude/skills/darkmode/SKILL.md +0 -76
  42. package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +0 -258
  43. package/dist/claude-code/.claude/skills/debug/SKILL.md +0 -41
  44. package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +0 -119
  45. package/dist/claude-code/.claude/skills/design/SKILL.md +0 -118
  46. package/dist/claude-code/.claude/skills/design/design-procedure.md +0 -304
  47. package/dist/claude-code/.claude/skills/discover/SKILL.md +0 -78
  48. package/dist/claude-code/.claude/skills/discover/discover-procedure.md +0 -222
  49. package/dist/claude-code/.claude/skills/discuss/SKILL.md +0 -96
  50. package/dist/claude-code/.claude/skills/do/SKILL.md +0 -45
  51. package/dist/claude-code/.claude/skills/explore/SKILL.md +0 -118
  52. package/dist/claude-code/.claude/skills/explore/explore-procedure.md +0 -267
  53. package/dist/claude-code/.claude/skills/export/SKILL.md +0 -30
  54. package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +0 -114
  55. package/dist/claude-code/.claude/skills/fast/SKILL.md +0 -91
  56. package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +0 -64
  57. package/dist/claude-code/.claude/skills/figma-write/SKILL.md +0 -50
  58. package/dist/claude-code/.claude/skills/graphify/SKILL.md +0 -49
  59. package/dist/claude-code/.claude/skills/health/SKILL.md +0 -99
  60. package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +0 -44
  61. package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +0 -69
  62. package/dist/claude-code/.claude/skills/help/SKILL.md +0 -87
  63. package/dist/claude-code/.claude/skills/instinct/SKILL.md +0 -111
  64. package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +0 -61
  65. package/dist/claude-code/.claude/skills/list-pins/SKILL.md +0 -27
  66. package/dist/claude-code/.claude/skills/live/SKILL.md +0 -98
  67. package/dist/claude-code/.claude/skills/locale/SKILL.md +0 -51
  68. package/dist/claude-code/.claude/skills/map/SKILL.md +0 -89
  69. package/dist/claude-code/.claude/skills/migrate/SKILL.md +0 -70
  70. package/dist/claude-code/.claude/skills/migrate-context/SKILL.md +0 -123
  71. package/dist/claude-code/.claude/skills/new-addendum/SKILL.md +0 -81
  72. package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +0 -37
  73. package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +0 -87
  74. package/dist/claude-code/.claude/skills/new-project/SKILL.md +0 -53
  75. package/dist/claude-code/.claude/skills/new-skill/SKILL.md +0 -90
  76. package/dist/claude-code/.claude/skills/next/SKILL.md +0 -68
  77. package/dist/claude-code/.claude/skills/note/SKILL.md +0 -48
  78. package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +0 -86
  79. package/dist/claude-code/.claude/skills/optimize/SKILL.md +0 -97
  80. package/dist/claude-code/.claude/skills/override/SKILL.md +0 -86
  81. package/dist/claude-code/.claude/skills/paper-write/SKILL.md +0 -54
  82. package/dist/claude-code/.claude/skills/pause/SKILL.md +0 -77
  83. package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +0 -88
  84. package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +0 -161
  85. package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +0 -90
  86. package/dist/claude-code/.claude/skills/peers/SKILL.md +0 -96
  87. package/dist/claude-code/.claude/skills/pencil-write/SKILL.md +0 -54
  88. package/dist/claude-code/.claude/skills/pin/SKILL.md +0 -37
  89. package/dist/claude-code/.claude/skills/plan/SKILL.md +0 -105
  90. package/dist/claude-code/.claude/skills/plan/plan-procedure.md +0 -278
  91. package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +0 -48
  92. package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +0 -32
  93. package/dist/claude-code/.claude/skills/progress/SKILL.md +0 -107
  94. package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +0 -90
  95. package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +0 -101
  96. package/dist/claude-code/.claude/skills/quick/SKILL.md +0 -44
  97. package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +0 -32
  98. package/dist/claude-code/.claude/skills/recall/SKILL.md +0 -75
  99. package/dist/claude-code/.claude/skills/reflect/SKILL.md +0 -85
  100. package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +0 -120
  101. package/dist/claude-code/.claude/skills/report-issue/SKILL.md +0 -53
  102. package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +0 -120
  103. package/dist/claude-code/.claude/skills/resume/SKILL.md +0 -93
  104. package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +0 -46
  105. package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +0 -42
  106. package/dist/claude-code/.claude/skills/roi/SKILL.md +0 -54
  107. package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +0 -35
  108. package/dist/claude-code/.claude/skills/router/SKILL.md +0 -89
  109. package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +0 -65
  110. package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +0 -78
  111. package/dist/claude-code/.claude/skills/router/router-rules.md +0 -84
  112. package/dist/claude-code/.claude/skills/scan/SKILL.md +0 -92
  113. package/dist/claude-code/.claude/skills/scan/scan-procedure.md +0 -732
  114. package/dist/claude-code/.claude/skills/settings/SKILL.md +0 -87
  115. package/dist/claude-code/.claude/skills/ship/SKILL.md +0 -48
  116. package/dist/claude-code/.claude/skills/sketch/SKILL.md +0 -78
  117. package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +0 -92
  118. package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +0 -79
  119. package/dist/claude-code/.claude/skills/spike/SKILL.md +0 -67
  120. package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +0 -86
  121. package/dist/claude-code/.claude/skills/start/SKILL.md +0 -67
  122. package/dist/claude-code/.claude/skills/start/start-procedure.md +0 -115
  123. package/dist/claude-code/.claude/skills/state/SKILL.md +0 -106
  124. package/dist/claude-code/.claude/skills/stats/SKILL.md +0 -51
  125. package/dist/claude-code/.claude/skills/style/SKILL.md +0 -71
  126. package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +0 -150
  127. package/dist/claude-code/.claude/skills/synthesize/SKILL.md +0 -94
  128. package/dist/claude-code/.claude/skills/timeline/SKILL.md +0 -66
  129. package/dist/claude-code/.claude/skills/todo/SKILL.md +0 -64
  130. package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +0 -95
  131. package/dist/claude-code/.claude/skills/undo/SKILL.md +0 -31
  132. package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +0 -54
  133. package/dist/claude-code/.claude/skills/unpin/SKILL.md +0 -31
  134. package/dist/claude-code/.claude/skills/update/SKILL.md +0 -56
  135. package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +0 -78
  136. package/dist/claude-code/.claude/skills/verify/SKILL.md +0 -113
  137. package/dist/claude-code/.claude/skills/verify/verify-procedure.md +0 -511
  138. package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +0 -81
  139. package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +0 -82
  140. package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +0 -26
  141. package/hooks/run-hook.cmd +0 -35
  142. package/skills/discover/SKILL.md +0 -78
  143. package/skills/discover/discover-procedure.md +0 -222
  144. package/skills/new-cycle/milestone-completeness-rubric.md +0 -87
  145. package/skills/scan/SKILL.md +0 -92
  146. package/skills/scan/scan-procedure.md +0 -732
@@ -1,82 +0,0 @@
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 /gdd: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
- # /gdd: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 `/gdd: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: `/gdd: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 /gdd: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: /gdd: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.
@@ -1,26 +0,0 @@
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 `/gdd:discuss` to start one, but still produce the map using basenames and inferred terms.
25
-
26
- ## ZOOM-OUT COMPLETE
@@ -1,35 +0,0 @@
1
- @echo off
2
- REM hooks/run-hook.cmd — Windows polyglot wrapper that invokes a GDD .sh hook
3
- REM through bash.
4
- REM
5
- REM Workaround for Claude Code's Windows auto-bash bug: CC can mis-handle a
6
- REM SessionStart `command` that points directly at a `.sh` file on Windows
7
- REM shells. This .cmd shim locates bash and runs the script explicitly, so the
8
- REM SessionStart inject (hooks/inject-using-gdd.sh) fires on Windows too.
9
- REM
10
- REM Usage: run-hook.cmd <script-name.sh> [args...]
11
- REM Default (no arg): inject-using-gdd.sh — the SessionStart using-gdd injector.
12
- REM The host harness's env (CLAUDE_PLUGIN_ROOT / CURSOR_PLUGIN_ROOT / COPILOT_CLI)
13
- REM is inherited by bash and drives the emitter's per-harness branch.
14
- setlocal
15
-
16
- REM Script to run, relative to this .cmd's own directory (%~dp0 ends with a backslash).
17
- set "HOOK_SCRIPT=%~1"
18
- if "%HOOK_SCRIPT%"=="" set "HOOK_SCRIPT=inject-using-gdd.sh"
19
- if not "%~1"=="" shift
20
-
21
- set "HOOK_PATH=%~dp0%HOOK_SCRIPT%"
22
-
23
- REM Prefer bash on PATH; fall back to a typical Git-for-Windows install location.
24
- where bash >nul 2>nul
25
- if %ERRORLEVEL%==0 (
26
- bash "%HOOK_PATH%" %*
27
- ) else if exist "%ProgramFiles%\Git\bin\bash.exe" (
28
- "%ProgramFiles%\Git\bin\bash.exe" "%HOOK_PATH%" %*
29
- ) else (
30
- REM No bash available: emit a valid empty SDK-shape JSON object so the
31
- REM SessionStart pipeline still receives parseable output and never breaks.
32
- echo {"additionalContext": ""}
33
- )
34
-
35
- endlocal
@@ -1,78 +0,0 @@
1
- ---
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. Activates for requests involving detecting an existing design system, inventorying tokens and components, or onboarding a brownfield repo."
4
- argument-hint: "[--auto] [--incremental] [--full]"
5
- user-invocable: true
6
- ---
7
-
8
- # Get Design Done - Discover
9
-
10
- **Stage 1.5 of 4.** Produces `.design/DESIGN-CONTEXT.md`.
11
-
12
- Full procedure detail: `./discover-procedure.md`.
13
-
14
- ---
15
-
16
- ## State Integration
17
-
18
- 1. Read `.design/STATE.md`.
19
- - **Missing** -> create minimal skeleton from `reference/STATE-TEMPLATE.md` (stage=discover, status=in_progress, task_progress=0/1) and log warning "STATE.md not found - created fresh. If this is a resumed session, run /get-design-done:scan first."
20
- - **Present + stage==discover + status==in_progress** -> RESUME (continue interview; do not reset).
21
- - **Otherwise** -> normal transition: set frontmatter stage=discover, `<position>` stage=discover, status=in_progress, task_progress=0/1.
22
- 2. Probe connection availability. ToolSearch runs FIRST (MCP tools may be in the deferred tool set). Run three probes - A (Figma, variant-agnostic with prefix tiebreaker), B (Refero, ToolSearch-only), C (Pinterest, ToolSearch-only). After all probes, write `<connections>` to STATE.md so the builder doesn't re-probe. Full probe specs: `./discover-procedure.md` §Connection Probes.
23
- 3. Update `last_checkpoint`. Write STATE.md.
24
-
25
- ---
26
-
27
- ## Auto Mode
28
-
29
- When `--auto` is passed to the builder: if `tailwind.config.{js,cjs,mjs,ts}` exists -> Tailwind-only project (skip CSS file grep, parse tailwind.config for palette/spacing/font, use those as the baseline style signal). Else fall through to the existing CSS file grep logic. Detail: `./discover-procedure.md` §Auto Mode.
30
-
31
- ---
32
-
33
- ## Incremental Mode (Phase 53, default)
34
-
35
- `--incremental` is the DEFAULT after Phase 53; pass `--full` to opt out and re-map everything. Incremental runs the change classifier FIRST (via the fingerprint store at `.design/fingerprints/`): it fingerprints the current DesignContext graph, diffs each node against the prior cycle, and dispatches mappers per the verdict. SKIP (cosmetic-only / no-op) dispatches 0 mappers; PARTIAL re-maps only the affected community batches; ARCHITECTURE re-batches the dir-reshaped subset; FULL (or `--full`, or a first run with no prior store) re-maps all batches. The batching + classifier engine lives in `explore` (`scripts/lib/explore-parallel-runner` + `scripts/lib/mappers/incremental-discover.cjs`); this flag selects the path. Detail: `./discover-procedure.md` §Incremental Mode.
36
-
37
- ---
38
-
39
- ## Step 1 - Spawn design-context-builder
40
-
41
- Spawn `design-context-builder` -> `.design/DESIGN-CONTEXT.md`. The agent auto-detects via grep/glob first and interviews only for areas where auto-detect returned no confident answer. Baseline audit directory chain: `src/` -> `app/` -> `pages/` -> `lib/` -> flag "layout unknown". Common gray areas to probe (Area 7): font-change risk, token-layer introduction risk, component rebuild-vs-restyle. Wait for `## CONTEXT COMPLETE`, then update STATE.md `task_progress = 0.5`. Full prompt: `./discover-procedure.md` §Step 1.
42
-
43
- ---
44
-
45
- ## Step 1.75 - Lazy gate: should design-context-checker run? (Plan 10.1-04, D-21)
46
-
47
- Spawn the cheap Haiku gate `design-context-checker-gate` before the full checker. It applies the single-file heuristic (is `DESIGN-CONTEXT.md` in `git diff --name-only HEAD~1..HEAD`?) and emits JSON + `## GATE COMPLETE`. On `spawn: false`: append `lazy_skipped: true` telemetry row, skip Step 2, set STATE.md `<position>` as if checker passed. On `spawn: true`: proceed to Step 2. On first-run discover the gate always returns `spawn: true` (builder just wrote the file); the gate meaningfully short-circuits only on re-runs where the builder made no changes. Full prompt: `./discover-procedure.md` §Step 1.75.
48
-
49
- **Parallel synthesizer note:** discover does not spawn parallel researchers in v1, so `skills/synthesize/` is not wired here. If future variants spawn N parallel interviewers, wire synthesize between dispatch and collate as in `skills/map/` Step 3.5.
50
-
51
- ---
52
-
53
- ## Step 2 - Spawn design-context-checker
54
-
55
- Spawn `design-context-checker` with `<required_reading>` on STATE.md + DESIGN-CONTEXT.md. The agent validates DESIGN-CONTEXT.md across 6 dimensions and returns APPROVED or BLOCKED with per-dimension verdicts. Wait for `## CONTEXT CHECK COMPLETE`. Full prompt: `./discover-procedure.md` §Step 2.
56
-
57
- ---
58
-
59
- ## Step 3 - Handle checker verdict
60
-
61
- - **APPROVED** -> proceed to state update.
62
- - **BLOCKED** -> present blocked dimensions to user, offer fix-and-retry loop (re-spawn builder with specific fix instructions). Do not proceed to planning.
63
-
64
- ---
65
-
66
- ## State Update (exit)
67
-
68
- 1. Set `<position>` `status=completed`, `task_progress=1/1`.
69
- 2. Set `<timestamps>` `discover_completed_at=<ISO 8601 now>`.
70
- 3. Update `last_checkpoint`. Write STATE.md.
71
-
72
- ---
73
-
74
- ## After Writing
75
-
76
- Print the "=== Discovery complete ===" block with saved path, baseline score, top key issues, and next step (`/get-design-done:plan`). Do not proceed to planning automatically unless `--auto` was passed. Template: `./discover-procedure.md` §After Writing.
77
-
78
- ## DISCOVER COMPLETE
@@ -1,222 +0,0 @@
1
- ---
2
- name: discover-procedure
3
- type: meta-rules
4
- version: 1.0.0
5
- phase: 28.5
6
- tags: [discover, procedure, extracted, pipeline-stage, connection-probe, design-context-builder]
7
- last_updated: 2026-05-18
8
- ---
9
-
10
- Source: extracted from `skills/discover/SKILL.md` (Phase 28.5 rework - D-10 extract-then-link).
11
- The skill's essential workflow stays in `../skills/discover/SKILL.md`; this file holds the
12
- detail the agent reaches for when executing a specific step (state integration, three
13
- connection probes, design-context-builder + design-context-checker agent prompts, lazy gate
14
- prompt, auto-mode CSS detection).
15
-
16
- # Discover Procedure
17
-
18
- Detailed procedure for the get-design-done `discover` Stage 1.5 orchestrator. Companion to
19
- `../skills/discover/SKILL.md`. Read this file when executing a specific discover step.
20
-
21
- ---
22
-
23
- ## State Integration
24
-
25
- 1. Read `.design/STATE.md`.
26
- - If missing: create minimal skeleton from `reference/STATE-TEMPLATE.md` with stage=discover, status=in_progress, task_progress=0/1, and log warning: "STATE.md not found - created fresh. If this is a resumed session, run /get-design-done:scan first."
27
- - If present and stage==discover and status==in_progress: RESUME - continue existing interview; do not reset.
28
- - Otherwise: normal transition - set frontmatter stage=discover, <position> stage=discover, status=in_progress, task_progress=0/1.
29
- 2. **Probe connection availability** - ToolSearch runs FIRST because MCP tools may be in the deferred tool set. This is the canonical probe pattern (spec lives in `connections/connections.md`; copied inline because SKILL.md has no include mechanism - if the probe pattern changes, update all stages that copied it). See §Connection Probes below.
30
- 3. Update last_checkpoint. Write STATE.md.
31
-
32
- ---
33
-
34
- ## Connection Probes
35
-
36
- ### A - Figma probe (variant-agnostic)
37
-
38
- ```
39
- A1. ToolSearch({ query: "figma get_metadata use_figma", max_results: 10 })
40
- A2. Parse tool names matching /^mcp__([^_]*figma[^_]*)__(get_metadata|use_figma)$/i
41
- into read-capable and write-capable prefix sets.
42
- A3. Empty read set -> figma: not_configured (skip all Figma paths)
43
- One or more matches -> pick prefix via tiebreaker:
44
- (1) both-sets > reads-only,
45
- (2) `figma` > others,
46
- (3) non-`figma-desktop` > desktop,
47
- (4) alphabetical.
48
- A4. Call {prefix}get_metadata:
49
- Success -> figma: available (prefix=mcp__<prefix>__, writes=<true|false>)
50
- Error -> figma: unavailable
51
- ```
52
-
53
- ### B - Refero probe (ToolSearch presence is sufficient - no tool call needed)
54
-
55
- ```
56
- B1. ToolSearch({ query: "refero", max_results: 5 })
57
- B2. Empty result -> refero: not_configured
58
- Non-empty -> refero: available
59
- ```
60
-
61
- ### C - Pinterest probe (ToolSearch-only, same pattern as Refero)
62
-
63
- ```
64
- C1. ToolSearch({ query: "mcp-pinterest", max_results: 5 })
65
- C2. Empty result -> pinterest: not_configured
66
- Non-empty -> pinterest: available
67
- ```
68
-
69
- No live `pinterest_search` call at probe time - ToolSearch presence is sufficient. The synthesizer makes the actual search calls.
70
-
71
- ### D - Lazyweb probe (ToolSearch-only - free, discover Tier 1 per D-01)
72
-
73
- ```
74
- D1. ToolSearch({ query: "lazyweb", max_results: 5 })
75
- D2. Empty result -> lazyweb: not_configured
76
- Non-empty -> lazyweb: available
77
- ```
78
-
79
- ### E - Mobbin probe (ToolSearch-only - paid, discover Tier 2 per D-01)
80
-
81
- ```
82
- E1. ToolSearch({ query: "mobbin", max_results: 5 })
83
- E2. Empty result -> mobbin: not_configured
84
- Non-empty -> mobbin: available
85
- ```
86
-
87
- **Reference-source tier order (cost-aware, D-01):** Lazyweb (free, tried first) → Mobbin / Refero (paid, whichever is bound + subscribed) → Pinterest → awesome-design-md → WebFetch.
88
-
89
- After all probes (A, B, C, D, E), update `.design/STATE.md` `<connections>` with the results and continue. Downstream stages (design-context-builder) read `<connections>` from STATE.md rather than re-probing.
90
-
91
- ---
92
-
93
- ## Auto Mode
94
-
95
- Auto Mode CSS detection (when `auto_mode: true` is passed to the builder):
96
-
97
- 1. If tailwind.config.{js,cjs,mjs,ts} exists -> Tailwind-only project
98
- - Skip CSS file grep
99
- - Parse tailwind.config for color palette, spacing scale, font families
100
- - Use tailwind.config values as the baseline style signal
101
- 2. Else -> fall through to existing CSS file grep logic
102
-
103
- ---
104
-
105
- ## Step 1 - Spawn design-context-builder
106
-
107
- ```
108
- Task("design-context-builder", """
109
- <required_reading>
110
- @.design/STATE.md
111
- @reference/audit-scoring.md
112
- @reference/anti-patterns.md
113
- </required_reading>
114
-
115
- You are the design-context-builder agent. Auto-detect existing design system
116
- state via grep/glob before asking questions. Interview the user ONLY for areas
117
- where auto-detect returned no confident answer. Write .design/DESIGN-CONTEXT.md.
118
-
119
- Baseline audit directory detection (ordered fallback chain):
120
- 1. If src/ exists -> use src/
121
- 2. Elif app/ exists -> use app/ (Next.js App Router)
122
- 3. Elif pages/ exists -> use pages/ (Next.js Pages Router)
123
- 4. Elif lib/ exists -> use lib/ (library-only projects)
124
- 5. Else -> flag "layout unknown", skip baseline, note in DESIGN-CONTEXT.md
125
-
126
- Common gray areas to probe during discovery (Area 7):
127
- 1. font-change risk — switching type families when existing UI has body copy in a specific family. Ask: "Is the current body font intentional or inherited? OK to change?"
128
- 2. token-layer introduction risk — adding CSS custom properties to a codebase that uses direct values. Ask: "Do you want design tokens (--primary, --surface) or inline values (hex, rgb)?"
129
- 3. Component rebuild vs restyle — when to keep existing component, when to rebuild from scratch. Ask: "For <component>, restyle in place or rebuild?"
130
-
131
- Context:
132
- auto_mode: <true|false>
133
-
134
- Output file: .design/DESIGN-CONTEXT.md
135
- Emit `## CONTEXT COMPLETE` when done.
136
- """)
137
- ```
138
-
139
- Wait for `## CONTEXT COMPLETE`. Update STATE.md task_progress = 0.5.
140
-
141
- ---
142
-
143
- ## Step 1.75 - Lazy gate: should design-context-checker run? (Plan 10.1-04, D-21)
144
-
145
- Spawn the cheap Haiku gate before the full context-checker:
146
-
147
- Task("design-context-checker-gate", """
148
- <required_reading>
149
- @.design/STATE.md
150
- </required_reading>
151
-
152
- You are the design-context-checker-gate.
153
-
154
- Context:
155
- diff_files: <git diff `--name-only` HEAD~1..HEAD>
156
- diff_body: (not needed - single-file heuristic)
157
- baseline_sha: <HEAD~1>
158
-
159
- Apply the heuristic (DESIGN-CONTEXT.md in diff_files?). Emit JSON + `## GATE COMPLETE`.
160
- """)
161
-
162
- Wait for `## GATE COMPLETE`. Parse JSON:
163
-
164
- - `spawn: false` -> append `lazy_skipped: true` telemetry row for `design-context-checker`, skip Step 2, set STATE.md `<position>` as if checker passed (rationale: DESIGN-CONTEXT.md didn't change, last validation still holds), emit `design-context-checker skipped — <rationale>`.
165
- - `spawn: true` -> proceed to Step 2 as currently written.
166
-
167
- **Note:** On first-run discover, the builder just wrote DESIGN-CONTEXT.md so the gate returns `spawn: true`. The gate meaningfully short-circuits only on re-runs where the builder made no changes.
168
-
169
- **Parallel synthesizer note:** discover does not spawn parallel researchers in v1, so `skills/synthesize/` is not wired here. If future variants spawn N parallel interviewers/auto-detectors, wire synthesize between dispatch and collate as in `skills/map/` Step 3.5.
170
-
171
- ---
172
-
173
- ## Step 2 - Spawn design-context-checker
174
-
175
- ```
176
- Task("design-context-checker", """
177
- <required_reading>
178
- @.design/STATE.md
179
- @.design/DESIGN-CONTEXT.md
180
- </required_reading>
181
-
182
- You are the design-context-checker agent. Validate DESIGN-CONTEXT.md across
183
- 6 dimensions. Return APPROVED or BLOCKED with per-dimension verdicts.
184
-
185
- Emit `## CONTEXT CHECK COMPLETE` when done.
186
- """)
187
- ```
188
-
189
- Wait for `## CONTEXT CHECK COMPLETE`.
190
-
191
- ---
192
-
193
- ## Step 3 - Handle checker verdict
194
-
195
- If APPROVED: proceed to state update.
196
- If BLOCKED: present dimensions that BLOCKED to user, offer fix-and-retry loop (re-spawn builder with specific fix instructions). Do not proceed to planning.
197
-
198
- ---
199
-
200
- ## State Update (exit)
201
-
202
- 1. Set <position> status=completed, task_progress=1/1.
203
- 2. Set <timestamps> discover_completed_at=<ISO 8601 now>.
204
- 3. Update last_checkpoint. Write STATE.md.
205
-
206
- ---
207
-
208
- ## After Writing
209
-
210
- ```
211
- === Discovery complete ===
212
- Saved: .design/DESIGN-CONTEXT.md
213
-
214
- Baseline score: [N]/100 ([grade])
215
- Key issues: [top issue 1], [top issue 2], [top issue 3]
216
-
217
- Next: /get-design-done:plan
218
- -> Decomposes your context into executable design tasks.
219
- ==========================
220
- ```
221
-
222
- Do not proceed to planning automatically unless `--auto` was passed.
@@ -1,87 +0,0 @@
1
- ---
2
- name: milestone-completeness-rubric
3
- type: heuristic
4
- version: 1.0.0
5
- phase: 28.5
6
- tags: [milestone, closeout, rubric, completion, turn-closeout, new-cycle, complete-cycle]
7
- last_updated: 2026-05-18
8
- ---
9
-
10
- # Milestone Completeness Rubric
11
-
12
- What "complete" means at each layer of the gdd lifecycle. Used by `skills/turn-closeout/`,
13
- `skills/new-cycle/`, `skills/complete-cycle/`, the phase closeout discipline (Plan -12 of
14
- every phase), and the cycle wrap-up flow. Centralized here so the rubric stays consistent
15
- across consumers and updates land in one place rather than fanning out across N skills.
16
-
17
- ## Layers
18
-
19
- The lifecycle has four nested layers. A layer is complete only when EVERY criterion at
20
- that layer is satisfied. Layers above can only flip complete when every layer below has
21
- flipped complete first - closeout walks bottom-up.
22
-
23
- ### Task level
24
-
25
- The smallest unit of work - one row in a PLAN.md `<tasks>` list.
26
-
27
- - Verify command runs with exit 0 (the `<verify>` block's command).
28
- - The `<done>` criterion is observable (the file exists, the test passes, the output
29
- matches the contract).
30
- - If the task is `tdd="true"`: tests pass after the GREEN step; tests fail before it.
31
- - File diff is scoped to the declared `files_modified` only - no collateral damage.
32
- - A single commit per task in conventional form `{type}({phase}-{plan}): {description}`.
33
- - Deviations (Rules 1, 2, 3) tracked for the SUMMARY.md "Deviations" section.
34
-
35
- ### Plan level
36
-
37
- A self-contained chunk of work - one `XX-YY-PLAN.md`.
38
-
39
- - All tasks complete (per task level above).
40
- - Plan-level validator passes (e.g. `validate-skill-length.cjs` for Phase 28.5 buckets;
41
- `validate-frontmatter.ts` for agent-frontmatter plans).
42
- - SUMMARY.md written at `.planning/phases/XX-name/XX-YY-SUMMARY.md` with the canonical
43
- shape: deviations, files-modified table, commits, verification result, decisions.
44
- - No collateral damage outside the plan's declared `files_modified` list - out-of-scope
45
- edits are forbidden (executor Rule 5 boundary).
46
- - A final docs commit aggregates `SUMMARY.md`, `STATE.md`, `ROADMAP.md`, and
47
- `REQUIREMENTS.md` updates.
48
-
49
- ### Phase level
50
-
51
- A coherent batch of plans - one `XX-name/` directory under `.planning/phases/`.
52
-
53
- - All plans complete (per plan level above).
54
- - Phase-level verification ALL pass (`<verification>` block in each PLAN.md).
55
- - ROADMAP.md flipped `[ ]` → `[x]` for all plans in this phase (rule #14: scoped flip
56
- only - never flip plans outside this phase).
57
- - Phase SUMMARY ladder coherent - each `XX-YY-SUMMARY.md` exists and reads top-to-bottom
58
- as a single story.
59
- - All decisions surfaced through the SUMMARY frontmatter and rolled up into STATE.md's
60
- `<decisions>` block.
61
-
62
- ### Cycle level
63
-
64
- A shipping milestone - typically one minor version bump in the gdd project.
65
-
66
- - All phases for the cycle's target version complete (per phase level above).
67
- - 4 manifests version-aligned: `plugin.json`, `marketplace.json`, `package.json`, and
68
- the phase-20 manifests-version baseline (`test-fixture/baselines/phase-XX/manifests-version.txt`).
69
- - CHANGELOG.md entry written for the new version with one block per phase.
70
- - Off-cadence registration if applicable - `tests/semver-compare.test.cjs` adds
71
- `OFF_CADENCE_VERSIONS.add('<version>')` for `.5`/`.6`/`.7` insertion-style versions.
72
- - Regression baseline at `test-fixture/baselines/phase-XX/` exists and the
73
- `tests/phase-XX-baseline.test.cjs` suite passes (version-agnostic - reads
74
- `package.json#version`).
75
- - NOTICE attribution updated if any third-party content was adopted in this cycle.
76
- - Closeout plan's scoped ROADMAP flip touches only this cycle's checkboxes (precedent:
77
- Phase 28 closeout flipped exactly 7 inline + 1 overview entry).
78
-
79
- ## Cross-references
80
-
81
- - `./STATE-TEMPLATE.md` - STATE.md schema; closeout updates the `<position>` block's
82
- `last_checkpoint` field.
83
- - `../skills/turn-closeout/SKILL.md` - consumer at the turn boundary (within a stage).
84
- - `../skills/new-cycle/SKILL.md` - consumer at cycle ingress.
85
- - `../skills/complete-cycle/SKILL.md` - consumer at cycle egress.
86
- - `../skills/quality-gate/SKILL.md` - Stage 4.5 gate that gates the plan-level "verify
87
- command runs with exit 0" criterion when project tooling exists.
@@ -1,92 +0,0 @@
1
- ---
2
- name: scan
3
- description: "Pre-pipeline initializer that maps an existing repo's design system (colors, typography, spacing, components, tokens), runs the anti-pattern audit, scores the 7 weighted categories, and writes DESIGN.md + .design/DESIGN-DEBT.md. Use when starting work in any new or existing repo before /gdd:discover. Activates for requests involving a fast read-only anti-pattern sweep, a quick design lint, or spotting slop without a full audit."
4
- argument-hint: "[--quick] [--full]"
5
- user-invocable: true
6
- ---
7
-
8
- # Get Design Done - Scan
9
-
10
- **Pre-pipeline initializer.** Run once in any new or existing repo before starting the Discover -> Plan -> Design -> Verify pipeline.
11
-
12
- Full procedure detail: `./scan-procedure.md`.
13
-
14
- Produces:
15
- - `DESIGN.md` - snapshot of the existing design system as it actually is
16
- - `.design/DESIGN-DEBT.md` - prioritized debt roadmap
17
-
18
- `--quick`: Skip component inventory, focus on tokens + anti-patterns only (~2 min)
19
- `--full`: Include component-by-component analysis (slower, more thorough)
20
-
21
- Default: full scan of tokens, patterns, and anti-patterns. Component inventory is a summary count, not per-file.
22
-
23
- ---
24
-
25
- ## State Integration
26
-
27
- At scan entry, before running any step:
28
-
29
- 1. Read or create `.design/STATE.md` from `reference/STATE-TEMPLATE.md` (set `stage=scan`, `status=in_progress`, `task_progress=0/8`; preserve `started_at` on resume). See `./scan-procedure.md` §State Integration for the full read/create/resume decision tree.
30
- 2. Probe Figma + Refero connections (variant-agnostic ToolSearch + tiebreaker resolution). Detail: `./scan-procedure.md` §Probe connection availability.
31
- 3. Run the four Phase 8 probes (preview, storybook, chromatic, graphify) and batch-write results to STATE.md `<connections>`. Detail: `./scan-procedure.md` §Phase 8 Connection Probes.
32
- 4. Emit the first-run connection nudge if every probe returned `not_configured` AND `.design/config.json > connections_onboarding` is absent.
33
- 5. Update `last_checkpoint`; persist STATE.md before proceeding to Step 1.
34
-
35
- ---
36
-
37
- ## Workflow
38
-
39
- The scan executes eight steps in order. Each step's full grep commands, analysis prompts, and decision rules live in `./scan-procedure.md` - keep that file open while executing.
40
-
41
- ### Step 1 - Orient
42
-
43
- Detect framework, CSS approach, component count, style file count, token system. Detect source root by ordered fallback (`src/` -> `app/` -> `pages/` -> `lib/`) and substitute into subsequent grep commands. Log the detected source root in DESIGN.md frontmatter. Detail: `./scan-procedure.md` §Step 1.
44
-
45
- ### Step 2 - Extract Color System
46
-
47
- Grep hex / `oklch()` / `hsl()` / `rgb()` colors, CSS custom properties, and Tailwind color config. Analyze palette size, token discipline, AI-slop colors (#6366f1, #8b5cf6, #06b6d4), semantic naming, dark-mode purity. Produce a color inventory table. Detail: `./scan-procedure.md` §Step 2.
48
-
49
- ### Step 2A - Figma Token Augmentation
50
-
51
- If `figma: available` in STATE.md `<connections>`: call `{prefix}get_variable_defs`, translate variables by type/name pattern, merge with grep-derived tokens (never replace). Skip silently if `figma` is `not_configured` or `unavailable`. Detail: `./scan-procedure.md` §Step 2A.
52
-
53
- ### Step 3 - Extract Typography System
54
-
55
- Grep font families, sizes, weights, line-heights. Analyze family count, scale compliance, weight hierarchy, line-height on body, reflex-font signals. Read `${CLAUDE_PLUGIN_ROOT}/reference/typography.md` for comparison criteria. Detail: `./scan-procedure.md` §Step 3.
56
-
57
- ### Step 4 - Extract Spacing System
58
-
59
- Grep CSS spacing values, Tailwind spacing overrides, space tokens. Score grid compliance against the 4/8/12/16/24/32/48/64 series. Detail: `./scan-procedure.md` §Step 4.
60
-
61
- ### Step 5 - Anti-Pattern Audit
62
-
63
- Read `${CLAUDE_PLUGIN_ROOT}/reference/anti-patterns.md`. Run all BAN-XX and SLOP-XX grep commands, plus a11y checks (focus rings, reduced-motion, div onClick, small fonts). Detail: `./scan-procedure.md` §Step 5.
64
-
65
- ### Step 6 - Component Inventory
66
-
67
- If `--quick`, skip. Otherwise run the three-pass multi-signal filter (JSX-return + className + framework-import) to produce an authoritative component list, then enumerate primitives. In `--full` mode, emit one row per file. Detail: `./scan-procedure.md` §Step 6.
68
-
69
- ### Step 7 - Score All 7 Categories
70
-
71
- Read `${CLAUDE_PLUGIN_ROOT}/reference/audit-scoring.md`. Score each category 0–10 and apply the weighted formula `(A11Y * 0.25) + (Visual Hierarchy * 0.20) + (Typography * 0.15) + (Color * 0.15) + (Layout * 0.10) + (Anti-Patterns * 0.10) + (Motion * 0.05)`. Grade A=90+, B=75+, C=60+, D=45+, F<45.
72
-
73
- ### Step 8 - Generate Design Debt Roadmap
74
-
75
- Classify each finding P0/P1/P2/P3, estimate effort XS/S/M/L/XL, group by debt theme, compute `priority_score = (severity_weight * effort_weight) + (dependency_depth * 2)`. Mark P1+XS/S items as quick wins. Detail: `./scan-procedure.md` §Step 8.
76
-
77
- ---
78
-
79
- ## Outputs
80
-
81
- Write both artifacts using the templates in `./scan-procedure.md`:
82
-
83
- - **`DESIGN.md`** (project root) - design-system snapshot with score table, color/typography/spacing/component inventories, anti-pattern status, motion summary. Frontmatter records `score`, `framework`, `css_approach`, `token_layer`, and (if Figma ran) `figma_variables_used` + `figma_source`. Template: `./scan-procedure.md` §Output 1.
84
- - **`.design/DESIGN-DEBT.md`** - prioritized debt roadmap grouped P0/P1/P2/P3, with priority_score ordering, recommended fix order, and pipeline recommendation. Template: `./scan-procedure.md` §Output 2.
85
-
86
- ---
87
-
88
- ## After Writing
89
-
90
- Print the user-facing summary block from `./scan-procedure.md` §After Writing - project name, score, P0/P1 counts, quick-win count, artifact paths, and next-step options (start pipeline, fix quick wins first, or just reference the debt).
91
-
92
- ## SCAN COMPLETE