@tekyzinc/gsd-t 2.23.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 +94 -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 +45 -3
- 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/docs/infrastructure.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Infrastructure — GSD-T Framework (@tekyzinc/gsd-t)
|
|
2
2
|
|
|
3
|
-
## Last Updated: 2026-02-18
|
|
3
|
+
## Last Updated: 2026-02-18 (Scan #5)
|
|
4
4
|
|
|
5
5
|
## Quick Reference
|
|
6
6
|
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
| Update all projects | `npx @tekyzinc/gsd-t update-all` |
|
|
13
13
|
| Diagnose issues | `npx @tekyzinc/gsd-t doctor` |
|
|
14
14
|
| View changelog | `npx @tekyzinc/gsd-t changelog` |
|
|
15
|
-
|
|
|
15
|
+
| Register project | `npx @tekyzinc/gsd-t register` |
|
|
16
|
+
| Publish to npm | `npm publish` (runs `npm test` automatically via prepublishOnly) |
|
|
16
17
|
|
|
17
18
|
## Local Development
|
|
18
19
|
|
|
@@ -29,44 +30,65 @@ node bin/gsd-t.js status
|
|
|
29
30
|
|
|
30
31
|
### Testing
|
|
31
32
|
```bash
|
|
32
|
-
#
|
|
33
|
+
# Run automated test suite (116 tests, zero dependencies)
|
|
34
|
+
npm test
|
|
35
|
+
|
|
36
|
+
# Test CLI subcommands manually
|
|
33
37
|
node bin/gsd-t.js install
|
|
34
38
|
node bin/gsd-t.js status
|
|
35
39
|
node bin/gsd-t.js doctor
|
|
36
40
|
node bin/gsd-t.js init test-project
|
|
37
41
|
|
|
38
42
|
# Validate command files exist
|
|
39
|
-
ls commands/*.md | wc -l # Should be
|
|
43
|
+
ls commands/*.md | wc -l # Should be 43
|
|
40
44
|
ls templates/*.md | wc -l # Should be 9
|
|
41
45
|
```
|
|
42
46
|
|
|
47
|
+
### Scripts
|
|
48
|
+
| Script | Purpose |
|
|
49
|
+
|--------|---------|
|
|
50
|
+
| `scripts/gsd-t-heartbeat.js` | Claude Code hook event logger (JSONL output, secret scrubbing) |
|
|
51
|
+
| `scripts/npm-update-check.js` | Background npm registry version checker (path-validated) |
|
|
52
|
+
| `scripts/gsd-t-fetch-version.js` | Synchronous npm registry fetch (5s timeout, 1MB limit) |
|
|
53
|
+
|
|
43
54
|
## Distribution
|
|
44
55
|
|
|
45
56
|
### npm Package
|
|
46
57
|
- **Registry**: https://www.npmjs.com/package/@tekyzinc/gsd-t
|
|
47
58
|
- **Publish**: `npm publish` (requires npm login with Tekyz account)
|
|
48
59
|
- **Version**: Managed in `package.json`, synced to `.gsd-t/progress.md`
|
|
60
|
+
- **Files shipped**: `bin/`, `commands/`, `scripts/`, `templates/`, `examples/`, `docs/`, `CHANGELOG.md`
|
|
49
61
|
|
|
50
62
|
### Installed Locations
|
|
51
63
|
| What | Where |
|
|
52
64
|
|------|-------|
|
|
53
|
-
| Slash commands | `~/.claude/commands/` |
|
|
65
|
+
| Slash commands (43 files) | `~/.claude/commands/` |
|
|
54
66
|
| Global config | `~/.claude/CLAUDE.md` |
|
|
55
|
-
| Heartbeat
|
|
56
|
-
|
|
|
57
|
-
|
|
|
67
|
+
| Heartbeat script | `~/.claude/scripts/gsd-t-heartbeat.js` |
|
|
68
|
+
| Hook configuration | `~/.claude/settings.json` (hooks section) |
|
|
69
|
+
| Version file | `~/.claude/.gsd-t-version` |
|
|
70
|
+
| Update cache | `~/.claude/.gsd-t-update-check` |
|
|
58
71
|
| Project registry | `~/.claude/.gsd-t-projects` |
|
|
59
72
|
|
|
60
73
|
## Repository Structure
|
|
61
74
|
|
|
62
75
|
```
|
|
63
76
|
get-stuff-done-teams/
|
|
64
|
-
├── bin/gsd-t.js — CLI (zero dependencies)
|
|
65
|
-
├── commands/ —
|
|
77
|
+
├── bin/gsd-t.js — CLI installer (~1,300 lines, zero dependencies)
|
|
78
|
+
├── commands/ — 43 slash command files (39 GSD-T + 4 utility)
|
|
79
|
+
├── scripts/ — 3 hook/utility scripts
|
|
66
80
|
├── templates/ — 9 document templates
|
|
67
|
-
├── scripts/ — Heartbeat hook script
|
|
68
81
|
├── examples/ — Reference project structure
|
|
69
82
|
├── docs/ — Methodology + living docs
|
|
70
83
|
├── .gsd-t/ — GSD-T state (self-managed)
|
|
71
84
|
└── package.json — npm package config
|
|
72
85
|
```
|
|
86
|
+
|
|
87
|
+
## Security Notes
|
|
88
|
+
|
|
89
|
+
- Zero npm dependencies — no supply chain risk
|
|
90
|
+
- All file writes check for symlinks first
|
|
91
|
+
- Input validation on project names, versions, session IDs, paths
|
|
92
|
+
- Heartbeat stdin capped at 1MB
|
|
93
|
+
- HTTP requests use HTTPS with timeouts
|
|
94
|
+
- Init operations use exclusive file creation (`{ flag: "wx" }`)
|
package/docs/requirements.md
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
# Requirements — GSD-T Framework (@tekyzinc/gsd-t)
|
|
2
2
|
|
|
3
|
-
## Last Updated: 2026-02-18
|
|
3
|
+
## Last Updated: 2026-02-18 (Scan #5)
|
|
4
4
|
|
|
5
5
|
## Functional Requirements
|
|
6
6
|
|
|
7
7
|
| ID | Requirement | Priority | Status | Tests |
|
|
8
8
|
|----|-------------|----------|--------|-------|
|
|
9
9
|
| REQ-001 | CLI installer with install, update, status, doctor, init, uninstall, update-all, register, changelog subcommands | P1 | complete | manual CLI testing |
|
|
10
|
-
| REQ-002 |
|
|
11
|
-
| REQ-003 | 4 utility commands (branch, checkin, Claude-md
|
|
10
|
+
| REQ-002 | 39 GSD-T workflow slash commands for Claude Code (incl. QA agent) | P1 | complete | validated by use |
|
|
11
|
+
| REQ-003 | 4 utility commands (gsd smart router, branch, checkin, Claude-md) | P1 | complete | validated by use |
|
|
12
12
|
| REQ-004 | Backlog management system (7 commands: add, list, move, edit, remove, promote, settings) | P1 | complete | validated by use |
|
|
13
13
|
| REQ-005 | Contract-driven development with domain partitioning | P1 | complete | validated by use |
|
|
14
|
-
| REQ-006 | Wave orchestration (full cycle: partition → plan → execute → test-sync → integrate → verify) | P1 | complete | validated by use |
|
|
15
|
-
| REQ-007 | Heartbeat system via Claude Code hooks | P2 | complete | hook scripts installed |
|
|
16
|
-
| REQ-008 | Automatic update check against npm registry | P2 | complete | CLI + slash command |
|
|
17
|
-
| REQ-009 | Document templates for living docs (9 templates) | P1 | complete | used by gsd-t-init |
|
|
14
|
+
| REQ-006 | Wave orchestration (full cycle: partition → discuss → plan → impact → execute → test-sync → integrate → verify → complete) | P1 | complete | validated by use |
|
|
15
|
+
| REQ-007 | Heartbeat system via Claude Code hooks (9 events, JSONL output, 7-day cleanup) | P2 | complete | hook scripts installed |
|
|
16
|
+
| REQ-008 | Automatic update check against npm registry (1h cache, background refresh) | P2 | complete | CLI + slash command |
|
|
17
|
+
| REQ-009 | Document templates for living docs (9 templates with token replacement) | P1 | complete | used by gsd-t-init |
|
|
18
18
|
| REQ-010 | Smart router — natural language intent → command routing | P2 | complete | validated by use |
|
|
19
|
+
| REQ-011 | Triage and merge — auto-review, score, merge safe GitHub branches | P2 | complete | validated by use |
|
|
20
|
+
| REQ-012 | QA Agent — test-driven contract enforcement spawned in 10 phases | P1 | complete | validated by use |
|
|
21
|
+
| REQ-013 | Wave orchestrator — agent-per-phase execution with fresh context windows | P1 | complete | validated by use |
|
|
19
22
|
|
|
20
23
|
## Technical Requirements
|
|
21
24
|
|
|
@@ -25,19 +28,46 @@
|
|
|
25
28
|
| TECH-002 | Node.js >= 16 compatibility | P1 | complete |
|
|
26
29
|
| TECH-003 | Cross-platform support (macOS, Linux, Windows) | P1 | complete |
|
|
27
30
|
| TECH-004 | Semantic versioning with git tags | P1 | complete |
|
|
28
|
-
| TECH-005 | Pre-Commit Gate enforced on every commit | P1 | complete |
|
|
31
|
+
| TECH-005 | Pre-Commit Gate enforced on every commit | P1 | complete (manual, not automated) |
|
|
32
|
+
| TECH-006 | Symlink protection on all file write operations | P1 | complete |
|
|
33
|
+
| TECH-007 | Input validation on project names, versions, paths, session IDs | P1 | complete |
|
|
34
|
+
| TECH-008 | prepublishOnly gate — `npm test` runs before `npm publish` | P1 | complete (M8) |
|
|
29
35
|
|
|
30
36
|
## Non-Functional Requirements
|
|
31
37
|
|
|
32
38
|
| ID | Requirement | Metric | Status |
|
|
33
39
|
|----|-------------|--------|--------|
|
|
34
|
-
| NFR-001 | CLI install completes
|
|
40
|
+
| NFR-001 | CLI install completes quickly | < 5s | complete |
|
|
35
41
|
| NFR-002 | No runtime crashes on missing files | graceful fallback | complete |
|
|
36
42
|
| NFR-003 | Command files are pure markdown (no frontmatter) | 100% compliance | complete |
|
|
43
|
+
| NFR-004 | Heartbeat auto-cleanup prevents unbounded growth | 7-day TTL | complete |
|
|
44
|
+
| NFR-005 | Update check is non-blocking after first run | background process | complete |
|
|
37
45
|
|
|
38
46
|
## Test Coverage
|
|
39
47
|
|
|
40
48
|
| Requirement | Test File | Test Name | Status |
|
|
41
49
|
|-------------|-----------|-----------|--------|
|
|
42
|
-
| REQ-001 |
|
|
43
|
-
| REQ-
|
|
50
|
+
| REQ-001 | test/helpers.test.js, test/filesystem.test.js | CLI subcommand + helper tests | passing (64 tests) |
|
|
51
|
+
| REQ-006 | test/cli-quality.test.js | Wave-related function tests (buildEvent, etc.) | passing (22 tests) |
|
|
52
|
+
| REQ-007 | test/security.test.js | Heartbeat security (scrubSecrets, scrubUrl) | passing (30 tests) |
|
|
53
|
+
| REQ-002–005, 008–013 | manual | Workflow validation by use | passing |
|
|
54
|
+
|
|
55
|
+
**Total automated tests**: 116 across 4 test files (M4, M5, M6). Runner: `node --test` (zero dependencies).
|
|
56
|
+
|
|
57
|
+
## Gaps Identified
|
|
58
|
+
|
|
59
|
+
### Open (Scan #5 — 2026-02-18)
|
|
60
|
+
- 10 new LOW items: TD-056 through TD-065 (cosmetic code quality, documentation fixes, contract alignment)
|
|
61
|
+
- See `.gsd-t/techdebt.md` for full list (all LOW severity, no functional issues)
|
|
62
|
+
|
|
63
|
+
### Resolved (Milestones 3-8, 2026-02-18/19)
|
|
64
|
+
- ~~All scan #4 items (TD-044-TD-055)~~ — RESOLVED (M8)
|
|
65
|
+
- ~~No automated test suite (TD-003)~~ — RESOLVED (116 tests, M4)
|
|
66
|
+
- ~~Command count 42→43 not updated (TD-022)~~ — RESOLVED (M3)
|
|
67
|
+
- ~~QA agent contract missing test-sync (TD-042)~~ — RESOLVED (M3)
|
|
68
|
+
- ~~Wave bypassPermissions not documented (TD-035)~~ — RESOLVED (M5)
|
|
69
|
+
- ~~All 15 scan #3 functions >30 lines (TD-021)~~ — RESOLVED (M6, all 81 functions ≤30 lines)
|
|
70
|
+
- ~~34 fractional step numbers (TD-031)~~ — RESOLVED (M7, all renumbered)
|
|
71
|
+
- ~~Backlog file format drift (TD-014)~~ — RESOLVED
|
|
72
|
+
- ~~Progress.md format drift (TD-015)~~ — RESOLVED
|
|
73
|
+
- ~~7 backlog commands missing from GSD-T-README (TD-016)~~ — RESOLVED
|
package/docs/workflows.md
CHANGED
|
@@ -1,67 +1,120 @@
|
|
|
1
1
|
# Workflows — GSD-T Framework (@tekyzinc/gsd-t)
|
|
2
2
|
|
|
3
|
-
## Last Updated: 2026-02-18
|
|
3
|
+
## Last Updated: 2026-02-18 (Scan #5)
|
|
4
4
|
|
|
5
5
|
## User Workflows
|
|
6
6
|
|
|
7
7
|
### Install GSD-T
|
|
8
8
|
1. Run `npx @tekyzinc/gsd-t install`
|
|
9
|
-
2. CLI copies commands to `~/.claude/commands/`
|
|
10
|
-
3. CLI sets up global CLAUDE.md if missing
|
|
11
|
-
4. CLI installs heartbeat
|
|
12
|
-
5.
|
|
9
|
+
2. CLI copies 43 commands to `~/.claude/commands/`
|
|
10
|
+
3. CLI sets up global CLAUDE.md if missing (appends with separator if exists)
|
|
11
|
+
4. CLI installs heartbeat script to `~/.claude/scripts/`
|
|
12
|
+
5. CLI configures 9 hooks in `~/.claude/settings.json`
|
|
13
|
+
6. CLI saves version to `~/.claude/.gsd-t-version`
|
|
14
|
+
7. User starts Claude Code in their project
|
|
13
15
|
|
|
14
16
|
**Entry point**: `npx @tekyzinc/gsd-t install`
|
|
15
|
-
**Success**:
|
|
17
|
+
**Success**: 43 commands available in Claude Code
|
|
16
18
|
**Failure**: CLI reports missing Node.js or permission errors
|
|
17
19
|
|
|
18
20
|
### Initialize a Project
|
|
19
|
-
1. User runs `/gsd-t-init` in Claude Code
|
|
20
|
-
2. Init creates `.gsd-t/` directory
|
|
21
|
-
3. Init creates or updates CLAUDE.md
|
|
22
|
-
4. Init creates `docs/` living documents if missing
|
|
23
|
-
5. Init
|
|
21
|
+
1. User runs `/gsd-t-init [name]` in Claude Code (or `gsd-t init [name]` CLI)
|
|
22
|
+
2. Init creates `.gsd-t/` directory with progress.md, backlog.md, backlog-settings.md, contracts/, domains/
|
|
23
|
+
3. Init creates or updates CLAUDE.md (project-level) using template with token replacement
|
|
24
|
+
4. Init creates `docs/` living documents (requirements, architecture, workflows, infrastructure) if missing
|
|
25
|
+
5. Init auto-registers project in `~/.claude/.gsd-t-projects`
|
|
26
|
+
6. All file creation uses `{ flag: "wx" }` — never overwrites existing files
|
|
24
27
|
|
|
25
|
-
**Entry point**: `/gsd-t-init` slash command
|
|
28
|
+
**Entry point**: `/gsd-t-init` slash command or `gsd-t init` CLI
|
|
26
29
|
**Success**: Project ready for milestone definition
|
|
27
|
-
**Failure**: Reports what couldn't be created
|
|
30
|
+
**Failure**: Reports what couldn't be created (existing files preserved)
|
|
28
31
|
|
|
29
32
|
### Full Wave Cycle
|
|
30
33
|
1. User defines milestone via `/gsd-t-milestone`
|
|
31
|
-
2. Partition
|
|
32
|
-
3.
|
|
33
|
-
4.
|
|
34
|
-
5.
|
|
35
|
-
6.
|
|
36
|
-
7.
|
|
37
|
-
8.
|
|
38
|
-
|
|
39
|
-
**
|
|
34
|
+
2. **Partition**: Decompose into domains + contracts (file ownership, interfaces)
|
|
35
|
+
3. **Discuss**: Explore design decisions (always pauses, even Level 3) — SKIPPABLE via structured 3-condition check: single domain, no open questions in Decision Log, all cross-domain contracts exist (M7)
|
|
36
|
+
4. **Plan**: Create atomic task lists per domain with dependencies
|
|
37
|
+
5. **Impact**: Analyze downstream effects (PROCEED / CAUTION / BLOCK verdicts)
|
|
38
|
+
6. **Execute**: Implement tasks (solo or team mode based on domain count)
|
|
39
|
+
7. **Test-Sync**: Align tests with code changes, verify coverage
|
|
40
|
+
8. **Integrate**: Wire domains at boundaries, verify contracts honored
|
|
41
|
+
9. **Verify**: Run 7 quality gate dimensions (functional, contracts, quality, tests, E2E, security, integration)
|
|
42
|
+
10. **Complete**: Archive to `.gsd-t/milestones/`, bump version, git tag
|
|
43
|
+
|
|
44
|
+
**Entry point**: `/gsd-t-wave` (auto-advances) or manual phase-by-phase
|
|
40
45
|
**Success**: Milestone completed, version bumped, git tagged
|
|
41
|
-
**Failure**: Wave pauses at failing phase
|
|
46
|
+
**Failure**: Wave pauses at failing phase; user can fix and resume
|
|
47
|
+
|
|
48
|
+
### Autonomy Levels
|
|
49
|
+
| Level | Behavior |
|
|
50
|
+
|-------|----------|
|
|
51
|
+
| Level 1 (Supervised) | Pause at each phase for confirmation |
|
|
52
|
+
| Level 2 (Standard) | Pause only at milestones |
|
|
53
|
+
| Level 3 (Full Auto) | Auto-advance; only stop for Destructive Guard, Impact BLOCK, errors after 2 attempts, Discuss |
|
|
54
|
+
|
|
55
|
+
### Error Recovery (2-Attempt Rule)
|
|
56
|
+
| Failure | Recovery | After 2 Failures |
|
|
57
|
+
|---------|----------|-------------------|
|
|
58
|
+
| Impact BLOCK | Add remediation tasks, re-run | STOP and report |
|
|
59
|
+
| Test failures | Fix and re-run | STOP and report |
|
|
60
|
+
| Verify failure | Remediate and re-verify | STOP and report |
|
|
61
|
+
| Gap analysis gaps | Auto-fix and re-analyze | STOP and report |
|
|
42
62
|
|
|
43
63
|
## Technical Workflows
|
|
44
64
|
|
|
45
65
|
### CLI Update Check
|
|
46
|
-
1. CLI reads cached version from `~/.claude/.gsd-t-update-
|
|
47
|
-
2. If cache is
|
|
48
|
-
3.
|
|
49
|
-
4.
|
|
66
|
+
1. CLI reads cached version from `~/.claude/.gsd-t-update-check` (JSON: `{ latest, timestamp }`)
|
|
67
|
+
2. If cache is fresh (<1 hour): show notice if cached latest > installed
|
|
68
|
+
3. If no cache: synchronous fetch to npm registry (8s timeout), cache result
|
|
69
|
+
4. If cache stale (>1 hour): spawn detached background `scripts/npm-update-check.js`
|
|
70
|
+
5. Compare versions using `isNewerVersion()` semver comparison
|
|
50
71
|
|
|
51
|
-
**Trigger**: Every CLI invocation
|
|
52
|
-
**
|
|
72
|
+
**Trigger**: Every CLI invocation (except install/update/update-all)
|
|
73
|
+
**Also**: `/gsd-t-status` slash command checks independently
|
|
53
74
|
|
|
54
75
|
### Heartbeat Event Logging
|
|
55
|
-
1. Claude Code hook fires
|
|
56
|
-
2. `
|
|
57
|
-
3.
|
|
76
|
+
1. Claude Code hook fires (9 events: SessionStart, PostToolUse, SubagentStart, SubagentStop, TaskCompleted, TeammateIdle, Notification, Stop, SessionEnd)
|
|
77
|
+
2. `settings.json` hook calls `node ~/.claude/scripts/gsd-t-heartbeat.js`
|
|
78
|
+
3. Script reads JSON from stdin (capped at 1MB)
|
|
79
|
+
4. Validates session_id (alphanumeric regex), validates path is absolute and within `.gsd-t/`
|
|
80
|
+
5. Builds structured event with timestamp, type-specific data (tool summaries, file paths)
|
|
81
|
+
6. Appends JSONL to `.gsd-t/heartbeat-{session_id}.jsonl`
|
|
82
|
+
7. Runs cleanup: removes heartbeat files older than 7 days
|
|
58
83
|
|
|
59
84
|
**Trigger**: Claude Code hooks (9 event types)
|
|
60
85
|
**Frequency**: On every hooked event during a session
|
|
61
86
|
|
|
87
|
+
### Version Bump Rules
|
|
88
|
+
| Context | Change Type | Bump |
|
|
89
|
+
|---------|-------------|------|
|
|
90
|
+
| Complete-milestone | Breaking changes, major rework | Major |
|
|
91
|
+
| Complete-milestone | New features, feature milestones | Minor |
|
|
92
|
+
| Complete-milestone | Bug fixes, cleanup | Patch |
|
|
93
|
+
| Checkin | New features, new commands | Minor |
|
|
94
|
+
| Checkin | Bug fixes, docs, refactors | Patch (default) |
|
|
95
|
+
| Checkin | Breaking changes | Major |
|
|
96
|
+
|
|
97
|
+
Updated in: package.json, .gsd-t/progress.md, CHANGELOG.md, git tag
|
|
98
|
+
|
|
99
|
+
### Pre-Commit Gate
|
|
100
|
+
Every commit must pass applicable checks:
|
|
101
|
+
1. Branch guard (correct branch?)
|
|
102
|
+
2. Contract updates (API, schema, component)
|
|
103
|
+
3. Scope updates (new files → domain scope.md)
|
|
104
|
+
4. Documentation updates (requirements, architecture)
|
|
105
|
+
5. Decision Log entry (timestamped in progress.md)
|
|
106
|
+
6. Tech debt tracking (discovered/fixed?)
|
|
107
|
+
7. Test execution (affected tests pass?)
|
|
108
|
+
|
|
62
109
|
## Integration Workflows
|
|
63
110
|
|
|
64
111
|
### npm Publish
|
|
65
112
|
- **Trigger**: Manual `npm publish` after milestone completion
|
|
66
|
-
- **
|
|
113
|
+
- **Pre-publish gate**: `prepublishOnly: "npm test"` runs 116 tests before publish (M8)
|
|
114
|
+
- **Flow**: Version bumped → CHANGELOG updated → git tagged → `npm publish` → tests run automatically → published
|
|
67
115
|
- **Verification**: `npx @tekyzinc/gsd-t status` on fresh install
|
|
116
|
+
|
|
117
|
+
### Update All Projects
|
|
118
|
+
- **Trigger**: `gsd-t update-all` CLI command
|
|
119
|
+
- **Flow**: Global update → iterate registered projects → inject Destructive Action Guard → create CHANGELOG → health check (Playwright, Swagger)
|
|
120
|
+
- **Registry**: `~/.claude/.gsd-t-projects` (newline-separated absolute paths)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "GSD-T: Contract-Driven Development for Claude Code —
|
|
3
|
+
"version": "2.24.6",
|
|
4
|
+
"description": "GSD-T: Contract-Driven Development for Claude Code — 43 slash commands with backlog management, impact analysis, test sync, and milestone archival",
|
|
5
5
|
"author": "Tekyz, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"gsd-t": "bin/gsd-t.js"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
|
-
"test": "node --test"
|
|
25
|
+
"test": "node --test",
|
|
26
|
+
"prepublishOnly": "npm test"
|
|
26
27
|
},
|
|
27
28
|
"files": [
|
|
28
29
|
"bin/",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GSD-T Fetch Version — Synchronous npm registry version check
|
|
5
|
+
*
|
|
6
|
+
* Fetches the latest version of @tekyzinc/gsd-t from the npm registry
|
|
7
|
+
* and writes it to stdout. Used by checkForUpdates() in bin/gsd-t.js.
|
|
8
|
+
*
|
|
9
|
+
* Bounded to 1MB response to prevent OOM.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const https = require("https");
|
|
13
|
+
|
|
14
|
+
const MAX_BODY = 1048576; // 1MB
|
|
15
|
+
|
|
16
|
+
https.get("https://registry.npmjs.org/@tekyzinc/gsd-t/latest", { timeout: 5000 }, (res) => {
|
|
17
|
+
let data = "";
|
|
18
|
+
res.on("data", (chunk) => {
|
|
19
|
+
data += chunk;
|
|
20
|
+
if (data.length > MAX_BODY) { res.destroy(); return; }
|
|
21
|
+
});
|
|
22
|
+
res.on("end", () => {
|
|
23
|
+
try { process.stdout.write(JSON.parse(data).version); } catch { /* ignore */ }
|
|
24
|
+
});
|
|
25
|
+
}).on("error", () => { /* silent */ });
|