⏱️ Lectura: 10 min
A developer built an entire app around plan mode, shut it down months later, and now argues that the feature, as we know it, is already dead.
📑 En este artículo
- TL;DR
- What happened
- Context and background: why someone would build an entire app for planning
- Technical details of plan mode: two functions, one broken abstraction
- How to try it today
- Impact and analysis for teams in Latin America
- What’s next
- Frequently Asked Questions
- What is plan mode in tools like Claude Code?
- Why does Ayman Nadeem say his app Nuanced failed?
- Is plan mode useless as of September 2026?
- What’s the difference between planning and a plan, according to this argument?
- What is AGENTS.md and why does it come up in this debate?
- How do I apply this today if I’m running multiple agents in parallel?
- References
On September 24, 2026, Ayman Nadeem, founder of the coding app Nuanced, published the essay “Plan mode is dead”. In it, he explains why building an entire product around plan mode was a mistake, and what teams coding with parallel AI agents actually need.
TL;DR
- Ayman Nadeem, founder of the coding app Nuanced, published the essay “Plan mode is dead” on September 24, 2026.
- Nuanced bet its entire product on plan mode: turning every plan into a persistent document before writing any code.
- According to Nadeem, plan mode historically served two functions: giving the agent precise instructions and helping the human understand the system.
- The first function becomes obsolete as models improve on their own; the second matters more, but plan mode is the wrong abstraction for it.
- Nadeem cites four causes of the failure: confusing a plan with planning, better models, resistance to AI-generated text, and a disruptive separation of tasks.
- Before Nuanced, Nadeem tried Claude Code CLI, Conductor, and Codex as planning tools.
- The problem gets worse with multiple agents running in parallel: without traceability, no one understands what decision each one made.
What happened
Nadeem launched Nuanced with a concrete bet: every conversation with a coding agent should turn into a persistent planning document before a single line of code got touched. The idea grew out of real friction. While working with Claude Code CLI, Conductor, and later Codex, he kept copying plan fragments from one chat to another to review them, a workflow he describes as awkward and hard to sustain while an idea was still taking shape.
Months later, Nadeem concluded that the product didn’t solve the problem it set out to solve. In his essay he lists one central reason: he confused planning (the process of thinking) with a plan (the resulting text artifact). Preserving that artifact in a large document didn’t capture the real value, which was in the process of thinking out loud alongside the agent.
Context and background: why someone would build an entire app for planning
The underlying motivation, as Nadeem tells it, was a question that’s still relevant: how does a human maintain a coherent mental model of a software system while a machine changes it faster than that human can inspect the changes? Current models can write thousands of lines in minutes, which means inheriting an enormous maintenance burden before you’ve even finished thinking about what you were building or why.
Nadeem describes that process as generating an immediate reward (seeing working code fast) that simultaneously hid the uncomfortable work of deciding whether something actually mattered, or rigorously evaluating product, design, and infrastructure decisions. When the architecture was left underspecified, the agent filled in the gaps its own way, and those decisions propagated across multiple files, well below what showed up in the chat.
💭 Key point: Nadeem says that running multiple agents in parallel, something tools like Conductor and Codex already allowed, left him with a sense of disconnection: he could generate code faster than he could verify it.
That was the flaw Nuanced tried to fix: there was no clear trail connecting the user’s prompt, the agent’s decision, the resulting code, and the product’s final behavior. Nadeem didn’t want to go back to reading file by file; he wanted to reason in natural language without losing control over how the system worked.
Technical details of plan mode: two functions, one broken abstraction
The essay’s central technical argument separates two functions plan mode has historically served in AI coding tools. The first is operational: giving the agent instructions precise enough to execute a task well. The second is human: helping the person understand what’s being built before it exists.
Nadeem argues that the first function loses relevance quickly as models improve on their own, since they need less and less explicit scaffolding to interpret an ambiguous intent. The second function, by contrast, matters more than ever, especially when a developer runs multiple agents in parallel and needs to know what each one decided. The problem is that plan mode, as a text artifact locked inside a chat conversation, is the wrong abstraction for solving that second problem.
The following table summarizes the approaches now competing to solve the same problem: keeping a human aware of what an agent is building.
| Approach | Where the plan lives | What it solves well | Main limitation |
|---|---|---|---|
| Native plan mode (e.g. Claude Code) | Inside the chat session, ephemeral | Stops the agent before it writes code misaligned with intent | Gets lost in the chat history as the conversation moves forward |
| Persistent document (CLAUDE.md, AGENTS.md, PLAN.md) | A versioned file inside the repository | Gives stable context across sessions and across agents running in parallel | Someone has to keep it updated by hand |
| Reviewing diffs after the fact | After the agent has already written code | Fast when the change is small and scoped | Useless if the agent already made dozens of hidden design decisions |
| Cutting and pasting between chats (the workflow Nadeem describes before Nuanced) | Text fragments the human moves by hand | Requires no special tooling | Slow, and the previous version of the plan is lost with every copy |
The following diagram illustrates why an ephemeral plan inside the chat gets lost, while a persistent document can feed multiple agents at once:
flowchart TD
A["Developer's intent"] --> B["Conversation with the agent"]
B --> C["Plan inside the chat"]
C --> D["Lost in the history"]
B --> E["Persistent document (PLAN.md)"]
E --> F["Agent 1 implements"]
E --> G["Agent 2 reviews"]
E --> H["Agent 3 runs tests"]
How to try it today
Claude Code’s plan mode is still available and serves as a concrete starting point, even if Nadeem’s argument is that it isn’t enough on its own. To install it:
# macOS / Linux
curl -fsSL https://claude.ai/install.sh | bash
# Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex
# cross-platform alternative via npm
npm install -g @anthropic-ai/claude-code
Inside a session, switching to plan mode lets Claude Code investigate the repository without writing code yet, only moving to implementation once the plan is approved:
$ claude
> (Pressing Shift+Tab twice activates plan mode)
⏸ plan mode on
> Migrate programacion-store's checkout from Stripe Checkout to Stripe Elements
The recommendation that follows from Nadeem’s essay is not to leave that plan trapped in the chat. It’s better to dump it into a versioned file in the repository so it survives the session and is available for the next agent:
## Goal
Migrate programacion-store's checkout from Stripe Checkout to Stripe Elements
## Decisions made
- [2026-09-20] We use Payment Element instead of Card Element: it supports local wallets with no extra code
- [2026-09-22] The confirmation webhook lives at /api/webhooks/stripe, separate from the handler that creates the payment
## Pending decisions
- What do we do with cash payments (OXXO, PagoEfectivo) that currently depend on Checkout
To confirm that an agent is actually reading that document and not just the loose prompt, simply ask it to explicitly quote a line from the file before touching code; if it can’t quote it, the file isn’t in its context.
💡 Tip: Name the plan file with the date or ticket number (for example PLAN-2026-09-checkout.md) so it survives multiple iterations without an agent overwriting it by mistake.
Impact and analysis for teams in Latin America
For teams that have already integrated coding agents into their daily workflow, Nadeem’s argument has a practical consequence: stop measuring the quality of a workflow by how elaborate a tool’s plan mode is, and start measuring it by how easy it is to later reconstruct why a decision was made. That matters even more for distributed Latin American teams coordinating asynchronous work across time zones, where no one can simply ask a teammate what the agent decided at 3 a.m.
It also changes what gets prioritized when choosing tools. A flashy plan mode inside a chat is worthless if it disappears the moment the session closes; a simple file like CLAUDE.md or AGENTS.md, versioned alongside the code and read by any agent that enters the repository, solves more of the real problem with less infrastructure.
The cost of not solving this well is real: Nadeem explicitly describes the feeling of generating code faster than he could verify it, and of losing the ability to detect when an incorrect assumption had already turned into code before anyone noticed.
What’s next
Nadeem isn’t proposing a return to reviewing line by line. His conclusion points toward tools that treat the plan as a living document within the normal workflow, not a separate mode you switch on and off, one that stays available to any number of agents working in parallel on the same repository. The broader trend in AI-assisted development is heading in that direction: moving context away from ephemeral conversation and toward versioned artifacts that any agent, human or not, can read without depending on a chat history.
📖 Summary on Telegram: See summary
Try it yourself: install Claude Code with the command above, activate plan mode with Shift+Tab, and compare how much of that plan survives if you leave it in the chat versus if you dump it into a file in the repository.
Frequently Asked Questions
What is plan mode in tools like Claude Code?
It’s a working mode in which the agent investigates the code and proposes a plan of changes before writing a single line, waiting for explicit approval from the developer before moving on to implementation.
Why does Ayman Nadeem say his app Nuanced failed?
Because he confused planning, the process of thinking alongside the agent, with a plan, the resulting document, and preserving that document didn’t capture the real value users were looking for.
Is plan mode useless as of September 2026?
It’s still useful for stopping an agent before it writes code misaligned with the developer’s intent, but according to Nadeem it doesn’t by itself solve the problem of maintaining a human understanding of the system over time and across multiple agents.
What’s the difference between planning and a plan, according to this argument?
Planning is the process of thinking out loud with the agent to arrive at decisions; a plan is just the text left over after that process. Nadeem argues that Nuanced optimized for the artifact instead of the process.
What is AGENTS.md and why does it come up in this debate?
It’s a file of persistent conventions and instructions for coding agents, an alternative or complement to CLAUDE.md, that several tools already read automatically when opening a repository.
How do I apply this today if I’m running multiple agents in parallel?
Turn each task’s plan into a versioned Markdown file inside the repo before launching the second agent, and ask each agent to quote a line from that file before it starts writing code.
References
- Plan mode is dead, Ayman Nadeem: the original essay documenting Nuanced’s shutdown and the argument against plan mode as an abstraction.
- Claude Code, Anthropic: the official page for the agentic coding CLI that includes native plan mode.
- Anthropic on GitHub: official repositories related to the coding tools mentioned in this article.
📱 Like this content? Follow our Telegram channel @programacion for daily tech content in Spanish: quick summaries, fresh content every day.
Imagen destacada: Foto de Juanjo Jaramillo en Unsplash
0 Comments