
Cross-agent handoffs
When one agent’s done is another agent’s begin.
What a handoff is
A handoff is the transition where work moves from one agent to another. Chief-of-staff routes a security question to the legal/IP specialist. Engineering finishes implementation, hands to QA. QA finds an issue, hands back. Each transition is a handoff.
In a one-agent system, handoffs don’t exist — the operator and the agent share full context. In a multi-agent system, handoffs are where most of the lost work lives. Specialists burn time re-orienting because the brief was vague. Work disappears into queues because no one propagated closure. The wrong specialist gets the work because the chief-of-staff over-granted.
This lesson is the protocol that keeps handoffs cheap: a six-line brief format, a clear return path, and explicit authority boundaries.
The story
When I went from one agent to six, the first month felt slower, not faster. Specialists were better at their domains in theory but in practice the handoffs were broken. I’d ask “Cipher, is this contract risky?” and Cipher would respond with “need more context — what’s the deal structure, who are the parties, what jurisdiction?”
I’d already typed all of that in the chief-of-staff conversation. None of it had traveled. The chief-of-staff had said “routing to Cipher” and the specialist had received an empty room.
The fix wasn’t to make the chief-of-staff dump the whole transcript on the specialist (that’s the dump pattern — equally bad). The fix was a handoff brief: six lines that captured objective, scope, the specific question, authority, return path, context pointers.
With the brief format in place, handoffs went from “15 minutes of re-orientation” to “specialist starts work in 30 seconds.” The 6-agent system stopped being slower than the 1-agent system. It started being meaningfully faster.
Three handoff failures
The patterns that make multi-agent setups feel slower than they should. Hover any card to see the diagnosis.
The dump
The over-grant
The orphan
The fix in all three: structure the handoff like a job ticket, not a conversation forward. Brief, scoped, specific question, explicit authority, clear return path.
The handoff brief test
Run this before sending any cross-agent handoff. Catches the gaps that would otherwise burn specialist time or return wrong work.
Look at this handoff (or a recent one).
Walk through:
1. Is the OBJECTIVE clear in one sentence?
2. Is the SCOPE bounded (specific files, dates, surfaces)?
3. Is there ONE specific QUESTION being asked, or a vague mandate?
4. Is the AUTHORITY explicit — what can the specialist decide vs
what must come back?
5. Is there a RETURN PATH — how does the chief-of-staff know it's done?
6. Are CONTEXT POINTERS provided so the specialist doesn't have to
reconstruct background?
Any "no" is a gap. The specialist will burn time on the gap or
return wrong work. Fix before sending.Six checks: Objective, Scope, Question, Authority, Return path, Context pointers.
Any “no” means the specialist will burn time on the gap or return wrong work. The cost of fixing the brief pre-send is ~2 minutes. The cost of a bad handoff is 30+ minutes of re-orientation plus rework.
Annotated transcript
A real handoff loop. Operator asks for a security review. Chief-of-staff drafts a brief, the operator adds a context pointer, brief gets sent. Click any pinned annotation to expand the “why this turn matters” commentary.
Three operator turns, three agent turns. Result: a 6-line brief with explicit return shape.
- operator
I need a security review on the auth refactor in /app/api/auth/. Get Cipher on it.
- agent
Routing to Cipher with a handoff brief:
To: Cipher (legal/IP/security) From: Chief-of-Staff Objective: Security review of the auth refactor. Scope: /app/api/auth/ — 3 files modified in commit b893416. Question: Is the new session-token rotation strategy safe? Specifically, is the 7-day rolling expiry susceptible to replay attacks if a token leaks within the rotation window? Authority: Cipher can flag concerns and draft redlines. Cannot ship a fix — that comes back to engineering with a recommendation. Return by: end of day, or earlier if blocking issue surfaces.Sent.
- operator
Wait — Cipher might not know the v2 token format we shipped last week. Make sure he has that context.
- agent
Good catch. Adding context pointer to the brief:
Context: Token format changed in last week's release — see 07-Decisions/2026-04-22-session-token-v2.md for the spec. Cipher should read this BEFORE reviewing the new code so the baseline is clear.Resent. Cipher's queue acknowledged the brief and is reading the decision doc first.
- operator
How do I know when Cipher's done?
- agent
Cipher returns to me (chief-of-staff) with a one-line status. I propagate to you and update the kanban.
Return shapes (typical):
- ✅ Reviewed, no concerns. Auth refactor is safe to ship.
- ⚠ Reviewed, two concerns flagged. SeeCipher-review-2026-04-30.mdfor details + suggested redlines.
- ❌ Reviewed, blocking issue. Token rotation IS replay-vulnerable in the 5-min cache window. Do not ship until fixed.The one-liner is the operator-visible status. The full review (if needed) lives in a file the chief-of-staff links from the status.
The handoff brief — copy-paste this format
Drop this format into your routing CLAUDE.md entry. Every cross-agent handoff fills it in. Six fields, ~80 words.
To: <Specialist agent name>
From: <Originating agent or operator>
Objective: <One sentence — what's the thing being done?>
Scope: <Specific files, dates, surfaces, branches>
Question: <The ONE specific thing the specialist is being asked.
NOT a vague mandate. A pointed question.>
Authority: <What the specialist can decide on their own vs what
must come back to the originator>
Return by: <Date, or trigger like "if blocking issue surfaces">
Context pointers: <Decision docs, prior reviews, wiki pages — don't
paste content, point to it>
Return shape (specialist back to originator):
✅ Done. <One-line summary of what was concluded.>
Full output (if any): <file path or PR link>
⚠ Done with concerns. <Concerns in one line.>
Detail: <file path or PR link>
❌ Blocked. <Blocker in one line.>
Recommendation: <one-line>
Both shapes are intentionally short. The brief travels from chief-of-staff to specialist; the return travels back. Both fit in a chat message. Detail lives in linked files.
Prompt kit
Three prompts for keeping handoffs clean. Save in CLAUDE.md or a personal snippets file.
Look at this handoff (or a recent one).
Walk through:
1. Is the OBJECTIVE clear in one sentence?
2. Is the SCOPE bounded (specific files, dates, surfaces)?
3. Is there ONE specific QUESTION being asked, or a vague mandate?
4. Is the AUTHORITY explicit — what can the specialist decide vs
what must come back?
5. Is there a RETURN PATH — how does the chief-of-staff know it's done?
6. Are CONTEXT POINTERS provided so the specialist doesn't have to
reconstruct background?
Any "no" is a gap. The specialist will burn time on the gap or
return wrong work. Fix before sending.I need to route work from <current-agent> to <target-agent>.
The work is: <one-line summary>.
Draft a handoff brief in the standard format:
- To / From
- Objective (one sentence)
- Scope (specific files, surfaces, dates)
- Question (the specific thing the specialist is being asked)
- Authority (what they can decide vs surface)
- Return by (date or trigger)
- Context pointers (decision docs, prior reviews, etc. — don't
paste content, point to it)
Keep it under 100 words.Specialist returned a handoff with status: <paste status>.
Walk through:
1. Did the return propagate to the original requester?
2. Was the kanban updated (closed task, moved column)?
3. Are any other agents waiting on this who should be notified?
4. Is the full work product (review file, PR, decision) linked from
the return so future-you can find it?
Any "no" is a closure gap. Propagate the missing piece now.Apply this — fix one stuck handoff
30-minute exercise. Most stuck handoffs are missing the return path or have no clear question.
Re-issue a handoff with the brief format
Each step takes ~5-10 minutes. Progress saves automatically.
- 01Pick one piece of work that's currently sitting between two agents (or one agent and you).Probably something where you keep checking "is X done yet" because nobody propagated closure.
- 02Apply the handoff brief test. Identify the gaps.Most stuck handoffs are missing the return path or have no clear question.
- 03Re-issue the handoff with the brief format. Six lines max.Use the skeleton from this lesson. Pointers to decision docs, not pasted content.
- 04When the specialist returns, propagate closure: operator visible, kanban updated, waiting agents notified.The discipline is the propagate, not the brief.
- 05Add the return pattern to your routing-table CLAUDE.md entry: "specialists return one-line status to chief-of-staff."Once it's a default behavior, you'll never lose another handoff.