@tekyzinc/gsd-t 2.71.16 → 2.71.18
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 +11 -0
- package/bin/design-orchestrator.js +1 -1
- package/bin/orchestrator.js +9 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GSD-T are documented here. Updated with each release.
|
|
4
4
|
|
|
5
|
+
## [2.71.18] - 2026-04-08
|
|
6
|
+
|
|
7
|
+
### Fixed (orchestrator — Claude permissions and timeouts)
|
|
8
|
+
- **Added `--dangerously-skip-permissions` to Claude spawns** — builder, reviewer, and fixer Claude instances couldn't write files in non-interactive `-p` mode. They ran successfully but produced zero output files because permission prompts can't be answered in piped mode.
|
|
9
|
+
- **Increased fixer timeout from 2min to 10min** — fixer was getting SIGTERM'd (exit code 143) trying to create 15 components in 120s. Now uses the same timeout as the builder (default 600s).
|
|
10
|
+
|
|
11
|
+
## [2.71.17] - 2026-04-08
|
|
12
|
+
|
|
13
|
+
### Fixed (orchestrator — auto-review cycle limit)
|
|
14
|
+
- **Bumped maxAutoReviewCycles from 2 to 4** — 2 cycles was too conservative for complex components (e.g., charts with multiple contract properties). 4 cycles gives the reviewer/fixer loop enough iterations to converge.
|
|
15
|
+
|
|
5
16
|
## [2.71.16] - 2026-04-08
|
|
6
17
|
|
|
7
18
|
### Added (orchestrator — automated AI review loop)
|
|
@@ -438,7 +438,7 @@ const designBuildWorkflow = {
|
|
|
438
438
|
timeout: 600_000,
|
|
439
439
|
devServerTimeout: 30_000,
|
|
440
440
|
maxReviewCycles: 3,
|
|
441
|
-
maxAutoReviewCycles:
|
|
441
|
+
maxAutoReviewCycles: 4,
|
|
442
442
|
reviewTimeout: 300_000,
|
|
443
443
|
},
|
|
444
444
|
completionMessage: "All done. Run your app to verify: npm run dev",
|
package/bin/orchestrator.js
CHANGED
|
@@ -179,13 +179,17 @@ ${BOLD}Phases:${RESET} ${this.wf.phases.join(" → ")}
|
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
spawnClaude(projectDir, prompt, timeout) {
|
|
182
|
+
spawnClaude(projectDir, prompt, timeout, opts = {}) {
|
|
183
183
|
const start = Date.now();
|
|
184
184
|
let output = "";
|
|
185
185
|
let exitCode = 0;
|
|
186
186
|
|
|
187
|
+
// Build args: -p for print mode, --dangerously-skip-permissions so spawned
|
|
188
|
+
// Claude can write files without interactive permission prompts
|
|
189
|
+
const args = ["-p", "--dangerously-skip-permissions", prompt];
|
|
190
|
+
|
|
187
191
|
try {
|
|
188
|
-
output = execFileSync("claude",
|
|
192
|
+
output = execFileSync("claude", args, {
|
|
189
193
|
encoding: "utf8",
|
|
190
194
|
timeout: timeout || this.wf.defaults?.timeout || 600_000,
|
|
191
195
|
stdio: ["pipe", "pipe", "pipe"],
|
|
@@ -579,7 +583,7 @@ ${BOLD}Phases:${RESET} ${this.wf.phases.join(" → ")}
|
|
|
579
583
|
// 6d.5. Automated AI review loop (Term 2 equivalent)
|
|
580
584
|
// Spawns an independent reviewer Claude that compares built output against contracts.
|
|
581
585
|
// If issues found → spawn fixer Claude → re-measure → re-review until clean.
|
|
582
|
-
const maxAutoReviewCycles = this.wf.defaults?.maxAutoReviewCycles ||
|
|
586
|
+
const maxAutoReviewCycles = this.wf.defaults?.maxAutoReviewCycles || 4;
|
|
583
587
|
if (this.wf.buildReviewPrompt) {
|
|
584
588
|
let autoReviewCycle = 0;
|
|
585
589
|
let autoReviewClean = false;
|
|
@@ -629,7 +633,7 @@ ${BOLD}Phases:${RESET} ${this.wf.phases.join(" → ")}
|
|
|
629
633
|
: this._defaultAutoFixPrompt(phase, issues);
|
|
630
634
|
|
|
631
635
|
log(`\n${CYAN} ⚙${RESET} Spawning fixer Claude for ${issues.length} issue(s)...`);
|
|
632
|
-
const fixResult = this.spawnClaude(projectDir, fixPrompt,
|
|
636
|
+
const fixResult = this.spawnClaude(projectDir, fixPrompt, opts.timeout || 600_000);
|
|
633
637
|
if (fixResult.exitCode === 0) success(`Fixer finished in ${fixResult.duration}s`);
|
|
634
638
|
else warn(`Fixer exited with code ${fixResult.exitCode}`);
|
|
635
639
|
|
|
@@ -670,7 +674,7 @@ ${BOLD}Phases:${RESET} ${this.wf.phases.join(" → ")}
|
|
|
670
674
|
? this.wf.buildFixPrompt(phase, feedback.needsWork)
|
|
671
675
|
: this._defaultFixPrompt(phase, feedback.needsWork);
|
|
672
676
|
info(`Spawning Claude to apply ${feedback.needsWork.length} fixes...`);
|
|
673
|
-
const fixResult = this.spawnClaude(projectDir, fixPrompt,
|
|
677
|
+
const fixResult = this.spawnClaude(projectDir, fixPrompt, opts.timeout || 600_000);
|
|
674
678
|
if (fixResult.exitCode === 0) success("Fixes applied");
|
|
675
679
|
else warn(`Fix attempt returned code ${fixResult.exitCode}`);
|
|
676
680
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.71.
|
|
3
|
+
"version": "2.71.18",
|
|
4
4
|
"description": "GSD-T: Contract-Driven Development for Claude Code — 56 slash commands with headless CI/CD mode, graph-powered code analysis, real-time agent dashboard, execution intelligence, 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",
|