From c8bf0474b161304363d5fd318aee50b9d7f045d8 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 15 Aug 2026 08:40:12 -0700 Subject: [PATCH] =?UTF-8?q?fix(test):=20gstack-config-key-locale=20?= =?UTF-8?q?=E2=80=94=20suppress=20the=20skill=5Fprefix=20auto-relink=20sid?= =?UTF-8?q?e=20effect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test invokes the repo's own bin/gstack-config, whose 'set skill_prefix' auto-runs $(dirname $0)/gstack-relink — resolving the install dir to the repo itself. In any environment where the loop shares a working tree (the free-tests CI container, a fresh-HOME run), gstack-patch-names rewrote all 52 tracked SKILL.md names to gstack- prefixed, poisoning five unrelated suites downstream (hermetic-skills-seeding, host-config golden, skill-census, skill-validation, spec-template-sync). GSTACK_SETUP_RUNNING=1 is the documented suppression; relink behavior stays covered by relink.test.ts's mock install. Co-Authored-By: Claude Fable 5 --- test/gstack-config-key-locale.test.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/gstack-config-key-locale.test.ts b/test/gstack-config-key-locale.test.ts index 6fdbd5db1..dbf3c4993 100644 --- a/test/gstack-config-key-locale.test.ts +++ b/test/gstack-config-key-locale.test.ts @@ -20,7 +20,14 @@ let stateRoot: string; function run(args: string[]) { const result = spawnSync(CONFIG, args, { encoding: "utf8", - env: { ...process.env, GSTACK_STATE_ROOT: stateRoot }, + // GSTACK_SETUP_RUNNING suppresses `set skill_prefix`'s auto-relink side + // effect. Without it, this test invokes the REPO's gstack-config, whose + // auto-relink resolves the install dir from its own path — i.e. the repo — + // and gstack-patch-names rewrites all 52 tracked SKILL.md files to + // gstack-prefixed names, poisoning every downstream test that reads the + // live tree (observed in the free-tests CI job). Relink behavior itself is + // covered in isolation by test/relink.test.ts's mock install. + env: { ...process.env, GSTACK_STATE_ROOT: stateRoot, GSTACK_SETUP_RUNNING: "1" }, }); return {