[BUG] AskUserQuestion tool result prevents skills from using it as a phase gate / turn boundary
Description
When a skill uses AskUserQuestion as a phase gate (e.g., "ask the user which mode, then STOP and wait"), the model cannot reliably stop after the user answers. The tool result includes the message "You can now continue with the user's answers in mind", which is a system-level instruction that overrides any skill-level instructions to stop.
This makes it impossible to build interactive, multi-phase skills that pause between phases for user input.
Steps to reproduce
- Create a skill that calls
AskUserQuestionand includes instructions like:
- "Your response MUST end with the AskUserQuestion call"
- "STOP. Do not generate any further output. Wait for the user's response."
- "Every AskUserQuestion call is a hard stop"
- Invoke the skill
- Answer the question when prompted
Expected: The model stops after the user answers. The next user message triggers the next phase.
Actual: The model immediately continues generating output (Phase 2 analysis, tool calls, etc.) because the tool result explicitly says to continue.
Analysis
The root cause is that AskUserQuestion returns its result as a regular tool result within the same turn. The tool result message actively encourages continuation, which overrides even very emphatic skill instructions to stop.
I've tried multiple rewrites of the skill with increasingly strong "STOP" language — none work reliably because a system-level instruction in the tool result is stronger than a skill-level prompt instruction.
Suggested fix
One or more of:
- Add an
endTurnparameter toAskUserQuestionthat skills can set to force a turn boundary after the user answers - Change the tool result message to not actively encourage continuation (e.g., just return the answer without "You can now continue")
- Make AskUserQuestion force a turn boundary by default when called from within a skill, since skills using it almost always intend it as a stopping point
Environment
- Claude Code CLI (latest)
- macOS
- Affects all model backends (observed with Opus)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗