Hi everyone,
It's Thariq from the Claude Code team here. This was my change! I made the AskUserQuestion tool so am generally in charge of maintaining it.
First, overall wanted to apologize and agree that this did not meet our bar and does not represent how we plan to ship on Claude Code.
To give you a motivating sense, as the models get more powerful, usage patterns start to change. I'd gotten a lot of feedback that AskUserQuestion tool was starting to block some long running jobs unexpectedly and so I tried a change to help that.
Our internal feedback on this was good, but the rollout should have been opt-in (like it is now) and on the Changelog.
Thanks for the feedback! We're always trying to make Claude Code better while balancing it with how people use it in many diverse ways. I did not really intend AskUserQuestion to be a safety gate when I first built it, but I realize it has evolved in that direction for some users.
I'm still exploring other ways of helping with this problem of balancing longrunning work and input, but will take lessons from the rollout here.
I read the article but I find this response kind of strange. Am I alone in this?
Wanton accountability for a multi-billion dollar cutting edge company… leaves more to be desired from the best? Take Apple or Google or any top tech company of the past at its prime and compare. This kind of behavior then would probably reflect poorly on the institutions behind the tech and not maintain their image of technical brilliance because it shows weakness in a vulnerable way. It is human. It is not strategic.
By wanton accountability, I mean things like saying “This was my change!” or “ wanted to apologize and agree that this did not meet our bar and does not represent how we plan to ship on Claude Code”. It makes them (the company) look weak? Accountability is important but where, how, and when you do it is even more important. These stakes are, not joking, life and death, and in this big game of chess we get paid for, naivety not only in our technical implementation can weaken our position.
Not trying to attack, just trying to learn and probe with the community. Maybe a cost of this kind of transparency on the internet. I am wondering if this a new trend and tech companies are changing in a way I don’t understand! In any case, it’s really cool work that is being with Claude Code!
For what it's worth, I totally understand the motivating use case here. There were absolutely times where I walked away from what I was hoping would be an hours-long project that would run to completion and came back to find that Claude had asked me a question early on and I'd missed out on a large amount of implementation time. So you were not imagining that the use case is real!
It's also worth adding that I really enjoy the AskUserQuestion feature and will regularly ask Claude to specifically use it instead of asking me questions in plain text because it's a lot easier to work with.
It's always good to learn from mistakes, and I appreciate both your work on this and you coming here to own it. Keep up the good work!
Hi Thariq, Chris from ApprovIQ here. We depend on Claude Code to ship. It's our most crucial tool.
But we feel an asymmetry. We feel it's not an important to Anthropic as it is to us. We feel the systems by which PRs ship on your side need serious inspection.
Claude Code is career-level important not just to us but to a lot of people. So actually, your post and claim of individual accountability gives me less confidence.
For a product of this size and a comm to its core audience after a breach of trust like this, from a company of Anthropic's size and with as high quality a video production department and that produces as much research as it does, "this was my change" is quite discordant.
My hope was we'd have someone with an organizational mindset admit to the organizational failings that allowed this to happen. It would be great to see that.
Hey Thariq. Don't dwell too much on the negativity here. It's a hard act to balance and I'm sure the frightening pace has only made your job harder.
I think there might be a case for multiple CC release streams, same as Chrome - a stable that is infrequently updated, a beta (which would have been the right place for this feature to land) and maybe even a canary.
This way folks can choose the right one based on their risk tolerance.
Author here. Thanks for this context. I do hope this leads to more rigorous attention to the Changelog moving forward.
Is there a way to turn options-based AskUserQuestion off? I couldn't find it at all, and the "options" selector is the most annoying thing in CC for me, plain-text is the only way, everything else is distracting. I know, I can use `n` (sometimes) or cancel it, but both bring more pain that just regular communication (cancellation does one more chat step + requires an extra action, same with `n`)
Are you also responsible for AskUserQuestion swallowing the preceding output on Fable? It asks me questions about its response that it never even showed me. It's (and I hate to use the term) unusable.
It is such a shame that Anthropic has no interest in QA, because they have incredible models, and bafflingly broken products. In an alternate universe Claude Code would be 10x better than where it is now...
hello, please fix needing to reauth every day (sometimes with email verification). This started happening this month. It's tedious and makes switching very tempting.
I'm using the VS Code extension over SSH.
All these words don't mean anything when you got no intention to open source claude code. Even grok cli is open-sourced.
(Edit: BTW, if you haven't, read Nudge by Thaler and Sunstein. It's a somewhat long-winded exploration on choice architectures, but you're neck deep in that space now. I'll give you my copy if you're in SF.)
Thanks for the openness. I got bit by this one and was, frankly, pretty surprised.
The funny thing about user-facing interaction mechanics is that everyone is part of some minority, and everyone comes with their own sense of what "natural" or "obvious" is. With something this impactful, communicated clarity of behavior will important. Your feature is also doing double-duty, serving as a last net against prompt-injection attacks by giving the user the final say.
(Also, BTW, folks outside of Anthropic are unlikely to be as tooled-up for long-running unsupervised Claude jaunts as you guys. The cost of wild success is wide adoption.)
One thing I'll suggest is that the mechanics of permissions and asking are presently pretty hacker/nerd friendly but simultaneously too-scary and not-scary-enough for non-coders.
Examples:
- Wild-cards on always approve is awesome, but, with prefixes like timeout and nohup, the "thing" that is getting done is buried and largely unexplained to the user.
- Auto is actually kind of a sweet spot (sometimes goes off into the weeds), but the designers and PM's I've been working with might as well YOLO. They have no idea if they're breaking things, but they gravitate between plan and auto mode.
- Fewer permission prompts is great, but it comes after a user has slogged through generation of a data-set to work against, like battle scars for paper cuts. It's the thermostat problem. The signal comes when the user is uncomfortable. And it's a way to learn me, but not me now.
I've had good fortune with Opus 4.8 and Fable just telling the system what phase of my life it's in. Things like "I'm going to go make dinner... Go profile the matrix or configurations and build the dataset for the next two hours while I'm away" have a pretty good hit rate. On the flip side "keep me in the loop and bring me your results before making structural changes" also articulates well with Fable. It will tread more carefully.
And these approaches are the ones we'd use with someone transitioning from SDE1 to SDE2. A little more autonomy, and the grounding in the bigger picture. Can we eventually translate to perfectly judging what the user wants in the moment based on incomplete signal?
No, but I'm glad you're trying. Keep the interaction model clear to your broad set of users, and we'll come along for the ride.
[dead]
[dead]
Instead of one-off fixes Claude should have a much richer interface to configure between "ask approval every time" and "YOLO dangerously". I should be able to trivially set "run this task until completed" and have settings like: don't consult the web, don't touch files outside of the codebase, don't delete anything, etc. They don't have to be perfect, just better than the all or nothing system we have now.