@tekyzinc/gsd-t 5.11.13 → 5.11.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [5.11.14] - 2026-08-09
6
+
7
+ ### Fixed — the shortened reply appeared as a third copy instead of the only one
8
+
9
+ The hook told the model to "replace it with this shorter version". A model
10
+ cannot replace a reply already sent — it can only write another. Read as an
11
+ instruction to restate, it re-emitted the LONG original, so the reader saw the
12
+ full reply, then the short one, then the full one again.
13
+
14
+ The instruction now describes the only action available: your entire next
15
+ message is this text, copied exactly, nothing before or after, and do not repeat
16
+ any part of the previous reply. Stated in words rather than wrapper markers,
17
+ which the model copies through.
18
+
19
+ - `scripts/gsd-t-concise-hook.js`: the block instruction
20
+ - `test/m107-concise-rewrite.test.js`: 3 tests — no "replace", the repeat is forbidden outright, and no markers that could land in the reply
21
+
5
22
  ## [5.11.13] - 2026-08-09
6
23
 
7
24
  ### Fixed — the reply shortener discarded 4 of every 6 rewrites
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GSD-T: Contract-Driven Development for Claude Code
2
2
 
3
- **v5.11.13** - A methodology for reliable, parallelizable development using Claude Code with optional Agent Teams support.
3
+ **v5.11.14** - 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekyzinc/gsd-t",
3
- "version": "5.11.13",
3
+ "version": "5.11.14",
4
4
  "description": "GSD-T: Contract-Driven Development for Claude Code — 54 slash commands with headless-by-default workflow spawning, unattended supervisor relay with event stream, graph-powered code analysis, real-time agent dashboard, task telemetry, doc-ripple enforcement, backlog management, impact analysis, test sync, milestone archival, and PRD generation",
5
5
  "author": "Tekyz, Inc.",
6
6
  "license": "MIT",
@@ -237,9 +237,17 @@ function main() {
237
237
  const saved = (result.words || 0) - (result.wordsAfter || 0);
238
238
  if (saved < 15) return allow(); // not worth the extra turn
239
239
 
240
+ // "Replace it with this" asks for something the model cannot do — it has no
241
+ // way to unsay a reply, only to write another. Read as an instruction to
242
+ // restate, it re-emitted the long original, so David saw the full reply,
243
+ // then the short one, then the full one again. The instruction has to
244
+ // describe the only real action: emit this text and stop.
240
245
  block(
241
- "Your last reply was longer than it needed to be. Replace it with this " +
242
- "shorter version, exactly as written, and add nothing:\n\n" +
246
+ "STOP. Do not continue your previous reply and do not repeat any part of " +
247
+ "it. Your entire next message is the text below, copied exactly nothing " +
248
+ "before it, nothing after it, no commentary, no heading, no explanation " +
249
+ "that you shortened anything. Everything from the next line onward IS " +
250
+ "your message:\n\n" +
243
251
  result.text
244
252
  );
245
253
  };