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