From a181601bde5bc9662a50c1b6401ba067eaffd516 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 27 Aug 2026 16:23:37 +0000 Subject: [PATCH] fix(test): stage design-consultation's sections/ into the E2E fixture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The skill has been carved since v1.57.0.0 — the DESIGN.md structure prescription (the AESTHETIC proposal template) lives in sections/proposal-and-preview.md behind a STOP-read. The fixture only copied SKILL.md, so the agent improvised structure from the skeleton and the section-synonym check has been a coin flip since the carve (CI run 33090283032 trace shows 'no sections dir'; the local eval store has the same failure on 2026-08-25 while that day's CI run passed on lucky vocabulary). Co-Authored-By: Claude Fable 5 --- test/skill-e2e-design.test.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/test/skill-e2e-design.test.ts b/test/skill-e2e-design.test.ts index 475b67b1d..221e39aa4 100644 --- a/test/skill-e2e-design.test.ts +++ b/test/skill-e2e-design.test.ts @@ -76,12 +76,25 @@ A civic tech data platform for government employees to access, visualize, and sh run('git', ['add', '.']); run('git', ['commit', '-m', 'initial project setup']); - // Copy design-consultation skill + // Copy design-consultation skill — INCLUDING sections/. The skill has + // been carved since v1.57.0.0 (e722c5bf): Phases 3-6, where the DESIGN.md + // structure (the "AESTHETIC: [direction]" proposal template) is + // prescribed, live in sections/proposal-and-preview.md behind a STOP-read. + // Without the dir the agent improvises structure from the skeleton + // ("Visual thesis" vocabulary) and the section-synonym check becomes a + // coin flip (observed: CI run 33090283032 failed both attempts with + // "no sections dir" in the trace; the skeleton-only pass on 32899975845 + // was lucky vocabulary). fs.mkdirSync(path.join(designDir, 'design-consultation'), { recursive: true }); fs.copyFileSync( path.join(ROOT, 'design-consultation', 'SKILL.md'), path.join(designDir, 'design-consultation', 'SKILL.md'), ); + fs.cpSync( + path.join(ROOT, 'design-consultation', 'sections'), + path.join(designDir, 'design-consultation', 'sections'), + { recursive: true }, + ); }); afterAll(() => {