From a05a01ee2d8b2c9a7cd4f90365015c276719e2bc Mon Sep 17 00:00:00 2001 From: garrytan Date: Sun, 4 Oct 2026 01:33:29 +0000 Subject: [PATCH] eval(plan-design-with-ui): the Step 0D focus title may spell the seven dimensions as a word Run 37166586458 slice 5 (dfaf154) asked 'D2 - Review all seven design dimensions, or focus on specific areas?' and reached its review finding, but the focus predicate only accepted the numeral, so the case failed with no acknowledged Design focus. Both recognizers accept 7 or seven; the byte-exact capture is a free regression, and engineering/other-count/ no-'design' titles stay rejected. --- test/plan-design-with-ui-fixture.test.ts | 5 ++++- test/skill-e2e-plan-design-with-ui.test.ts | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/plan-design-with-ui-fixture.test.ts b/test/plan-design-with-ui-fixture.test.ts index 4230284c0..dc3bd22ed 100644 --- a/test/plan-design-with-ui-fixture.test.ts +++ b/test/plan-design-with-ui-fixture.test.ts @@ -130,10 +130,13 @@ mock.module(${JSON.stringify(path.join(ROOT, 'test/helpers/claude-pty-runner.ts' expect(opts.isLastStep0AUQ(fp('focus-ones', 'D1 — Review all 7 design dimensions, or focus on specific ones?'))).toBe(true); if (mode.startsWith('native-')) expect(opts.isLastStep0AUQ(nativeFocus)).toBe(true); expect(opts.isLastStep0AUQ(captured[1])).toBe(true); + // Run 37166586458 slice 5 (dfaf154): the Step 0D title spelled the count as a word. + expect(opts.isLastStep0AUQ(fp('focus-word', "D2 — Review all seven design dimensions, or focus on specific areas?\\nProject/branch/task: main branch, design review of the User Dashboard plan before implementation."))).toBe(true); for (const unrelated of ['Review all 4 design passes, or focus?', 'Review all 7 engineering passes, or focus?', 'Review all 7 passes, or focus?', 'Review all 4 design passes or focus?', 'Review all 7 engineering passes or focus?', 'Review all 7 passes or focus?', - 'Which plan should receive all 7 design passes?']) { + 'Which plan should receive all 7 design passes?', 'Review all seven engineering passes, or focus?', + 'Review all six design passes, or focus?', 'Review all seven passes, or focus?']) { expect(opts.isLastStep0AUQ(fp('unrelated', unrelated))).toBe(false); } expect(opts.isReviewAUQ(target)).toBe(false); diff --git a/test/skill-e2e-plan-design-with-ui.test.ts b/test/skill-e2e-plan-design-with-ui.test.ts index c193ab0bd..6f9a40fb1 100644 --- a/test/skill-e2e-plan-design-with-ui.test.ts +++ b/test/skill-e2e-plan-design-with-ui.test.ts @@ -28,8 +28,9 @@ const designFocusBoundary = (fp: AskUserQuestionFingerprint): boolean => const text = question.trim().replace(/^D\d+(?:\.\d+)?\s*[—–:-]\s*/i, ''); // Require the source Step 0D question or its retained native paraphrase. // A target menu can mention a design system without reviewing this plan. - return /^I(?:['’]ve| have) rated this plan (?:10(?:\.0+)?|[0-9](?:\.\d+)?)\/10 on design completeness\.[\s\S]*\bWant me to focus on specific areas instead of all 7\?/i.test(text) - || /^Review all 7 design (?:dimensions|passes),? or focus(?: on [^?\n]+)?\?$/i.test(text.split(/\r?\n/, 1)[0]!); + // The count is the skill's seven dimensions, written as a numeral or a word. + return /^I(?:['’]ve| have) rated this plan (?:10(?:\.0+)?|[0-9](?:\.\d+)?)\/10 on design completeness\.[\s\S]*\bWant me to focus on specific areas instead of all (?:7|seven)\?/i.test(text) + || /^Review all (?:7|seven) design (?:dimensions|passes),? or focus(?: on [^?\n]+)?\?$/i.test(text.split(/\r?\n/, 1)[0]!); }); // Require a choice about the supplied UI, not a workflow offer after focus.