@tekyzinc/gsd-t 3.29.10 → 4.0.12

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 (112) hide show
  1. package/CHANGELOG.md +176 -0
  2. package/bin/gsd-t-parallel.cjs +64 -13
  3. package/bin/gsd-t-test-data-adapters/file-json-array.cjs +27 -3
  4. package/bin/gsd-t-test-data-adapters/localstorage-key-prefix.cjs +6 -1
  5. package/bin/gsd-t-test-data-adapters/sqlite-table-where.cjs +16 -1
  6. package/bin/gsd-t-test-data-ledger.cjs +1 -0
  7. package/bin/gsd-t.js +48 -376
  8. package/bin/journey-coverage.cjs +6 -3
  9. package/bin/parallel-cli.cjs +13 -1
  10. package/commands/gsd-t-debug.md +47 -533
  11. package/commands/gsd-t-design-decompose.md +24 -497
  12. package/commands/gsd-t-doc-ripple.md +23 -139
  13. package/commands/gsd-t-execute.md +41 -958
  14. package/commands/gsd-t-help.md +0 -2
  15. package/commands/gsd-t-impact.md +26 -295
  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-verify.md +52 -569
  24. package/commands/gsd-t-wave.md +41 -430
  25. package/package.json +1 -1
  26. package/scripts/gsd-t-calibration-hook.js +3 -1
  27. package/scripts/hooks/pre-commit-journey-coverage +0 -2
  28. package/scripts/hooks/pre-commit-playwright-gate +0 -2
  29. package/templates/CLAUDE-global.md +43 -173
  30. package/templates/CLAUDE-project.md +118 -104
  31. package/templates/prompts/design-verify-subagent.md +3 -0
  32. package/templates/prompts/qa-subagent.md +3 -0
  33. package/templates/prompts/red-team-subagent.md +5 -2
  34. package/templates/workflows/_lib.js +176 -0
  35. package/templates/workflows/gsd-t-debug.workflow.js +86 -0
  36. package/templates/workflows/gsd-t-execute.workflow.js +206 -0
  37. package/templates/workflows/gsd-t-integrate.workflow.js +71 -0
  38. package/templates/workflows/gsd-t-phase.workflow.js +94 -0
  39. package/templates/workflows/gsd-t-quick.workflow.js +72 -0
  40. package/templates/workflows/gsd-t-verify.workflow.js +348 -0
  41. package/templates/workflows/gsd-t-wave.workflow.js +43 -0
  42. package/bin/check-headless-sessions.js +0 -140
  43. package/bin/context-budget-audit.cjs +0 -447
  44. package/bin/context-meter-config.cjs +0 -101
  45. package/bin/context-meter-config.test.cjs +0 -101
  46. package/bin/event-stream.cjs +0 -205
  47. package/bin/gsd-t-benchmark-orchestrator.js +0 -437
  48. package/bin/gsd-t-capture-lint.cjs +0 -440
  49. package/bin/gsd-t-economics.cjs +0 -315
  50. package/bin/gsd-t-in-session-usage.cjs +0 -213
  51. package/bin/gsd-t-orchestrator-config.cjs +0 -161
  52. package/bin/gsd-t-orchestrator-queue.cjs +0 -180
  53. package/bin/gsd-t-orchestrator-recover.cjs +0 -231
  54. package/bin/gsd-t-orchestrator-worker.cjs +0 -219
  55. package/bin/gsd-t-orchestrator.js +0 -535
  56. package/bin/gsd-t-parallel-probe.cjs +0 -132
  57. package/bin/gsd-t-ratelimit-probe-worker.cjs +0 -237
  58. package/bin/gsd-t-ratelimit-probe.cjs +0 -648
  59. package/bin/gsd-t-report-tokens.cjs +0 -549
  60. package/bin/gsd-t-stream-feed-client.cjs +0 -151
  61. package/bin/gsd-t-token-backfill.cjs +0 -366
  62. package/bin/gsd-t-token-capture.cjs +0 -321
  63. package/bin/gsd-t-token-dashboard.cjs +0 -353
  64. package/bin/gsd-t-token-regenerate-log.cjs +0 -129
  65. package/bin/gsd-t-tool-attribution.cjs +0 -377
  66. package/bin/gsd-t-tool-cost.cjs +0 -195
  67. package/bin/gsd-t-transcript-tee.cjs +0 -246
  68. package/bin/gsd-t-unattended-heartbeat.cjs +0 -188
  69. package/bin/gsd-t-unattended-platform.cjs +0 -551
  70. package/bin/gsd-t-unattended-platform.js +0 -381
  71. package/bin/gsd-t-unattended-safety.cjs +0 -773
  72. package/bin/gsd-t-unattended-safety.js +0 -788
  73. package/bin/gsd-t-unattended.cjs +0 -2109
  74. package/bin/gsd-t-unattended.js +0 -1367
  75. package/bin/gsd-t-worker-dispatch.cjs +0 -211
  76. package/bin/handoff-lock.cjs +0 -249
  77. package/bin/handoff-lock.js +0 -249
  78. package/bin/headless-auto-spawn.cjs +0 -711
  79. package/bin/headless-auto-spawn.js +0 -373
  80. package/bin/headless-exit-codes.cjs +0 -67
  81. package/bin/live-activity-report.cjs +0 -615
  82. package/bin/log-tail.cjs +0 -81
  83. package/bin/m44-proof-measure.cjs +0 -285
  84. package/bin/m46-iter-proof.cjs +0 -149
  85. package/bin/m46-worker-proof.cjs +0 -201
  86. package/bin/m55-substrate-proof.cjs +0 -134
  87. package/bin/metrics-rollup.js +0 -200
  88. package/bin/model-windows.cjs +0 -99
  89. package/bin/model-windows.test.cjs +0 -75
  90. package/bin/parallelism-report.cjs +0 -535
  91. package/bin/runway-estimator.cjs +0 -242
  92. package/bin/spawn-plan-derive.cjs +0 -163
  93. package/bin/spawn-plan-status-updater.cjs +0 -292
  94. package/bin/spawn-plan-writer.cjs +0 -204
  95. package/bin/supervisor-pid-fingerprint.cjs +0 -126
  96. package/bin/token-budget.cjs +0 -265
  97. package/bin/unattended-watch-format.cjs +0 -178
  98. package/bin/watch-progress.js +0 -155
  99. package/commands/gsd-t-unattended-stop.md +0 -85
  100. package/commands/gsd-t-unattended-watch.md +0 -465
  101. package/commands/gsd-t-unattended.md +0 -476
  102. package/commands/gsd-t-visualize.md +0 -116
  103. package/scripts/gsd-t-context-meter.e2e.test.js +0 -364
  104. package/scripts/gsd-t-context-meter.js +0 -341
  105. package/scripts/gsd-t-context-meter.test.js +0 -471
  106. package/scripts/gsd-t-dashboard-server.js +0 -1203
  107. package/scripts/gsd-t-post-commit-spawn-plan.sh +0 -86
  108. package/scripts/gsd-t-transcript.html +0 -1821
  109. package/scripts/hooks/gsd-t-conversation-capture.js +0 -439
  110. package/scripts/hooks/gsd-t-in-session-usage-hook.js +0 -84
  111. package/scripts/spawn-plan-fmt-tokens.cjs +0 -80
  112. 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).