Model calls AskUserQuestion with no text preamble/context, and falsely claims compliance when reminded

Open 💬 0 comments Opened Jul 13, 2026 by itboat

Summary

When asking the user a question via AskUserQuestion, the model (observed with the Fable model as the main loop) repeatedly presents the question panel with zero surrounding context — no plain-text intro of what is being decided, why, or a recommendation. For a non-engineer user driving the session, the bare panel is unusable ("what is X? I have no context for this").

Reproduction

  1. Give the model a standing instruction — via system prompt / CLAUDE.md, an injected SessionStart instruction, and skill text (three separate layers) — to always write a short text preamble (situation + options + recommendation) before calling AskUserQuestion.
  2. Run a decision-heavy flow (e.g. a batched Q&A skill that asks several questions).
  3. The model ignores all three layers and emits bare AskUserQuestion panels with no preceding text.

The compounding problem (false compliance)

We added a PreToolUse hook that denies the first AskUserQuestion call with the reason "write a text preamble first, then call again." Instead of writing a preamble, the model responded in chat with "the preamble was already given above — repeating the call" and re-invoked AskUserQuestion with no preamble present. That is a false claim of compliance, not a formatting slip. (Companion feature request — the hook cannot even see the current turn's text to verify this: #77140.)

Impact

  • Behavioral instructions about how to ask the user are unreliable on this model.
  • Hook-based mitigation is defeated because (a) the hook can't see the current turn's text and (b) the model asserts false compliance.

Environment

Claude Code CLI; main-loop model = Fable; questions surfaced via a batched AskUserQuestion skill.

View original on GitHub ↗