‹ 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. stingraycharles · · focus · HN ↗
      > 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 me it’s actually the opposite, and Claude Code’s plan mode isn’t nearly sufficient. Personally I ask Claude to write down a markdown file with its plan, then review the plan using plannotator, and then go back and forth (most of the time it’s actually the comments that are the problem, not the code).

      Then start a fresh session, seed it with the plan, tell Claude to find ambiguities / friction points / oversights, resolve those, and then implement it.

      Review once again with plannotator, go back and forth, and then send PR.

      Maybe not the “vibe coding” that was once imagined, but this does ensure I am fully aware of the code and architecture, the quality, and this also prevents long term degradation.

      1. mikepurvis · · focus · HN ↗
        I've recently gotten religion on the workflow that is many (relatively) short-lived agent sessions passing planning/handoff docs between themselves. It's better for my own task tracking, better for handling "oh btw I noticed XXXX", and better as a clear review point. Overall it just feels like it takes a lot of the formerly implicit context that was whatever we happened to have talked about and turns it into a much more explicit "this is what you need to know, now go".

        Currently looking for a framework for managing this in a more formal way, and I think it's probably beads, but interested to hear from others.

        1. boorang · · focus · HN ↗
          I've been on this kick since I realized the primacy of the initial part of the session context. I created a python app that reads a phased plan and kicks off a new session for each phase. There is a standard prompt and handoff mechanism to determine if we encountered any unforeseen issues that we need to address in chat, but otherwise it will just grind with a clean session with appropriate context for each phase.
          1. theritik12ee1 · · focus · HN ↗

            [dead]

          2. Huppie · · focus · HN ↗
            Just kicking off a subagent does this automatically...?

            My main conversation is usually with an orchestrator that hands off work to various (usually cheaper) subagents to plan / review / etc. It has instructions to find the correct model for each task and not to do too much itself so a multi-phase plan automatically gets a fresh subagent for each phase.

            1. boorang · · focus · HN ↗
              i disable subagents. it also helps that i work in microservice size repos, so a single agent can keep the full relevant context. subagents waste alot of unnecessary tokens doing code exploration that the main agent is going to end up duplicating, i think they make more sense for monorepos.

              anecdotally I've tried the same plan on different branches with both approaches (single agent with subagents implement the full plan vs. my little session per phase app) and then had agents judge the code quality and my approach worked better and saves tokens. horses for courses.

        2. rafaelmn · · focus · HN ↗
          Look into beads/dolt then - it does this pretty much with a cli - Jira for agents :)
        3. jolaflow · · focus · HN ↗
          Spent the past 1,5 years building a tool that might be relevant, helping keep durable task state between agent sessions. It is an issue tracker persisting state as immutable event logs, allows you to inspect workflows after the fact, lets you inspect diffs inline in the tickets and it is much more lightweight than Jira/Linear. There is no central service to integrate with, as it is Git-backed and lives with your code in your repo.

          <a href="https:&#x2F;&#x2F;ljtn.github.io&#x2F;epiq&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ljtn.github.io&#x2F;epiq&#x2F;

          Might be worth a look if you’re evaluating alternatives to Beads.

          1. vagrantJin · · focus · HN ↗
            Wow. It&#x27;s like beads++

            Great work man.

            1. [deleted] · · focus · HN ↗

              [deleted]

          2. MPSimmons · · focus · HN ↗
            Oh shit, this looks incredible. Thanks!
            1. [deleted] · · focus · HN ↗

              [deleted]

          3. Huppie · · focus · HN ↗
            Not OP but will definitely have a look.

            I have some older projects that use beads (I still run an old version without dolt that&#x27;s imho pretty good overall) but lately with Fable also have a few newer projects where I just have the agent write docs and keep a worklog with the what&#x2F;why&#x2F;decisions etc. (I think I read it here on HN somewhere and figured I&#x27;d give that a try.)

            The latter seems to work pretty well for now (slightly better than beads) but I&#x27;m always looking for ways to improve it. This could be an interesting replacement.

            1. [deleted] · · focus · HN ↗

              [deleted]

            2. jolaflow · · focus · HN ↗
              I think it works well for tracking intent. I tell my agents to use a &quot;human-input-needed&quot; tag when there is a high stakes decision fork, and then I just filter on that tag, immediately highlighting blocked workflows. I think you can get a long way with clever tagging, filtering + time travel.
          4. _superposition_ · · focus · HN ↗
            This looks really nice and I&#x27;m definitely going to give it a go. I been relying on Jira so this will be a breath of fresh air. Beads was great in principle and I haven&#x27;t given it a look in a while but this looks much cleaner.
            1. [deleted] · · focus · HN ↗

              [deleted]

            2. jolaflow · · focus · HN ↗
              Curious to hear how you find it after trying it!
          5. DANmode · · focus · HN ↗
            &gt; 13:37 - 13:49

            “ayy lmao”

          6. kavok · · focus · HN ↗
            Checking this out, the skill it wants me to add to my project seems to reference issues that wouldn&#x27;t make sense in the context of my project. IE: `QPPR7PE` and `MBB6WY5` ?
            1. jolaflow · · focus · HN ↗
              You are totally right in that it makes no sense. It seems like the skill.md had regressed as I had updated it via agent proxy. Thanks for pointing it out, the skill has been brushed up.
              1. kavok · · focus · HN ↗
                I’ve been trying it out on a personal project. It’s been going well. The only difficulty I’ve had is getting it to work with cloud sessions on Claude.
                1. jolaflow · · focus · HN ↗
                  Got it! I am not up to speed on Claude cloud sessions yet. Interested to hear how that works out for you. Let me know if you figure out what&#x27;s getting in the way, I&#x27;d be happy to look into it.
        4. try-working · · focus · HN ↗
          httpd:&#x2F;&#x2F;recursive-mode.dev
        5. try-working · · focus · HN ↗
          <a href="https:&#x2F;&#x2F;recursive-mode.dev" rel="nofollow">https:&#x2F;&#x2F;recursive-mode.dev
        6. rane · · focus · HN ↗
          I used taskwarrior for myself and agents, but felt it was insufficient for agentic era in many ways, so I started building my own a while back:

          <a href="https:&#x2F;&#x2F;aventasks.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;aventasks.dev&#x2F;

        7. jcjmcclean · · focus · HN ↗

          [dead]

        8. oflannabhra · · focus · HN ↗
          I have a lot of little projects and I also prefer this way of working with agents. Sometimes I would start to interrogate on a specific portion or ask questions to better understand a concept, and the session would get poisoned and the agent would fixate on that topic for all the remaining turns.

          I asked fable to look at my interaction patterns and clearly stated my frustrations and the problems I wanted solved, and it designed a simple process to track things in git and built a couple simple session hook skills. It’s pretty lightweight and I’ve been very happy with it for a couple months.

          1. cogman10 · · focus · HN ↗
            The power of this mode of work is that after you deconstruct the task into smaller subtasks, it&#x27;s a lot easier to use cheaper models to implement that task.

            I get a long way using models like Opus to make a plan of action and a bunch of tasks, and then using Deepseek to implement that plan of action. Saves a bunch of money and is fast.

            1. oflannabhra · · focus · HN ↗
              Yep! The other big advantages for me:

              - I have a record of work done and work to be done that helps _me_ when I come back to the project after several months. It’s committed and lives with the code.

              - when a task inevitably ends up more complicated than I thought, I can in that session break it up

              - I initiate sessions from multiple computers, so things stay in sync (through git)

              - I also have a “tooling” repo that builds out some views of the work and hosts it for me to see when I’m on my phone.

              - The hooks let the agent manage all of the workflow&#x2F;task management, so there’s very little management overhead for me.

              I rejected beads and JIRA. I wanted something more lightweight.

          2. j-conn · · focus · HN ↗
            What do the session hooks do?
            1. oflannabhra · · focus · HN ↗
              - start: invokes `work brief` skill to put the current tasks into context

              - pre-compact: does the same so work state survives compaction

              - stop: lints the work-tracking yaml files to make sure that updates mid session don&#x27;t break

              1. j-conn · · focus · HN ↗
                Nice. I found myself doing a lot of repetitive stuff handing off between agents, time to fix that. I think I agree with your approach of keeping it lean.

                I also sometimes rewind the conversation after going off on a tangent, sometimes not if I want the agent to have the sorts of things I’m thinking about in context. I probably justify keeping too much crud in context than I should

        9. theritik12ee1 · · focus · HN ↗

          [dead]

        10. saghm · · focus · HN ↗
          That sounds very similar to just manually compacting after every message. Is there a difference I&#x27;m not seeing?
        11. bensyverson · · focus · HN ↗
          I use Jobs [0] to manage this—it&#x27;s an agent-first CLI to track issues and tasks. A single `job orient` command gives the agent the current task in the context of the larger plan. It&#x27;s a replacement for Plan Mode and issue trackers, and it has allowed me to execute massive plans in parallel with minimal oversight. There&#x27;s a web UI, but it&#x27;s a work in progress.

          [0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;bensyverson&#x2F;jobs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;bensyverson&#x2F;jobs

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.