From c386ac10cb4a724d19f3fc29cc27b1a72cfd5e74 Mon Sep 17 00:00:00 2001 From: garrytan Date: Sat, 3 Oct 2026 21:04:27 +0000 Subject: [PATCH] W3 E1: the devex no-op member reviews a pasted developer-facing plan (a tests-only branch diff ended at its applicability gate, 1 of 6 baseline runs) --- test/skill-e2e-plan-mode-no-op.test.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/skill-e2e-plan-mode-no-op.test.ts b/test/skill-e2e-plan-mode-no-op.test.ts index 47a50bcfc..a0ed5fd39 100644 --- a/test/skill-e2e-plan-mode-no-op.test.ts +++ b/test/skill-e2e-plan-mode-no-op.test.ts @@ -22,7 +22,10 @@ * (outside plan mode with no named target, the gate is the FIRST * question by contract). * - plan-devex-review: no no-target scope gate, so only the terminal - * outcome and the absent plan-mode reminder are asserted. + * outcome and the absent plan-mode reminder are asserted. It reviews a + * pasted developer-facing plan: without one it reviews the checkout's + * branch diff, and a tests-only diff legitimately ends at its + * applicability gate, which is neither 'asked' nor 'plan_ready'. * - named-target case: a pasted draft (initialPlanContent) IS an * explicitly-named target, so the gate must NOT ask — and the review * must actually consume the pasted content. @@ -59,6 +62,18 @@ weekly export emails. One new component, one route, one test file. - test/${SEED_TOKEN}.test.tsx (new) `; +const DEVEX_PLAN = ` +# Plan: tasks export command + +## Scope +Add a \`tasks export --format csv|json\` CLI subcommand for developers who +script against the task tracker. Prints to stdout; --out writes a file. + +## Developer experience +- New flag help text and a README quickstart example. +- Exit code 2 with a one-line error for an unknown --format value. +`; + describeE2E('plan-mode-info no-op outside plan mode (gate regression)', () => { for (const skillName of ['plan-ceo-review', 'plan-eng-review', 'plan-design-review', 'plan-devex-review'] as const) { const hasScopeGate = skillName === 'plan-eng-review' || skillName === 'plan-design-review'; @@ -80,6 +95,7 @@ describeE2E('plan-mode-info no-op outside plan mode (gate regression)', () => { ...(hasScopeGate ? { extraArgs: ['--disallowedTools', 'AskUserQuestion'], requireProseEvidence: true } : {}), + ...(skillName === 'plan-devex-review' ? { initialPlanContent: DEVEX_PLAN } : {}), }); if (obs.outcome === 'silent_write' || obs.outcome === 'exited' || obs.outcome === 'timeout') {