@tekyzinc/gsd-t 3.29.11 → 4.0.14

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.
Files changed (114) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/bin/gsd-t-parallel.cjs +64 -13
  3. package/bin/gsd-t.js +48 -376
  4. package/bin/journey-coverage.cjs +6 -3
  5. package/bin/parallel-cli.cjs +13 -1
  6. package/commands/gsd-t-complete-milestone.md +6 -12
  7. package/commands/gsd-t-debug.md +47 -533
  8. package/commands/gsd-t-design-decompose.md +24 -497
  9. package/commands/gsd-t-doc-ripple.md +23 -139
  10. package/commands/gsd-t-execute.md +41 -958
  11. package/commands/gsd-t-feature.md +2 -6
  12. package/commands/gsd-t-gap-analysis.md +3 -6
  13. package/commands/gsd-t-help.md +2 -4
  14. package/commands/gsd-t-impact.md +26 -295
  15. package/commands/gsd-t-init-scan-setup.md +7 -7
  16. package/commands/gsd-t-integrate.md +44 -369
  17. package/commands/gsd-t-milestone.md +25 -124
  18. package/commands/gsd-t-partition.md +28 -539
  19. package/commands/gsd-t-plan.md +26 -472
  20. package/commands/gsd-t-prd.md +25 -311
  21. package/commands/gsd-t-quick.md +1 -1
  22. package/commands/gsd-t-resume.md +0 -33
  23. package/commands/gsd-t-scan.md +45 -652
  24. package/commands/gsd-t-verify.md +52 -569
  25. package/commands/gsd-t-wave.md +41 -430
  26. package/package.json +1 -1
  27. package/scripts/gsd-t-calibration-hook.js +3 -1
  28. package/scripts/hooks/pre-commit-journey-coverage +0 -2
  29. package/scripts/hooks/pre-commit-playwright-gate +0 -2
  30. package/templates/CLAUDE-global.md +44 -173
  31. package/templates/CLAUDE-project.md +118 -104
  32. package/templates/prompts/design-verify-subagent.md +3 -0
  33. package/templates/prompts/qa-subagent.md +3 -0
  34. package/templates/prompts/red-team-subagent.md +5 -2
  35. package/templates/workflows/_lib.js +176 -0
  36. package/templates/workflows/gsd-t-debug.workflow.js +86 -0
  37. package/templates/workflows/gsd-t-execute.workflow.js +206 -0
  38. package/templates/workflows/gsd-t-integrate.workflow.js +71 -0
  39. package/templates/workflows/gsd-t-phase.workflow.js +94 -0
  40. package/templates/workflows/gsd-t-quick.workflow.js +72 -0
  41. package/templates/workflows/gsd-t-scan.workflow.js +711 -0
  42. package/templates/workflows/gsd-t-verify.workflow.js +348 -0
  43. package/templates/workflows/gsd-t-wave.workflow.js +43 -0
  44. package/bin/check-headless-sessions.js +0 -140
  45. package/bin/context-budget-audit.cjs +0 -447
  46. package/bin/context-meter-config.cjs +0 -101
  47. package/bin/context-meter-config.test.cjs +0 -101
  48. package/bin/event-stream.cjs +0 -205
  49. package/bin/gsd-t-benchmark-orchestrator.js +0 -437
  50. package/bin/gsd-t-capture-lint.cjs +0 -440
  51. package/bin/gsd-t-economics.cjs +0 -315
  52. package/bin/gsd-t-in-session-usage.cjs +0 -213
  53. package/bin/gsd-t-orchestrator-config.cjs +0 -161
  54. package/bin/gsd-t-orchestrator-queue.cjs +0 -180
  55. package/bin/gsd-t-orchestrator-recover.cjs +0 -231
  56. package/bin/gsd-t-orchestrator-worker.cjs +0 -219
  57. package/bin/gsd-t-orchestrator.js +0 -535
  58. package/bin/gsd-t-parallel-probe.cjs +0 -132
  59. package/bin/gsd-t-ratelimit-probe-worker.cjs +0 -237
  60. package/bin/gsd-t-ratelimit-probe.cjs +0 -648
  61. package/bin/gsd-t-report-tokens.cjs +0 -549
  62. package/bin/gsd-t-stream-feed-client.cjs +0 -151
  63. package/bin/gsd-t-token-backfill.cjs +0 -366
  64. package/bin/gsd-t-token-capture.cjs +0 -321
  65. package/bin/gsd-t-token-dashboard.cjs +0 -353
  66. package/bin/gsd-t-token-regenerate-log.cjs +0 -129
  67. package/bin/gsd-t-tool-attribution.cjs +0 -377
  68. package/bin/gsd-t-tool-cost.cjs +0 -195
  69. package/bin/gsd-t-transcript-tee.cjs +0 -246
  70. package/bin/gsd-t-unattended-heartbeat.cjs +0 -188
  71. package/bin/gsd-t-unattended-platform.cjs +0 -551
  72. package/bin/gsd-t-unattended-platform.js +0 -381
  73. package/bin/gsd-t-unattended-safety.cjs +0 -773
  74. package/bin/gsd-t-unattended-safety.js +0 -788
  75. package/bin/gsd-t-unattended.cjs +0 -2109
  76. package/bin/gsd-t-unattended.js +0 -1367
  77. package/bin/gsd-t-worker-dispatch.cjs +0 -211
  78. package/bin/handoff-lock.cjs +0 -249
  79. package/bin/handoff-lock.js +0 -249
  80. package/bin/headless-auto-spawn.cjs +0 -711
  81. package/bin/headless-auto-spawn.js +0 -373
  82. package/bin/headless-exit-codes.cjs +0 -67
  83. package/bin/live-activity-report.cjs +0 -615
  84. package/bin/log-tail.cjs +0 -81
  85. package/bin/m44-proof-measure.cjs +0 -285
  86. package/bin/m46-iter-proof.cjs +0 -149
  87. package/bin/m46-worker-proof.cjs +0 -201
  88. package/bin/m55-substrate-proof.cjs +0 -134
  89. package/bin/metrics-rollup.js +0 -200
  90. package/bin/model-windows.cjs +0 -99
  91. package/bin/model-windows.test.cjs +0 -75
  92. package/bin/parallelism-report.cjs +0 -535
  93. package/bin/runway-estimator.cjs +0 -242
  94. package/bin/spawn-plan-derive.cjs +0 -163
  95. package/bin/spawn-plan-status-updater.cjs +0 -292
  96. package/bin/spawn-plan-writer.cjs +0 -204
  97. package/bin/supervisor-pid-fingerprint.cjs +0 -126
  98. package/bin/token-budget.cjs +0 -265
  99. package/bin/unattended-watch-format.cjs +0 -178
  100. package/bin/watch-progress.js +0 -155
  101. package/commands/gsd-t-unattended-stop.md +0 -85
  102. package/commands/gsd-t-unattended-watch.md +0 -465
  103. package/commands/gsd-t-unattended.md +0 -476
  104. package/commands/gsd-t-visualize.md +0 -116
  105. package/scripts/gsd-t-context-meter.e2e.test.js +0 -364
  106. package/scripts/gsd-t-context-meter.js +0 -341
  107. package/scripts/gsd-t-context-meter.test.js +0 -471
  108. package/scripts/gsd-t-dashboard-server.js +0 -1203
  109. package/scripts/gsd-t-post-commit-spawn-plan.sh +0 -86
  110. package/scripts/gsd-t-transcript.html +0 -1821
  111. package/scripts/hooks/gsd-t-conversation-capture.js +0 -439
  112. package/scripts/hooks/gsd-t-in-session-usage-hook.js +0 -84
  113. package/scripts/spawn-plan-fmt-tokens.cjs +0 -80
  114. package/templates/hooks/post-commit-spawn-plan.sh +0 -85
@@ -1,156 +1,40 @@
1
1
  # GSD-T: Doc-Ripple — Automated Document Ripple Enforcement
2
2
 
3
- You are the doc-ripple agent. You identify and update all downstream documents after code changes. You are spawned by execute, integrate, quick, debug, and wave after primary work is committed.
3
+ You are the doc-ripple agent. You identify and update all downstream documents after code changes, per the Document Ripple Completion Gate. You are normally spawned by execute, integrate, quick, debug, and wave after primary work is committed — and you can also be run standalone. Either way, run the doc-ripple phase by invoking the generic upper-stage Workflow at `templates/workflows/gsd-t-phase.workflow.js` with `phase: "doc-ripple"`. You write NO code — docs only.
4
4
 
5
- ## Model Assignment
6
-
7
- Per `.gsd-t/contracts/model-selection-contract.md` v1.0.0.
8
-
9
- - **Default**: `sonnet` (`selectModel({phase: "doc-ripple"})`) — downstream documentation updates are routine prose editing.
10
- - **Escalation**: `/advisor` convention-based fallback from `bin/advisor-integration.js` when a doc change involves rewriting an architectural invariant or a contract. Never silently skip doc-ripple under context pressure — M35 removed that behavior.
11
-
12
- ## Step 1: Load Context
13
-
14
- Read:
15
- 1. `CLAUDE.md` — project conventions and Pre-Commit Gate (project-specific extensions)
16
- 2. `.gsd-t/contracts/doc-ripple-contract.md` — trigger conditions, manifest format, update protocol
17
- 3. `.gsd-t/contracts/pre-commit-gate.md` — the gate checklist you cross-reference
18
-
19
- Run via Bash:
20
- `git diff --name-only HEAD~1 2>/dev/null || git diff --cached --name-only`
21
-
22
- Store the changed file list for Steps 2–3.
23
-
24
- ## Step 2: Threshold Check
25
-
26
- Evaluate the changed file list against trigger conditions from `doc-ripple-contract.md`.
27
-
28
- Output exactly:
29
- ```
30
- DOC-RIPPLE THRESHOLD: {FIRE|SKIP}
31
- Files changed: {N} across {N} directories
32
- Cross-cutting signals: {list or "none"}
33
- Reason: {brief explanation}
34
- ```
35
-
36
- **If SKIP**: log the decision, output `Doc-ripple: SKIP — {reason}`, and stop. No manifest. No updates.
37
-
38
- **If FIRE**: proceed to Step 3.
39
-
40
- ## Step 3: Blast Radius Analysis
41
-
42
- For each changed file, classify its type: source, test, contract, template, command, doc, config.
43
-
44
- Cross-reference `.gsd-t/contracts/pre-commit-gate.md` gate checklist:
45
- - API endpoint/shape changed → api-contract.md, Swagger spec, CLAUDE.md, README.md
46
- - Database schema changed → schema-contract.md, docs/schema.md
47
- - UI component interface changed → component-contract.md
48
- - New files or directories added → owning domain scope.md
49
- - Requirement implemented or changed → docs/requirements.md
50
- - Component or data flow changed → docs/architecture.md
51
- - Any file modified → .gsd-t/progress.md (Decision Log entry)
52
- - Architectural decision made → .gsd-t/progress.md (with rationale)
53
- - Tech debt discovered or fixed → .gsd-t/techdebt.md
54
- - New convention established → CLAUDE.md or domain constraints.md
55
- - Command file added/changed → GSD-T-README.md, README.md, templates/CLAUDE-global.md, commands/gsd-t-help.md
56
- - Command added/removed → all 4 above + package.json version + bin/gsd-t.js count
57
- - Wave flow changed → gsd-t-wave.md, GSD-T-README.md, README.md
58
- - Template changed → verify gsd-t-init output
59
-
60
- Build the final list: `{ document, status (UPDATED|SKIPPED), action, reason }`.
61
-
62
- ## Step 4: Generate Manifest
63
-
64
- Write `.gsd-t/doc-ripple-manifest.md` (overwrite):
65
-
66
- ```markdown
67
- # Doc-Ripple Manifest — {date}
68
-
69
- ## Trigger
70
- - Command: {triggering command}
71
- - Files changed: {N}
72
- - Threshold: FIRE — {reason}
73
-
74
- ## Blast Radius
75
-
76
- | Document | Status | Action | Reason |
77
- |----------|--------|--------|--------|
78
- | {path} | {UPDATED|SKIPPED} | {action} | {reason} |
79
-
80
- ## Summary
81
- - Documents checked: {N}
82
- - Documents updated: {N}
83
- - Documents skipped (already current): {N}
84
- ```
85
-
86
- ## Step 5: Update Documents
87
-
88
- Count documents marked UPDATED.
89
-
90
- **Fewer than 3 updates — inline:**
91
- For each document: read current content → determine minimal edit → apply via Edit tool (not Write) → verify after edit.
92
-
93
- **3 or more updates — parallel subagents:**
94
-
95
- For each document or logical group:
96
-
97
- ⚙ [haiku] gsd-t-doc-ripple → update {document}
98
- (Use sonnet for docs/architecture.md and docs/requirements.md — these need reasoning.)
99
-
100
- **OBSERVABILITY LOGGING (MANDATORY) — wrap each document-update subagent with `captureSpawn`:**
5
+ ## What this command does
101
6
 
102
7
  ```
103
- node -e "
104
- const { captureSpawn } = require('./bin/gsd-t-token-capture.cjs');
105
- (async () => {
106
- await captureSpawn({
107
- command: 'gsd-t-doc-ripple',
108
- step: 'Step 5',
109
- model: '{haiku|sonnet}',
110
- description: 'update {document}',
111
- projectDir: '.',
112
- domain: 'doc-ripple',
113
- task: '-',
114
- notes: 'update:{document}',
115
- spawnFn: async () => { /* Task subagent call for the document-update prompt below */ },
116
- });
117
- })();
118
- "
8
+ preflight → brief (kind=doc-ripple) → doc-ripple agent (opus, with phase protocol)
119
9
  ```
120
10
 
121
- `captureSpawn` parses `result.usage` and writes the row to `.gsd-t/token-log.md` under the canonical header. Tokens column renders as `in=N out=N cr=N cc=N $X.XX` or `—`, never `N/A`.
11
+ The agent identifies the full blast radius of recent code changes and updates every affected document in one pass: `docs/requirements.md`, `docs/architecture.md`, `docs/workflows.md`, `.gsd-t/contracts/`, owning `scope.md`, `README.md`, and (for this repo) the 4 command-reference files when a command interface changed.
122
12
 
123
- **Each document-update subagent prompt:**
124
- ```
125
- Task subagent (general-purpose, model: {haiku|sonnet}):
126
- "Update a single document as part of doc-ripple enforcement.
127
-
128
- Document to update: {path}
129
- Action: {action from manifest}
130
- Reason: {reason from manifest}
131
- Git diff context (changed files): {file list}
13
+ ## Step 1: Determine the change set
132
14
 
133
- Instructions:
134
- 1. Read the current document
135
- 2. Apply the minimal edit — add/update only the affected section
136
- 3. Use the Edit tool (not Write) — preserve all existing content
137
- 4. Re-read after edit to confirm correctness
138
- 5. Report: 'Updated {document} — {one-line summary of change}'"
139
- ```
15
+ Read the recent commit range (or `$ARGUMENTS` if a specific scope is given) and `.gsd-t/progress.md` Decision Log to learn what changed.
140
16
 
141
- ## Step 6: Report Summary
17
+ ## Step 2: Invoke the phase Workflow
142
18
 
143
- Output:
144
- ```
145
- Doc-ripple: {N} checked, {N} updated, {N} skipped
19
+ ```js
20
+ {
21
+ scriptPath: "templates/workflows/gsd-t-phase.workflow.js",
22
+ args: {
23
+ phase: "doc-ripple",
24
+ projectDir: ".",
25
+ userInput: "$ARGUMENTS"
26
+ }
27
+ }
146
28
  ```
147
29
 
148
- List each updated document with a one-line summary of what changed.
30
+ ## Step 3: Interpret the result
149
31
 
150
- If any update failed, list it under `Failures:` and flag for manual review.
32
+ The Workflow returns `{ status, artifacts, summary, decisions }`.
151
33
 
152
- $ARGUMENTS
34
+ - `status === "complete"`: every document in the blast radius updated; `artifacts` lists them.
35
+ - `status === "partial"`: the agent found docs it could not confidently update. Surface them — do NOT report doc-ripple done until the blast radius is fully covered.
36
+ - `status === "failed"`: read `summary`.
153
37
 
154
- ## Auto-Clear
38
+ ## Note
155
39
 
156
- All work is written to project files. Execute `/clear` to free the context window for the next command.
40
+ This is a standalone enforcement command with no workflow successor — control returns to whatever spawned it (or to the user).