@tekyzinc/gsd-t 2.22.0 → 2.24.6
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 +99 -0
- package/README.md +14 -3
- package/bin/gsd-t.js +1381 -1300
- package/commands/gsd-t-complete-milestone.md +12 -12
- package/commands/gsd-t-debug.md +4 -4
- package/commands/gsd-t-discuss.md +7 -9
- package/commands/gsd-t-execute.md +5 -5
- package/commands/gsd-t-feature.md +2 -2
- package/commands/gsd-t-impact.md +9 -3
- package/commands/gsd-t-init.md +12 -12
- package/commands/gsd-t-integrate.md +5 -5
- package/commands/gsd-t-milestone.md +3 -3
- package/commands/gsd-t-partition.md +4 -4
- package/commands/gsd-t-plan.md +6 -6
- package/commands/gsd-t-project.md +3 -3
- package/commands/gsd-t-promote-debt.md +3 -3
- package/commands/gsd-t-qa.md +63 -0
- package/commands/gsd-t-quick.md +4 -4
- package/commands/gsd-t-scan.md +3 -3
- package/commands/gsd-t-test-sync.md +9 -9
- package/commands/gsd-t-verify.md +6 -6
- package/commands/gsd-t-wave.md +193 -137
- package/docs/GSD-T-README.md +12 -0
- package/docs/architecture.md +134 -14
- package/docs/infrastructure.md +33 -11
- package/docs/requirements.md +41 -11
- package/docs/workflows.md +86 -33
- package/package.json +4 -3
- package/scripts/gsd-t-fetch-version.js +25 -0
- package/scripts/gsd-t-heartbeat.js +180 -201
- package/scripts/gsd-t-update-check.js +79 -0
- package/scripts/npm-update-check.js +42 -27
- package/templates/CLAUDE-global.md +10 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,105 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GSD-T are documented here. Updated with each release.
|
|
4
4
|
|
|
5
|
+
## [2.24.6] - 2026-02-18
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Auto-update on session start**: SessionStart hook now automatically installs new GSD-T versions when detected — runs `npm install -g` + `gsd-t update-all`. Falls back to manual instructions if auto-update fails
|
|
9
|
+
- **Changelog link in all version messages**: All three output modes (`[GSD-T AUTO-UPDATE]`, `[GSD-T UPDATE]`, `[GSD-T]`) now include the changelog URL
|
|
10
|
+
- **Update check installer**: `bin/gsd-t.js` now deploys the update check script and configures the SessionStart hook automatically during install, with auto-fix for incorrect matchers
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **SessionStart hook matcher**: Changed from `"startup"` to `""` (empty) to match all session types including compact/resumed sessions
|
|
14
|
+
|
|
15
|
+
## [2.24.5] - 2026-02-18
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- **Dead code removed**: `PKG_EXAMPLES` constant in `bin/gsd-t.js` and dead imports (`writeTemplateFile`, `showStatusVersion`) in `test/cli-quality.test.js` (TD-057, TD-058)
|
|
19
|
+
- **summarize() case fallthrough**: Combined identical `Read`/`Edit`/`Write` cases using switch fallthrough, saving 4 lines (TD-056)
|
|
20
|
+
- **checkForUpdates() condition**: Simplified redundant `!cached && isStale` to `if (!cached) ... else if (stale)` (TD-061)
|
|
21
|
+
- **Notification title scrubbing**: Applied `scrubSecrets()` to `h.title` in heartbeat notification handler (TD-063)
|
|
22
|
+
- **SEC-N16 note corrected**: Updated informational note during scan #5 (TD-062)
|
|
23
|
+
- **Wave integrity check contract**: Updated `wave-phase-sequence.md` to match actual implementation — checks Status, Milestone name, Domains table (not version) (TD-064)
|
|
24
|
+
- **Duplicate format contract**: Deleted `file-format-contract.md` — `backlog-file-formats.md` is authoritative (TD-065)
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- 9 new tests: 3 `readSettingsJson()` tests in `cli-quality.test.js`, 6 `shortPath()` tests in `security.test.js` (TD-059, TD-060)
|
|
28
|
+
- Total tests: 125 (was 116)
|
|
29
|
+
|
|
30
|
+
## [2.24.4] - 2026-02-18
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
- **progress.md status**: Now uses contract-recognized values (READY between milestones, not ACTIVE)
|
|
34
|
+
- **CLAUDE.md version**: Removed hardcoded version — references `package.json` directly to prevent recurring drift (TD-048)
|
|
35
|
+
- **CHANGELOG.md**: Added missing entries for v2.23.1 through v2.24.3 covering milestones 3-7 (TD-045)
|
|
36
|
+
- **Orphaned domains**: Deleted stale `cli-quality/` and `cmd-cleanup/` directories from previous milestones (TD-046)
|
|
37
|
+
- **Git line endings**: Applied `git add --renormalize .` to enforce LF across all tracked files (TD-049)
|
|
38
|
+
- **Notification scrubbing**: Applied `scrubSecrets()` to heartbeat notification messages (TD-052)
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- **Contracts synced**: `progress-file-format.md` enriched with milestone table + optional fields. `wave-phase-sequence.md` updated with integrity check (M7) and security considerations (M5). `command-interface-contract.md` renamed to `backlog-command-interface.md`. `integration-points.md` rewritten to reflect current state (TD-047, TD-053, TD-054, TD-055)
|
|
42
|
+
- **readSettingsJson()**: Extracted helper to deduplicate 3 `JSON.parse(readFileSync)` call sites in CLI (TD-050)
|
|
43
|
+
- **prepublishOnly**: Added `npm test` gate before `npm publish` (TD-051)
|
|
44
|
+
- **TD-029 (TOCTOU)**: Formally accepted as risk with 5-point rationale — single-threaded Node.js, user-owned dirs, Windows symlink requires admin
|
|
45
|
+
|
|
46
|
+
## [2.24.3] - 2026-02-19
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- **Command file cleanup**: 85 fractional step numbers renumbered to integers across 17 command files. Autonomy Behavior sections added to `gsd-t-discuss` and `gsd-t-impact`. QA agent hardened with file-path boundary constraints, multi-framework test detection, and Document Ripple section. Wave integrity check validates progress.md fields before starting. Structured 3-condition discuss-skip heuristic. Consistent "QA failure blocks" language across all 10 QA-spawning commands
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
- 8 tech debt items resolved: TD-030, TD-031, TD-036, TD-037, TD-038, TD-039, TD-040, TD-041
|
|
53
|
+
|
|
54
|
+
## [2.24.2] - 2026-02-19
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
- **CLI quality improvement**: All 86 functions across `bin/gsd-t.js` (80) and `scripts/gsd-t-heartbeat.js` (6) are now <= 30 lines. 3 code duplication patterns resolved (`readProjectDeps`, `writeTemplateFile`, `readPyContent` extracted). `buildEvent()` refactored to handler map pattern. `checkForUpdates` inline JS extracted to `scripts/gsd-t-fetch-version.js`. `doUpdateAll` has per-project error isolation
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
- `.gitattributes` and `.editorconfig` for consistent file formatting
|
|
61
|
+
- 22 new tests in `test/cli-quality.test.js` (buildEvent, readProjectDeps, readPyContent, insertGuardSection, readUpdateCache, addHeartbeatHook)
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
- Heartbeat cleanup now only runs on SessionStart (not every event)
|
|
65
|
+
- 7 tech debt items resolved: TD-017, TD-021, TD-024, TD-025, TD-032, TD-033, TD-034
|
|
66
|
+
|
|
67
|
+
## [2.24.1] - 2026-02-18
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
- **Security hardening**: `scrubSecrets()` and `scrubUrl()` in heartbeat script scrub sensitive data (passwords, tokens, API keys, bearer tokens) before logging. 30 new security tests in `test/security.test.js`
|
|
71
|
+
- `hasSymlinkInPath()` validates parent directories for symlink attacks
|
|
72
|
+
- HTTP response accumulation bounded to 1MB in both fetch paths
|
|
73
|
+
- Security Considerations section in `gsd-t-wave.md` documenting `bypassPermissions` implications
|
|
74
|
+
|
|
75
|
+
### Fixed
|
|
76
|
+
- `npm-update-check.js` validates cache path within `~/.claude/` and checks for symlinks before writing
|
|
77
|
+
- 6 tech debt items resolved: TD-019, TD-020, TD-026, TD-027, TD-028, TD-035
|
|
78
|
+
|
|
79
|
+
## [2.24.0] - 2026-02-18
|
|
80
|
+
|
|
81
|
+
### Added
|
|
82
|
+
- **Testing foundation**: 64 automated tests in 2 test files (`test/helpers.test.js`: 27 tests, `test/filesystem.test.js`: 37 tests) using Node.js built-in test runner (`node --test`). Zero external test dependencies
|
|
83
|
+
- `module.exports` added to `bin/gsd-t.js` for 20 testable functions with `require.main` guard
|
|
84
|
+
- CLI subcommand tests (--version, help, status, doctor)
|
|
85
|
+
- Helper function tests (validateProjectName, applyTokens, normalizeEol, validateVersion, isNewerVersion)
|
|
86
|
+
- Filesystem tests (isSymlink, ensureDir, validateProjectPath, copyFile, hasPlaywright, hasSwagger, hasApi)
|
|
87
|
+
- Command listing tests (getCommandFiles, getGsdtCommands, getUtilityCommands with count validation)
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
- Tech debt item TD-003 (no test coverage) resolved
|
|
91
|
+
|
|
92
|
+
## [2.23.1] - 2026-02-18
|
|
93
|
+
|
|
94
|
+
### Fixed
|
|
95
|
+
- **Count fix**: All command count references updated to 43/39/4 across CLAUDE.md, README.md, package.json, and docs (TD-022)
|
|
96
|
+
- QA agent contract now includes test-sync phase with "During Test-Sync" section and updated output table (TD-042)
|
|
97
|
+
- Orphaned domain files from previous milestones archived to `.gsd-t/milestones/` (TD-043)
|
|
98
|
+
|
|
99
|
+
## [2.23.0] - 2026-02-17
|
|
100
|
+
|
|
101
|
+
### Changed
|
|
102
|
+
- **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
|
|
103
|
+
|
|
5
104
|
## [2.22.0] - 2026-02-17
|
|
6
105
|
|
|
7
106
|
### Added
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ A methodology for reliable, parallelizable development using Claude Code with op
|
|
|
18
18
|
npx @tekyzinc/gsd-t install
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
This installs 39 GSD-T commands +
|
|
21
|
+
This installs 39 GSD-T commands + 4 utility commands (43 total) to `~/.claude/commands/` and the global CLAUDE.md to `~/.claude/CLAUDE.md`. Works on Windows, Mac, and Linux.
|
|
22
22
|
|
|
23
23
|
### Start Using It
|
|
24
24
|
|
|
@@ -246,6 +246,17 @@ your-project/
|
|
|
246
246
|
|
|
247
247
|
---
|
|
248
248
|
|
|
249
|
+
## Security
|
|
250
|
+
|
|
251
|
+
- **Wave mode** spawns phase agents with `bypassPermissions` — agents execute without per-action user approval. Use Level 1 or Level 2 autonomy for sensitive projects to review each phase.
|
|
252
|
+
- **Heartbeat logs** scrub sensitive patterns (passwords, tokens, API keys) from bash commands and mask URL query parameters before writing to `.gsd-t/heartbeat-*.jsonl`.
|
|
253
|
+
- **File write paths** are validated (within `~/.claude/`) and checked for symlinks before writing.
|
|
254
|
+
- **HTTP responses** are bounded at 1MB to prevent memory exhaustion from oversized registry responses.
|
|
255
|
+
- **Directory creation** validates parent path components for symlinks to prevent path traversal.
|
|
256
|
+
- Run `gsd-t doctor` to verify installation integrity. Keep GSD-T updated with `gsd-t update`.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
249
260
|
## Enabling Agent Teams
|
|
250
261
|
|
|
251
262
|
```json
|
|
@@ -283,8 +294,8 @@ get-stuff-done-teams/
|
|
|
283
294
|
├── LICENSE
|
|
284
295
|
├── bin/
|
|
285
296
|
│ └── gsd-t.js # CLI installer
|
|
286
|
-
├── commands/ #
|
|
287
|
-
│ ├── gsd-t-*.md #
|
|
297
|
+
├── commands/ # 43 slash commands
|
|
298
|
+
│ ├── gsd-t-*.md # 39 GSD-T workflow commands
|
|
288
299
|
│ ├── gsd.md # GSD-T smart router
|
|
289
300
|
│ ├── branch.md # Git branch helper
|
|
290
301
|
│ ├── checkin.md # Auto-version + commit/push helper
|