@hegemonart/get-design-done 1.57.1 → 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 +26 -41
- package/.claude-plugin/plugin.json +23 -48
- package/CHANGELOG.md +139 -0
- package/README.md +166 -511
- package/SKILL.md +4 -6
- package/agents/README.md +33 -36
- package/agents/a11y-mapper.md +3 -3
- package/agents/component-benchmark-harvester.md +6 -6
- package/agents/component-benchmark-synthesizer.md +3 -3
- package/agents/compose-executor.md +3 -3
- package/agents/cost-forecaster.md +2 -2
- package/agents/design-auditor.md +7 -7
- package/agents/design-authority-watcher.md +15 -15
- package/agents/design-context-builder.md +4 -4
- package/agents/design-context-checker-gate.md +1 -1
- package/agents/design-discussant.md +2 -2
- package/agents/design-doc-writer.md +1 -1
- package/agents/design-executor.md +2 -2
- package/agents/design-figma-writer.md +2 -2
- package/agents/design-fixer.md +7 -7
- package/agents/design-integration-checker-gate.md +1 -1
- package/agents/design-integration-checker.md +1 -1
- package/agents/design-paper-writer.md +3 -3
- package/agents/design-pencil-writer.md +1 -1
- package/agents/design-planner.md +21 -0
- package/agents/design-reflector.md +39 -39
- package/agents/design-research-synthesizer.md +1 -0
- package/agents/design-start-writer.md +1 -1
- package/agents/design-update-checker.md +5 -5
- package/agents/design-verifier-gate.md +1 -1
- package/agents/design-verifier.md +52 -48
- package/agents/ds-generator.md +2 -2
- package/agents/ds-migration-planner.md +4 -4
- package/agents/email-executor.md +9 -9
- package/agents/experiment-result-ingester.md +3 -3
- package/agents/flutter-executor.md +5 -5
- package/agents/gdd-graph-refresh.md +3 -3
- package/agents/gdd-intel-updater.md +2 -2
- package/agents/motion-mapper.md +2 -2
- package/agents/motion-verifier.md +4 -4
- package/agents/pdf-executor.md +8 -8
- package/agents/perf-analyzer.md +17 -17
- package/agents/pr-commenter.md +9 -9
- package/agents/prototype-gate.md +2 -2
- package/agents/quality-gate-runner.md +1 -1
- package/agents/rollout-coordinator.md +3 -3
- package/agents/swift-executor.md +4 -4
- package/agents/ticket-sync-agent.md +6 -6
- package/agents/user-research-synthesizer.md +2 -2
- package/connections/connections.md +44 -45
- package/connections/cursor.md +72 -0
- package/connections/preview.md +3 -3
- package/hooks/first-run-nudge.cjs +171 -0
- package/hooks/gdd-intel-trigger.js +243 -0
- package/hooks/gdd-mcp-circuit-breaker.js +62 -7
- package/hooks/gdd-precompact-snapshot.js +50 -29
- package/hooks/gdd-protected-paths.js +150 -18
- package/hooks/gdd-risk-gate.js +93 -1
- package/hooks/gdd-sessionstart-recap.js +59 -24
- package/hooks/hooks.json +13 -4
- package/hooks/inject-using-gdd.cjs +188 -0
- package/hooks/update-check.cjs +511 -0
- package/package.json +9 -3
- package/reference/STATE-TEMPLATE.md +10 -13
- package/reference/audit-scoring.md +1 -1
- package/reference/cache-tier-doctrine.md +46 -0
- package/reference/config-schema.md +9 -9
- package/reference/i18n.md +1 -1
- package/reference/intel-schema.md +37 -2
- package/reference/meta-rules.md +4 -4
- package/reference/model-tiers.md +2 -2
- package/reference/registry.json +101 -94
- package/reference/runtime-models.md +11 -1
- package/reference/shared-preamble.md +13 -14
- package/reference/skill-graph.md +22 -3
- package/scripts/bootstrap.cjs +373 -0
- package/scripts/injection-patterns.cjs +58 -0
- package/scripts/lib/apply-reflections/incubator-proposals.cjs +57 -26
- package/scripts/lib/install/converters/codex-plugin.cjs +5 -2
- package/scripts/lib/install/converters/cursor.cjs +20 -0
- package/scripts/lib/issue-reporter/report-flow.cjs +1 -1
- package/scripts/lib/manifest/skills.json +75 -28
- package/scripts/lib/state/query-surface.cjs +67 -9
- package/scripts/lib/state/state-store.cjs +68 -26
- package/scripts/lib/worktree-resolve.cjs +4 -16
- package/sdk/cli/commands/stage.ts +17 -0
- package/sdk/cli/index.js +14 -0
- package/skills/README.md +46 -0
- package/skills/bootstrap-ds/SKILL.md +1 -1
- package/skills/cache-manager/SKILL.md +3 -3
- package/skills/cache-manager/cache-policy.md +1 -1
- package/skills/compare/SKILL.md +1 -1
- package/skills/design/SKILL.md +19 -0
- package/skills/explore/SKILL.md +11 -0
- package/skills/figma-write/SKILL.md +13 -2
- package/skills/new-cycle/SKILL.md +1 -1
- package/skills/paper-write/SKILL.md +54 -0
- package/skills/peer-cli-customize/SKILL.md +0 -1
- package/skills/peers/SKILL.md +1 -1
- package/skills/pencil-write/SKILL.md +54 -0
- package/skills/reflect/procedures/capability-gap-scan.md +0 -1
- package/skills/report-issue/SKILL.md +2 -2
- package/skills/report-issue/report-issue-procedure.md +0 -1
- package/skills/router/SKILL.md +2 -2
- package/skills/synthesize/SKILL.md +1 -1
- package/skills/turn-closeout/SKILL.md +1 -1
- package/skills/verify/verify-procedure.md +10 -11
- package/skills/warm-cache/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 -99
- 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 -107
- 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 -39
- 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/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/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 -512
- 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/first-run-nudge.sh +0 -82
- package/hooks/inject-using-gdd.sh +0 -72
- package/hooks/run-hook.cmd +0 -35
- package/hooks/update-check.sh +0 -251
- package/scripts/lib/audit-aggregator/index.cjs +0 -219
- package/scripts/lib/hedge-ensemble.cjs +0 -217
- 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,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gdd-check-update
|
|
3
|
-
description: "Manual plugin-update check. Shows cached state by default; --refresh bypasses the 24h TTL; --dismiss hides the nudge until a newer release ships; --prompt spawns design-update-checker for a richer summary."
|
|
4
|
-
argument-hint: "[--refresh] [--dismiss] [--prompt]"
|
|
5
|
-
tools: Read, Write, Bash, Task
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# /gdd:check-update
|
|
9
|
-
|
|
10
|
-
**Role:** Manual entry point for the plugin-update checker. The SessionStart hook (`hooks/update-check.sh`) already runs on its own 24h cadence and writes `.design/update-cache.json` + `.design/update-available.md`. This command lets the user inspect / force / dismiss / enrich that state on demand. See `./reference/heuristics.md` §"Version-cadence" for the off-cadence / preview-suffix handling background.
|
|
11
|
-
|
|
12
|
-
## Flags
|
|
13
|
-
|
|
14
|
-
| Flag | Effect |
|
|
15
|
-
|------|--------|
|
|
16
|
-
| *(none)* | Print cached state. If cache is older than 24h, trigger `--refresh` implicitly. |
|
|
17
|
-
| `--refresh` | Invoke `hooks/update-check.sh --refresh` - bypasses the 24h TTL and re-fetches immediately. |
|
|
18
|
-
| `--dismiss` | Write `update_dismissed: "<latest_tag>"` to `.design/config.json` atomically and delete `.design/update-available.md`. Sticky until a newer release ships. |
|
|
19
|
-
| `--prompt` | Spawn `design-update-checker` agent (Haiku) to produce a 3–5-line "what this release changes for you" summary. Does not alter the banner or cache. |
|
|
20
|
-
|
|
21
|
-
Flags combine: `--refresh --prompt` is valid (re-fetch, then enrich). `--dismiss` is the only flag that mutates `.design/config.json`.
|
|
22
|
-
|
|
23
|
-
## Steps
|
|
24
|
-
|
|
25
|
-
1. **Parse flags.** Detect `--refresh`, `--dismiss`, `--prompt` in `$ARGUMENTS`. Unknown flag → `Unknown flag: <flag>` and exit.
|
|
26
|
-
|
|
27
|
-
2. **`--refresh` path** (if set):
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
bash "${CLAUDE_PLUGIN_ROOT:-$(pwd)}/hooks/update-check.sh" --refresh
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
This re-fetches `/releases/latest`, rewrites `.design/update-cache.json`, and re-renders `.design/update-available.md` subject to state/dismissal gates.
|
|
34
|
-
|
|
35
|
-
3. **Read cache.** After any optional refresh, read `.design/update-cache.json`. If missing: print `No cache. Network may be unreachable or the hook has not run yet. Try /gdd:check-update --refresh.` and exit.
|
|
36
|
-
|
|
37
|
-
4. **`--dismiss` path** (if set): Compute new config contents and write atomically via the env-prefix Python heredoc pattern below. The pattern is essential - passing variables as trailing `KEY=VALUE` argv treats them as `sys.argv`, not `os.environ`. Use env-prefix form only.
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
CONFIG_PATH=".design/config.json"
|
|
41
|
-
LATEST_TAG="$(grep -E '"latest_tag"' .design/update-cache.json | head -n1 | sed -E 's/.*"latest_tag"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/')"
|
|
42
|
-
[ -n "$LATEST_TAG" ] || { echo 'No latest_tag in cache — nothing to dismiss.'; exit 0; }
|
|
43
|
-
mkdir -p .design
|
|
44
|
-
CONFIG_PATH="$CONFIG_PATH" LATEST_TAG="$LATEST_TAG" python3 <<'PY'
|
|
45
|
-
import json, os, sys, tempfile
|
|
46
|
-
config_path = os.environ['CONFIG_PATH']
|
|
47
|
-
latest_tag = os.environ['LATEST_TAG']
|
|
48
|
-
try:
|
|
49
|
-
with open(config_path, 'r', encoding='utf-8') as f:
|
|
50
|
-
data = json.load(f)
|
|
51
|
-
if not isinstance(data, dict): data = {}
|
|
52
|
-
except (FileNotFoundError, json.JSONDecodeError): data = {}
|
|
53
|
-
data['update_dismissed'] = latest_tag
|
|
54
|
-
target_dir = os.path.dirname(config_path) or '.'
|
|
55
|
-
fd, tmp_path = tempfile.mkstemp(prefix='config.', suffix='.tmp', dir=target_dir)
|
|
56
|
-
try:
|
|
57
|
-
with os.fdopen(fd, 'w', encoding='utf-8') as f:
|
|
58
|
-
json.dump(data, f, indent=2); f.write('\n')
|
|
59
|
-
os.replace(tmp_path, config_path)
|
|
60
|
-
except Exception:
|
|
61
|
-
try: os.unlink(tmp_path)
|
|
62
|
-
except OSError: pass
|
|
63
|
-
sys.exit(1)
|
|
64
|
-
PY
|
|
65
|
-
rm -f .design/update-available.md
|
|
66
|
-
echo "Dismissed $LATEST_TAG. The nudge will return when a newer release ships."
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
D-14 atomic-write invariant: `os.replace()` (POSIX `rename(2)`) is atomic on the same filesystem. The `json.load → set single key → json.dump` round-trip preserves every unknown top-level key (e.g. `model_profile`, `parallelism`) verbatim.
|
|
70
|
-
|
|
71
|
-
5. **Print default state** (always, unless exited early):
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
━━━ /gdd:check-update ━━━
|
|
75
|
-
Current: v<X.Y.Z>
|
|
76
|
-
Latest: v<A.B.C> (delta: <major|minor|patch|off-cadence|none>)
|
|
77
|
-
Newer: <true|false>
|
|
78
|
-
Checked: <ISO time of checked_at>
|
|
79
|
-
Dismissed: <tag or "no">
|
|
80
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Parse fields from `.design/update-cache.json` via `grep + sed` (no jq dep). Read dismissal from `.design/config.json` via the same pattern as `hooks/update-check.sh`.
|
|
84
|
-
|
|
85
|
-
6. **`--prompt` path** (if set): Spawn `design-update-checker` via Task tool with context `{current_tag, latest_tag, delta, release_body}`. Display response verbatim below the banner. Agent ends with `## UPDATE-CHECKER COMPLETE`.
|
|
86
|
-
|
|
87
|
-
## Do Not
|
|
88
|
-
|
|
89
|
-
- Do not fetch from GitHub directly - always go through `hooks/update-check.sh --refresh` so caching + state-guard + dismissal logic stays in one place.
|
|
90
|
-
- Do not modify `.design/update-available.md` except to delete on `--dismiss`.
|
|
91
|
-
- Do not rewrite `.design/config.json` wholesale - the atomic Python rewrite preserves every unknown key (D-14).
|
|
92
|
-
- Do not pass variables to the Python heredoc via trailing `KEY=VALUE` argv - env-prefix form only.
|
|
93
|
-
|
|
94
|
-
## Completion marker
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
## CHECK-UPDATE COMPLETE
|
|
98
|
-
```
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gdd-compare
|
|
3
|
-
description: "Compute the delta between the `DESIGN.md` baseline (from scan) and the `DESIGN-VERIFICATION.md` result (from verify), reporting per-category score delta, anti-pattern delta (resolved vs new), must-have pass/fail change, and design drift (regressions without covering tasks in `DESIGN-PLAN.md`). Use after `verify` to measure whether a design pipeline cycle actually improved the design. Writes `.design/COMPARE-REPORT.md`. Activates for requests involving diffing a design baseline against verification output, or a before-after design delta."
|
|
4
|
-
argument-hint: ""
|
|
5
|
-
user-invocable: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# gdd-compare - Baseline vs Result Delta
|
|
9
|
-
|
|
10
|
-
Standalone delta command. Computes the difference between the scan baseline (`DESIGN.md`) and the verification result (`DESIGN-VERIFICATION.md`), and flags design drift for any regression not covered by an explicit task in `DESIGN-PLAN.md`. Writes one artifact: `.design/COMPARE-REPORT.md`.
|
|
11
|
-
|
|
12
|
-
For the full step-by-step methodology (score parsing, set arithmetic for anti-patterns, drift-coverage map, screenshot-delta probe, and `COMPARE-REPORT.md` template), see `./compare-rubric.md`. For the cross-skill output discipline (artifact prefix, completion marker, MUST-NOT-write list, connection-probe pattern), see `../../reference/shared-preamble.md#output-contract-reminders` and `../../reference/shared-preamble.md#connection-handshake-summary`. For the underlying 0–10 category-scoring rubric the delta is computed against, see `../../reference/audit-scoring.md`.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Scope
|
|
17
|
-
|
|
18
|
-
This command is **standalone** - not a pipeline stage:
|
|
19
|
-
|
|
20
|
-
- Scoped strictly to delta between two existing files (COMP-02): `DESIGN.md` (baseline, from scan) and `DESIGN-VERIFICATION.md` (result, from verify).
|
|
21
|
-
- Does NOT require or implement a snapshot mechanism - multi-run history is deferred to V2-06.
|
|
22
|
-
- Does NOT mutate any pipeline artifact (`DESIGN.md`, `DESIGN-VERIFICATION.md`, `DESIGN-SUMMARY.md`, `DESIGN-CONTEXT.md`, `DESIGN-PLAN.md`, `.design/STATE.md`).
|
|
23
|
-
- Writes exactly ONE file: `.design/COMPARE-REPORT.md`.
|
|
24
|
-
- Output artifact prefix `COMPARE-REPORT` is distinct from the pipeline namespace (`DESIGN-*.md`). No naming conflict.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Pre-Flight Checks (Pitfall 3)
|
|
29
|
-
|
|
30
|
-
Required files - abort if either is missing:
|
|
31
|
-
|
|
32
|
-
- `.design/DESIGN.md` missing → `"No baseline found. Run /get-design-done scan first."`
|
|
33
|
-
- `.design/DESIGN-VERIFICATION.md` missing → `"No verification result found. Run /get-design-done verify first to produce DESIGN-VERIFICATION.md."`
|
|
34
|
-
|
|
35
|
-
**Optional files (graceful degradation if absent):**
|
|
36
|
-
|
|
37
|
-
- `.design/DESIGN-CONTEXT.md` - used for must-have delta. If missing, skip the Must-Have Status section and emit note: `"Must-have delta skipped: DESIGN-CONTEXT.md not found."`
|
|
38
|
-
- `.design/DESIGN-PLAN.md` - used for drift detection. If missing, skip DRIFT flagging and emit note: `"Drift detection skipped: no DESIGN-PLAN.md."`
|
|
39
|
-
|
|
40
|
-
Confirm `.design/` directory exists. If absent: `mkdir -p .design/`.
|
|
41
|
-
|
|
42
|
-
Probe `preview` connection per `../../reference/shared-preamble.md#connection-handshake-summary` (ToolSearch → live call → STATE.md write). Result drives Step 5B (screenshot delta).
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Workflow
|
|
47
|
-
|
|
48
|
-
1. **Parse Category Scores** - extract baseline + result score tables, normalize names, flag unmatched. Detail: `./compare-rubric.md#step-1--parse-category-scores`.
|
|
49
|
-
2. **Compute Score Delta** - `delta = result - baseline`, classify (`improvement`/`no_change`/`regression`). Detail: `./compare-rubric.md#step-2--compute-score-delta-comp-03`.
|
|
50
|
-
3. **Anti-Pattern Delta** - set arithmetic on baseline vs result anti-pattern sets (resolved / new / unchanged). Detail: `./compare-rubric.md#step-3--anti-pattern-delta`.
|
|
51
|
-
4. **Must-Have Pass/Fail Change** - read `<must_haves>` from `DESIGN-CONTEXT.md`, status from `DESIGN-VERIFICATION.md`. Detail: `./compare-rubric.md#step-4--must-have-passfail-change`.
|
|
52
|
-
5. **Design Drift Detection (COMP-04)** - build coverage map from `DESIGN-PLAN.md` `Type:` fields; for each `regression` not in coverage_map → emit `DRIFT: [category] ...`. Detail: `./compare-rubric.md#step-5--design-drift-detection-comp-04`.
|
|
53
|
-
6. **Screenshot Delta (preview: available only)** - capture per-route screenshots to `.design/screenshots/{before,after}/<route>.png`. Detail: `./compare-rubric.md#step-5b--screenshot-delta-when-preview-available`.
|
|
54
|
-
7. **Write `.design/COMPARE-REPORT.md`** - full template at `./compare-rubric.md#step-6--compare-reportmd-template`.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Constraints
|
|
59
|
-
|
|
60
|
-
This command MUST NOT (per `../../reference/shared-preamble.md#output-contract-reminders`):
|
|
61
|
-
|
|
62
|
-
- Write to `DESIGN.md`, `DESIGN-VERIFICATION.md`, `DESIGN-SUMMARY.md`, `DESIGN-CONTEXT.md`, `DESIGN-PLAN.md`, or `.design/STATE.md`.
|
|
63
|
-
- Require or implement a snapshot system (V2-06 deferred).
|
|
64
|
-
- Reinterpret or silently normalize category names that do not match between files - report mismatches in the Notes section.
|
|
65
|
-
- Invoke `design-auditor` or any other pipeline agent.
|
|
66
|
-
- Produce more than one output file: `.design/COMPARE-REPORT.md`.
|
|
67
|
-
|
|
68
|
-
Must abort with a clear actionable error message if either input file (`DESIGN.md` baseline, `DESIGN-VERIFICATION.md` result) is missing.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Completion
|
|
73
|
-
|
|
74
|
-
After writing `.design/COMPARE-REPORT.md`, print a summary:
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
Compare complete. Improvements: N. Regressions: M. Drift flags: K. See .design/COMPARE-REPORT.md.
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Where `N` = improvement count, `M` = regression count, `K` = DRIFT-flag count (0 if drift detection was skipped or no regressions). Do not summarize individual issues - the file contains the full detail.
|
|
81
|
-
|
|
82
|
-
## COMPARE COMPLETE
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: compare-rubric
|
|
3
|
-
type: heuristic
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
phase: 28.5
|
|
6
|
-
tags: [compare, delta, drift, scoring, rubric, extracted]
|
|
7
|
-
last_updated: 2026-05-18
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Source: extracted from `skills/compare/SKILL.md` (Phase 28.5 rework - D-10 extract-then-link).
|
|
11
|
-
The skill's essential workflow stays in `../skills/compare/SKILL.md`; this file holds the
|
|
12
|
-
delta-computation methodology, anti-pattern set arithmetic, drift-detection coverage map,
|
|
13
|
-
and the `COMPARE-REPORT.md` template the skill writes.
|
|
14
|
-
|
|
15
|
-
# Compare Rubric - Baseline vs Result Delta Methodology
|
|
16
|
-
|
|
17
|
-
Detailed methodology for the `gdd-compare` standalone command - companion to
|
|
18
|
-
`../skills/compare/SKILL.md`. Read this file when executing a specific compare step (score
|
|
19
|
-
delta math, anti-pattern set arithmetic, drift coverage map, report layout). The SKILL.md
|
|
20
|
-
keeps the essential pre-flight checks + step routing; this file holds the deep methodology.
|
|
21
|
-
|
|
22
|
-
See `./shared-preamble.md#output-contract-reminders` for the per-skill output discipline and
|
|
23
|
-
`./audit-scoring.md` for the 0–10 category-scoring rubric the delta is computed against.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Step 1 - Parse Category Scores
|
|
28
|
-
|
|
29
|
-
**Extract baseline scores from `.design/DESIGN.md`:** locate the category score table (rows like `| Accessibility | 6/10 | ... |`). Parse each row: extract category name + numeric score. Store as `baseline_scores` map.
|
|
30
|
-
|
|
31
|
-
**Extract result scores from `.design/DESIGN-VERIFICATION.md`:** locate the same table in the Phase 1 output section. Store as `result_scores` map.
|
|
32
|
-
|
|
33
|
-
**Normalize category names:**
|
|
34
|
-
- Strip leading/trailing whitespace.
|
|
35
|
-
- Apply title-case normalization (e.g., `anti-patterns` → `Anti-Patterns`).
|
|
36
|
-
- Match categories case-insensitively between the two tables.
|
|
37
|
-
|
|
38
|
-
**Unmatched categories:**
|
|
39
|
-
- Baseline-only → flag `[UNMATCHED-BASELINE]`, exclude from score delta.
|
|
40
|
-
- Result-only → flag `[UNMATCHED-RESULT]`, exclude from score delta.
|
|
41
|
-
- Report all unmatched categories in the Notes section. Do NOT silently paper over mismatches.
|
|
42
|
-
|
|
43
|
-
## Step 2 - Compute Score Delta (COMP-03)
|
|
44
|
-
|
|
45
|
-
For each matched category: `delta = result_scores[category] - baseline_scores[category]`.
|
|
46
|
-
|
|
47
|
-
Classify:
|
|
48
|
-
- `improvement` - delta > 0
|
|
49
|
-
- `no_change` - delta == 0
|
|
50
|
-
- `regression` - delta < 0
|
|
51
|
-
|
|
52
|
-
Record per category: name, baseline score, result score, signed delta, classification. Collect regressed categories for drift detection in Step 5.
|
|
53
|
-
|
|
54
|
-
## Step 3 - Anti-Pattern Delta
|
|
55
|
-
|
|
56
|
-
Enumerate anti-patterns in both files (entries identified by BAN-*, SLOP-*, or labeled as anti-patterns). Collect identifiers or descriptions as sets.
|
|
57
|
-
|
|
58
|
-
Compute set arithmetic:
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
resolved = baseline_anti_patterns - result_anti_patterns
|
|
62
|
-
(present in baseline, absent in result — fixed)
|
|
63
|
-
|
|
64
|
-
new = result_anti_patterns - baseline_anti_patterns
|
|
65
|
-
(absent in baseline, present in result — introduced)
|
|
66
|
-
|
|
67
|
-
unchanged = intersection of both sets
|
|
68
|
-
(still present in both)
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Report all three groups in the output report.
|
|
72
|
-
|
|
73
|
-
## Step 4 - Must-Have Pass/Fail Change
|
|
74
|
-
|
|
75
|
-
**Skip condition:** if `.design/DESIGN-CONTEXT.md` is absent → emit note and skip this section.
|
|
76
|
-
|
|
77
|
-
Read `<must_haves>` from `DESIGN-CONTEXT.md` (each must-have has ID + description). Read pass/fail status from `DESIGN-VERIFICATION.md` (must-have status table). For each must-have: record `pass`, `fail`, or `not-evaluated`. If `DESIGN.md` contained a prior must-have status section, compute the change (`pass→fail`, `fail→pass`); otherwise report current status only.
|
|
78
|
-
|
|
79
|
-
## Step 5 - Design Drift Detection (COMP-04)
|
|
80
|
-
|
|
81
|
-
**Skip condition:** if `.design/DESIGN-PLAN.md` is absent → emit `"Drift detection skipped: DESIGN-PLAN.md not found."` in the Drift section.
|
|
82
|
-
|
|
83
|
-
**Coverage map:** read `DESIGN-PLAN.md` and extract the `Type:` field from each task. Build a map of which design categories have at least one task of matching Type:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Type: accessibility → covers "Accessibility" category
|
|
87
|
-
Type: color → covers "Color" category
|
|
88
|
-
Type: typography → covers "Typography" category
|
|
89
|
-
Type: visual-hierarchy → covers "Visual Hierarchy" category
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Category-to-Type matching is case-insensitive and normalized.
|
|
93
|
-
|
|
94
|
-
**Drift check:** for each category classified as `regression` in Step 2: if category NOT in coverage_map → emit `DRIFT: [category] regressed from <baseline> to <result> without a design task of Type:<category>`.
|
|
95
|
-
|
|
96
|
-
Emit `"No drift detected. All regressed categories are covered by tasks in DESIGN-PLAN.md."` if all regressed categories are covered. Emit `"No drift detected. No score regressions found."` if no regressions in Step 2.
|
|
97
|
-
|
|
98
|
-
## Step 5B - Screenshot Delta (when preview: available)
|
|
99
|
-
|
|
100
|
-
Check `preview` status from `.design/STATE.md <connections>` (written by the probe at stage entry - see `./shared-preamble.md#connection-handshake-summary`).
|
|
101
|
-
|
|
102
|
-
**If `preview: available`:**
|
|
103
|
-
|
|
104
|
-
1. `preview_start` if no session is already running.
|
|
105
|
-
2. For each route inferred from `DESIGN-PLAN.md` tasks or `src/app/` / `src/pages/` file structure:
|
|
106
|
-
a. `preview_navigate` to route URL (e.g., `http://localhost:3000/<route>`).
|
|
107
|
-
b. `preview_screenshot` → save to `.design/screenshots/before/<route>.png` (only if a prior baseline exists at this path) and `.design/screenshots/after/<route>.png` (current render).
|
|
108
|
-
c. Record reference paths (NOT base64) for embedding in the `## Screenshot Delta` section.
|
|
109
|
-
3. `preview_stop` when all routes are captured.
|
|
110
|
-
|
|
111
|
-
**If `preview: unavailable` or `preview: not_configured`:** emit exactly `Screenshot delta skipped — preview not configured.`
|
|
112
|
-
|
|
113
|
-
## Step 6 - COMPARE-REPORT.md Template
|
|
114
|
-
|
|
115
|
-
Output path: `.design/COMPARE-REPORT.md`. This file MUST NOT be written to any pipeline-reserved path.
|
|
116
|
-
|
|
117
|
-
```markdown
|
|
118
|
-
# Compare Report: Baseline vs Result
|
|
119
|
-
|
|
120
|
-
**Generated:** <ISO 8601 date>
|
|
121
|
-
**Baseline:** .design/DESIGN.md
|
|
122
|
-
**Result:** .design/DESIGN-VERIFICATION.md
|
|
123
|
-
|
|
124
|
-
## Score Delta by Category
|
|
125
|
-
|
|
126
|
-
| Category | Baseline | Result | Delta | Status |
|
|
127
|
-
|----------|----------|--------|-------|--------|
|
|
128
|
-
| Accessibility | 6 | 8 | +2 | improvement |
|
|
129
|
-
| Visual Hierarchy | 5 | 5 | 0 | no_change |
|
|
130
|
-
| Anti-Patterns | 4 | 3 | -1 | regression |
|
|
131
|
-
|
|
132
|
-
## Anti-Pattern Delta
|
|
133
|
-
|
|
134
|
-
**Resolved** (present in baseline, absent in result):
|
|
135
|
-
- <anti-pattern id or description>
|
|
136
|
-
|
|
137
|
-
**New** (absent in baseline, present in result):
|
|
138
|
-
- <anti-pattern id or description>
|
|
139
|
-
|
|
140
|
-
**Unchanged:**
|
|
141
|
-
- <anti-pattern id or description>
|
|
142
|
-
|
|
143
|
-
## Must-Have Status
|
|
144
|
-
|
|
145
|
-
| Must-Have | Status |
|
|
146
|
-
|-----------|--------|
|
|
147
|
-
| <id / description> | pass |
|
|
148
|
-
| <id / description> | fail |
|
|
149
|
-
| <id / description> | not-evaluated |
|
|
150
|
-
|
|
151
|
-
## Design Drift
|
|
152
|
-
|
|
153
|
-
<One of: "No drift detected. ..." | "DRIFT: [Category] regressed ..." | "Drift detection skipped: DESIGN-PLAN.md not found.">
|
|
154
|
-
|
|
155
|
-
## Screenshot Delta
|
|
156
|
-
|
|
157
|
-
<Per-route screenshot pairs OR "Screenshot delta skipped — preview not configured.">
|
|
158
|
-
|
|
159
|
-
## Notes
|
|
160
|
-
|
|
161
|
-
Scope: delta between two existing artifacts (.design/DESIGN.md → .design/DESIGN-VERIFICATION.md).
|
|
162
|
-
No snapshot mechanism — multi-snapshot compare deferred to V2-06.
|
|
163
|
-
This report does not modify DESIGN.md, DESIGN-VERIFICATION.md, or any other pipeline artifact.
|
|
164
|
-
<List any UNMATCHED-BASELINE or UNMATCHED-RESULT categories here, if any.>
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
If a section has no items (e.g., no anti-patterns in baseline), write "None."
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
*Imported by: `../skills/compare/SKILL.md`. Maintained as part of Phase 28.5 (Bucket 2 rework - D-10).*
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gdd-complete-cycle
|
|
3
|
-
description: "Cycle closeout command that marks CYCLES.md entry complete, archives pipeline artifacts to .design/archive/cycle-N/, generates EXPERIENCE.md, rebuilds the search index, and resets STATE.md. Use when a design cycle has shipped and you're ready to start the next one."
|
|
4
|
-
argument-hint: "[<retrospective note>]"
|
|
5
|
-
tools: Read, Write, Bash, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# /gdd:complete-cycle
|
|
9
|
-
|
|
10
|
-
Closes the current cycle: marks CYCLES.md entry complete, archives pipeline artifacts, and clears STATE.md for the next cycle.
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. **Load state**: Read `.design/STATE.md` for the active `cycle:` ID. If empty/missing, error: "No active cycle - nothing to complete."
|
|
15
|
-
2. **Retrospective**: If no argument was passed, ask (AskUserQuestion): "Is cycle <N> complete? Briefly describe what was achieved." Capture for CYCLES.md.
|
|
16
|
-
3. **Update CYCLES.md**: Find the current cycle entry, change `**Status**: active` to `**Status**: complete`, append a `**Retrospective**: <note>` line and `**Ended**: <date>`.
|
|
17
|
-
4. **Archive artifacts**: Create `.design/archive/cycle-N/` via Bash `mkdir -p`. Copy these files into it (if present):
|
|
18
|
-
- `DESIGN.md`
|
|
19
|
-
- `DESIGN-PLAN.md`
|
|
20
|
-
- `DESIGN-CONTEXT.md`
|
|
21
|
-
- `DESIGN-VERIFICATION.md`
|
|
22
|
-
- `DESIGN-AUDIT.md`
|
|
23
|
-
- `DESIGN-SUMMARY.md`
|
|
24
|
-
Mark originals with a `<!-- archived to .design/archive/cycle-N/ -->` note at top (do not delete - next cycle will overwrite).
|
|
25
|
-
5. **Generate EXPERIENCE.md** (Haiku-tier writer step): Read cycle STATE decisions + `.design/DESIGN-VERIFICATION.md` (if present) + any `.design/reflections/*.md` from this cycle. Write `.design/archive/cycle-N/EXPERIENCE.md` using this structure (~100–200 lines, declarative-fact framing, prepend `reference/cycle-handoff-preamble.md` content):
|
|
26
|
-
|
|
27
|
-
```markdown
|
|
28
|
-
<!-- archived cycle experience — reference, not current requests -->
|
|
29
|
-
# Cycle N — Experience
|
|
30
|
-
|
|
31
|
-
**Goal**: <one-line goal from STATE.md or CYCLES.md>
|
|
32
|
-
**Opened**: <start date>
|
|
33
|
-
**Ended**: <today>
|
|
34
|
-
|
|
35
|
-
## Decisions Made
|
|
36
|
-
|
|
37
|
-
<list all D-XX decisions from STATE.md <decisions> block — one per line>
|
|
38
|
-
|
|
39
|
-
## Learnings Graduated
|
|
40
|
-
|
|
41
|
-
<list all L-NN learnings surfaced or promoted this cycle>
|
|
42
|
-
|
|
43
|
-
## What Died
|
|
44
|
-
|
|
45
|
-
<designs, approaches, or tasks that were started but abandoned — and why>
|
|
46
|
-
|
|
47
|
-
## Surprises
|
|
48
|
-
|
|
49
|
-
<what was unexpected during this cycle>
|
|
50
|
-
|
|
51
|
-
## Handoff to Next Cycle
|
|
52
|
-
|
|
53
|
-
<what the next cycle should know: active sketches, deferred tasks, unresolved questions>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
This file becomes the highest-priority source for the decision-injector hook in future sessions.
|
|
57
|
-
|
|
58
|
-
6. **Trigger reindex**: if `.design/search.db` exists, rebuild the search index:
|
|
59
|
-
```bash
|
|
60
|
-
node -e "require('./scripts/lib/design-search.cjs').reindex(process.cwd())" 2>/dev/null || true
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
7. **Clear STATE.md**: Set `cycle:` to empty string, reset `<decisions>` to a fresh empty section, reset `stage:` to `brief`.
|
|
64
|
-
8. Print: "Cycle <N> archived. Run `/gdd:new-cycle` to start the next cycle."
|
|
65
|
-
|
|
66
|
-
## Do Not
|
|
67
|
-
|
|
68
|
-
- Do not delete source files in `src/` - only archive `.design/` artifacts.
|
|
69
|
-
- Do not auto-start a new cycle - user invokes `/gdd:new-cycle` explicitly.
|
|
70
|
-
|
|
71
|
-
## Step 6 - Update notice (post-closeout surface)
|
|
72
|
-
|
|
73
|
-
After the archive has been written and STATE.md has been cleared for the next cycle, emit the plugin-update banner if one is present:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
[ -f .design/update-available.md ] && cat .design/update-available.md
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Written by `hooks/update-check.sh`; suppressed mid-pipeline and when the latest release is dismissed.
|
|
80
|
-
|
|
81
|
-
## COMPLETE-CYCLE COMPLETE
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gdd-connections
|
|
3
|
-
description: "Interactive onboarding wizard for the 33 external integrations the pipeline supports - probes all (`figma`, `refero`, `preview`, `storybook`, `chromatic`, `graphify`, `pinterest`, `claude-design`, `paper-design`, `pencil-dev`, `21st-dev`, `magic-patterns`, `lazyweb`, `mobbin`, `slack`, `discord`, `linear`, `jira`, `notion`, `lottie`, `rive`, `framer`, `penpot`, `webflow`, `v0-dev`, `plasmic`, `builder-io`, `launchdarkly`, `statsig`, `growthbook`, `usertesting`, `maze`, `hotjar`), recommends based on project type, walks the user through setup (auto-run MCP install or copy-command fallback), writes results to `STATE.md <connections>`. Use after `/gdd:new-project` or whenever the user wants to add, inspect, or skip a connection. Re-runnable anytime. Activates for requests involving setting up external integrations, probing Figma or preview or storybook, or onboarding tools."
|
|
4
|
-
argument-hint: "[list | <connection-name> | --auto]"
|
|
5
|
-
user-invocable: true
|
|
6
|
-
tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, ToolSearch
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# /gdd:connections
|
|
10
|
-
|
|
11
|
-
Interactive onboarding for the 33 external integrations the pipeline supports. Replaces "probe silently at scan entry and hope the user noticed" with an explicit "here is what can plug in, here is how."
|
|
12
|
-
|
|
13
|
-
Canonical per-connection specs live in `../../connections/<name>.md` (one file per integration). The capability matrix + probe-pattern spec live in `../../connections/connections.md`. This skill is the **user-facing front end** for those specs.
|
|
14
|
-
|
|
15
|
-
For the 33 probe scripts (MCP + HTTP + CLI + file probes), bucket categorization, per-connection setup screen, auto-run eligibility matrix, value-prop one-liners, and STATE.md / config.json write contracts, see `./connections-onboarding.md`. For the cross-skill probe pattern + connection-handshake summary, see `../../reference/shared-preamble.md#connection-handshake-summary`. For the cross-skill output discipline, see `../../reference/shared-preamble.md#output-contract-reminders`.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Invocation Modes
|
|
20
|
-
|
|
21
|
-
| Command | Behavior |
|
|
22
|
-
|---|---|
|
|
23
|
-
| `/gdd:connections` | Interactive wizard (default). Probes all, shows summary, asks what to configure. |
|
|
24
|
-
| `/gdd:connections list` | Read-only table. Probes all, writes STATE.md, no prompts, exits. |
|
|
25
|
-
| `/gdd:connections <name>` | Jump straight to setup for one connection (e.g. `/gdd:connections figma`). |
|
|
26
|
-
| `/gdd:connections --auto` | CI mode. Probes, writes STATE.md, no prompts, no install attempts. |
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## State Integration
|
|
31
|
-
|
|
32
|
-
1. Read `.design/STATE.md` - if missing, that's fine; this skill does not require a pipeline run.
|
|
33
|
-
2. Read `.design/config.json` - if missing, use defaults. If `connections_onboarding` block is present with `pending_verification`, this is a resume - see Step 6.
|
|
34
|
-
3. Read `connections.skip[]` from config - never re-prompt for skipped connections.
|
|
35
|
-
4. Update `last_checkpoint` in STATE.md at skill exit if STATE.md exists.
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Workflow
|
|
40
|
-
|
|
41
|
-
1. **Probe all 33 connections** - run every probe script per `./connections-onboarding.md#step-1--probe-all-33-connections`. MCP probes use `ToolSearch` first; HTTP / CLI / file probes follow non-MCP patterns. Merge results into `STATE.md <connections>` with the three-value schema (`available | unavailable | not_configured`) - never add new values.
|
|
42
|
-
2. **Categorize + build summary** - bucket each probe result (available / recommended / optional / skipped / unavailable) using project-hint detection. Detail + recommendation mapping: `./connections-onboarding.md#step-2--bucket-categorization`.
|
|
43
|
-
3. **Print summary table** - show buckets + value-prop one-liners (verbatim from `./connections-onboarding.md#step-3--summary-table`).
|
|
44
|
-
4. **Route by mode** - `list` / `--auto` exits after summary; `<name>` jumps straight to Step 5; default mode opens an AskUserQuestion (configure recommended / pick one by one / configure all optional / re-check specific / exit). Routing detail: `./connections-onboarding.md#step-4--route-by-mode`.
|
|
45
|
-
5. **Per-connection setup screen** - for each target: read `connections/<name>.md`, present the setup screen, AskUserQuestion (run now / copy-paste / skip / never ask). Auto-run only if reversible (see eligibility matrix). On success: append name to `connections_onboarding.pending_verification[]`. Detail: `./connections-onboarding.md#step-5--per-connection-setup-screen`.
|
|
46
|
-
6. **Verification pass** - re-probe every name in `pending_verification[]`. Available → remove. `not_configured` → leave (needs session restart). `unavailable` → leave + note OAuth needed. Print "Setup complete" summary. Detail: `./connections-onboarding.md#step-6--verification-pass`.
|
|
47
|
-
|
|
48
|
-
If `.design/config.json > connections_onboarding.pending_verification[]` is non-empty at entry → enter **resume flow**: run Step 6 immediately; if clean, exit; otherwise fall through to Step 3. Detail: `./connections-onboarding.md#resumability`.
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Do Not
|
|
53
|
-
|
|
54
|
-
Per `./connections-onboarding.md#do-not`:
|
|
55
|
-
|
|
56
|
-
- Never run `npm install -g` globals automatically.
|
|
57
|
-
- Never write to `~/.bashrc`, `~/.zshrc`, or shell RC files.
|
|
58
|
-
- Never run `claude mcp add` without explicit `"Run install command now"` confirmation.
|
|
59
|
-
- Never auto-restart the Claude Code session.
|
|
60
|
-
- Never re-prompt for names in `connections.skip[]`.
|
|
61
|
-
- Never overwrite existing `<connections>` entries that this skill did not probe - merge only.
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Output
|
|
66
|
-
|
|
67
|
-
End every invocation with:
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
## CONNECTIONS COMPLETE
|
|
71
|
-
```
|