@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.
- package/.claude-plugin/marketplace.json +4 -4
- package/.claude-plugin/plugin.json +2 -2
- package/CHANGELOG.md +48 -0
- package/README.md +1 -1
- package/SKILL.md +2 -6
- package/connections/cursor.md +0 -1
- package/package.json +1 -2
- package/reference/skill-graph.md +1 -5
- package/scripts/lib/manifest/skills.json +3 -23
- package/scripts/lib/worktree-resolve.cjs +4 -16
- package/skills/README.md +46 -0
- package/skills/bootstrap-ds/SKILL.md +1 -1
- package/skills/compare/SKILL.md +1 -1
- package/skills/new-cycle/SKILL.md +1 -1
- package/skills/peer-cli-customize/SKILL.md +0 -1
- package/skills/peers/SKILL.md +1 -1
- package/skills/reflect/procedures/capability-gap-scan.md +0 -1
- package/skills/report-issue/report-issue-procedure.md +0 -1
- package/skills/synthesize/SKILL.md +1 -1
- package/skills/turn-closeout/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +0 -48
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +0 -95
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +0 -109
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +0 -170
- package/dist/claude-code/.claude/skills/audit/SKILL.md +0 -79
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +0 -94
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +0 -65
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +0 -43
- package/dist/claude-code/.claude/skills/brief/SKILL.md +0 -145
- package/dist/claude-code/.claude/skills/budget/SKILL.md +0 -45
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +0 -66
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +0 -126
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +0 -98
- package/dist/claude-code/.claude/skills/compare/SKILL.md +0 -82
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +0 -171
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +0 -81
- package/dist/claude-code/.claude/skills/connections/SKILL.md +0 -71
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +0 -608
- package/dist/claude-code/.claude/skills/context/SKILL.md +0 -137
- package/dist/claude-code/.claude/skills/continue/SKILL.md +0 -24
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +0 -76
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +0 -258
- package/dist/claude-code/.claude/skills/debug/SKILL.md +0 -41
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +0 -119
- package/dist/claude-code/.claude/skills/design/SKILL.md +0 -118
- package/dist/claude-code/.claude/skills/design/design-procedure.md +0 -304
- package/dist/claude-code/.claude/skills/discover/SKILL.md +0 -78
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +0 -222
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +0 -96
- package/dist/claude-code/.claude/skills/do/SKILL.md +0 -45
- package/dist/claude-code/.claude/skills/explore/SKILL.md +0 -118
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +0 -267
- package/dist/claude-code/.claude/skills/export/SKILL.md +0 -30
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +0 -114
- package/dist/claude-code/.claude/skills/fast/SKILL.md +0 -91
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +0 -64
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +0 -50
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +0 -49
- package/dist/claude-code/.claude/skills/health/SKILL.md +0 -99
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +0 -44
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +0 -69
- package/dist/claude-code/.claude/skills/help/SKILL.md +0 -87
- package/dist/claude-code/.claude/skills/instinct/SKILL.md +0 -111
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +0 -61
- package/dist/claude-code/.claude/skills/list-pins/SKILL.md +0 -27
- package/dist/claude-code/.claude/skills/live/SKILL.md +0 -98
- package/dist/claude-code/.claude/skills/locale/SKILL.md +0 -51
- package/dist/claude-code/.claude/skills/map/SKILL.md +0 -89
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +0 -70
- package/dist/claude-code/.claude/skills/migrate-context/SKILL.md +0 -123
- package/dist/claude-code/.claude/skills/new-addendum/SKILL.md +0 -81
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +0 -37
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +0 -87
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +0 -53
- package/dist/claude-code/.claude/skills/new-skill/SKILL.md +0 -90
- package/dist/claude-code/.claude/skills/next/SKILL.md +0 -68
- package/dist/claude-code/.claude/skills/note/SKILL.md +0 -48
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +0 -86
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +0 -97
- package/dist/claude-code/.claude/skills/override/SKILL.md +0 -86
- package/dist/claude-code/.claude/skills/paper-write/SKILL.md +0 -54
- package/dist/claude-code/.claude/skills/pause/SKILL.md +0 -77
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +0 -88
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +0 -161
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +0 -90
- package/dist/claude-code/.claude/skills/peers/SKILL.md +0 -96
- package/dist/claude-code/.claude/skills/pencil-write/SKILL.md +0 -54
- package/dist/claude-code/.claude/skills/pin/SKILL.md +0 -37
- package/dist/claude-code/.claude/skills/plan/SKILL.md +0 -105
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +0 -278
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +0 -48
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +0 -32
- package/dist/claude-code/.claude/skills/progress/SKILL.md +0 -107
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +0 -90
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +0 -101
- package/dist/claude-code/.claude/skills/quick/SKILL.md +0 -44
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +0 -32
- package/dist/claude-code/.claude/skills/recall/SKILL.md +0 -75
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +0 -85
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +0 -120
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +0 -53
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +0 -120
- package/dist/claude-code/.claude/skills/resume/SKILL.md +0 -93
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +0 -46
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +0 -42
- package/dist/claude-code/.claude/skills/roi/SKILL.md +0 -54
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +0 -35
- package/dist/claude-code/.claude/skills/router/SKILL.md +0 -89
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +0 -65
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +0 -78
- package/dist/claude-code/.claude/skills/router/router-rules.md +0 -84
- package/dist/claude-code/.claude/skills/scan/SKILL.md +0 -92
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +0 -732
- package/dist/claude-code/.claude/skills/settings/SKILL.md +0 -87
- package/dist/claude-code/.claude/skills/ship/SKILL.md +0 -48
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +0 -78
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +0 -92
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +0 -79
- package/dist/claude-code/.claude/skills/spike/SKILL.md +0 -67
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +0 -86
- package/dist/claude-code/.claude/skills/start/SKILL.md +0 -67
- package/dist/claude-code/.claude/skills/start/start-procedure.md +0 -115
- package/dist/claude-code/.claude/skills/state/SKILL.md +0 -106
- package/dist/claude-code/.claude/skills/stats/SKILL.md +0 -51
- package/dist/claude-code/.claude/skills/style/SKILL.md +0 -71
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +0 -150
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +0 -94
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +0 -66
- package/dist/claude-code/.claude/skills/todo/SKILL.md +0 -64
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +0 -95
- package/dist/claude-code/.claude/skills/undo/SKILL.md +0 -31
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +0 -54
- package/dist/claude-code/.claude/skills/unpin/SKILL.md +0 -31
- package/dist/claude-code/.claude/skills/update/SKILL.md +0 -56
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +0 -78
- package/dist/claude-code/.claude/skills/verify/SKILL.md +0 -113
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +0 -511
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +0 -81
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +0 -82
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +0 -26
- package/hooks/run-hook.cmd +0 -35
- package/skills/discover/SKILL.md +0 -78
- package/skills/discover/discover-procedure.md +0 -222
- package/skills/new-cycle/milestone-completeness-rubric.md +0 -87
- package/skills/scan/SKILL.md +0 -92
- 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
|
package/hooks/run-hook.cmd
DELETED
|
@@ -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
|
package/skills/discover/SKILL.md
DELETED
|
@@ -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.
|
package/skills/scan/SKILL.md
DELETED
|
@@ -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
|