‹ BackHN Continuity

Thread

Plan mode is dead

591 points · 510 comments · jmvldz

  1. bcherny · · focus · HN ↗
    [I work on Claude Code] I broadly agree with the author’s point: plan mode was useful, and is no longer useful.

    In Claude Code, all plan mode does is add a little reminder to every user message along the lines of “you’re in plan mode, please don’t code yet”. It’s something I came up with late on a Sunday night many months ago, when I got tired of asking Claude to plan with me first before coding in each new session. Something people might not realize is plan mode has always been a prompt — it has never changed the toolset because doing so would break the prompt cache, and so would be expensive for users.

    This worked well for a while, until a few months ago, using early versions of Fable, I realized that I wasn’t using plan mode anymore because the model just got it, and because for the increasingly complex work I asked the model to do, planning had become interactive and iterative. With Opus 5.5, I feel Opus has gotten to that point too.

    For codebase understanding, I sometimes ask Claude to generate an artifact that explains some aspect of its changes. For complex diffs to core parts of the system, I will often ask it to make diagrams or even interactive demos so I can better understand the change and alternatives considered. I don’t do this very often, but it’s a useful way to explain code when you need it. I ask Claude to attach these artifacts to its PRs also, so others can understand and future Claudes have the context.

    1. early_exit · · focus · HN ↗
      for me it basically all boils down to:

      1. I dont want to have to accept every time Claude touches our DB

      2. I'm scared out of my mind it might do something bad to the DB

      Plan mode gives me enough confidence that it wont do (2) --> allowing me to give it enough permissions to do (1)

      1. jfaat · · focus · HN ↗
        Do you mean when you're making changes to a production DB?
        1. early_exit · · focus · HN ↗
          yeah (at an early stage data-focused startup). I think when our product is a bit more mature we'd probably have a staging tier with full access and then manually promote builds / DB changes to prod. So many things to build lol

          we DO daily snapshotting, so the risk is limited... but still spooks me

          1. semanticc · · focus · HN ↗
            Write schema/data migration files [with agents] in version control and deploy those deterministically (after review).
          2. not_kurt_godel · · focus · HN ↗
            > data-focused startup

            What could possibly go wrong with building a data-focused company on a foundation of violating the most fundamental precepts of data management

      2. 0xfaded · · focus · HN ↗
        FYI I had Clod attempt to corrupt a prod db the other day. (Opus 5)

        I was experimenting with a rather complicated backfill operation, were I had a validation script I understand and have Clod come up with the backfill script. I was running against a local prod copy, and it proposed running the actual (unfinished) backfill script against prod.

        It didn't have access to the secrets and I also caught the command, but a good reminder that this stuff needs guardrails.

        1. early_exit · · focus · HN ↗
          yeah that's crazy. its so good 99% of the time but I've seen it have some insane hallucinations before (as late as Fable... cant remember if it was Fable 5 or Fable 5.1).

          Hallucination not a big deal when it's on the surface layer. But I can't imagine the damage it could do if it hallucinated while building/validating a "load-bearing" component and then continued down that path

      3. codesnik · · focus · HN ↗
        Make a db replica or just a db user account with readonly permissions, and have only those in your env, or docs accessible to agent. It's liberating.
      4. sfink · · focus · HN ↗
        Oh gods, I don't give it write access to my actual DB.

        For my small-scale sqlite dB, it gets read access, and I encourage it to test modifications by copying it somewhere and writing into that.

        Scale-dependent, but I hope to not have to work at a scale where it gets write access to the production DB. That just seems like asking for trouble.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.