@tekyzinc/gsd-t 2.21.0 → 2.23.0

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/CHANGELOG.md CHANGED
@@ -1,403 +1,422 @@
1
- # Changelog
2
-
3
- All notable changes to GSD-T are documented here. Updated with each release.
4
-
5
- ## [2.21.0] - 2026-02-17
6
-
7
- ### Added
8
- - **gsd-t-triage-and-merge**: New command to auto-review unmerged GitHub branches, score impact (auto-merge / review / skip), merge safe branches, and optionally version bump + publish. Publish gate respects autonomy level auto in Level 3, prompted in Level 1-2. Sensitive file detection for commands, CLI, templates, and scripts
9
-
10
- ## [2.20.7] - 2026-02-17
11
-
12
- ### Added
13
- - **Formal contracts**: 5 contract definitions for core GSD-T interfaces backlog file formats, domain structure, pre-commit gate, progress.md format, and wave phase sequence. Formalizes existing conventions as machine-readable reference docs
14
-
15
- ## [2.20.6] - 2026-02-16
16
-
17
- ### Fixed
18
- - Stale command/template counts in project CLAUDE.md (25→41 commands, 7→9 templates, v2.0.0→v2.20.x)
19
- - Duplicate step numbering in `gsd-t-execute.md` (two step 10s)
20
- - Windows CRLF/LF comparison causing false "changed" detection in CLI update
21
-
22
- ### Added
23
- - Document Ripple sections to `gsd-t-execute`, `gsd-t-scan`, `gsd-t-test-sync`, `gsd-t-verify`
24
- - Heartbeat auto-cleanup: files older than 7 days are automatically removed
25
- - Error handling wrapping around file operations in CLI (copy, unlink, write)
26
- - `applyTokens()` and `normalizeEol()` helpers to reduce duplication
27
- - Extracted `updateProjectClaudeMd()`, `createProjectChangelog()`, `checkProjectHealth()` from `doUpdateAll()`
28
-
29
- ## [2.20.5] - 2026-02-16
30
-
31
- ### Added
32
- - **Next Command Hint**: After each GSD-T phase completes, displays the recommended next command (e.g., `Next → /user:gsd-t-partition`). Full successor mapping for all workflow commands. Skipped during auto-advancing (Level 3 mid-wave)
33
-
34
- ## [2.20.4] - 2026-02-16
35
-
36
- ### Changed
37
- - **Scan always uses team mode**: `gsd-t-scan` and `gsd-t-init-scan-setup` now spawn a team by default. Solo mode only for trivially small codebases (< 5 files) or when teams are explicitly disabled
38
-
39
- ## [2.20.3] - 2026-02-16
40
-
41
- ### Added
42
- - **Playwright Cleanup**: After Playwright tests finish, kill any app/server processes that were started for the tests. Prevents orphaned dev servers from lingering after test runs
43
-
44
- ## [2.20.2] - 2026-02-16
45
-
46
- ### Added
47
- - **CLI health checks**: `update-all` and `doctor` now check all projects for missing Playwright and Swagger/OpenAPI
48
- - Smart API detection: scans `package.json`, `requirements.txt`, `pyproject.toml` for API frameworks (Express, Fastify, Hono, Django, FastAPI, etc.)
49
- - Swagger detection: checks for spec files (`openapi.json/yaml`, `swagger.json/yaml`) and swagger packages in dependencies
50
- - Health summary in `update-all` shows counts of missing Playwright and Swagger across all registered projects
51
-
52
- ## [2.20.1] - 2026-02-16
53
-
54
- ### Added
55
- - **API Documentation Guard (Swagger/OpenAPI)**: Every API endpoint must be documented in Swagger/OpenAPI spec — no exceptions. Auto-detects framework and installs appropriate Swagger integration. Swagger URL must be published in CLAUDE.md, README.md, and docs/infrastructure.md
56
- - Pre-Commit Gate now checks for Swagger spec updates on any API endpoint change
57
-
58
- ## [2.20.0] - 2026-02-16
59
-
60
- ### Added
61
- - **Playwright Setup in Init**: `gsd-t-init` now installs Playwright, creates `playwright.config.ts`, and sets up E2E test directory for every project. Detects package manager (bun, npm, yarn, pnpm, pip) automatically
62
- - **Playwright Readiness Guard**: Before any testing command (execute, test-sync, verify, quick, wave, milestone, complete-milestone, debug), checks for `playwright.config.*` and auto-installs if missing. Playwright must always be ready — no deferring to "later"
63
-
64
- ## [2.19.1] - 2026-02-16
65
-
66
- ### Changed
67
- - **Quick**: Now runs the FULL test suite (not just affected tests), requires comprehensive test creation for new/changed code paths including Playwright E2E, and verifies against requirements and contracts. "Quick doesn't mean skip testing."
68
-
69
- ## [2.19.0] - 2026-02-16
70
-
71
- ### Changed
72
- - **Execute**: "No feature code without test code" — every task must include comprehensive unit tests AND Playwright E2E specs for all new code paths, modes, and flows. Tests are part of the deliverable, not a follow-up
73
- - **Test-Sync**: Creates tests immediately during execute phase instead of deferring gaps to verify. Missing Playwright specs for new features/modes are created on the spot
74
- - **Verify**: Zero test coverage on new functionality is now a FAIL (not WARN). Coverage audit checks that every new feature, mode, page, and flow has comprehensive Playwright specs covering happy path, error states, edge cases, and all modes/flags
75
-
76
- ## [2.18.2] - 2026-02-16
77
-
78
- ### Added
79
- - Gap Analysis Gate in `gsd-t-complete-milestone` — mandatory requirements verification before archiving
80
- - Self-correction loop: auto-fixes gaps, re-verifies, re-analyzes (up to 2 cycles), stops if unresolvable
81
- - Explicit Playwright E2E test execution in milestone test verification step
82
-
83
- ## [2.18.1] - 2026-02-16
84
-
85
- ### Added
86
- - Auto-Init Guard GSD-T workflow commands automatically run `gsd-t-init` if any init files are missing, then continue with the original command
87
- - `gsd-t-init` copies `~/.claude/settings.local` → `.claude/settings.local.json` during project initialization
88
- - Exempt commands that skip auto-init: `gsd-t-init`, `gsd-t-init-scan-setup`, `gsd-t-help`, `gsd-t-version-update`, `gsd-t-version-update-all`, `gsd-t-prompt`, `gsd-t-brainstorm`
89
-
90
- ## [2.18.0] - 2026-02-16
91
-
92
- ### Added
93
- - Heartbeat system real-time event streaming from Claude Code sessions via async hooks
94
- - `scripts/gsd-t-heartbeat.js` — hook handler that writes JSONL events to `.gsd-t/heartbeat-{session_id}.jsonl`
95
- - 9 Claude Code hooks: SessionStart, PostToolUse, SubagentStart, SubagentStop, TaskCompleted, TeammateIdle, Notification, Stop, SessionEnd
96
- - Installer auto-configures heartbeat hooks in settings.json (all async, zero performance impact)
97
- - Event types: session lifecycle, tool calls with file/command summaries, agent spawn/stop/idle, task completions
98
-
99
- ## [2.17.0] - 2026-02-16
100
-
101
- ### Added
102
- - `/user:gsd-t-log` command — sync progress.md Decision Log with recent git activity by scanning commits since last logged entry
103
- - Incremental updates (only new commits) and first-time full reconstruction from git history
104
- - Total commands: 38 GSD-T + 3 utility = 41
105
-
106
- ## [2.16.5] - 2026-02-16
107
-
108
- ### Added
109
- - `gsd-t-populate` now reconstructs Decision Log from git history — parses all commits, generates timestamped entries, merges with existing log
110
- - Pre-Commit Gate explicitly lists all 30 file-modifying commands that must log to progress.md
111
-
112
- ### Changed
113
- - Rebuilt GSD-T project Decision Log with full `YYYY-MM-DD HH:MM` timestamps from 54 git commits
114
-
115
- ## [2.16.4] - 2026-02-16
116
-
117
- ### Changed
118
- - Smart router renamed from `/user:gsd-t` to `/user:gsd` — sorts first in autocomplete, shorter to type
119
- - Pre-Commit Gate now requires timestamped progress.md entry (`YYYY-MM-DD HH:MM`) after every completed task, not just architectural decisions
120
-
121
- ## [2.16.3] - 2026-02-16
122
-
123
- ### Fixed
124
- - Reverted smart router rename (`/gsd` back to `/gsd-t`) — superseded by 2.16.4 which re-applies the rename
125
-
126
- ## [2.16.2] - 2026-02-16
127
-
128
- ### Changed
129
- - Smart router renamed from `/user:gsd-t` to `/user:gsd` (reverted in 2.16.3)
130
-
131
- ## [2.16.1] - 2026-02-16
132
-
133
- ### Fixed
134
- - `gsd-t-init-scan-setup` now pulls existing code from remote before scanning — prevents treating repos with existing code as greenfield
135
-
136
- ## [2.16.0] - 2026-02-13
137
-
138
- ### Changed
139
- - Smart router (`/gsd-t`) replaced signal-word lookup table with **semantic evaluation** — evaluates user intent against each command's purpose and "Use when" criteria from help summaries
140
- - Router shows runner-up command when confidence is close: `(also considered: gsd-t-{x} — Esc to switch)`
141
- - New commands automatically participate in routing without updating a routing table
142
-
143
- ### Added
144
- - Backlog item B1: Agentic Workflow Architecture (future exploration when Claude Code agents mature)
145
-
146
- ## [2.15.4] - 2026-02-13
147
-
148
- ### Changed
149
- - `gsd-t-gap-analysis` team scaling: one teammate per requirement (3–10), cap at 10 with even batching for 11+, solo for 1–2
150
-
151
- ## [2.15.3] - 2026-02-13
152
-
153
- ### Fixed
154
- - `gsd-t-gap-analysis` hard cap of 4 teammates max — scales by requirement count (2 for 5–10, 3 for 11–15, 4 for 16+), solo for < 5
155
-
156
- ## [2.15.2] - 2026-02-13
157
-
158
- ### Changed
159
- - `gsd-t-gap-analysis` team mode now handles flat requirement lists chunks into batches of ~8–10 per teammate instead of requiring sections
160
-
161
- ## [2.15.1] - 2026-02-13
162
-
163
- ### Changed
164
- - `gsd-t-gap-analysis` now uses agent team mode automatically — one teammate per requirement section for parallel scanning and classification, with solo fallback
165
-
166
- ## [2.15.0] - 2026-02-13
167
-
168
- ### Added
169
- - `/user:gsd-t-gap-analysis` command — requirements gap analysis against existing codebase
170
- - Parses spec into discrete numbered requirements, scans codebase, classifies each as implemented/partial/incorrect/not-implemented
171
- - Evidence-based classification with file:line references for each requirement
172
- - Severity levels: Critical (incorrect), High (partial), Medium (not implemented), Low (deferrable)
173
- - Generates `.gsd-t/gap-analysis.md` with requirements breakdown, gap matrix, and summary stats
174
- - Re-run support with diff against previous gap analysis (resolved, new, changed, unchanged)
175
- - Optional merge of parsed requirements into `docs/requirements.md`
176
- - Auto-groups gaps into recommended milestones/features/quick-fixes for promotion
177
- - Autonomy-aware: Level 3 proceeds with flagged assumptions, Level 1-2 pauses for clarification
178
- - Total commands: 37 GSD-T + 3 utility = 40
179
-
180
- ## [2.14.2] - 2026-02-13
181
-
182
- ### Changed
183
- - Smart router (`/gsd-t`) now displays selected command as the first line of output (mandatory routing confirmation)
184
-
185
- ## [2.14.1] - 2026-02-13
186
-
187
- ### Changed
188
- - Update Notices section in CLAUDE-global template now handles both `[GSD-T UPDATE]` (update available) and `[GSD-T]` (up to date) version banners
189
- - Update command in notification changed from raw npm command to `/user:gsd-t-version-update-all`
190
-
191
- ## [2.14.0] - 2026-02-12
192
-
193
- ### Added
194
- - `/user:gsd-t` smart router command describe what you need in plain language, auto-routes to the correct GSD-T command
195
- - Intent classification routes to: quick, feature, project, debug, scan, brainstorm, milestone, wave, status, resume, backlog-add, and more
196
- - Total commands: 36 GSD-T + 3 utility = 39
197
-
198
- ## [2.13.4] - 2026-02-12
199
-
200
- ### Added
201
- - Auto-invoked status column on all command tables in README and GSD-T-README (Manual / In wave)
202
- - `[auto]` markers on wave-invoked commands in `gsd-t-help` main listing
203
- - Section headers in `gsd-t-help` now show Manual or Auto label
204
-
205
- ## [2.13.3] - 2026-02-12
206
-
207
- ### Changed
208
- - `gsd-t-init-scan-setup` now asks "Is {current folder} your project root?" before prompting for a folder name
209
-
210
- ## [2.13.2] - 2026-02-12
211
-
212
- ### Changed
213
- - `gsd-t-init-scan-setup` now asks for project folder name, creates it if needed, and `cd`s into it can be run from anywhere
214
-
215
- ## [2.13.1] - 2026-02-12
216
-
217
- ### Changed
218
- - Update notification now includes changelog link (https://github.com/Tekyz-Inc/get-stuff-done-teams/blob/main/CHANGELOG.md)
219
-
220
- ## [2.13.0] - 2026-02-12
221
-
222
- ### Added
223
- - `/user:gsd-t-init-scan-setup` slash command — full project onboarding combining git setup, init, scan, and setup in one command
224
- - Prompts for GitHub repo URL if not already connected; skips if remote exists
225
- - Total commands: 35 GSD-T + 3 utility = 38
226
-
227
- ## [2.12.0] - 2026-02-12
228
-
229
- ### Added
230
- - `/user:gsd-t-version-update` slash command — update GSD-T to latest version from within Claude Code
231
- - `/user:gsd-t-version-update-all` slash command — update GSD-T + all registered projects from within Claude Code
232
- - Total commands: 34 GSD-T + 3 utility = 37
233
-
234
- ## [2.11.6] - 2026-02-12
235
-
236
- ### Changed
237
- - Update notice now shown at both beginning and end of Claude's first response
238
-
239
- ## [2.11.5] - 2026-02-12
240
-
241
- ### Added
242
- - SessionStart hook script (`~/.claude/scripts/gsd-t-update-check.js`) for automatic update notifications in Claude Code sessions
243
- - "Update Notices" instruction in global CLAUDE.md template Claude relays update notices to the user on first response
244
-
245
- ## [2.11.4] - 2026-02-12
246
-
247
- ### Fixed
248
- - First-run update check now fetches synchronously when no cache exists — notification shows immediately instead of requiring a second run
249
-
250
- ## [2.11.3] - 2026-02-12
251
-
252
- ### Changed
253
- - Reduced update check cache duration from 24 hours to 1 hour — new releases are detected faster
254
-
255
- ## [2.11.2] - 2026-02-12
256
-
257
- ### Fixed
258
- - CLI update check used `!==` instead of semver comparison — would show incorrect downgrade notices when cache had an older version
259
- - Added `isNewerVersion()` helper for proper semver comparison in update notifications
260
-
261
- ## [2.11.1] - 2026-02-12
262
-
263
- ### Changed
264
- - `gsd-t-resume` now detects same-session vs cross-session mode — skips full state reload when context is already available, auto-resumes at Level 3
265
- - Added "Conversation vs. Work" rule to global CLAUDE.md template — plain text questions are answered conversationally, workflow only runs when a `/gsd-t-*` command is invoked
266
-
267
- ## [2.11.0] - 2026-02-12
268
-
269
- ### Added
270
- - Autonomy-level-aware auto-advancing for all phase commands — at Level 3 (Full Auto), partition, plan, impact, execute, test-sync, integrate, verify, and complete-milestone auto-advance without waiting for user input
271
- - Wave error recovery auto-remediates at Level 3 (up to 2 fix attempts before stopping)
272
- - Discuss phase always pauses for user input regardless of autonomy level
273
- - Autonomy levels documentation added to GSD-T-README Configuration section
274
-
275
- ## [2.10.3] - 2026-02-11
276
-
277
- ### Changed
278
- - Default autonomy level changed from Level 2 (Standard) to Level 3 (Full Auto) across all templates and commands
279
- - `gsd-t-init` now sets Level 3 in generated CLAUDE.md
280
- - `gsd-t-setup` defaults to Level 3 when asking autonomy level
281
-
282
- ## [2.10.2] - 2026-02-11
283
-
284
- ### Added
285
- - Version update check in `gsd-t-status` slash command — works inside Claude Code and ClaudeWebCLI sessions, not just the CLI binary
286
-
287
- ### Fixed
288
- - Normalized `repository.url` in package.json (`git+https://` prefix)
289
-
290
- ## [2.10.1] - 2026-02-10
291
-
292
- ### Added
293
- - Automatic update check — CLI queries npm registry (cached 24h, background refresh) and shows a notice box with update commands when a newer version is available
294
-
295
- ## [2.10.0] - 2026-02-10
296
-
297
- ### Added
298
- - `CHANGELOG.md` release notes document with full version history
299
- - `changelog` CLI subcommand opens changelog in the browser (`gsd-t changelog`)
300
- - Clickable version links in CLI output (OSC 8 hyperlinks to changelog)
301
- - `checkin` command now auto-updates CHANGELOG.md on every version bump
302
- - `update-all` now creates CHANGELOG.md for registered projects that don't have one
303
-
304
- ## [2.9.0] - 2026-02-10
305
-
306
- ### Added
307
- - `gsd-t-setup` command — generates or restructures project CLAUDE.md by scanning codebase, detecting tech stack/conventions, and removing global duplicates
308
-
309
- ## [2.8.1] - 2026-02-10
310
-
311
- ### Added
312
- - Workflow Preferences section in global and project CLAUDE.md templates (Research Policy, Phase Flow defaults with per-project override support)
313
-
314
- ## [2.8.0] - 2026-02-10
315
-
316
- ### Added
317
- - Backlog management system: 7 new commands (`backlog-add`, `backlog-list`, `backlog-move`, `backlog-edit`, `backlog-remove`, `backlog-promote`, `backlog-settings`)
318
- - 2 new templates (`backlog.md`, `backlog-settings.md`)
319
- - Backlog initialization in `gsd-t-init` with auto-category derivation
320
- - Backlog summary in `gsd-t-status` report
321
- - Backlog section in `gsd-t-help`
322
-
323
- ### Changed
324
- - Updated `gsd-t-init`, `gsd-t-status`, `gsd-t-help`, CLAUDE-global template, README with backlog integration
325
-
326
- ## [2.7.0] - 2026-02-09
327
-
328
- ### Added
329
- - `update-all` CLI command — updates global install + all registered project CLAUDE.md files
330
- - `register` CLI command — manually register a project in the GSD-T project registry
331
- - Auto-registration on `gsd-t init`
332
- - Project registry at `~/.claude/.gsd-t-projects`
333
-
334
- ## [2.6.0] - 2026-02-09
335
-
336
- ### Added
337
- - Destructive Action Guard — mandatory safeguard requiring explicit user approval before destructive or structural changes (schema drops, architecture replacements, module removal)
338
- - Guard enforced in global CLAUDE.md, project template, and all execution commands
339
-
340
- ## [2.5.0] - 2026-02-09
341
-
342
- ### Changed
343
- - Audited all 27 command files added Document Ripple and Test Verification steps to 15 commands that were missing them
344
- - All code-modifying commands now enforce doc updates and test runs before completion
345
-
346
- ## [2.4.0] - 2026-02-09
347
-
348
- ### Added
349
- - Automatic version bumping in `checkin` command — determines patch/minor/major from change type
350
-
351
- ## [2.3.0] - 2026-02-09
352
-
353
- ### Added
354
- - Branch Guard — prevents commits on wrong branch by checking `Expected branch` in CLAUDE.md
355
-
356
- ## [2.2.1] - 2026-02-09
357
-
358
- ### Fixed
359
- - `gsd-t-discuss` now stops for user review when manually invoked (was auto-continuing even in manual mode)
360
-
361
- ## [2.2.0] - 2026-02-09
362
-
363
- ### Added
364
- - E2E test support in `test-sync`, `verify`, and `execute` commands
365
-
366
- ## [2.1.0] - 2026-02-09
367
-
368
- ### Added
369
- - `gsd-t-populate` command — auto-populate living docs from existing codebase
370
- - Semantic versioning system tracked in `progress.md`
371
- - Auto-update README on version changes
372
-
373
- ## [2.0.2] - 2026-02-07
374
-
375
- ### Changed
376
- - `gsd-t-init` now creates all 4 living document templates (`requirements.md`, `architecture.md`, `workflows.md`, `infrastructure.md`)
377
- - `gsd-t-scan` cross-populates findings into living docs
378
-
379
- ## [2.0.1] - 2026-02-07
380
-
381
- ### Fixed
382
- - Added `gsd-t-brainstorm` to all 4 reference files (README, GSD-T-README, CLAUDE-global, gsd-t-help)
383
- - Fixed workflow diagram alignment
384
-
385
- ## [2.0.0] - 2026-02-07
386
-
387
- ### Added
388
- - Renamed package to `@tekyzinc/gsd-t`
389
- - `gsd-t-brainstorm` command creative exploration, rethinking, and idea generation
390
- - Initialized GSD-T state (`.gsd-t/` directory) on itself
391
-
392
- ### Changed
393
- - Complete framework rewrite from GSD to GSD-T (contract-driven development)
394
- - npm package with CLI installer (`bin/gsd-t.js`)
395
- - 6 CLI subcommands: install, update, init, status, doctor, uninstall
396
-
397
- ## [1.0.0] - 2026-02-07
398
-
399
- ### Added
400
- - Initial GSD-T framework implementation
401
- - Full milestone workflow: partition, discuss, plan, impact, execute, test-sync, integrate, verify, complete
402
- - Agent Teams support for parallel execution
403
- - Living documents system (requirements, architecture, workflows, infrastructure)
1
+ # Changelog
2
+
3
+ All notable changes to GSD-T are documented here. Updated with each release.
4
+
5
+ ## [2.23.0] - 2026-02-17
6
+
7
+ ### Changed
8
+ - **Wave orchestrator rewrite**: `gsd-t-wave` now spawns an independent agent for each phase instead of executing all phases inline. Each phase agent gets a fresh context window (~200K tokens), eliminating cross-phase context accumulation and preventing mid-wave compaction. The orchestrator stays lightweight (~30KB), reading only progress.md between phases. Phase sequence is unchanged only the execution model changed. Estimated 75-85% reduction in peak context usage during waves
9
+
10
+ ## [2.22.0] - 2026-02-17
11
+
12
+ ### Added
13
+ - **gsd-t-qa**: New QA Agent commanddedicated teammate for test generation, execution, and gap reporting. Spawned automatically by 10 GSD-T phase commands
14
+ - **QA Agent spawn steps**: Added to partition (4.7), plan (4.7), execute (1.5 + team), verify (1.5 + team), complete-milestone (7.6), quick (2.5), debug (2.5), integrate (4.5), test-sync (1.5), wave (1.5)
15
+ - **Contract-to-test mapping rules**: API contracts → Playwright API tests, Schema contracts → constraint tests, Component contracts → E2E tests
16
+ - **QA Agent (Mandatory) section**: Added to global CLAUDE.md template — QA failure blocks phase completion
17
+
18
+ ## [2.21.1] - 2026-02-18
19
+
20
+ ### Fixed
21
+ - **PR #7 — Fix 12 scan items**: Security symlink validation gaps, contract/doc alignment, scope template hardening, heartbeat crash guard, progress template field ordering
22
+ - **PR #8 — Resolve final 4 scan items**: Function splitting in CLI (`doInit` helpers extracted), ownership validation for domain files, npm-update-check extracted to standalone script (`scripts/npm-update-check.js`)
23
+
24
+ ## [2.21.0] - 2026-02-17
25
+
26
+ ### Added
27
+ - **gsd-t-triage-and-merge**: New command to auto-review unmerged GitHub branches, score impact (auto-merge / review / skip), merge safe branches, and optionally version bump + publish. Publish gate respects autonomy level — auto in Level 3, prompted in Level 1-2. Sensitive file detection for commands, CLI, templates, and scripts
28
+
29
+ ## [2.20.7] - 2026-02-17
30
+
31
+ ### Added
32
+ - **Formal contracts**: 5 contract definitions for core GSD-T interfaces backlog file formats, domain structure, pre-commit gate, progress.md format, and wave phase sequence. Formalizes existing conventions as machine-readable reference docs
33
+
34
+ ## [2.20.6] - 2026-02-16
35
+
36
+ ### Fixed
37
+ - Stale command/template counts in project CLAUDE.md (25→41 commands, 7→9 templates, v2.0.0→v2.20.x)
38
+ - Duplicate step numbering in `gsd-t-execute.md` (two step 10s)
39
+ - Windows CRLF/LF comparison causing false "changed" detection in CLI update
40
+
41
+ ### Added
42
+ - Document Ripple sections to `gsd-t-execute`, `gsd-t-scan`, `gsd-t-test-sync`, `gsd-t-verify`
43
+ - Heartbeat auto-cleanup: files older than 7 days are automatically removed
44
+ - Error handling wrapping around file operations in CLI (copy, unlink, write)
45
+ - `applyTokens()` and `normalizeEol()` helpers to reduce duplication
46
+ - Extracted `updateProjectClaudeMd()`, `createProjectChangelog()`, `checkProjectHealth()` from `doUpdateAll()`
47
+
48
+ ## [2.20.5] - 2026-02-16
49
+
50
+ ### Added
51
+ - **Next Command Hint**: After each GSD-T phase completes, displays the recommended next command (e.g., `Next → /user:gsd-t-partition`). Full successor mapping for all workflow commands. Skipped during auto-advancing (Level 3 mid-wave)
52
+
53
+ ## [2.20.4] - 2026-02-16
54
+
55
+ ### Changed
56
+ - **Scan always uses team mode**: `gsd-t-scan` and `gsd-t-init-scan-setup` now spawn a team by default. Solo mode only for trivially small codebases (< 5 files) or when teams are explicitly disabled
57
+
58
+ ## [2.20.3] - 2026-02-16
59
+
60
+ ### Added
61
+ - **Playwright Cleanup**: After Playwright tests finish, kill any app/server processes that were started for the tests. Prevents orphaned dev servers from lingering after test runs
62
+
63
+ ## [2.20.2] - 2026-02-16
64
+
65
+ ### Added
66
+ - **CLI health checks**: `update-all` and `doctor` now check all projects for missing Playwright and Swagger/OpenAPI
67
+ - Smart API detection: scans `package.json`, `requirements.txt`, `pyproject.toml` for API frameworks (Express, Fastify, Hono, Django, FastAPI, etc.)
68
+ - Swagger detection: checks for spec files (`openapi.json/yaml`, `swagger.json/yaml`) and swagger packages in dependencies
69
+ - Health summary in `update-all` shows counts of missing Playwright and Swagger across all registered projects
70
+
71
+ ## [2.20.1] - 2026-02-16
72
+
73
+ ### Added
74
+ - **API Documentation Guard (Swagger/OpenAPI)**: Every API endpoint must be documented in Swagger/OpenAPI spec no exceptions. Auto-detects framework and installs appropriate Swagger integration. Swagger URL must be published in CLAUDE.md, README.md, and docs/infrastructure.md
75
+ - Pre-Commit Gate now checks for Swagger spec updates on any API endpoint change
76
+
77
+ ## [2.20.0] - 2026-02-16
78
+
79
+ ### Added
80
+ - **Playwright Setup in Init**: `gsd-t-init` now installs Playwright, creates `playwright.config.ts`, and sets up E2E test directory for every project. Detects package manager (bun, npm, yarn, pnpm, pip) automatically
81
+ - **Playwright Readiness Guard**: Before any testing command (execute, test-sync, verify, quick, wave, milestone, complete-milestone, debug), checks for `playwright.config.*` and auto-installs if missing. Playwright must always be ready — no deferring to "later"
82
+
83
+ ## [2.19.1] - 2026-02-16
84
+
85
+ ### Changed
86
+ - **Quick**: Now runs the FULL test suite (not just affected tests), requires comprehensive test creation for new/changed code paths including Playwright E2E, and verifies against requirements and contracts. "Quick doesn't mean skip testing."
87
+
88
+ ## [2.19.0] - 2026-02-16
89
+
90
+ ### Changed
91
+ - **Execute**: "No feature code without test code" — every task must include comprehensive unit tests AND Playwright E2E specs for all new code paths, modes, and flows. Tests are part of the deliverable, not a follow-up
92
+ - **Test-Sync**: Creates tests immediately during execute phase instead of deferring gaps to verify. Missing Playwright specs for new features/modes are created on the spot
93
+ - **Verify**: Zero test coverage on new functionality is now a FAIL (not WARN). Coverage audit checks that every new feature, mode, page, and flow has comprehensive Playwright specs covering happy path, error states, edge cases, and all modes/flags
94
+
95
+ ## [2.18.2] - 2026-02-16
96
+
97
+ ### Added
98
+ - Gap Analysis Gate in `gsd-t-complete-milestone` — mandatory requirements verification before archiving
99
+ - Self-correction loop: auto-fixes gaps, re-verifies, re-analyzes (up to 2 cycles), stops if unresolvable
100
+ - Explicit Playwright E2E test execution in milestone test verification step
101
+
102
+ ## [2.18.1] - 2026-02-16
103
+
104
+ ### Added
105
+ - Auto-Init Guard — GSD-T workflow commands automatically run `gsd-t-init` if any init files are missing, then continue with the original command
106
+ - `gsd-t-init` copies `~/.claude/settings.local` → `.claude/settings.local.json` during project initialization
107
+ - Exempt commands that skip auto-init: `gsd-t-init`, `gsd-t-init-scan-setup`, `gsd-t-help`, `gsd-t-version-update`, `gsd-t-version-update-all`, `gsd-t-prompt`, `gsd-t-brainstorm`
108
+
109
+ ## [2.18.0] - 2026-02-16
110
+
111
+ ### Added
112
+ - Heartbeat system — real-time event streaming from Claude Code sessions via async hooks
113
+ - `scripts/gsd-t-heartbeat.js` hook handler that writes JSONL events to `.gsd-t/heartbeat-{session_id}.jsonl`
114
+ - 9 Claude Code hooks: SessionStart, PostToolUse, SubagentStart, SubagentStop, TaskCompleted, TeammateIdle, Notification, Stop, SessionEnd
115
+ - Installer auto-configures heartbeat hooks in settings.json (all async, zero performance impact)
116
+ - Event types: session lifecycle, tool calls with file/command summaries, agent spawn/stop/idle, task completions
117
+
118
+ ## [2.17.0] - 2026-02-16
119
+
120
+ ### Added
121
+ - `/user:gsd-t-log` command — sync progress.md Decision Log with recent git activity by scanning commits since last logged entry
122
+ - Incremental updates (only new commits) and first-time full reconstruction from git history
123
+ - Total commands: 38 GSD-T + 3 utility = 41
124
+
125
+ ## [2.16.5] - 2026-02-16
126
+
127
+ ### Added
128
+ - `gsd-t-populate` now reconstructs Decision Log from git history — parses all commits, generates timestamped entries, merges with existing log
129
+ - Pre-Commit Gate explicitly lists all 30 file-modifying commands that must log to progress.md
130
+
131
+ ### Changed
132
+ - Rebuilt GSD-T project Decision Log with full `YYYY-MM-DD HH:MM` timestamps from 54 git commits
133
+
134
+ ## [2.16.4] - 2026-02-16
135
+
136
+ ### Changed
137
+ - Smart router renamed from `/user:gsd-t` to `/user:gsd` — sorts first in autocomplete, shorter to type
138
+ - Pre-Commit Gate now requires timestamped progress.md entry (`YYYY-MM-DD HH:MM`) after every completed task, not just architectural decisions
139
+
140
+ ## [2.16.3] - 2026-02-16
141
+
142
+ ### Fixed
143
+ - Reverted smart router rename (`/gsd` back to `/gsd-t`) — superseded by 2.16.4 which re-applies the rename
144
+
145
+ ## [2.16.2] - 2026-02-16
146
+
147
+ ### Changed
148
+ - Smart router renamed from `/user:gsd-t` to `/user:gsd` (reverted in 2.16.3)
149
+
150
+ ## [2.16.1] - 2026-02-16
151
+
152
+ ### Fixed
153
+ - `gsd-t-init-scan-setup` now pulls existing code from remote before scanning — prevents treating repos with existing code as greenfield
154
+
155
+ ## [2.16.0] - 2026-02-13
156
+
157
+ ### Changed
158
+ - Smart router (`/gsd-t`) replaced signal-word lookup table with **semantic evaluation** — evaluates user intent against each command's purpose and "Use when" criteria from help summaries
159
+ - Router shows runner-up command when confidence is close: `(also considered: gsd-t-{x} Esc to switch)`
160
+ - New commands automatically participate in routing without updating a routing table
161
+
162
+ ### Added
163
+ - Backlog item B1: Agentic Workflow Architecture (future exploration when Claude Code agents mature)
164
+
165
+ ## [2.15.4] - 2026-02-13
166
+
167
+ ### Changed
168
+ - `gsd-t-gap-analysis` team scaling: one teammate per requirement (3–10), cap at 10 with even batching for 11+, solo for 1–2
169
+
170
+ ## [2.15.3] - 2026-02-13
171
+
172
+ ### Fixed
173
+ - `gsd-t-gap-analysis` hard cap of 4 teammates max — scales by requirement count (2 for 5–10, 3 for 11–15, 4 for 16+), solo for < 5
174
+
175
+ ## [2.15.2] - 2026-02-13
176
+
177
+ ### Changed
178
+ - `gsd-t-gap-analysis` team mode now handles flat requirement lists — chunks into batches of ~8–10 per teammate instead of requiring sections
179
+
180
+ ## [2.15.1] - 2026-02-13
181
+
182
+ ### Changed
183
+ - `gsd-t-gap-analysis` now uses agent team mode automatically one teammate per requirement section for parallel scanning and classification, with solo fallback
184
+
185
+ ## [2.15.0] - 2026-02-13
186
+
187
+ ### Added
188
+ - `/user:gsd-t-gap-analysis` command requirements gap analysis against existing codebase
189
+ - Parses spec into discrete numbered requirements, scans codebase, classifies each as implemented/partial/incorrect/not-implemented
190
+ - Evidence-based classification with file:line references for each requirement
191
+ - Severity levels: Critical (incorrect), High (partial), Medium (not implemented), Low (deferrable)
192
+ - Generates `.gsd-t/gap-analysis.md` with requirements breakdown, gap matrix, and summary stats
193
+ - Re-run support with diff against previous gap analysis (resolved, new, changed, unchanged)
194
+ - Optional merge of parsed requirements into `docs/requirements.md`
195
+ - Auto-groups gaps into recommended milestones/features/quick-fixes for promotion
196
+ - Autonomy-aware: Level 3 proceeds with flagged assumptions, Level 1-2 pauses for clarification
197
+ - Total commands: 37 GSD-T + 3 utility = 40
198
+
199
+ ## [2.14.2] - 2026-02-13
200
+
201
+ ### Changed
202
+ - Smart router (`/gsd-t`) now displays selected command as the first line of output (mandatory routing confirmation)
203
+
204
+ ## [2.14.1] - 2026-02-13
205
+
206
+ ### Changed
207
+ - Update Notices section in CLAUDE-global template now handles both `[GSD-T UPDATE]` (update available) and `[GSD-T]` (up to date) version banners
208
+ - Update command in notification changed from raw npm command to `/user:gsd-t-version-update-all`
209
+
210
+ ## [2.14.0] - 2026-02-12
211
+
212
+ ### Added
213
+ - `/user:gsd-t` smart router command describe what you need in plain language, auto-routes to the correct GSD-T command
214
+ - Intent classification routes to: quick, feature, project, debug, scan, brainstorm, milestone, wave, status, resume, backlog-add, and more
215
+ - Total commands: 36 GSD-T + 3 utility = 39
216
+
217
+ ## [2.13.4] - 2026-02-12
218
+
219
+ ### Added
220
+ - Auto-invoked status column on all command tables in README and GSD-T-README (Manual / In wave)
221
+ - `[auto]` markers on wave-invoked commands in `gsd-t-help` main listing
222
+ - Section headers in `gsd-t-help` now show Manual or Auto label
223
+
224
+ ## [2.13.3] - 2026-02-12
225
+
226
+ ### Changed
227
+ - `gsd-t-init-scan-setup` now asks "Is {current folder} your project root?" before prompting for a folder name
228
+
229
+ ## [2.13.2] - 2026-02-12
230
+
231
+ ### Changed
232
+ - `gsd-t-init-scan-setup` now asks for project folder name, creates it if needed, and `cd`s into it — can be run from anywhere
233
+
234
+ ## [2.13.1] - 2026-02-12
235
+
236
+ ### Changed
237
+ - Update notification now includes changelog link (https://github.com/Tekyz-Inc/get-stuff-done-teams/blob/main/CHANGELOG.md)
238
+
239
+ ## [2.13.0] - 2026-02-12
240
+
241
+ ### Added
242
+ - `/user:gsd-t-init-scan-setup` slash command full project onboarding combining git setup, init, scan, and setup in one command
243
+ - Prompts for GitHub repo URL if not already connected; skips if remote exists
244
+ - Total commands: 35 GSD-T + 3 utility = 38
245
+
246
+ ## [2.12.0] - 2026-02-12
247
+
248
+ ### Added
249
+ - `/user:gsd-t-version-update` slash command — update GSD-T to latest version from within Claude Code
250
+ - `/user:gsd-t-version-update-all` slash command — update GSD-T + all registered projects from within Claude Code
251
+ - Total commands: 34 GSD-T + 3 utility = 37
252
+
253
+ ## [2.11.6] - 2026-02-12
254
+
255
+ ### Changed
256
+ - Update notice now shown at both beginning and end of Claude's first response
257
+
258
+ ## [2.11.5] - 2026-02-12
259
+
260
+ ### Added
261
+ - SessionStart hook script (`~/.claude/scripts/gsd-t-update-check.js`) for automatic update notifications in Claude Code sessions
262
+ - "Update Notices" instruction in global CLAUDE.md template — Claude relays update notices to the user on first response
263
+
264
+ ## [2.11.4] - 2026-02-12
265
+
266
+ ### Fixed
267
+ - First-run update check now fetches synchronously when no cache exists — notification shows immediately instead of requiring a second run
268
+
269
+ ## [2.11.3] - 2026-02-12
270
+
271
+ ### Changed
272
+ - Reduced update check cache duration from 24 hours to 1 hour — new releases are detected faster
273
+
274
+ ## [2.11.2] - 2026-02-12
275
+
276
+ ### Fixed
277
+ - CLI update check used `!==` instead of semver comparison — would show incorrect downgrade notices when cache had an older version
278
+ - Added `isNewerVersion()` helper for proper semver comparison in update notifications
279
+
280
+ ## [2.11.1] - 2026-02-12
281
+
282
+ ### Changed
283
+ - `gsd-t-resume` now detects same-session vs cross-session mode — skips full state reload when context is already available, auto-resumes at Level 3
284
+ - Added "Conversation vs. Work" rule to global CLAUDE.md template — plain text questions are answered conversationally, workflow only runs when a `/gsd-t-*` command is invoked
285
+
286
+ ## [2.11.0] - 2026-02-12
287
+
288
+ ### Added
289
+ - Autonomy-level-aware auto-advancing for all phase commands — at Level 3 (Full Auto), partition, plan, impact, execute, test-sync, integrate, verify, and complete-milestone auto-advance without waiting for user input
290
+ - Wave error recovery auto-remediates at Level 3 (up to 2 fix attempts before stopping)
291
+ - Discuss phase always pauses for user input regardless of autonomy level
292
+ - Autonomy levels documentation added to GSD-T-README Configuration section
293
+
294
+ ## [2.10.3] - 2026-02-11
295
+
296
+ ### Changed
297
+ - Default autonomy level changed from Level 2 (Standard) to Level 3 (Full Auto) across all templates and commands
298
+ - `gsd-t-init` now sets Level 3 in generated CLAUDE.md
299
+ - `gsd-t-setup` defaults to Level 3 when asking autonomy level
300
+
301
+ ## [2.10.2] - 2026-02-11
302
+
303
+ ### Added
304
+ - Version update check in `gsd-t-status` slash command — works inside Claude Code and ClaudeWebCLI sessions, not just the CLI binary
305
+
306
+ ### Fixed
307
+ - Normalized `repository.url` in package.json (`git+https://` prefix)
308
+
309
+ ## [2.10.1] - 2026-02-10
310
+
311
+ ### Added
312
+ - Automatic update check CLI queries npm registry (cached 24h, background refresh) and shows a notice box with update commands when a newer version is available
313
+
314
+ ## [2.10.0] - 2026-02-10
315
+
316
+ ### Added
317
+ - `CHANGELOG.md` release notes document with full version history
318
+ - `changelog` CLI subcommand — opens changelog in the browser (`gsd-t changelog`)
319
+ - Clickable version links in CLI output (OSC 8 hyperlinks to changelog)
320
+ - `checkin` command now auto-updates CHANGELOG.md on every version bump
321
+ - `update-all` now creates CHANGELOG.md for registered projects that don't have one
322
+
323
+ ## [2.9.0] - 2026-02-10
324
+
325
+ ### Added
326
+ - `gsd-t-setup` command — generates or restructures project CLAUDE.md by scanning codebase, detecting tech stack/conventions, and removing global duplicates
327
+
328
+ ## [2.8.1] - 2026-02-10
329
+
330
+ ### Added
331
+ - Workflow Preferences section in global and project CLAUDE.md templates (Research Policy, Phase Flow defaults with per-project override support)
332
+
333
+ ## [2.8.0] - 2026-02-10
334
+
335
+ ### Added
336
+ - Backlog management system: 7 new commands (`backlog-add`, `backlog-list`, `backlog-move`, `backlog-edit`, `backlog-remove`, `backlog-promote`, `backlog-settings`)
337
+ - 2 new templates (`backlog.md`, `backlog-settings.md`)
338
+ - Backlog initialization in `gsd-t-init` with auto-category derivation
339
+ - Backlog summary in `gsd-t-status` report
340
+ - Backlog section in `gsd-t-help`
341
+
342
+ ### Changed
343
+ - Updated `gsd-t-init`, `gsd-t-status`, `gsd-t-help`, CLAUDE-global template, README with backlog integration
344
+
345
+ ## [2.7.0] - 2026-02-09
346
+
347
+ ### Added
348
+ - `update-all` CLI command — updates global install + all registered project CLAUDE.md files
349
+ - `register` CLI command — manually register a project in the GSD-T project registry
350
+ - Auto-registration on `gsd-t init`
351
+ - Project registry at `~/.claude/.gsd-t-projects`
352
+
353
+ ## [2.6.0] - 2026-02-09
354
+
355
+ ### Added
356
+ - Destructive Action Guard — mandatory safeguard requiring explicit user approval before destructive or structural changes (schema drops, architecture replacements, module removal)
357
+ - Guard enforced in global CLAUDE.md, project template, and all execution commands
358
+
359
+ ## [2.5.0] - 2026-02-09
360
+
361
+ ### Changed
362
+ - Audited all 27 command files — added Document Ripple and Test Verification steps to 15 commands that were missing them
363
+ - All code-modifying commands now enforce doc updates and test runs before completion
364
+
365
+ ## [2.4.0] - 2026-02-09
366
+
367
+ ### Added
368
+ - Automatic version bumping in `checkin` command — determines patch/minor/major from change type
369
+
370
+ ## [2.3.0] - 2026-02-09
371
+
372
+ ### Added
373
+ - Branch Guard — prevents commits on wrong branch by checking `Expected branch` in CLAUDE.md
374
+
375
+ ## [2.2.1] - 2026-02-09
376
+
377
+ ### Fixed
378
+ - `gsd-t-discuss` now stops for user review when manually invoked (was auto-continuing even in manual mode)
379
+
380
+ ## [2.2.0] - 2026-02-09
381
+
382
+ ### Added
383
+ - E2E test support in `test-sync`, `verify`, and `execute` commands
384
+
385
+ ## [2.1.0] - 2026-02-09
386
+
387
+ ### Added
388
+ - `gsd-t-populate` command auto-populate living docs from existing codebase
389
+ - Semantic versioning system tracked in `progress.md`
390
+ - Auto-update README on version changes
391
+
392
+ ## [2.0.2] - 2026-02-07
393
+
394
+ ### Changed
395
+ - `gsd-t-init` now creates all 4 living document templates (`requirements.md`, `architecture.md`, `workflows.md`, `infrastructure.md`)
396
+ - `gsd-t-scan` cross-populates findings into living docs
397
+
398
+ ## [2.0.1] - 2026-02-07
399
+
400
+ ### Fixed
401
+ - Added `gsd-t-brainstorm` to all 4 reference files (README, GSD-T-README, CLAUDE-global, gsd-t-help)
402
+ - Fixed workflow diagram alignment
403
+
404
+ ## [2.0.0] - 2026-02-07
405
+
406
+ ### Added
407
+ - Renamed package to `@tekyzinc/gsd-t`
408
+ - `gsd-t-brainstorm` command — creative exploration, rethinking, and idea generation
409
+ - Initialized GSD-T state (`.gsd-t/` directory) on itself
410
+
411
+ ### Changed
412
+ - Complete framework rewrite from GSD to GSD-T (contract-driven development)
413
+ - npm package with CLI installer (`bin/gsd-t.js`)
414
+ - 6 CLI subcommands: install, update, init, status, doctor, uninstall
415
+
416
+ ## [1.0.0] - 2026-02-07
417
+
418
+ ### Added
419
+ - Initial GSD-T framework implementation
420
+ - Full milestone workflow: partition, discuss, plan, impact, execute, test-sync, integrate, verify, complete
421
+ - Agent Teams support for parallel execution
422
+ - Living documents system (requirements, architecture, workflows, infrastructure)