its-magic 0.1.2-9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/.cursor/agents/curator.mdc +21 -0
  2. package/.cursor/agents/dev.mdc +20 -0
  3. package/.cursor/agents/po.mdc +19 -0
  4. package/.cursor/agents/qa.mdc +19 -0
  5. package/.cursor/agents/release.mdc +19 -0
  6. package/.cursor/agents/tech-lead.mdc +21 -0
  7. package/.cursor/commands/gsd-architecture.md +29 -0
  8. package/.cursor/commands/gsd-auto.md +27 -0
  9. package/.cursor/commands/gsd-discovery.md +27 -0
  10. package/.cursor/commands/gsd-execute.md +32 -0
  11. package/.cursor/commands/gsd-intake.md +28 -0
  12. package/.cursor/commands/gsd-map-codebase.md +25 -0
  13. package/.cursor/commands/gsd-milestone-complete.md +24 -0
  14. package/.cursor/commands/gsd-milestone-start.md +26 -0
  15. package/.cursor/commands/gsd-pause.md +25 -0
  16. package/.cursor/commands/gsd-phase-context.md +25 -0
  17. package/.cursor/commands/gsd-plan-verify.md +26 -0
  18. package/.cursor/commands/gsd-qa.md +28 -0
  19. package/.cursor/commands/gsd-quick.md +24 -0
  20. package/.cursor/commands/gsd-refresh-context.md +26 -0
  21. package/.cursor/commands/gsd-release.md +29 -0
  22. package/.cursor/commands/gsd-research.md +28 -0
  23. package/.cursor/commands/gsd-resume.md +26 -0
  24. package/.cursor/commands/gsd-sprint-plan.md +30 -0
  25. package/.cursor/commands/gsd-verify-work.md +25 -0
  26. package/.cursor/hooks/README.md +13 -0
  27. package/.cursor/hooks/gsd-hook.py +197 -0
  28. package/.cursor/hooks.json +26 -0
  29. package/.cursor/plans/cursor-gsd-team-kit_8cfee9b8.plan.md +57 -0
  30. package/.cursor/remote.json +18 -0
  31. package/.cursor/rules/gsd-core.mdc +18 -0
  32. package/.cursor/rules/gsd-escalation.mdc +11 -0
  33. package/.cursor/rules/gsd-handoffs.mdc +10 -0
  34. package/.cursor/rules/gsd-quality.mdc +15 -0
  35. package/.cursor/scratchpad.md +34 -0
  36. package/.cursor/skills/gsd-team/SKILL.md +39 -0
  37. package/.cursor/skills/gsd-team/templates/acceptance.json +10 -0
  38. package/.cursor/skills/gsd-team/templates/acceptance.md +7 -0
  39. package/.cursor/skills/gsd-team/templates/architecture.json +11 -0
  40. package/.cursor/skills/gsd-team/templates/architecture.md +14 -0
  41. package/.cursor/skills/gsd-team/templates/decision.json +14 -0
  42. package/.cursor/skills/gsd-team/templates/decision.md +19 -0
  43. package/.cursor/skills/gsd-team/templates/handoff.json +6 -0
  44. package/.cursor/skills/gsd-team/templates/handoff.md +12 -0
  45. package/.cursor/skills/gsd-team/templates/milestone.json +7 -0
  46. package/.cursor/skills/gsd-team/templates/phase-context.json +6 -0
  47. package/.cursor/skills/gsd-team/templates/plan-verify.json +11 -0
  48. package/.cursor/skills/gsd-team/templates/sprint.json +6 -0
  49. package/.cursor/skills/gsd-team/templates/sprint.md +11 -0
  50. package/.cursor/skills/gsd-team/templates/story.json +9 -0
  51. package/.cursor/skills/gsd-team/templates/story.md +15 -0
  52. package/.cursor/skills/gsd-team/templates/uat.json +15 -0
  53. package/.github/workflows/ci.yml +47 -0
  54. package/.github/workflows/deploy.yml +56 -0
  55. package/README.md +755 -0
  56. package/bin/its-magic.js +86 -0
  57. package/decisions/DEC-0001.md +21 -0
  58. package/decisions/DEC-0002.md +21 -0
  59. package/docs/engineering/architecture.md +354 -0
  60. package/docs/engineering/codebase-map.md +14 -0
  61. package/docs/engineering/context/phase-template.json +6 -0
  62. package/docs/engineering/decisions.md +6 -0
  63. package/docs/engineering/dependencies.json +5 -0
  64. package/docs/engineering/research.md +11 -0
  65. package/docs/engineering/runbook.md +32 -0
  66. package/docs/engineering/state.md +33 -0
  67. package/docs/product/acceptance.md +6 -0
  68. package/docs/product/backlog.md +7 -0
  69. package/docs/product/vision.md +46 -0
  70. package/gsd-installer.ps1 +189 -0
  71. package/gsd-installer.py +195 -0
  72. package/gsd-installer.sh +201 -0
  73. package/handoffs/dev_to_qa.md +8 -0
  74. package/handoffs/po_to_tl.md +8 -0
  75. package/handoffs/qa_to_dev.md +6 -0
  76. package/handoffs/release_notes.md +14 -0
  77. package/handoffs/resume_brief.md +8 -0
  78. package/handoffs/tl_to_dev.md +7 -0
  79. package/milestones/M0001/milestone.json +7 -0
  80. package/milestones/M0001/phases.json +9 -0
  81. package/milestones/M0001/progress.md +3 -0
  82. package/milestones/M0001/summary.md +3 -0
  83. package/package.json +38 -0
  84. package/scripts/generate-release-notes.ps1 +74 -0
  85. package/scripts/generate-release-notes.sh +63 -0
  86. package/scripts/release-all.ps1 +423 -0
  87. package/scripts/release-all.sh +226 -0
  88. package/sprints/S0001/plan-verify.json +5 -0
  89. package/sprints/S0001/progress.md +4 -0
  90. package/sprints/S0001/qa-findings.md +113 -0
  91. package/sprints/S0001/sprint.md +70 -0
  92. package/sprints/S0001/summary.md +46 -0
  93. package/sprints/S0001/tasks.md +35 -0
  94. package/sprints/S0001/uat.json +8 -0
  95. package/sprints/S0001/uat.md +8 -0
  96. package/sprints/quick/Q0001/summary.md +3 -0
  97. package/sprints/quick/Q0001/task.json +6 -0
package/README.md ADDED
@@ -0,0 +1,755 @@
1
+ # its-magic — AI dev team
2
+
3
+ Drop-in template repo that implements a structured GSD workflow in Cursor:
4
+ intake -> discovery -> architecture -> sprint plan -> execute -> QA -> release,
5
+ with pause/resume, decision gates, and persistent artifacts.
6
+
7
+ ## Quick start
8
+
9
+ 1. Use `/gsd-intake` to capture the idea and kick off questions.
10
+ 2. Continue with `/gsd-discovery`, `/gsd-architecture`, `/gsd-sprint-plan`.
11
+ 3. Execute work with `/gsd-execute`, verify via `/gsd-qa`, finalize via
12
+ `/gsd-release`.
13
+ 4. Use `/gsd-pause` anytime and `/gsd-resume` to continue from artifacts.
14
+ 5. Use `/gsd-refresh-context` to compact state and prevent context rot.
15
+
16
+ ## How to set up a project with its-magic
17
+
18
+ its-magic is an installer you run once per repo. It copies the AI dev team
19
+ workflow files (`.cursor/` commands, rules, agents, hooks, skills, plus `docs/`,
20
+ `sprints/`, `handoffs/`, etc.) into your project. After that, all `/gsd-*`
21
+ commands are available in Cursor.
22
+
23
+ ### Step 1: Install its-magic (once)
24
+
25
+ Pick **one** method — they all do the same thing:
26
+
27
+ | Method | Install command |
28
+ |--------|----------------|
29
+ | npm | `npm install -g its-magic` |
30
+ | npx | No install needed (runs on demand) |
31
+ | Chocolatey | `choco install its-magic` (run as Admin) |
32
+ | Homebrew | `brew tap USER/tap && brew install its-magic` |
33
+
34
+ ### Step 2: Set up a new or existing repo
35
+
36
+ **New empty project:**
37
+
38
+ ```bash
39
+ mkdir my-project && cd my-project
40
+ git init
41
+ its-magic --target . --mode missing --create
42
+ ```
43
+
44
+ **Existing project (add workflow without touching existing files):**
45
+
46
+ ```bash
47
+ cd my-existing-project
48
+ its-magic --target . --mode missing
49
+ ```
50
+
51
+ **Existing project (update/overwrite with latest workflow, backup first):**
52
+
53
+ ```bash
54
+ cd my-existing-project
55
+ its-magic --target . --mode overwrite --backup
56
+ ```
57
+
58
+ If you use **npx** (no global install), prefix with `npx`:
59
+
60
+ ```bash
61
+ npx its-magic --target . --mode missing
62
+ ```
63
+
64
+ ### Step 3: Open in Cursor and start working
65
+
66
+ ```
67
+ 1. Open the project folder in Cursor
68
+ 2. Type /gsd-intake and describe your idea
69
+ 3. Follow the workflow: discovery -> architecture -> sprint plan -> execute -> QA -> release
70
+ ```
71
+
72
+ ### What gets installed into your repo
73
+
74
+ ```
75
+ your-project/
76
+ .cursor/
77
+ commands/ ← /gsd-* slash commands
78
+ rules/ ← agent behavior rules
79
+ agents/ ← subagent definitions
80
+ skills/ ← GSD team skill + templates
81
+ hooks/ ← safety & context hooks
82
+ hooks.json ← hook configuration
83
+ scratchpad.md ← automation flags
84
+ docs/ ← product & engineering docs
85
+ sprints/ ← sprint planning & tracking
86
+ handoffs/ ← role-to-role notes
87
+ decisions/ ← decision records
88
+ .github/workflows/ ← CI/CD templates
89
+ ```
90
+
91
+ ### Options reference
92
+
93
+ | Flag | Description |
94
+ |------|-------------|
95
+ | `--target <path>` | Target repo path (required, or `.` for current dir) |
96
+ | `--mode missing` | Only copy files that don't exist yet (safe default) |
97
+ | `--mode overwrite` | Replace all files with latest versions |
98
+ | `--mode interactive` | Prompt per file |
99
+ | `--backup` | Save existing files to `gsd-backups/<timestamp>/` before overwriting |
100
+ | `--create` | Create the target directory if it doesn't exist |
101
+ | `--help` | Show usage info |
102
+
103
+ ## Repository layout (what is what)
104
+
105
+ ### GSD tooling (engine)
106
+ - `.cursor/` — commands, rules, agents, hooks, skills, scratchpad config.
107
+ - `.github/workflows/` — CI/CD templates driven by `docs/engineering/runbook.md`.
108
+ - `gsd-installer.*` — installers for adding its-magic to other repos.
109
+ - `scripts/` — helper scripts (release notes generator, unified release script).
110
+ - `packaging/` — Homebrew formula + Chocolatey nuspec for multi-platform distribution.
111
+
112
+ ### GSD artifacts (project memory)
113
+ - `docs/` — product + engineering docs (vision, architecture, decisions, state).
114
+ - `sprints/` — sprint planning, tasks, progress, QA, UAT.
115
+ - `handoffs/` — role-to-role handoff notes.
116
+ - `decisions/` — decision records (DEC-xxxx).
117
+ - `milestones/` — milestone tracking (optional).
118
+
119
+ ### Examples and code
120
+ - `examples/` — reference apps created by benchmarks or demos.
121
+
122
+ ### Testing and benchmarks
123
+ - `tests/` — test harness for its-magic verification.
124
+ - `benchmarks/` — scenario, live, prompted, and headless benchmark runners.
125
+
126
+ ### Misc
127
+ - `Plan.md` — original master plan for its-magic.
128
+ - `.gitignore` — ignores generated reports, temp folders, and telemetry.
129
+
130
+ ## Voice input (multilingual)
131
+
132
+ Voice is only an input layer. It produces text that feeds the same workflow:
133
+
134
+ - Option A: OS dictation (no setup, language support varies by OS)
135
+ - Option B: Cursor voice (if available)
136
+ - Option C: Local STT (whisper / whisper.cpp style dictation)
137
+
138
+ Recommended reliability pattern for slash commands:
139
+
140
+ - Bind a text expander or hotkey to insert `/gsd-intake ` (or any command).
141
+ - Dictate only the content after the command.
142
+
143
+ ## CI/CD via runbook
144
+
145
+ Workflows in `.github/workflows/` read command keys from
146
+ `docs/engineering/runbook.md`. If a key is not set (or is a placeholder),
147
+ the workflow skips the step and exits successfully.
148
+
149
+ Supported keys:
150
+
151
+ - `TEST_COMMAND`
152
+ - `LINT_COMMAND`
153
+ - `TYPECHECK_COMMAND`
154
+ - `DEPLOY_STAGING_COMMAND`
155
+ - `DEPLOY_PROD_COMMAND`
156
+
157
+ ## Installer / updater
158
+
159
+ Use one of the installers below to add its-magic to an existing repo or
160
+ bootstrap an empty one:
161
+
162
+ - Windows: `gsd-installer.ps1`
163
+ - macOS/Linux: `gsd-installer.sh`
164
+ - Python fallback: `gsd-installer.py`
165
+
166
+ Modes:
167
+
168
+ - `missing` copies only files that do not exist
169
+ - `overwrite` replaces existing files
170
+ - `interactive` prompts per file
171
+
172
+ Backup option:
173
+
174
+ - Use `--backup` (or choose when prompted) to save existing files into
175
+ `gsd-backups/<timestamp>/` before overwriting.
176
+
177
+ Examples:
178
+
179
+ - `powershell -ExecutionPolicy Bypass -File gsd-installer.ps1 --target "C:\path\to\repo" --mode missing`
180
+ - `powershell -ExecutionPolicy Bypass -File gsd-installer.ps1 --target "C:\path\to\repo" --mode overwrite --backup`
181
+ - `sh gsd-installer.sh --target "/path/to/repo" --mode missing`
182
+ - `sh gsd-installer.sh --target "/path/to/repo" --mode overwrite --backup`
183
+
184
+ ### NPX installer (npm publish)
185
+
186
+ After publishing this repo to npm as `its-magic`, install with:
187
+
188
+ - `npx its-magic --target "<path>" --mode missing`
189
+
190
+ Examples:
191
+
192
+ - `npx its-magic --target "C:\path\to\repo" --mode missing`
193
+ - `npx its-magic --target "C:\path\to\repo" --mode overwrite --backup`
194
+
195
+ ### NPX release automation
196
+
197
+ 1. `npm login`
198
+ 2. `npm publish`
199
+
200
+ Or use:
201
+
202
+ - `npm run release:patch`
203
+ - `npm run release:minor`
204
+ - `npm run release:major`
205
+
206
+ ### Unified release (npm + Chocolatey + Homebrew)
207
+
208
+ Release to all three package managers with a single command:
209
+
210
+ - Windows: `powershell -ExecutionPolicy Bypass -File scripts/release-all.ps1`
211
+ - macOS/Linux: `sh scripts/release-all.sh`
212
+
213
+ Or via npm scripts:
214
+
215
+ **All three at once:**
216
+
217
+ - `npm run release:all` — patch release to all three
218
+ - `npm run release:all:patch` — explicit patch to all three
219
+ - `npm run release:all:minor` — minor release to all three
220
+ - `npm run release:all:major` — major release to all three
221
+ - `npm run release:all:beta` — beta prerelease to all three
222
+ - `npm run release:all:dry` — dry run (print actions, change nothing)
223
+
224
+ **Single target only:**
225
+
226
+ - `npm run release:npm-only` — publish only to npm
227
+ - `npm run release:choco-only` — publish only to Chocolatey
228
+ - `npm run release:brew-only` — publish only to Homebrew
229
+
230
+ **Mix and match (PowerShell):**
231
+
232
+ ```powershell
233
+ # All three, minor bump
234
+ scripts/release-all.ps1 -Bump minor
235
+
236
+ # Only npm + Homebrew (skip Chocolatey)
237
+ scripts/release-all.ps1 -SkipChoco
238
+
239
+ # Only npm + Chocolatey (skip Homebrew)
240
+ scripts/release-all.ps1 -SkipBrew
241
+
242
+ # Only npm
243
+ scripts/release-all.ps1 -SkipChoco -SkipBrew
244
+
245
+ # Only Chocolatey
246
+ scripts/release-all.ps1 -SkipNpm -SkipBrew
247
+
248
+ # Only Homebrew
249
+ scripts/release-all.ps1 -SkipNpm -SkipChoco
250
+
251
+ # Homebrew + automatic tap publish
252
+ scripts/release-all.ps1 -SkipNpm -SkipChoco -BrewTapRepo USER/homebrew-tap
253
+
254
+ # Homebrew update only (no tap push)
255
+ scripts/release-all.ps1 -SkipNpm -SkipChoco -SkipBrewPush
256
+
257
+ # Beta prerelease, only npm
258
+ scripts/release-all.ps1 -Bump prerelease -NpmTag beta -SkipChoco -SkipBrew
259
+
260
+ # Explicit version
261
+ scripts/release-all.ps1 -Bump 1.2.3
262
+
263
+ # Preview without changing anything
264
+ scripts/release-all.ps1 -DryRun
265
+ ```
266
+
267
+ **Mix and match (Bash):**
268
+
269
+ ```bash
270
+ # All three, minor bump
271
+ sh scripts/release-all.sh --bump minor
272
+
273
+ # Only npm + Homebrew (skip Chocolatey)
274
+ sh scripts/release-all.sh --skip-choco
275
+
276
+ # Only npm
277
+ sh scripts/release-all.sh --skip-choco --skip-brew
278
+
279
+ # Only Chocolatey
280
+ sh scripts/release-all.sh --skip-npm --skip-brew
281
+
282
+ # Only Homebrew
283
+ sh scripts/release-all.sh --skip-npm --skip-choco
284
+
285
+ # Beta prerelease, only npm
286
+ sh scripts/release-all.sh --bump prerelease --npm-tag beta --skip-choco --skip-brew
287
+
288
+ # Preview without changing anything
289
+ sh scripts/release-all.sh --dry-run
290
+ ```
291
+
292
+ What the script does:
293
+ 1. Bumps version in `package.json`
294
+ 2. Publishes to npm (with optional dist-tag)
295
+ 3. Creates a GitHub release via `gh` CLI (marked as prerelease when version contains `-`)
296
+ 4. Updates Chocolatey `.nuspec`, computes checksum, runs `choco push`
297
+ 5. Updates Homebrew formula URL + sha256 (auto-selects `its-magic-beta.rb` for pre-releases)
298
+ 6. PowerShell script: pushes Homebrew formulas to your tap repo (`homebrew-tap`) unless `-SkipBrewPush` is used
299
+
300
+ Prerequisites:
301
+ - `npm login` (for npm)
302
+ - `gh auth login` (for GitHub releases, optional but recommended)
303
+ - `choco` installed + API key set (for Chocolatey, optional)
304
+ - Homebrew tap repo for distributing the formula (`USER/homebrew-tap`)
305
+ - `git` available locally (for tap push)
306
+
307
+ ### Installing via each package manager
308
+
309
+ | Manager | Stable | Beta / Pre-release |
310
+ |------------|-------------------------------------------|---------------------------------------------|
311
+ | npm/npx | `npx its-magic --target . --mode missing` | `npx its-magic@beta --target . --mode missing` |
312
+ | Chocolatey | `choco install its-magic` | `choco install its-magic --pre` |
313
+ | Homebrew | `brew install USER/tap/its-magic` | `brew install USER/tap/its-magic-beta` |
314
+
315
+ ### Homebrew tap setup
316
+
317
+ To distribute via Homebrew you need a "tap" repo:
318
+
319
+ 1. Create a GitHub repo named `homebrew-tap` (e.g. `USER/homebrew-tap`)
320
+ 2. Copy both formulas into that repo:
321
+ - `packaging/homebrew/its-magic.rb` (stable)
322
+ - `packaging/homebrew/its-magic-beta.rb` (pre-releases)
323
+ 3. Users install with:
324
+ - Stable: `brew tap USER/tap && brew install its-magic`
325
+ - Beta: `brew tap USER/tap && brew install its-magic-beta`
326
+
327
+ The PowerShell release script auto-detects whether the version is a pre-release
328
+ (contains `-`, e.g. `0.2.0-beta.1`) and updates the correct formula, then
329
+ commits + pushes to your tap repo.
330
+
331
+ Tap push options (PowerShell):
332
+ - `-BrewTapRepo USER/homebrew-tap` - explicit tap target
333
+ - `-BrewTapBranch main` - target branch
334
+ - `-BrewTapDir <path>` - local checkout path for tap
335
+ - `-CreateBrewTapIfMissing $true|$false` - auto-create tap repo on GitHub (default: `$true`, requires `gh auth login`)
336
+ - `-SkipBrewPush` - update formula locally but do not push tap
337
+
338
+ ### Chocolatey setup
339
+
340
+ 1. Create an account at https://community.chocolatey.org
341
+ 2. Get an API key from your account page
342
+ 3. Run `choco apikey --key <your-key> --source https://push.chocolatey.org/`
343
+ 4. The release script handles `choco pack` + `choco push` automatically
344
+
345
+ ```mermaid
346
+ flowchart LR
347
+ ReleaseAll[scripts/release-all.*] --> VerCheck{version has -?}
348
+ VerCheck -->|stable| NPM["npm publish --tag latest"]
349
+ VerCheck -->|prerelease| NPMBeta["npm publish --tag beta"]
350
+ ReleaseAll --> GH["gh release create"]
351
+ VerCheck -->|prerelease| GHPre["--prerelease flag"]
352
+ GH --> Choco[choco pack + push]
353
+ GH --> BrewCheck{prerelease?}
354
+ BrewCheck -->|no| BrewStable[its-magic.rb]
355
+ BrewCheck -->|yes| BrewBeta[its-magic-beta.rb]
356
+ NPM --> U1["npx its-magic"]
357
+ NPMBeta --> U1b["npx its-magic@beta"]
358
+ Choco --> U2["choco install its-magic"]
359
+ Choco --> U2b["choco install its-magic --pre"]
360
+ BrewStable --> U3["brew install its-magic"]
361
+ BrewBeta --> U3b["brew install its-magic-beta"]
362
+ ```
363
+
364
+ ## Release package contents
365
+
366
+ The npm package intentionally excludes **dev/testing/benchmark** content. The
367
+ published package includes only the its-magic runtime (commands, rules, agents,
368
+ docs, installers).
369
+
370
+ Excluded from npm release:
371
+ - `benchmarks/`
372
+ - `tests/`
373
+ - `packaging/`
374
+ - `Plan.md`
375
+
376
+ If you want those, use the development repo directly.
377
+
378
+ ## Benchmarks
379
+
380
+ Use the benchmark harness to compare its-magic changes over time.
381
+
382
+ - Windows: `powershell -ExecutionPolicy Bypass -File benchmarks/run-bench.ps1`
383
+ - macOS/Linux: `sh benchmarks/run-bench.sh`
384
+
385
+ Reports are written to `benchmarks/bench-report.md`.
386
+
387
+ ### Benchmark run diagrams
388
+
389
+ ```mermaid
390
+ flowchart TD
391
+ StartBench[Start benchmark] --> SelectScenario[Load scenarios]
392
+ SelectScenario --> InstallKit[Install its-magic into temp workspace]
393
+ InstallKit --> RunChecks[Validate required files/sections]
394
+ RunChecks --> BenchReport[Write benchmarks/bench-report.md]
395
+ ```
396
+
397
+ ## Live benchmarks
398
+
399
+ Live benchmarks capture real agent runs in Cursor via hook telemetry.
400
+
401
+ - Windows: `powershell -ExecutionPolicy Bypass -File benchmarks/live/run-live-bench.ps1`
402
+ - macOS/Linux: `sh benchmarks/live/run-live-bench.sh`
403
+
404
+ Reports are written to `benchmarks/live/live-bench-report.md`.
405
+
406
+ ```mermaid
407
+ flowchart TD
408
+ StartLive[Start live benchmark] --> SetSession[Set GSD_BENCH_SESSION]
409
+ SetSession --> RunCommands[Run /gsd-* commands in Cursor]
410
+ RunCommands --> LogHooks[Hook telemetry to gsd-bench-log.jsonl]
411
+ LogHooks --> LiveReport[Write live-bench-report.md]
412
+ ```
413
+
414
+ ## Prompted benchmark runs
415
+
416
+ Use the prompt runner to step through a scenario like a human would by
417
+ submitting each `/gsd-*` command in order.
418
+
419
+ - Windows:
420
+ `powershell -ExecutionPolicy Bypass -File benchmarks/prompts/run-prompts.ps1 -PromptFile benchmarks/prompts/S4_webview_api_app.txt -Clipboard`
421
+ - macOS/Linux:
422
+ `sh benchmarks/prompts/run-prompts.sh benchmarks/prompts/S4_webview_api_app.txt --clipboard`
423
+
424
+ ## Fully automated benchmark runs (Headless CLI)
425
+
426
+ This uses Cursor CLI in non-interactive mode.
427
+
428
+ - Windows: `powershell -ExecutionPolicy Bypass -File benchmarks/headless/run-headless.ps1 -PromptFile benchmarks/prompts/S4_webview_api_app.txt -ScenarioFile benchmarks/scenarios/S4_webview_api_app.scn`
429
+ - macOS/Linux: `sh benchmarks/headless/run-headless.sh benchmarks/prompts/S4_webview_api_app.txt benchmarks/scenarios/S4_webview_api_app.scn`
430
+
431
+ Dependencies:
432
+ - Cursor CLI (`agent`)
433
+ - ripgrep (`rg`)
434
+
435
+ Outputs:
436
+ - `benchmarks/headless/headless-report.md`
437
+ - `benchmarks/headless/protocol.md` (step prompts + AI response summaries)
438
+ Per-run artifacts:
439
+ - `benchmarks/runs/headless-<timestamp>/workspace/`
440
+ - `benchmarks/runs/headless-<timestamp>/reports/`
441
+
442
+ ```mermaid
443
+ flowchart TD
444
+ StartHeadless[Start headless run] --> LoadPrompt[Load prompt blocks]
445
+ LoadPrompt --> TempWorkspace[Create temp workspace]
446
+ TempWorkspace --> InstallHeadless[Install its-magic]
447
+ InstallHeadless --> RunAgent[agent -p --force for each step]
448
+ RunAgent --> ValidateOutputs[Validate files/sections/smoke checks]
449
+ ValidateOutputs --> WriteProtocol[Write protocol.md]
450
+ WriteProtocol --> WriteHeadlessReport[Write headless-report.md]
451
+ ```
452
+
453
+ ## Autonomous dependency installs
454
+
455
+ To enable fully autonomous dependency and runtime installs, set in
456
+ `.cursor/scratchpad.md`:
457
+
458
+ - `AUTO_INSTALL_DEPS=1`
459
+
460
+ When enabled, the agent may install required dependencies using the relevant
461
+ package manager without asking.
462
+
463
+ ## Remote / Docker execution
464
+
465
+ To allow the agent to use remote or Docker servers for builds/tests, set:
466
+
467
+ - `REMOTE_EXECUTION=1` in `.cursor/scratchpad.md`
468
+ - Configure servers in `.cursor/remote.json`
469
+
470
+ This only enables usage; you still control which servers are listed.
471
+
472
+ ## Release notes automation
473
+
474
+ Enable automatic release notes:
475
+
476
+ - Set `AUTO_RELEASE_NOTES=1` in `.cursor/scratchpad.md`
477
+ - Run the generator (optional manual step):
478
+ - Windows: `powershell -ExecutionPolicy Bypass -File scripts/generate-release-notes.ps1`
479
+ - macOS/Linux: `sh scripts/generate-release-notes.sh`
480
+
481
+ The generator writes to `handoffs/release_notes.md` and includes:
482
+ - Sprint summary
483
+ - Last 20 git commit messages (if in a git repo)
484
+ - QA findings
485
+ - Runbook notes
486
+
487
+ ## Automation modes
488
+
489
+ Configure in `.cursor/scratchpad.md`:
490
+
491
+ - `AUTO_FLOW_MODE=auto_until_decision` to run phases until a decision gate.
492
+ - `PHASE_MODE=interactive|auto` to control per-phase prompting.
493
+ - `PERMISSION_MODE=interactive|auto` to reduce routine permission prompts.
494
+
495
+ ### Scratchpad reference
496
+
497
+ - `GSD_CONTEXT_STRICT=0|1` — enforce context refresh after code edits.
498
+ - `LOOP_UNTIL_GREEN=0|1` — optional test loop when commands are set.
499
+ - `RUN_TESTS_ON_EDIT=0|1` — run tests after edits.
500
+ - `DONE=0|1` — stop hook loops.
501
+ - `GSD_BENCH_SESSION=<id>` — live benchmark session id.
502
+ - `AUTO_FLOW_MODE=manual|auto_until_decision`
503
+ - `PHASE_MODE=interactive|auto`
504
+ - `PERMISSION_MODE=interactive|auto`
505
+ - `AUTO_INSTALL_DEPS=0|1`
506
+ - `AUTO_RELEASE_NOTES=0|1`
507
+ - `REMOTE_EXECUTION=0|1`
508
+ - `REMOTE_CONFIG=.cursor/remote.json`
509
+
510
+ ## Recent changes (latest additions)
511
+
512
+ - **Unified multi-platform release** (npm + Chocolatey + Homebrew) via `scripts/release-all.*`.
513
+ - Homebrew formula template in `packaging/homebrew/`.
514
+ - Chocolatey package spec in `packaging/chocolatey/`.
515
+ - npm `release:all` scripts for one-command publishing to all three.
516
+ - Headless CLI benchmark runner with protocol output.
517
+ - Headless run validation: required files, sections, and smoke checks.
518
+ - Prompted scenario files for code benchmarks.
519
+ - Autonomous dependency installs (`AUTO_INSTALL_DEPS=1`).
520
+ - Automated release notes (`AUTO_RELEASE_NOTES=1`).
521
+ - Optional remote/Docker execution (`REMOTE_EXECUTION=1` + `remote.json`).
522
+
523
+ ```mermaid
524
+ flowchart TD
525
+ Scratchpad[".cursor/scratchpad.md"] --> AutoDeps[AUTO_INSTALL_DEPS]
526
+ Scratchpad --> AutoRelease[AUTO_RELEASE_NOTES]
527
+ Scratchpad --> RemoteExec[REMOTE_EXECUTION]
528
+ AutoDeps --> ExecuteCmd[/gsd-execute/]
529
+ AutoRelease --> ReleaseCmd[/gsd-release/]
530
+ RemoteExec --> ExecuteCmd
531
+ ReleaseCmd --> ReleaseNotes[handoffs/release_notes.md]
532
+ BenchPrompts[benchmarks/prompts/*.txt] --> HeadlessRunner[benchmarks/headless/run-headless.*]
533
+ HeadlessRunner --> Protocol[benchmarks/headless/protocol.md]
534
+ HeadlessRunner --> Report[benchmarks/headless/headless-report.md]
535
+ ReleaseAll[scripts/release-all.*] --> NPMPub[npm publish]
536
+ ReleaseAll --> GHRelease[GitHub release]
537
+ GHRelease --> ChocoUpdate[Chocolatey pack+push]
538
+ GHRelease --> BrewUpdate[Homebrew formula update]
539
+ ```
540
+
541
+ ## How-to examples
542
+
543
+ ### Example 1: New web app idea
544
+
545
+ 1. Run `/gsd-intake` and describe the idea in one sentence.
546
+ 2. Answer the PO questions until `docs/product/*` are filled.
547
+ 3. Run `/gsd-research` to capture risks and patterns.
548
+ 4. Run `/gsd-architecture` and `/gsd-sprint-plan` to create `sprints/S0001/*`.
549
+ 5. Run `/gsd-plan-verify` to confirm task coverage.
550
+ 6. Run `/gsd-execute` to implement tasks and update `state.md`.
551
+ 7. Run `/gsd-qa` and record findings.
552
+ 8. Run `/gsd-verify-work` for UAT.
553
+ 9. Run `/gsd-release` and update `runbook.md`.
554
+ 10. Run `/gsd-refresh-context` to compact context.
555
+
556
+ ### Example 2: Pause and resume
557
+
558
+ 1. Run `/gsd-pause` to write `handoffs/resume_brief.md`.
559
+ 2. Later, run `/gsd-resume` to load the context pack.
560
+ 3. Continue with the appropriate phase.
561
+
562
+ ### Example 3: Map an existing project
563
+
564
+ 1. Run `/gsd-map-codebase` before any planning.
565
+ 2. Review `docs/engineering/codebase-map.md` and `dependencies.json`.
566
+ 3. Continue with `/gsd-intake` or `/gsd-architecture`.
567
+
568
+ ### Example 4: Headless benchmark run
569
+
570
+ 1. Install Cursor CLI and `rg` (ripgrep).
571
+ 2. Run:
572
+ `powershell -ExecutionPolicy Bypass -File benchmarks/headless/run-headless.ps1 -PromptFile benchmarks/prompts/S4_webview_api_app.txt -ScenarioFile benchmarks/scenarios/S4_webview_api_app.scn`
573
+ 3. Read:
574
+ `benchmarks/headless/headless-report.md` and `benchmarks/headless/protocol.md`.
575
+
576
+ ## Features (full list)
577
+
578
+ - **Structured GSD workflow** with explicit phases and artifacts.
579
+ - **Artifact-first memory**: everything important is persisted in files.
580
+ - **Decision gate**: escalation to `decisions/DEC-xxxx.md`.
581
+ - **Pause/resume**: checkpoint and resume brief support.
582
+ - **Context refresh**: compact `state.md` and decisions.
583
+ - **Voice input** supported as an input layer.
584
+ - **CI/CD templates** driven by runbook commands.
585
+ - **Hooks** for safety and context hygiene.
586
+ - **Benchmarks** for repeatable validation and telemetry.
587
+ - **Headless CLI** support for automation.
588
+ - **Research phase** and plan verification loop.
589
+ - **Phase context** files for preferences and constraints.
590
+ - **Quick mode** for small tasks.
591
+ - **Milestones** for larger multi-phase work.
592
+ - **Map codebase** for existing projects.
593
+ - **Remote/Docker execution** (optional).
594
+
595
+ ## Commands (what they do)
596
+
597
+ - `/gsd-intake`: capture idea, ask questions, write vision/backlog/acceptance.
598
+ - `/gsd-discovery`: collect design/UX references, update vision/backlog.
599
+ - `/gsd-architecture`: define architecture, risks, and decisions.
600
+ - `/gsd-sprint-plan`: create sprint + tasks + handoff to dev.
601
+ - `/gsd-plan-verify`: verify sprint tasks cover acceptance criteria.
602
+ - `/gsd-execute`: implement tasks; update summary/state.
603
+ - `/gsd-qa`: test plan + findings + handoff back to dev.
604
+ - `/gsd-verify-work`: user acceptance testing (UAT).
605
+ - `/gsd-release`: release notes + runbook updates.
606
+ - `/gsd-pause`: checkpoint + resume brief.
607
+ - `/gsd-resume`: load context pack and continue.
608
+ - `/gsd-refresh-context`: compact state + decisions + summary.
609
+ - `/gsd-research`: research patterns, risks, and dependencies.
610
+ - `/gsd-map-codebase`: map existing repos before changes.
611
+ - `/gsd-quick`: short path for small tasks.
612
+ - `/gsd-phase-context`: phase-specific preferences and constraints.
613
+ - `/gsd-milestone-start`: initialize milestone tracking.
614
+ - `/gsd-milestone-complete`: finalize milestone summary.
615
+ - `/gsd-auto`: run phases until decision gate.
616
+
617
+ ## Full workflow example (end-to-end)
618
+
619
+ This example shows when each command is best used and what it produces.
620
+
621
+ 1. **/gsd-intake**
622
+ Use when you have only an idea.
623
+ Output: `docs/product/vision.md`, `docs/product/backlog.md`,
624
+ `docs/product/acceptance.md`, `handoffs/po_to_tl.md`.
625
+
626
+ 2. **/gsd-discovery**
627
+ Use when you need UX references or scope refinements.
628
+ Output: updates to `vision.md` + `backlog.md`, refreshes `po_to_tl.md`.
629
+
630
+ 3. **/gsd-research**
631
+ Use when you need patterns, risks, and dependency notes.
632
+ Output: `docs/engineering/research.md`, `decisions.md`, `state.md`.
633
+
634
+ 4. **/gsd-architecture**
635
+ Use when you need a concrete technical approach and risk notes.
636
+ Output: `docs/engineering/architecture.md`, `decisions.md`, `state.md`.
637
+
638
+ 5. **/gsd-sprint-plan**
639
+ Use when architecture is stable and you want a task list.
640
+ Output: `sprints/S0001/sprint.md`, `tasks.md`, `progress.md`,
641
+ `handoffs/tl_to_dev.md`.
642
+
643
+ 6. **/gsd-plan-verify**
644
+ Use to confirm tasks cover acceptance criteria.
645
+ Output: `sprints/S0001/plan-verify.json`, `state.md`.
646
+
647
+ 7. **/gsd-execute**
648
+ Use to implement tasks.
649
+ Output: code changes, `sprints/S0001/summary.md`, `state.md`,
650
+ `handoffs/dev_to_qa.md` (when ready).
651
+
652
+ 8. **/gsd-qa**
653
+ Use to verify and document findings.
654
+ Output: `sprints/S0001/qa-findings.md`, `handoffs/qa_to_dev.md`,
655
+ updates to `state.md`.
656
+
657
+ 9. **/gsd-verify-work**
658
+ Use for user acceptance testing (UAT).
659
+ Output: `sprints/S0001/uat.json`, `uat.md`, `state.md`.
660
+
661
+ 10. **/gsd-release**
662
+ Use to prepare release notes and finalize runbook commands.
663
+ Output: `handoffs/release_notes.md`, updated `runbook.md`, updated `state.md`.
664
+
665
+ 11. **/gsd-refresh-context**
666
+ Use after major changes to keep context compact.
667
+ Output: compacted `state.md`, `decisions.md`, updated sprint summary.
668
+
669
+ 12. **/gsd-pause**
670
+ Use any time you need to stop safely.
671
+ Output: `handoffs/resume_brief.md`, updated `progress.md` and `state.md`.
672
+
673
+ 13. **/gsd-resume**
674
+ Use to restart work from artifacts only.
675
+ Output: updated `state.md` if needed, and a clear next step.
676
+
677
+ ## Full flow diagram
678
+
679
+ ```mermaid
680
+ flowchart TD
681
+ Intake[/gsd-intake/] --> Discovery[/gsd-discovery/]
682
+ Discovery --> Research[/gsd-research/]
683
+ Research --> Architecture[/gsd-architecture/]
684
+ Architecture --> SprintPlan[/gsd-sprint-plan/]
685
+ SprintPlan --> PlanVerify[/gsd-plan-verify/]
686
+ PlanVerify --> Execute[/gsd-execute/]
687
+ Execute --> QA[/gsd-qa/]
688
+ QA -->|fixes needed| Execute
689
+ QA --> VerifyWork[/gsd-verify-work/]
690
+ VerifyWork --> Release[/gsd-release/]
691
+ Release --> Refresh[/gsd-refresh-context/]
692
+ Execute --> Pause[/gsd-pause/]
693
+ QA --> Pause
694
+ Release --> Pause
695
+ Pause --> Resume[/gsd-resume/]
696
+ Resume --> Execute
697
+ ```
698
+
699
+ ```mermaid
700
+ flowchart TD
701
+ Start[Idea] --> Intake2[/gsd-intake/]
702
+ Intake2 -->|DecisionGate| Decision{DecisionRequired}
703
+ Decision -->|ChooseOption| Discovery2[/gsd-discovery/]
704
+ Decision -->|ChooseOption| Research2[/gsd-research/]
705
+ Decision -->|ChooseOption| Architecture2[/gsd-architecture/]
706
+ Decision -->|ChooseOption| SprintPlan2[/gsd-sprint-plan/]
707
+ Decision -->|ChooseOption| PlanVerify2[/gsd-plan-verify/]
708
+ Decision -->|ChooseOption| Execute2[/gsd-execute/]
709
+ Decision -->|ChooseOption| QA2[/gsd-qa/]
710
+ Decision -->|ChooseOption| VerifyWork2[/gsd-verify-work/]
711
+ Decision -->|ChooseOption| Release2[/gsd-release/]
712
+ Decision -->|ChooseOption| Refresh2[/gsd-refresh-context/]
713
+ Decision -->|ChooseOption| Pause2[/gsd-pause/]
714
+ Discovery2 --> Research2
715
+ Research2 --> Architecture2
716
+ Architecture2 --> SprintPlan2
717
+ SprintPlan2 --> PlanVerify2
718
+ PlanVerify2 --> Execute2
719
+ Execute2 --> QA2
720
+ QA2 -->|fixes needed| Execute2
721
+ QA2 --> VerifyWork2
722
+ VerifyWork2 --> Release2
723
+ Release2 --> Refresh2
724
+ Execute2 --> Pause2
725
+ QA2 --> Pause2
726
+ Release2 --> Pause2
727
+ Pause2 --> Resume2[/gsd-resume/]
728
+ Resume2 --> Execute2
729
+ Execute2 --> HandoffDevQA[handoffs/dev_to_qa.md]
730
+ QA2 --> HandoffQAD[handoffs/qa_to_dev.md]
731
+ Intake2 --> HandoffPOTL[handoffs/po_to_tl.md]
732
+ SprintPlan2 --> HandoffTLDev[handoffs/tl_to_dev.md]
733
+ ```
734
+
735
+ ## Rules (what they enforce)
736
+
737
+ - `gsd-core.mdc`: phase flow, context pack, pause/resume, remote usage.
738
+ - `gsd-quality.mdc`: small steps, tests/quality, optional auto-install.
739
+ - `gsd-handoffs.mdc`: handoffs + state updates required.
740
+ - `gsd-escalation.mdc`: decision gate and stop conditions.
741
+
742
+ ## Hooks (what they do)
743
+
744
+ - `beforeShellExecution`: block dangerous commands.
745
+ - `beforeReadFile`: warn on secret-like files.
746
+ - `afterFileEdit`: track code edits vs context refresh.
747
+ - `stop`: remind to refresh context when needed.
748
+
749
+ ## Artifacts (single source of truth)
750
+
751
+ - `docs/product/*`: vision, backlog, acceptance.
752
+ - `docs/engineering/*`: architecture, decisions, state, runbook.
753
+ - `sprints/Sxxxx/*`: sprint scope, tasks, progress, QA findings, summary.
754
+ - `decisions/*`: decision records.
755
+ - `handoffs/*`: role-to-role transfer notes.