Skip to main content
Claude Code

Forked Subagents in Claude Code: Why I Stopped Using Normal Ones

Why normal subagents lose the detail that matters, how forked subagents inherit full context, and the decision rule for when to fork vs brief fresh.

7 min
Read time
1,265
Words
Published
Last revised
Engr Mejba Ahmed

Written by

Engr Mejba Ahmed

Share Article

Forked Subagents in Claude Code: Why I Stopped Using Normal Ones

Subagents in Claude Code have a failure mode nobody warns you about: they are confidently wrong about your own session. Not because the model is weak — because of what the subagent is allowed to see. A normal subagent does not inherit your conversation; it inherits a compressed briefing of it, and compression is lossy by definition. For code work, where the load-bearing detail is always specific, that loss is not a rounding error. It is the whole risk.

I learned this at 1:47 AM, roughly 180k tokens into a long session wiring a payment flow for a client SaaS. I spawned a subagent to review a controller and confirm my validation actually enforced what I believed. It came back confident: the guard prevents the race condition, all good. Except the guard it needed to evaluate was not in the controller — it was in a custom middleware, and the subagent had never seen it, because the compression step had flattened that middleware into something like "project uses standard Laravel middleware stack." The nuance that mattered was exactly the nuance the summary discarded. I debugged the wrong problem for four hours on the strength of that answer.

Forked subagents exist to close that gap, and after rebuilding my delegation habits around them, my position is: forks and normal subagents are both essential — for opposite jobs — and the skill is knowing which job you are holding.

Forked Subagents in Claude Code: Why I Stopped Using Normal Ones - overview of the compression tax, stated precisely, what a fork actually is

The compression tax, stated precisely

Here is the mechanism. When Claude Code spawns a standard subagent, the child starts effectively fresh: it gets its task prompt plus whatever context the parent chooses to summarize into the brief. The summary captures the shape of your session and loses the specifics — and the specifics are where code lives. Which middleware. Which flag. The decision you reversed an hour ago. A one-page executive summary of a three-hour meeting, handed to a colleague who must now weigh in on a detail from minute 47.

This is not a niche complaint. The Claude Code issue tracker carries long-running requests for exactly this control — a fork_context option on the Task tool for full conversation inheritance and subagent inheritance of the parent conversation — because developers kept discovering that default context passing is either too little or too much depending on the task.

The underlying tension is real, not a design mistake. Long sessions degrade: past a couple hundred thousand tokens, decision quality drifts, which is why context hygiene matters at all (I keep separate notes on managing large context windows and token limits and context hygiene). The main session wants to stay lean; the subagent starved of context makes bad calls; summarization is the compromise between them. And compromises always bill somebody. In my middleware incident, the bill was four hours.

What a fork actually is

A forked subagent inherits the parent conversation — the full history, not a summary — and runs as its own session from that point. Three properties follow, and each one matters:

Full recall. The fork knows about the custom middleware because it was there when we discussed the custom middleware. No briefing step, no lossy hop. Questions that hinge on session nuance get answered from the record, not from a reconstruction.

Isolation on the way back. The fork's own tool calls and intermediate churn stay in the fork. Only its result returns, so your main window stays clean while the child does its heavy reading.

Cache-priced inheritance. Because the inherited history is shared with the parent, the fork rides the prompt cache rather than paying full freight on a couple hundred thousand tokens of re-read. Full context inheritance would be economically silly otherwise; with caching, it is routine.

One inheritance nobody advertises: forks also inherit your session's rot. Every abandoned hypothesis, contradictory instruction, and noisy tool dump in your history arrives in the fork unfiltered. A fork of a messy session is a messy agent. Forks reward the context hygiene you were hopefully practicing anyway.

Where forks earn their keep

From real use, the four cases where I now fork by default:

Mid-session verification. The middleware case, done right. "Given everything we have discussed, is this validation actually airtight?" is a question whose value is the accumulated context. Forking it costs little and answers from the full record.

Consolidation and recap. Late in a long session: fork a child to write the handoff document — decisions made, paths rejected, open threads. The fork remembers the whole journey; the parent stays focused on finishing.

Tangent containment. A rabbit hole worth exploring but not worth polluting the main line: fork it. If the tangent pays off, the result comes back; if not, the mess dies with the fork. This one quietly changed how willing I am to investigate hunches at all.

Parallel variations on shared context. Three design directions for the same component, each needing the full background: three forks beat three briefings, and beat serializing the exploration in the main session.

Where forks are the wrong move

Just as load-bearing. Do not fork when:

You want a fresh perspective. A fork inherits your assumptions along with your facts. For adversarial review — "tell me what I am missing" — a clean-context agent with a deliberate brief is more valuable precisely because it was not marinating in your reasoning. Sunk-cost bias transfers with the history.

The task is self-contained. Here is the counterexample from my own infrastructure: the SEO remediation pipeline running on this very blog uses dozens of worker agents, and none of them are forks. Each rewrite worker gets a fresh context and an explicit written brief — assignment, evidence, constraints — because the task was designed to be self-contained. When the contract is complete, inheritance is pure waste: you would pay (even cache-discounted) for history the worker does not need and, worse, expose it to rot it should never see.

You are parallelizing independent work. Ten workers on ten separate tasks want ten clean contexts. Forking belongs to shared-context problems only.

That gives you the decision rule I wish someone had handed me: fork when the task depends on conversation nuance; brief-and-spawn when the task can be fully specified in writing. And notice the trap hiding in that rule — the middleware failure happened because I used a summary-briefed agent for a nuance-dependent task. The summary looked like a full specification. If writing the complete brief would require reciting half your session, that is the tell: fork instead.

How this fits your delegation stack

Forks slot into a spectrum rather than replacing it: inline work in the main session, forked children for nuance-dependent side work, fresh subagents for specified independent tasks, and coordinated teams when workers must negotiate with each other — that last tier is its own discipline, covered in my agent teams guide. Skills interact with the same machinery: heavyweight skills increasingly run in forked contexts so their bulk data never touches your session, a pattern I detail in the advanced agent skills playbook.

The test I would run tonight if I were you: next long session, past the point where it has real history, spawn one normal subagent and one fork on the same nuance-dependent question. Compare which one knows what actually happened in your session. The difference is not subtle, and after you see it once, you will route delegation differently without thinking about it.

The compression tax was costing me hours before I could name it. Now it costs a decision.

Long-session agent workflows — delegation structure, context budgets, verification loops — are something I build for client teams as paid engagements; if your sessions degrade before your work is done, my services page covers how that engagement works.

Coffee cup

Enjoyed this article?

Your support helps me create more in-depth technical content, open-source tools, and free resources for the developer community.

Related Topics

Engr Mejba Ahmed

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 8+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Related Articles

Browse All

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

AI assistant · trained on my work

👋

Hey there!

Quick Actions

WhatsApp Direct line to me

Chat on WhatsApp

+880 1723 741224 · Replies within the hour on working days

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

mejba.13@gmail.com

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support