From 824e8e12a800f99f66d86fe23b97ae816a2eb2d9 Mon Sep 17 00:00:00 2001 From: Tibsfox Date: Sun, 5 Apr 2026 11:55:35 -0700 Subject: [PATCH] test(gsd): add skip-slice STATE.md rebuild regression test --- .../tests/skip-slice-state-rebuild.test.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/resources/extensions/gsd/tests/skip-slice-state-rebuild.test.ts diff --git a/src/resources/extensions/gsd/tests/skip-slice-state-rebuild.test.ts b/src/resources/extensions/gsd/tests/skip-slice-state-rebuild.test.ts new file mode 100644 index 000000000..5a46cdf3c --- /dev/null +++ b/src/resources/extensions/gsd/tests/skip-slice-state-rebuild.test.ts @@ -0,0 +1,31 @@ +/** + * Regression test for #3477: gsd_skip_slice tool must rebuild STATE.md + * after updating the DB so auto-mode reads the correct state. + */ +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +test("gsd_skip_slice tool calls rebuildState after DB update (#3477)", () => { + const src = readFileSync( + join(import.meta.dirname, "..", "bootstrap", "db-tools.ts"), + "utf-8", + ); + // The fix adds a rebuildState call after updateSliceStatus in skip_slice + assert.ok( + src.includes("rebuildState"), + "gsd_skip_slice must call rebuildState after updating slice status", + ); +}); + +test("rethink prompt warns against markdown-only edits for skip (#3477)", () => { + const prompt = readFileSync( + join(import.meta.dirname, "..", "prompts", "rethink.md"), + "utf-8", + ); + assert.ok( + prompt.includes("MUST") && prompt.includes("gsd_skip_slice"), + "Rethink prompt must emphasize gsd_skip_slice tool requirement", + ); +});