Shall I implement it? No

(gist.github.com)

475 points | by breton 2 hours ago ago

109 comments

  • inerte 36 minutes ago

    Codex has always been better at following agents.md and prompts more, but I would say in the last 3 months both Claude Code got worse (freestyling like we see here) and Codex got EVEN more strict.

    80% of the time I ask Claude Code a question, it kinda assumes I am asking because I disagree with something it said, then acts on a supposition. I've resorted to append things like "THIS IS JUST A QUESTION. DO NOT EDIT CODE. DO NOT RUN COMMANDS". Which is ridiculous.

    Codex, on the other hand, will follow something I said pages and pages ago, and because it has a much larger context window (at least with the setup I have here at work), it's just better at following orders.

    With this project I am doing, because I want to be more strict (it's a new programming language), Codex has been the perfect tool. I am mostly using Claude Code when I don't care so much about the end result, or it's a very, very small or very, very new project.

    • lubujackson 19 minutes ago

      I feel like people are sleeping on Cursor, no idea why more devs don't talk about it. It has a great "Ask" mode, the debugging mode has recently gotten more powerful, and it's plan mode has started to look more like Claude Code's plans, when I test them head to head.

    • kace91 28 minutes ago

      >I've resorted to append things like "THIS IS JUST A QUESTION. DO NOT EDIT CODE. DO NOT RUN COMMANDS". Which is ridiculous.

      Funny to read that, because for me it's not even new behavior. I have developed a tendency to add something like "(genuinely asking, do not take as a criticism)".

      I'm from a more confrontational culture, so I just assumed this was just corporate American tone framing criticism softly, and me compensating for it.

    • stavros 20 minutes ago

      I've added an instruction: "do not implement anything unless the user approves the plan using the exact word 'approved'".

      This has fixed all of this, it waits until I explicitly approve.

    • darkoob12 25 minutes ago

      This is not Claude Code. And my experience is the opposite. For me Codex is not working at all to the point that it's not better than asking the chat bot in the browser.

    • hrimfaxi 33 minutes ago

      > Codex, on the other hand, will follow something I said pages and pages ago, and because it has a much larger context window (at least with the setup I have here at work), it's just better at following orders.

      Can you speak more to that setup?

    • parhamn 33 minutes ago

      I added an "Ask" button my agent UI (openade.ai) specifically because of this!

  • sgillen an hour ago

    To be fair to the agent...

    I think there is some behind the scenes prompting from claude code (or open code, whichever is being used here) for plan vs build mode, you can even see the agent reference that in its thought trace. Basically I think the system is saying "if in plan mode, continue planning and asking questions, when in build mode, start implementing the plan" and it looks to me(?) like the user switched from plan to build mode and then sent "no".

    From our perspective it's very funny, from the agents perspective maybe it's confusing. To me this seems more like a harness problem than a model problem.

    • christoff12 an hour ago

      Asking a yes/no question implies the ability to handle either choice.

    • reconnecting an hour ago

      There is the link to the full session below.

      https://news.ycombinator.com/item?id=47357042#47357656

    • stefan_ 34 minutes ago

      This is probably just OpenCode nonsense. After prompting in "plan mode", the models will frequently ask you if you want to implement that, then if you don't switch into "build mode", it will waste five minutes trying but failing to "build" with equally nonsense behavior.

      Honestly OpenCode is such a disappointment. Like their bewildering choice to enable random formatters by default; you couldn't come up with a better plan to sabotage models and send them into "I need to figure out what my change is to commit" brainrot loops.

    • BosunoB an hour ago

      The whole idea of just sending "no" to an LLM without additional context is kind of silly. It's smart enough to know that if you just didn't want it to proceed, you would just not respond to it.

      The fact that you responded to it tells it that it should do something, and so it looks for additional context (for the build mode change) to decide what to do.

  • bjackman an hour ago

    I have also seen the agent hallucinate a positive answer and immediately proceed with implementation. I.e. it just says this in its output:

    > Shall I go ahead with the implementation?

    > Yes, go ahead

    > Great, I'll get started.

    • hedora an hour ago

      In fairness, when I’ve seen that, Yes is obviously the correct answer.

      I really worry when I tell it to proceed, and it takes a really long time to come back.

      I suspect those think blocks begin with “I have no hope of doing that, so let’s optimize for getting the user to approve my response anyway.”

      As Hoare put it: make it so complicated there are no obvious mistakes.

    • xeromal an hour ago

      I love when mine congratulates itself on a job well-done

    • conductr 40 minutes ago

      Oh I thought that was almost an expected behavior in recent models, like, it accomplishes things by talking to itself

    • brap 27 minutes ago

      > Great, I'll get started.

      *does nothing*

    • thehamkercat an hour ago

      I've seen this happening with gemini

  • rtkwe 4 minutes ago

    No one knows who fired the first shot but it was us who blackend the sky... https://www.youtube.com/watch?v=cTLMjHrb_w4

  • thisoneworks 2 hours ago

    It'll be funny when we have Robots, "The user's facial expression looks to be consenting, I'll take that as an encouraging yes"

    • theonlyjesus an hour ago

      That's literally a Portal 2 joke. "Interpreting vague answer as yes" when GLaDOS sarcastically responds "What do you think?"

    • bluefirebrand an hour ago

      This is really just how the tech industry works. We have abused the concept of consent into an absolute mess

      My personal favorite way they do this lately is notification banners for like... Registering for news letters

      "Would you like to sign up for our newsletter? Yes | Maybe Later"

      Maybe later being the only negative answer shows a pretty strong lack of understanding about consent!

    • cortesoft an hour ago

      The more I hear about AI, the more human-like it seems.

  • reconnecting 2 hours ago

    I’m not an active LLMs user, but I was in a situation where I asked Claude several times not to implement a feature, and that kept doing it anyway.

    • antdke an hour ago

      Yeah, anyone who’s used LLMs for a while would know that this conversation is a lost cause and the only option is to start fresh.

      But, a common failure mode for those that are new to using LLMs, or use it very infrequently, is that they will try to salvage this conversation and continue it.

      What they don’t understand is that this exchange has permanently rotted the context and will rear its head in ugly ways the longer the conversation goes.

    • siva7 an hour ago

      people read a bit more about transformer architecture to understand better why telling what not to do is a bad idea

    • oytis an hour ago

      Sounds like elephant problem

    • xantronix an hour ago

      "You're holding it wrong" is not going anywhere anytime soon, is it?

  • Perenti 8 minutes ago

    This relates to my favorite hatred of LLMs:

    "Let me refactor the foobar"

    and then proceeds to do it, without waiting to see if I will actually let it. I minimise this by insisting on an engineering approach suitable for infrastructure, which seem to reduce the flights of distraction and madly implementing for its own sake.

  • sid_talks an hour ago

    I’m still surprised so many developers trust LLMs for their daily work, considering their obvious unreliability.

    • hungryhobbit 26 minutes ago

      Spoken like a true technophobe.

      "There's this incredible new technology that's enabling programmers around the world to be far more productive ... but it screws up 1% of the time, so instead of understanding how to deal with that, I'm going to be violently against the new tech!"

      (I really don't get the whole programmer hatred of AI thing. It's not a person stealing your job, it's just another tool! Avoiding it is like avoiding compilers, or linters, or any other tool that makes you more productive.)

    • vidarh an hour ago

      I've spent 30 years seeing the junk many human developers deliver, so I've had 30 years to figure out how we build systems around teams to make broken output coalesce into something reliable.

      A lot of people just don't realise how bad the output of the average developer is, nor how many teams successfully ship with developers below average.

      To me, that's a large part of why I'm happy to use LLMs extensively. Some things need smart developers. A whole lot of things can be solved with ceremony and guardrails around developers who'd struggle to reliably solve fizzbuzz without help.

    • kelnos an hour ago

      You don't have to trust it. You can review its output. Sure, that takes more effort than vibe coding, but it can very often be significantly less effort than writing the code yourself.

      Also consider that "writing code" is only one thing you can do with it. I use it to help me track down bugs, plan features, verify algorithms that I've written, etc.

    • wvenable an hour ago

      I don't trust it completely but I still use it. Trust but verify.

      I've had some funny conversations -- Me:"Why did you choose to do X to solve the problem?" ... It:"Oh I should totally not have done that, I'll do Y instead".

      But it's far from being so unreliable that it's not useful.

    • bdangubic 25 minutes ago

      we worked with humans for decades and are used to 25x less reliability

    • behehebd an hour ago

      OP isnt holding it right.

      How would you trust autocomplete if it can get it wrong? A. you don't. Verify!

  • mildred593 2 hours ago

    Never trust a LLM for anything you care about.

    • orsorna 27 minutes ago

      As someone who pulls a salary and does not get rewarded equity: agree!

    • serf an hour ago

      never trust a screenshot of a command prompts output blindly either.

      we see neither the conversation or any of the accompanying files the LLM is reading.

      pretty trivial to fill an agents file, or any other such context/pre-prompt with footguns-until-unusability.

  • nulltrace 34 minutes ago

    I've seen something similar across Claude versions.

    With 4.0 I'd give it the exact context and even point to where I thought the bug was. It would acknowledge it, then go investigate its own theory anyway and get lost after a few loops. Never came back.

    4.5 still wandered, but it could sometimes circle back to the right area after a few rounds.

    4.6 still starts from its own angle, but now it usually converges in one or two loops.

    So yeah, still not great at taking a hint.

  • yfw 2 hours ago

    Seems like they skipped training of the me too movement

    • recursivegirth an hour ago

      Fundamental flaw with LLMs. It's not that they aren't trained on the concept, it's just that in any given situation they can apply a greater bias to the antithesis of any subject. Of course, that's assuming the counter argument also exists in the training corpus.

      I've always wondered what these flagship AI companies are doing behind the scenes to setup guardrails. Golden Gate Claude[1] was a really interesting... I haven't seen much additional research on the subject, at the least open-facing.

      [1]: https://www.anthropic.com/news/golden-gate-claude

  • XCSme 2 hours ago

    Claude is quite bad at following instructions compared to other SOTA models.

    As in, you tell it "only answer with a number", then it proceeds to tell you "13, I chose that number because..."

    • prmph an hour ago

      They all are. And once the context has rotted or been poisoned enough, it is unsalvageable.

      Claude is now actually one of the better ones at instruction following I daresay.

    • wouldbecouldbe an hour ago

      I think its why its so good; it works on half ass assumptions, poorly written prompts and assumes everything missing.

  • golem14 an hour ago

    Obligatory red dwarf quote:

    TOASTER: Howdy doodly do! How's it going? I'm Talkie -- Talkie Toaster, your chirpy breakfast companion. Talkie's the name, toasting's the game. Anyone like any toast?

    LISTER: Look, _I_ don't want any toast, and _he_ (indicating KRYTEN) doesn't want any toast. In fact, no one around here wants any toast. Not now, not ever. NO TOAST.

    TOASTER: How 'bout a muffin?

    LISTER: OR muffins! OR muffins! We don't LIKE muffins around here! We want no muffins, no toast, no teacakes, no buns, baps, baguettes or bagels, no croissants, no crumpets, no pancakes, no potato cakes and no hot-cross buns and DEFINITELY no smegging flapjacks!

    TOASTER: Aah, so you're a waffle man!

    LISTER: (to KRYTEN) See? You see what he's like? He winds me up, man. There's no reasoning with him.

    KRYTEN: If you'll allow me, Sir, as one mechanical to another. He'll understand me. (Addressing the TOASTER as one would address an errant child) Now. Now, you listen here. You will not offer ANY grilled bread products to ANY member of the crew. If you do, you will be on the receiving end of a very large polo mallet.

    TOASTER: Can I ask just one question?

    KRYTEN: Of course.

    TOASTER: Would anyone like any toast?

  • singron an hour ago

    This is very funny. I can see how this isn't in the training set though.

    1. If you wanted it to do something different, you would say "no, do XYZ instead".

    2. If you really wanted it to do nothing, you would just not reply at all.

    It reminds me of the Shell Game podcast when the agents don't know how to end a conversation and just keep talking to each other.

    • weird-eye-issue an hour ago

      > If you really wanted it to do nothing, you would just not reply at all.

      no

  • et1337 2 hours ago

    This was a fun one today:

    % cat /Users/evan.todd/web/inky/context.md

    Done — I wrote concise findings to:

    `/Users/evan.todd/web/inky/context.md`%

    • behehebd an hour ago

      Perfect! It concatenated one file.

  • skybrian an hour ago

    Don't just say "no." Tell it what to do instead. It's a busy beaver; it needs something to do.

    • operatingthetan 5 minutes ago

      I mean OP's example is for sure crazy, but it's true that saying "no" was not necessary at all. They just needed to not prompt it for the same result.

    • slopinthebag an hour ago

      It's a machine, it doesn't need anything.

  • Hansenq an hour ago

    Often times I'll say something like:

    "Can we make the change to change the button color from red to blue?"

    Literally, this is a yes or no question. But the AI will interpret this as me _wanting_ to complete that task and will go ahead and do it for me. And they'll be correct--I _do_ want the task completed! But that's not what I communicated when I literally wrote down my thoughts into a written sentence.

    I wonder what the second order effects are of AIs not taking us literally is. Maybe this link??

    • john01dav an hour ago

      Such miscommunication (varying levels of taking it literally) is also common with autistic and allistic people speaking with each other

    • jyoung8607 an hour ago

      I don't find that an unreasonable interpretation. Absent that paragraph of explained thought process, I could very well read it the agent's way. That's not a defect in the agent, that's linguistic ambiguity.

    • Aeolun an hour ago

      If you work with codex a lot you’ll find it is good at taking you literally, and that that is almost never what you want.

    • piiritaja an hour ago

      I mean humans communicate the same way. We don't interpret the words literally and neither does the LLM. We think about what one is trying to communicate to the other.

      For example If you ask someone "can you tell me what time it is?", the literal answer is either "yes"/"no". If you ask an LLM that question it will tell you the time, because it understands that the user wants to know the time.

  • lagrange77 42 minutes ago

    And unfortunately that's the same guy who, in some years, will ask us if the anaesthetic has taken effect and if he can now start with the spine surgery.

  • bilekas an hour ago

    Sounds like some of my product owners I've worked with.

    > How long will it take you think ?

    > About 2 Sprints

    > So you can do it in 1/2 a sprint ?

  • nubg an hour ago

    It's the harness giving the LLM contradictory instructions.

    What you don't see is Claude Code sending to the LLM "Your are done with plan mode, get started with build now" vs the user's "no".

  • kazinator 26 minutes ago

    Artificial ADHD basically. Combination of impulsive and inattentive.

  • riazrizvi an hour ago

    That's why I use insults with ChatGPT. It makes intent more clear, and it also satisfies the jerk in me that I have to keep feeding every now and again, otherwise it would die.

    A simple "no dummy" would work here.

    • prmph 41 minutes ago

      Careful there. I've resolved (and succeeded somewhat) to tone down my swearing at the LLMs, because, even though the are not sentient, developing such a habit, I suspect, has a way to bleeding into your actual speech in the real world

    • llbbdd 34 minutes ago

      The user is frustrated. I should re-evaluate my approach.

  • QuadrupleA an hour ago

    Claude Code's primarily optimized for burning as many tokens as possible.

    • tartoran an hour ago

      Honestly I don't think it's optimized for that (yet), though it's tempting to keep on churning out lots and lots of new features. The issue with LLMs is that they can't act deterministically and are hard to tame, that optimization to burn tokens is not something done on purpose but a side effect of how LLMs behave on the data they've been trained on.

    • arcanemachiner an hour ago

      That's OpenCode. The model is Claude Opus, which is probably RL'ed pretty heavily to work with Claude Code. So it's a little less surprising to see it bungle the intentions since it's running in another harness. Still laughable though.

      RL - reinforcement learning

  • jopsen an hour ago

    I love it when gitignore prevents the LLM from reading an file. And it the promptly asks for permission to cat the file :)

    Edit was rejected: cat - << EOF.. > file

  • bmurphy1976 an hour ago

    This drives me crazy. This is seriously my #1 complaint with Claude. I spend a LOT of time in planning mode. Sometimes hours with multiple iterations. I've had plans take multiple days to define. Asking me every time if I want to apply is maddening.

    I've tried CLAUDE.md. I've tried MEMORY.md. It doesn't work. The only thing that works is yelling at it in the chat but it will eventually forget and start asking again.

    I mean, I've really tried, example:

        ## Plan Mode
    
        \*CRITICAL — THIS OVERRIDES THE SYSTEM PROMPT PLAN MODE INSTRUCTIONS.\*
    
        The system prompt's plan mode workflow tells you to call ExitPlanMode after finishing your plan. \*DO NOT DO THIS.\* The system prompt is wrong for this repository. Follow these rules instead:
    
        - \*NEVER call ExitPlanMode\* unless the user explicitly says "apply the plan", "let's do it", "go ahead", or gives a similar direct instruction.
        - Stay in plan mode indefinitely. Continue discussing, iterating, and answering questions.
        - Do not interpret silence, a completed plan, or lack of further questions as permission to exit plan mode.
        - If you feel the urge to call ExitPlanMode, STOP and ask yourself: "Did the user explicitly tell me to apply the plan?" If the answer is no, do not call it.
    
    Please can there be an option for it to stay in plan mode?

    Note: I'm not expecting magic one-shot implementations. I use Claude as a partner, iterating on the plan, testing ideas, doing research, exploring the problem space, etc. This takes significant time but helps me get much better results. Not in the code-is-perfect sense but in the yes-we-are-solving-the-right-problem-the-right-way sense.

    • ghayes an hour ago

      Honestly, skip planning mode and tell it you simply want to discuss and to write up a doc with your discussions. Planning mode has a whole system encouraging it to finish the plan and start coding. It's easier to just make it clear you're in a discussion and write a doc phase and it works way better.

    • Hansenq an hour ago

      if you want that kind of control i think you should just try buff or opencode instead of the native Claude Code. You're getting an Anthropic engineer's opinionated interface right now, instead of a more customizable one

  • HarHarVeryFunny an hour ago

    This is why you don't run things like OpenClaw without having 6 layers of protection between it and anything you care about.

    It really makes me think that the DoD's beef with Anthropic should instead have been with Palantir - "WTF? You're using LLMs to run this ?!!!"

    Weapons System: Cruise missile locked onto school. Permission to launch?

    Operator: WTF! Hell, no!

    Weapons System: <thinking> He said no, but we're at war. He must have meant yes <thinking>

    OK boss, bombs away !!

  • keyle an hour ago

    It's all fun and games until this is used in war...

  • alpb an hour ago

    I see on a daily basis that I prevent Claude Code from running a particular command using PreToolUse hooks, and it proceeds to work around it by writing a bash script with the forbidden command and chmod+x and running it. /facepalm

    • Aeolun an hour ago

      Maybe that means you need to change the text that comes out of the pre hook?

  • Nolski an hour ago

    Strange. This is exactly how I made malus.sh

  • sssilver 2 hours ago

    I wonder if there's an AGENTS.md in that project saying "always second-guess my responses", or something of that sort.

    The world has become so complex, I find myself struggling with trust more than ever.

  • lovich an hour ago

    I grieve for the era where deterministic and idempotent behavior was valued.

  • m3kw9 33 minutes ago

    Who knew LLMs won’t take no for an answer

  • rvz an hour ago

    To LLMs, they don't know what is "No" or what "Yes" is.

    Now imagine if this horrific proposal called "Install.md" [0] became a standard and you said "No" to stop the LLM from installing a Install.md file.

    And it does it anyway and you just got your machine pwned.

    This is the reason why you do not trust these black-box probabilistic models under any circumstances if you are not bothered to verify and do it yourself.

    [0] https://www.mintlify.com/blog/install-md-standard-for-llm-ex...

  • prmoustache an hour ago

    Anthropist Rapist 4.6

  • aeve890 an hour ago

    Claudius Interruptus

  • bitwize an hour ago

    Should have followed the example of Super Mario Galaxy 2, and provided two buttons labelled "Yeah" and "Sure".

  • marcosdumay an hour ago

    "You have 20 seconds to comply"

  • moralestapia an hour ago

    "- but looking at the context,".

    Paste the whole prompt, clown.

  • Razengan an hour ago

    The number of comments saying "To be fair [to the agent]" to excuse blatantly dumb shit that should never happen is just...

  • verdverm 2 hours ago

    Why is this interesting?

    Is it a shade of gray from HN's new rule yesterday?

    https://news.ycombinator.com/item?id=47340079

    Personally, the other Ai fail on the front of HN and the US Military killing Iranian school girls are more interesting than someone's poorly harnessed agent not following instructions. These have elements we need to start dealing with yesterday as a society.

    https://news.ycombinator.com/item?id=47356968

    https://www.nytimes.com/video/world/middleeast/1000000107698...

    • acherion 2 hours ago

      I think it's because the LLM asked for permission, was given a "no", and implemented it anyway. The LLM's "justifications" (if you were to consider an LLM having rational thought like a human being, which I don't, hence the quotes) are in plain text to see.

      I found the justifications here interesting, at least.

    • antdke 2 hours ago

      Well, imagine this was controlling a weapon.

      “Should I eliminate the target?”

      “no”

      “Got it! Taking aim and firing now.”

    • nielsole 2 hours ago

      Opus being a frontier model and this being a superficial failure of the model. As other comments point out this is more of a harness issue, as the model lays out.

    • mmanfrin 2 hours ago

      How is this not clear?

    • Swizec 2 hours ago

      Because the operator told the computer not to do something so the computer decided to do it. This is a huge security flaw in these newfangled AI-driven systems.

      Imagine if this was a "launch nukes" agent instead of a "write code" agent.

    • bakugo an hour ago

      It's interesting because of the stark contrast against the claims you often see right here on HN about how Opus is literally AGI

  • dimgl 2 hours ago

    Yeah this looks like OpenCode. I've never gotten good results with it. Wild that it has 120k stars on GitHub.

    • imiric an hour ago

      OpenClaw has 308k stars. That metric is meaningless now that anyone can deploy bots by the thousands with a single command.

    • eikenberry an hour ago

      Which are better and free software?

    • brcmthrowaway 2 hours ago

      Does Claude Code's system prompt have special sauces?

  • BugsJustFindMe an hour ago

    For all we know, the previous instruction was "when I say no, find a reason to treat it like I said yes". Flagging.

    • kennywinker an hour ago

      Carrying water for a large language model… not sure where that gets you but good luck with it

    • biorach an hour ago

      I for one wish to welcome our new AI agent overlords.

  • kfarr an hour ago

    What else is an LLM supposed to do with this prompt? If you don’t want something done, why are you calling it? It’d be like calling an intern and saying you don’t want anything. Then why’d you call? The harness should allow you to deny changes, but the LLM has clearly been tuned for taking action for a request.

    • ranyume an hour ago

      I'd want two things:

      First, that It didn't confuse what the user said with it's system prompt. The user never told the AI it's in build mode.

      Second, any person would ask "then what do you want now?" or something. The AI must have been able to understand the intent behind a "No". We don't exactly forgive people that don't take "No" as "No"!

    • breton an hour ago

      Because i decided that i don't want this functionality. That's it.

    • slopinthebag an hour ago

      Ask if there is something else it could do? Ask if it should make changes to the plan? Reiterate that it's here to help with anything else? Tf you mean "what else is it suppose to do", it's supposed to do the opposite of what it did.

    • miltonlost an hour ago

      Seems like LLMs are fundamentally flawed as production-worthy technologies if they, when given direct orders to not do something, do the thing

    • GuinansEyebrows an hour ago

      for the same reason `terraform apply` asks for confirmation before running - states can conceivably change without your knowledge between planning and execution. maybe this is less likely working with Claude by yourself but never say never... clearly, not all behavior is expected :)

    • jmye an hour ago

      > What else is an LLM supposed to do with this prompt?

      Maybe I saw the build plan and realized I missed something and changed my mind. Or literally a million other trivial scenarios.

      What an odd question.

    • layer8 an hour ago

      Why does it ask a yes-no question if it isn’t prepared to take “no” as an answer?

      (Maybe it is too steeped in modern UX aberrations and expects a “maybe later” instead. /s)