@tekyzinc/gsd-t 5.19.10 → 5.20.10
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 +57 -0
- package/README.md +2 -2
- package/bin/gsd-t-estimate-sheet.cjs +1184 -0
- package/bin/gsd-t-pick-worktree.cjs +43 -2
- package/bin/gsd-t.js +17 -0
- package/commands/gsd-t-estimate.md +92 -111
- package/commands/gsd-t-help.md +3 -3
- package/package.json +1 -1
- package/templates/CLAUDE-global.md +1 -1
- package/templates/estimate-config.json +5 -2
- package/templates/estimate-sheet-spec.md +261 -0
- package/templates/playbooks/tekyz-estimation-and-prd-playbook.md +8 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,63 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GSD-T are documented here. Updated with each release.
|
|
4
4
|
|
|
5
|
+
## [5.20.10] - 2026-09-17
|
|
6
|
+
|
|
7
|
+
### Changed — `/gsd-t-estimate` is the sheet only, and the sheet now has a written spec
|
|
8
|
+
|
|
9
|
+
Two shipped Hilo estimates each needed a dozen hand-corrections, all on structure and
|
|
10
|
+
formatting the command had left to memory: a second header row written under the real one,
|
|
11
|
+
`Mon ...` never updated, the sage highlight cleared as a "stray fill", Calibri where Arial
|
|
12
|
+
belongs, a Team Mix with no Project Manager or Business Analyst, one row at Count 1.40, three
|
|
13
|
+
part-timers at 0.42/0.56/0.23 where the rule is fill-one-then-spill, flat 160/160/147 hours
|
|
14
|
+
for every role, a fourth month column at −12.80 hrs, size cells holding the legend text
|
|
15
|
+
"XS - Extra Small", Phase cells that lost their dropdown, an empty Technology Stack tab, and
|
|
16
|
+
an off-by-one that wrote Total Hrs one column too far right.
|
|
17
|
+
|
|
18
|
+
- NEW `templates/estimate-sheet-spec.md` (propagated to `~/.claude/templates/`): exact layout,
|
|
19
|
+
formulas and styling for the three tabs; roster rules (one row per person, no Count > 1.00,
|
|
20
|
+
saturate-then-spill, every MF factor staffed); ramp weights by discipline; the last month as a
|
|
21
|
+
remainder formula; month-column count recomputed after any roster change; the Overview cells
|
|
22
|
+
the estimates index imports; and a read-back audit checklist that runs after every write.
|
|
23
|
+
- `commands/gsd-t-estimate.md`: PRD dropped (that is `/gsd-t-prd`); scope = T-Shirt Size +
|
|
24
|
+
Team Mix + Technology Stack; `--sheet <url>` accepted (gap-analysis already passed it); reads
|
|
25
|
+
the target sheet's real layout before writing; Team Mix is its own PAUSE; Technology Stack is
|
|
26
|
+
a step, not a leftover tab; the write step is clear-then-paint, small batches, no
|
|
27
|
+
`X-Goog-User-Project`, `copyPaste` for Phase cells, verified by reading back; Step 2.5 and the
|
|
28
|
+
Red Team can no longer be skipped silently.
|
|
29
|
+
- `templates/estimate-config.json`: the sheet's own MF list is the source of truth; `sheetSpec`
|
|
30
|
+
pointer added. Playbook Phase 6 now points at `/gsd-t-prd`. `bin/gsd-t.js` SHARED_TEMPLATES
|
|
31
|
+
carries the spec so it lands in every install.
|
|
32
|
+
- NEW `bin/gsd-t-estimate-sheet.cjs` — `gsd-t estimate-sheet read | plan-check | write | audit`,
|
|
33
|
+
the deterministic writer. The model supplies judgment only (sizes, per-discipline FTE,
|
|
34
|
+
tech-stack lines) as a JSON plan; the tool reads the sheet, splits FTE into people
|
|
35
|
+
(saturate then spill), computes months, column count and the ramp, writes every formula and
|
|
36
|
+
style from the current shape, then audits by reading back. Exit 4 on any ✗, halt on the first
|
|
37
|
+
failing batch, no fallbacks (the fallback guard caught two real ones during the build: an
|
|
38
|
+
unknown discipline silently ramped as PM, and MF coverage passing when the T-Shirt layout was
|
|
39
|
+
unreadable). Run read-only against the hand-corrected ATP sheet it passed every structural
|
|
40
|
+
check and surfaced the two real gaps. Ships in GLOBAL and PROJECT bin lists; 21 unit tests,
|
|
41
|
+
including the loop-closer: the writer's own output passes its own audit, and each historical
|
|
42
|
+
defect fails its named check. The command now calls it instead of writing cells by hand.
|
|
43
|
+
|
|
44
|
+
## [5.19.11] - 2026-09-15
|
|
45
|
+
|
|
46
|
+
### Fixed — a broken git made the worktree prompt vanish with nothing said
|
|
47
|
+
|
|
48
|
+
An Xcode update left the licence unaccepted, so every git command exited 69 with a licence
|
|
49
|
+
notice. The worktree picker's first check asks "is this a git repo" and read that failure as
|
|
50
|
+
a plain "no" — which is the ordinary case for most directories, so it exited silently. The
|
|
51
|
+
launcher then skipped the worktree prompt entirely and started the session where it stood.
|
|
52
|
+
A prompt that disappears reads as a GSD-T bug; the actual cause was git, two commands away.
|
|
53
|
+
|
|
54
|
+
- `bin/gsd-t-pick-worktree.cjs`: "not a repository" and "git could not answer" are now
|
|
55
|
+
different answers. git's own exit tells them apart — a genuine non-repo says so on stderr;
|
|
56
|
+
anything else (missing binary, unaccepted licence, broken install) HALTS with what git said
|
|
57
|
+
and how to fix it. The sibling checks in `gsd-t-worktree-detect.cjs` already halted this way;
|
|
58
|
+
this one was the inconsistent member.
|
|
59
|
+
- `test/m111-pick-worktree.test.js`: 3 regression tests — a licence-style failure halts, a
|
|
60
|
+
directory that is genuinely not a repo stays silent, and git missing from PATH also halts.
|
|
61
|
+
|
|
5
62
|
## [5.19.10] - 2026-09-09
|
|
6
63
|
|
|
7
64
|
### Added — M117 Graph Search Guard: the graph rule finally fires on the path work actually takes
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GSD-T: Contract-Driven Development for Claude Code
|
|
2
2
|
|
|
3
|
-
**v5.
|
|
3
|
+
**v5.20.10** - A methodology for reliable, parallelizable development using Claude Code with optional Agent Teams support.
|
|
4
4
|
|
|
5
5
|
**Eliminates context rot** — task-level fresh dispatch (one subagent per task, ~10-20% context each) means compaction never triggers.
|
|
6
6
|
**Compaction-proof debug loops** — `gsd-t headless --debug-loop` runs test-fix-retest cycles as separate `claude -p` sessions. A JSONL debug ledger persists all hypothesis/fix/learning history across fresh sessions. Anti-repetition preamble injection prevents retrying failed hypotheses. Escalation tiers (sonnet → opus → human) and a hard iteration ceiling enforced externally.
|
|
@@ -184,7 +184,7 @@ This will replace changed command files, back up your CLAUDE.md if customized, a
|
|
|
184
184
|
| `/gsd-t-scan` | Deep codebase analysis → techdebt.md | Manual |
|
|
185
185
|
| `/gsd-t-gap-analysis` | Requirements gap analysis — spec vs. existing code | Manual |
|
|
186
186
|
| `/gsd-t-promote-debt` | Convert techdebt items to milestones | Manual |
|
|
187
|
-
| `/gsd-t-estimate` | Turn any work doc (scan, requirements, feature/app spec) into a Tekyz client estimate
|
|
187
|
+
| `/gsd-t-estimate` | Turn any work doc (scan, gap-analysis sheet, requirements, feature/app spec) into a Tekyz client estimate Google Sheet — T-Shirt Size + Team Mix + Technology Stack, written by the deterministic `gsd-t estimate-sheet` tool from a JSON plan and read-back-audited against `templates/estimate-sheet-spec.md` — supervised, with an operator-arbitrated Estimate Red Team. No PRD (that is `/gsd-t-prd`) | Manual |
|
|
188
188
|
| `/gsd-t-stories` | Generate a dev-team handoff doc in the Tekyz user-stories format (stories + workflows + acceptance criteria + Mermaid flow diagrams + mapped test cases) from any source | Manual |
|
|
189
189
|
| `/gsd-t-demo-videos` | Narrated screen-recording walkthroughs of a running app — coverage plan, UI-driven seeding, batched TTS with a measured one-voice gate, continuous recording, mux, silence trim | Manual |
|
|
190
190
|
| `/gsd-t-populate` | Auto-populate docs from existing codebase | Manual |
|