Default Mode needs a safe structured-question path for critical execution decisions
Summary
Default Mode should have a safe structured-question path for critical decisions discovered during execution.
This is not a request to turn Default Mode into Plan Mode. It is a request for a narrow, safe interaction primitive that lets the agent ask the user to choose between concrete options when continuing without clarification would likely send the implementation in the wrong direction.
Current behavior
request_user_input is available in Plan Mode, but not generally available in Default Mode.
During implementation, the agent can discover decision points that were not knowable before it started reading or changing the codebase. Examples:
- two incompatible API shapes are both plausible
- a migration could be backward-compatible or a hard cut
- a UI workflow could preserve old behavior or intentionally remove it
- a security-sensitive default cannot be inferred from the repo
- a test strategy depends on a product-level acceptance choice
In Default Mode, the agent can ask a normal text question, but that has weaker UX and weaker semantics than a structured question. The model may also continue with an assumption instead of stopping for the decision.
Expected behavior
Default Mode should support a constrained structured-question path for execution-time clarification.
The safe subset could have restrictions such as:
- no file edits while waiting for the answer
- no permission escalation
- no hidden auto-default unless explicitly configured
- 2-3 concrete options plus an optional free-form answer
- answer is injected back into the active turn/session as a first-class user decision
Example flow:
Agent is implementing.
Agent discovers two incompatible public API designs.
Agent asks a structured question with clear tradeoffs.
User selects one.
Agent continues implementation using that answer.
This would let Default Mode remain execution-capable while still avoiding irreversible guesses.
Why this matters
For large engineering tasks, important decisions often emerge only after the agent has inspected the real code. If the only structured clarification tool is tied to Plan Mode, then Default Mode has a gap exactly when the agent is doing the deepest work.
Without a structured stop-and-confirm path, the agent may either:
- guess and continue down the wrong implementation path
- ask an unstructured text question that is easy to miss or answer ambiguously
- produce a brittle plan/execution boundary where the user has to restart in Plan Mode
Related issues
Related but broader:
- #23041: allow
request_user_inputin Default Mode for interview-style document workflows - #23164: Plan Mode can fail to call the question asking tool despite needing answers
- #18611: improve Plan Mode decision prompts
This issue is narrower than #23041: it focuses on execution-time critical decisions in Default Mode, not interview-style authoring workflows.
2 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Feature flag
default_mode_request_user_inputis listed as "under development".<details><summary>features list</summary>
<p>
</p>
</details>
I've had the feature enabled for the past few days.
The relevant system prompt (more accurately, the developer prompt) is:
The feature flag does not seem to change the prompt, it simply allows the tool to be used in Default mode. My intuition is that "prefer making reasonable assumptions" is the reason for the issues users are having, and why users want
request_user_inputto be used. As that phrasing of the system/developer prompt basically still overrides the tool being available I've been using this in myAGENTS.md:I've found it to work well,
request_user_inputis often used at the start of a task and this does help set the intent where the initial prompt was ambiguous, and it does get used mid-task which avoids the "half complete" or wrong direction issues I'd been having, but not always, there have been instances where I'd have expectedrequest_user_inputto be used.This example is mid-task and a good usage of
request_user_input, the first option probably would have been the agent's "reasonable assumption", and this kind of thing can easily be missed where the agent later asserts "Yes it's done" when actually it's half complete.<img width="1213" height="507" alt="Image" src="https://github.com/user-attachments/assets/9dbaa039-7047-415d-8d13-b89ae3e281eb" />
YMMV but I would recommend enabling the feature flag and seeing how it is in your workload.