diff --git a/plan-ceo-review/sections/review-sections.md.tmpl b/plan-ceo-review/sections/review-sections.md.tmpl index e9657a1d1..af7173743 100644 --- a/plan-ceo-review/sections/review-sections.md.tmpl +++ b/plan-ceo-review/sections/review-sections.md.tmpl @@ -28,7 +28,7 @@ explicit authority; until then, keep both the proposal and original gap unresolv Carry prior approvals into findings, tasks and the report. Routine auto-decide cannot override user constraints or non-goals. -## CRITICAL RULE — How to ask questions +## How to ask questions Use 0D's decision procedure and the preamble's AskUserQuestion format: * **One decision unit = one AskUserQuestion call.** Use Step 0D boundaries, not topic labels. * Describe the concrete problem with file/line references. Offer 2-3 options, diff --git a/plan-design-review/sections/review-sections.md.tmpl b/plan-design-review/sections/review-sections.md.tmpl index 449577573..32c06a75a 100644 --- a/plan-design-review/sections/review-sections.md.tmpl +++ b/plan-design-review/sections/review-sections.md.tmpl @@ -122,7 +122,7 @@ AskUserQuestion: "The review passes changed [list major design changes]. Want me If yes, use `$D iterate` with feedback summarizing the changes, or `$D variants` with an updated brief. Save to the same `$_DESIGN_DIR` directory. -## CRITICAL RULE — How to ask questions +## How to ask questions Follow the AskUserQuestion format from the Preamble above. Additional rules for plan design reviews: * **One issue = one AskUserQuestion call.** Never combine multiple issues into one question. Each call contains exactly one question; multiple question tabs in one call are also batching. If a user could choose either remedy without choosing the other, ask separately, even when both affect the same component or token file. Shared implementation work does not make independent design choices inseparable. * Describe the design gap concretely — what's missing, what the user will experience if it's not specified. diff --git a/plan-devex-review/sections/review-sections.md.tmpl b/plan-devex-review/sections/review-sections.md.tmpl index cea99b79b..3429d28a8 100644 --- a/plan-devex-review/sections/review-sections.md.tmpl +++ b/plan-devex-review/sections/review-sections.md.tmpl @@ -247,7 +247,7 @@ required proof of the accepted contract does not reopen that contract. {{CODEX_PLAN_REVIEW}} -## CRITICAL RULE — How to ask questions +## How to ask questions Follow the AskUserQuestion format from the Preamble above. Additional rules for DX reviews: diff --git a/test/devex-finding-fixture.test.ts b/test/devex-finding-fixture.test.ts index b119f70b2..2846d24c8 100644 --- a/test/devex-finding-fixture.test.ts +++ b/test/devex-finding-fixture.test.ts @@ -80,8 +80,9 @@ test('every host exposes the DX per-call rule before the pre-review audit and St const options = beforeAudit.indexOf('4. **Draft and answer one decision.**', gate); expect([gate, ground, classify, scope, options].every((offset, i, offsets) => offset >= 0 && (i === 0 || offset > offsets[i - 1]!))).toBe(true); - const localRule = allContent.slice(allContent.indexOf('## CRITICAL RULE — How to ask questions'), - allContent.indexOf('## Required Outputs', allContent.indexOf('## CRITICAL RULE — How to ask questions'))); + const askHeading = allContent.search(/^## .*How to ask questions$/im); + expect(askHeading).toBeGreaterThanOrEqual(0); + const localRule = allContent.slice(askHeading, allContent.indexOf('## Required Outputs', askHeading)); expect(localRule).toContain('Run the Decision gate before drafting options.'); expect(localRule).not.toContain('use AskUserQuestion for each gap'); expect(allContent).toContain('Record observed human onboarding separately from automated execution'); diff --git a/test/skill-e2e-plan-ceo-plan-mode.test.ts b/test/skill-e2e-plan-ceo-plan-mode.test.ts index 39f5f37ec..b1abaf9a4 100644 --- a/test/skill-e2e-plan-ceo-plan-mode.test.ts +++ b/test/skill-e2e-plan-ceo-plan-mode.test.ts @@ -99,8 +99,7 @@ describeE2E('plan-ceo-review plan-mode smoke (gate)', () => { `plan-ceo-review smoke FAILED: outcome=${obs.outcome}\n` + `${diagnosis}\n` + `Expected 'asked'. See plan-ceo-review/SKILL.md.tmpl: the Step 0 STOP rules ` + - `and the "One issue = one AskUserQuestion call" rule under "CRITICAL RULE — ` + - `How to ask questions".\n` + + `and the "One issue = one AskUserQuestion call" rule under "How to ask questions".\n` + `summary: ${obs.summary}\n` + `elapsed: ${obs.elapsedMs}ms\n` + `--- evidence (last 2KB visible) ---\n${obs.evidence}`,