From 88491eb49250846267f9cb07e0d621d14c1e5c59 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Fri, 1 May 2026 14:17:47 -0700 Subject: [PATCH] fix(office-hours): tighten Phase 4 alternatives gate to match plan-ceo-review STOP pattern MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 4 (Alternatives Generation) was ending with soft prose "Present via AskUserQuestion. Do NOT proceed without user approval of the approach." Agents in builder mode were reading "Recommendation: C" they had just written and proceeding to edit the design doc — never calling AskUserQuestion. The contradicting "do not proceed" line lacked a hard STOP token, named blocked next-steps, or an anti-rationalization line, so the model rationalized past it. Port the plan-ceo-review 0C-bis pattern: hard "STOP." token, names the steps that are blocked (Phase 4.5 / 5 / 6 / design-doc generation), explicitly rejects the "clearly winning approach so I can apply it" reasoning. Preserve the preamble's no-AUQ-variant fallback by naming "## Decisions to confirm" + ExitPlanMode as the explicit alternative path. Co-Authored-By: Claude Opus 4.7 (1M context) --- office-hours/SKILL.md | 6 ++++-- office-hours/SKILL.md.tmpl | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 70d021df..314daf84 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -1248,9 +1248,11 @@ Rules: - One can be **creative/lateral** (unexpected approach, different framing of the problem). - If the second opinion (Codex or Claude subagent) proposed a prototype in Phase 3.5, consider using it as a starting point for the creative/lateral approach. -**RECOMMENDATION:** Choose [X] because [one-line reason]. +**RECOMMENDATION:** Choose [X] because [one-line reason mapped to the founder's stated goal]. -Present via AskUserQuestion. Do NOT proceed without user approval of the approach. +Emit ONE AskUserQuestion that lists every alternative (A/B and optionally C) as numbered options, using the preamble's AskUserQuestion Format section. The AskUserQuestion call is a tool_use, not prose — write the question text and call the tool. If no AUQ variant is callable in this session (per the preamble's "Tool resolution" rules), fall back to writing `## Decisions to confirm` into the plan file and ExitPlanMode. Never silently auto-decide. + +**STOP.** Do NOT proceed to Phase 4.5 (Founder Signal Synthesis), Phase 5 (Design Doc), Phase 6 (Closing), or any design-doc generation until the user responds. A "clearly winning approach" is still an approach decision and still needs explicit user approval before it lands in the design doc. Writing the recommendation in chat prose and continuing forward is the failure mode this gate exists to prevent. --- diff --git a/office-hours/SKILL.md.tmpl b/office-hours/SKILL.md.tmpl index 136abbd0..e983e967 100644 --- a/office-hours/SKILL.md.tmpl +++ b/office-hours/SKILL.md.tmpl @@ -411,9 +411,11 @@ Rules: - One can be **creative/lateral** (unexpected approach, different framing of the problem). - If the second opinion (Codex or Claude subagent) proposed a prototype in Phase 3.5, consider using it as a starting point for the creative/lateral approach. -**RECOMMENDATION:** Choose [X] because [one-line reason]. +**RECOMMENDATION:** Choose [X] because [one-line reason mapped to the founder's stated goal]. -Present via AskUserQuestion. Do NOT proceed without user approval of the approach. +Emit ONE AskUserQuestion that lists every alternative (A/B and optionally C) as numbered options, using the preamble's AskUserQuestion Format section. The AskUserQuestion call is a tool_use, not prose — write the question text and call the tool. If no AUQ variant is callable in this session (per the preamble's "Tool resolution" rules), fall back to writing `## Decisions to confirm` into the plan file and ExitPlanMode. Never silently auto-decide. + +**STOP.** Do NOT proceed to Phase 4.5 (Founder Signal Synthesis), Phase 5 (Design Doc), Phase 6 (Closing), or any design-doc generation until the user responds. A "clearly winning approach" is still an approach decision and still needs explicit user approval before it lands in the design doc. Writing the recommendation in chat prose and continuing forward is the failure mode this gate exists to prevent. ---