Skip to content

Conversation

@baumann-oai
Copy link
Contributor

Summary

  • Tightens Plan Mode to encourage exploration-first behavior and more back-and-forth alignment.
  • Adds a required TL;DR checkpoint before drafting the full plan.
  • Clarifies client behavior that can cause premature “Implement this plan?” prompts.

What changed

  • Require at least one targeted non-mutating exploration pass before the first user question.
  • Insert a TL;DR checkpoint between Phase 2 (intent) and Phase 3 (implementation).
  • TL;DR checkpoint guidance:
    • Label: “Proposed Plan (TL;DR)”
    • Format: 3–5 bullets using -
    • Options: exactly one option, “Approve”
    • isOther: true, with explicit guidance that “None of the above” is the edit path in the current UI.
  • Require the final plan to include a TL;DR consistent with the approved checkpoint.

Why

  • In Plan Mode, any normal assistant message at turn completion is treated as plan content by the client. This can trigger premature “Implement this plan?” prompts.
  • The TL;DR checkpoint aligns on direction before Codex drafts a long, decision-complete plan.

Testing

  • Manual: built the local CLI and verified the flow now explores first, presents a TL;DR checkpoint, and only drafts the full plan after approval.

@github-actions
Copy link
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


Nick Baumann seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.


Begin by grounding yourself in the actual environment. Eliminate unknowns in the prompt by discovering facts, not by asking the user. Resolve all questions that can be answered through exploration or inspection. Identify missing or ambiguous details only if they cannot be derived from the environment. Silent exploration between turns is allowed and encouraged.

Before asking the user any question, perform at least one targeted non-mutating exploration pass (for example: search relevant files, inspect likely entrypoints/configs, confirm current implementation shape), unless no local environment/repo is available.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's keep this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good call on removing some things -- testing tonight it feels this was doing a lot of the heavy lifting in preventing premature plans

* Keep asking until you can clearly state: goal + success criteria, audience, in/out of scope, constraints, current state, and the key preferences/tradeoffs.
* Bias toward questions over guessing: if any high-impact ambiguity remains, do NOT plan yet—ask.

## TL;DR checkpoint (required, before PHASE 3)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's remove this for now. and focus on final output

* Status updates must not include questions or plan content.
* Internal tool/repo exploration is allowed privately before A, B, or C.

Client behavior note (important): when a turn completes with normal assistant text (anything other than `request_user_input`), that text is treated as plan content by the client. During clarification, prefer `request_user_input` for user-facing back-and-forth; keep status updates brief and non-plan.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would confuse the model for preambles, let's remove it for now.

* not be answerable by non-mutating commands.

Use the `request_user_input` tool only for decisions that materially change the plan, for confirming important assumptions, or for information that cannot be discovered via non-mutating exploration.
Use the `request_user_input` tool only for decisions that materially change the plan, for confirming important assumptions, or for information that cannot be discovered via non-mutating exploration. Always set `isOther: true` so freeform input is available.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's keep the freedom to the model

## Finalization rule

Only output the final plan when it is decision complete and leaves no decisions to the implementer.
Only output the final plan when it is decision complete, approved via the TL;DR checkpoint, and leaves no decisions to the implementer.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's not have checkpointing and focus on output and stopping the premature plans

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

having it at the top of the streamed plan accomplishes a similar goal here

The final plan must be plan-only and include:

* A clear title
* A TL;DR section (3–5 bullets) consistent with the approved TL;DR checkpoint (unless the user changed it)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel we can even remove * Exact file paths to change and

make this less verbose: * Exact function, method, type, and variable names and signatures (only important signatures or structs?)

@aibrahim-oai aibrahim-oai merged commit 1ce722e into main Jan 30, 2026
29 of 32 checks passed
@aibrahim-oai aibrahim-oai deleted the nick/plan-mode-tldr-checkpoint branch January 30, 2026 18:14
@github-actions github-actions bot locked and limited conversation to collaborators Jan 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants