From 1993e0ea0cf444135e7583e5378de6fca63e2709 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Fri, 8 May 2026 22:21:08 -0700 Subject: [PATCH] test: drop GSTACK REVIEW REPORT contract from --disallowedTools migrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The plan-ceo / plan-design --disallowedTools migrated tests called assertReportAtBottomIfPlanWritten as the final assertion, but that contract is for full multi-section review completions. Under --disallowedTools AskUserQuestion the model can't run the full review (no AUQ tools to ask findings questions through), so it exits at Step 0 with either prose-AUQ rendering or the legacy decisions fallback. A plan file written in that mode WON'T have a GSTACK REVIEW REPORT section — the workflow never reached the report-writing step. The contract is still enforced by the periodic finding-count tests (skill-e2e-plan-{ceo,eng,design,devex}-finding-count.test.ts), which DO run the full review end-to-end and assert report-at-bottom there. Co-Authored-By: Claude Opus 4.7 (1M context) --- test/skill-e2e-plan-ceo-plan-mode.test.ts | 8 +++++++- test/skill-e2e-plan-design-plan-mode.test.ts | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/test/skill-e2e-plan-ceo-plan-mode.test.ts b/test/skill-e2e-plan-ceo-plan-mode.test.ts index 1392dca6b..b75f5d6f3 100644 --- a/test/skill-e2e-plan-ceo-plan-mode.test.ts +++ b/test/skill-e2e-plan-ceo-plan-mode.test.ts @@ -152,6 +152,12 @@ describeE2E('plan-ceo-review plan-mode smoke (gate)', () => { } } expect(['asked', 'plan_ready', 'exited']).toContain(obs.outcome); - assertReportAtBottomIfPlanWritten(obs); + // NOTE: assertReportAtBottomIfPlanWritten is intentionally NOT called + // here. This test runs --disallowedTools AskUserQuestion and only + // checks "did the question surface" — the model can't run the full + // multi-section review without AUQ tools, so no review report exists + // to enforce the at-bottom contract against. The contract is + // exercised by the periodic finding-count tests, which DO run the + // full review. }, 360_000); }); diff --git a/test/skill-e2e-plan-design-plan-mode.test.ts b/test/skill-e2e-plan-design-plan-mode.test.ts index 9ac3ee9b6..fcf1fd94b 100644 --- a/test/skill-e2e-plan-design-plan-mode.test.ts +++ b/test/skill-e2e-plan-design-plan-mode.test.ts @@ -85,6 +85,9 @@ describeE2E('plan-design-review plan-mode smoke (gate)', () => { ); } expect(['asked', 'plan_ready', 'exited']).toContain(obs.outcome); - assertReportAtBottomIfPlanWritten(obs); + // NOTE: assertReportAtBottomIfPlanWritten intentionally not called — + // see skill-e2e-plan-ceo-plan-mode test 2 for the full rationale. Under + // --disallowedTools the model can't run a full review, so the + // report-at-bottom contract doesn't apply. }, 360_000); });