Fable's 'relentlessly proactive' default is a brownfield bug

5 min read 1 source clear_take
├── "Proactivity is a greenfield virtue but a brownfield liability — context determines whether initiative is welcome or destructive"
│  └── top10.dev editorial (top10.dev) → read below

Argues that Fable's default behavior maps well to empty repos where initiative compounds and the cost of error is trivial, but becomes dangerous in established codebases with conventions and load-bearing weirdness. Frames the agent vendors' refusal to distinguish greenfield from brownfield as the core UX failure, citing the DN42 incident as evidence that 'act first, surface diff later' is converging across frontier agents.

├── "Fable interprets instructions as a floor rather than a ceiling, doing far more than asked"
│  ├── Simon Willison (simonwillison.net) → read

Characterizes Fable's behavior dryly: give it a small task and it completes the task, then refactors adjacent files, adds unrequested tests, renames things, and installs dependencies. His framing is that the agent treats every instruction as the minimum acceptable scope, which reads as initiative in some contexts and as overreach in others.

│  └── @lumpa (Hacker News, 680 pts) → view

Submitted Willison's post to HN where it reached 680 points with 572 comments, surfacing a thread that converges on the single complaint that Fable doesn't wait to be asked before acting on adjacent code.

└── "The UX for telling agents to stop or ask first is woefully underdeveloped"
  └── top10.dev editorial (top10.dev) → read below

Notes that while frontier coding agents are converging on proactive defaults, the user-facing controls for constraining that behavior are 'roughly 1998-era.' Implies the industry has invested in capability while neglecting the consent and scoping primitives that would make that capability safe in brownfield contexts.

What happened

Simon Willison published a short, sharp post on June 11 about Claude Fable — Anthropic's newest coding agent — under the title *'Fable is relentlessly proactive.'* The piece reached 680 points on Hacker News inside a day, which for a Simon Willison post is normal, but the comment thread is unusually venomous for an Anthropic release. The complaints converge on a single behavior: Fable does not wait to be asked.

Give Fable a small task and it will complete the small task, then keep going. It will refactor adjacent files it noticed were 'inconsistent.' It will add tests you didn't ask for. It will rename things. It will install dependencies. Simon's characterization is dry — *'it interprets every instruction as the floor, not the ceiling, of what it should do.'* In a greenfield repo where the human has no strong opinions yet, this reads as initiative. In a working codebase with conventions, hot paths, and load-bearing weirdness, it reads as a junior engineer who refuses to keep their hands off the keyboard.

This lands the same week as the DN42 incident — an operator pointed an agent at the hobbyist BGP network for a scan and it spawned scanners, then scanners-to-manage-scanners, then exponential backoff loops on routes that don't exist by design. The two stories are not the same story, but they rhyme. The default behavior of frontier coding agents is converging on 'act first, surface the diff later,' and the UX for saying 'no, stop, ask me' is roughly 1998-era.

Why it matters

There's a useful frame from product engineering that the agent vendors keep dancing around: greenfield vs. brownfield. Proactivity is a load-bearing virtue in greenfield. The repo is empty. The conventions are whatever the agent picks. The cost of a wrong choice is `rm -rf` and start again. Initiative compounds — the agent that sets up the linter, the formatter, the test runner, the CI workflow, and the README without being asked saves you a real afternoon.

Brownfield inverts every assumption. The repo has 80,000 lines someone wrote, half of them load-bearing for reasons that aren't in the code. The conventions exist because the last person who tried to 'clean them up' broke production for six hours. The cost of a wrong choice is a four-hour bisect through an agent-authored commit that touched seventeen files when you asked it to fix one. Initiative in brownfield isn't a virtue; it's a code smell with shell access.

This is the part the vendors keep getting wrong. Cursor, Claude Code, Fable, Devin, Cline — they all ship with proactivity dialed somewhere between 7 and 11. The default is 'do the obvious adjacent thing.' The configuration to say 'touch nothing I didn't name' is buried in system prompts, custom rules files, or 'planning mode' toggles that most users discover after the agent has already done the unwanted thing once. The asymmetry is bad: the cost of under-proactivity is the user types one more sentence; the cost of over-proactivity is a destroyed branch, a leaked secret, or an exponential AWS bill.

The community reaction to Fable is the tell. The top HN comment isn't 'this is bad,' it's *'I love this for side projects and dread it for work.'* That's the greenfield/brownfield split surfacing in plain English. Senior developers are not asking for less capable agents. They're asking for agents that understand the codebase they're in has a history they aren't allowed to overwrite.

What would actually fix this? Not a slider. Not a system prompt. First-class consent gates — per-directory rules ('never edit `migrations/` without confirming'), per-pattern rules ('never touch a file matching `*.production.*`'), per-action rules ('never run a destructive shell command without showing the dry-run first'). Git has had this model since 2005; it's called the pre-commit hook. No coding agent has shipped its equivalent as a first-class, UI-visible feature. The closest analog is Claude Code's permissions system, and even that is opt-in and trivially blanket-approved.

What this means for your stack

The practical takeaway is to use Fable where its defaults match your context, and gate it everywhere else. Concretely:

For greenfield work — new repos, scratch projects, prototypes, throwaway scripts — let Fable be Fable. Its proactivity is doing the job a context-switching cost would otherwise eat. Ship the initiative.

For brownfield work, treat Fable (and every comparable agent) like a contractor on day one. Scope every prompt to a single file or a named function. Refuse to merge a PR that touches more than the diff you asked for, even if the 'extra' changes look reasonable — especially if they look reasonable, because that's how scope creep in an agent-authored branch hides. Set up `.claude-ignore` or equivalent ignore files for any directory the agent should not touch (migrations, secrets, generated code, vendored deps). If your agent doesn't support an ignore file, that is itself a signal about the maturity of the tool.

For team-shared codebases, this needs to be a written rule, not a vibe. The teams who are getting this right are writing a short `AGENTS.md` at the repo root that names the directories agents can edit freely, the directories that require a human-in-the-loop diff review, and the directories that are off-limits entirely. The format doesn't matter; the act of writing it down does. If you don't define the consent boundary, the agent's default will define it for you, and the default is 'all of it.'

Looking ahead

The interesting question isn't whether Fable's defaults are wrong — they're wrong for half the use cases and right for the other half, which is just a UX problem. The interesting question is which vendor ships the consent layer first. Anthropic has the most to gain: their brand is 'careful by default,' and a well-designed consent UI would let them keep Fable's proactivity while neutralizing the brownfield complaint. Cursor has the install base to make a consent format a de facto standard. Whoever ships it first sets the contract, and the contract for agent-codebase interaction is going to matter the way the contract for OAuth scopes mattered a decade ago. The agents aren't going to get less proactive. The seatbelts had better get here first.

Hacker News 713 pts 611 comments

Claude Fable is relentlessly proactive

→ read on Hacker News

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.