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.
- package/.cursor/agents/curator.mdc +21 -0
- package/.cursor/agents/dev.mdc +20 -0
- package/.cursor/agents/po.mdc +19 -0
- package/.cursor/agents/qa.mdc +19 -0
- package/.cursor/agents/release.mdc +19 -0
- package/.cursor/agents/tech-lead.mdc +21 -0
- package/.cursor/commands/gsd-architecture.md +29 -0
- package/.cursor/commands/gsd-auto.md +27 -0
- package/.cursor/commands/gsd-discovery.md +27 -0
- package/.cursor/commands/gsd-execute.md +32 -0
- package/.cursor/commands/gsd-intake.md +28 -0
- package/.cursor/commands/gsd-map-codebase.md +25 -0
- package/.cursor/commands/gsd-milestone-complete.md +24 -0
- package/.cursor/commands/gsd-milestone-start.md +26 -0
- package/.cursor/commands/gsd-pause.md +25 -0
- package/.cursor/commands/gsd-phase-context.md +25 -0
- package/.cursor/commands/gsd-plan-verify.md +26 -0
- package/.cursor/commands/gsd-qa.md +28 -0
- package/.cursor/commands/gsd-quick.md +24 -0
- package/.cursor/commands/gsd-refresh-context.md +26 -0
- package/.cursor/commands/gsd-release.md +29 -0
- package/.cursor/commands/gsd-research.md +28 -0
- package/.cursor/commands/gsd-resume.md +26 -0
- package/.cursor/commands/gsd-sprint-plan.md +30 -0
- package/.cursor/commands/gsd-verify-work.md +25 -0
- package/.cursor/hooks/README.md +13 -0
- package/.cursor/hooks/gsd-hook.py +197 -0
- package/.cursor/hooks.json +26 -0
- package/.cursor/plans/cursor-gsd-team-kit_8cfee9b8.plan.md +57 -0
- package/.cursor/remote.json +18 -0
- package/.cursor/rules/gsd-core.mdc +18 -0
- package/.cursor/rules/gsd-escalation.mdc +11 -0
- package/.cursor/rules/gsd-handoffs.mdc +10 -0
- package/.cursor/rules/gsd-quality.mdc +15 -0
- package/.cursor/scratchpad.md +34 -0
- package/.cursor/skills/gsd-team/SKILL.md +39 -0
- package/.cursor/skills/gsd-team/templates/acceptance.json +10 -0
- package/.cursor/skills/gsd-team/templates/acceptance.md +7 -0
- package/.cursor/skills/gsd-team/templates/architecture.json +11 -0
- package/.cursor/skills/gsd-team/templates/architecture.md +14 -0
- package/.cursor/skills/gsd-team/templates/decision.json +14 -0
- package/.cursor/skills/gsd-team/templates/decision.md +19 -0
- package/.cursor/skills/gsd-team/templates/handoff.json +6 -0
- package/.cursor/skills/gsd-team/templates/handoff.md +12 -0
- package/.cursor/skills/gsd-team/templates/milestone.json +7 -0
- package/.cursor/skills/gsd-team/templates/phase-context.json +6 -0
- package/.cursor/skills/gsd-team/templates/plan-verify.json +11 -0
- package/.cursor/skills/gsd-team/templates/sprint.json +6 -0
- package/.cursor/skills/gsd-team/templates/sprint.md +11 -0
- package/.cursor/skills/gsd-team/templates/story.json +9 -0
- package/.cursor/skills/gsd-team/templates/story.md +15 -0
- package/.cursor/skills/gsd-team/templates/uat.json +15 -0
- package/.github/workflows/ci.yml +47 -0
- package/.github/workflows/deploy.yml +56 -0
- package/README.md +755 -0
- package/bin/its-magic.js +86 -0
- package/decisions/DEC-0001.md +21 -0
- package/decisions/DEC-0002.md +21 -0
- package/docs/engineering/architecture.md +354 -0
- package/docs/engineering/codebase-map.md +14 -0
- package/docs/engineering/context/phase-template.json +6 -0
- package/docs/engineering/decisions.md +6 -0
- package/docs/engineering/dependencies.json +5 -0
- package/docs/engineering/research.md +11 -0
- package/docs/engineering/runbook.md +32 -0
- package/docs/engineering/state.md +33 -0
- package/docs/product/acceptance.md +6 -0
- package/docs/product/backlog.md +7 -0
- package/docs/product/vision.md +46 -0
- package/gsd-installer.ps1 +189 -0
- package/gsd-installer.py +195 -0
- package/gsd-installer.sh +201 -0
- package/handoffs/dev_to_qa.md +8 -0
- package/handoffs/po_to_tl.md +8 -0
- package/handoffs/qa_to_dev.md +6 -0
- package/handoffs/release_notes.md +14 -0
- package/handoffs/resume_brief.md +8 -0
- package/handoffs/tl_to_dev.md +7 -0
- package/milestones/M0001/milestone.json +7 -0
- package/milestones/M0001/phases.json +9 -0
- package/milestones/M0001/progress.md +3 -0
- package/milestones/M0001/summary.md +3 -0
- package/package.json +38 -0
- package/scripts/generate-release-notes.ps1 +74 -0
- package/scripts/generate-release-notes.sh +63 -0
- package/scripts/release-all.ps1 +423 -0
- package/scripts/release-all.sh +226 -0
- package/sprints/S0001/plan-verify.json +5 -0
- package/sprints/S0001/progress.md +4 -0
- package/sprints/S0001/qa-findings.md +113 -0
- package/sprints/S0001/sprint.md +70 -0
- package/sprints/S0001/summary.md +46 -0
- package/sprints/S0001/tasks.md +35 -0
- package/sprints/S0001/uat.json +8 -0
- package/sprints/S0001/uat.md +8 -0
- package/sprints/quick/Q0001/summary.md +3 -0
- 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.
|