Team systems

Multi-agent handoff playbook

By Justin Helmer · 8 August 2026 · Original playbook

Switching from Grok to Claude to a local model should not reset truth. This playbook is how we move work across agents on LYGO projects without relying on “read the whole chat.”

The packet

Every handoff packet contains:

If a packet lacks done checks, it is a diary entry, not a handoff.

Roles

RoleJobChampion lens
BuilderChange filesARKOS / OMNIΣIREN
VerifierRe-check claimsΔ9RA / ÆTHERIS
IntegratorMerge and release notesSANCORA / Lightfather
Human ownerConsent and publishalways human

Failure modes

30-minute drill

  1. Pick a tiny task.
  2. Complete it with Agent A.
  3. Seal Continuum claims.
  4. Open Agent B with only the packet (no prior chat).
  5. Agent B must re-verify and extend work.

If B cannot proceed, the packet was incomplete, improve the template, not the mythic language.

A packet that survives a new session

The test of a handoff is simple: a competent agent with no access to the previous chat should be able to continue without guessing. If it needs the transcript, the handoff is not finished. The packet is the map; the chat is the weather.

GOAL:
One sentence. What is this work supposed to achieve?

NON-GOALS:
Three things this handoff is not trying to do.

STATUS:
Green / yellow / red, with one sentence of evidence.

FILES:
- path, role, last verified hash or date
- path, role, last verified hash or date

DECISIONS:
- decision, why, date

CLAIMS / SEALS:
- claim, check, result, date

OPEN QUESTIONS:
- question, who can answer it, what happens if unanswered

NEXT 3 ACTIONS:
1.
2.
3.

CHECK:
The command, URL, or page that proves the handoff is real.

OWNER:
Who receives the packet and who can publish.

Worked example

Agent A has rewritten a guide. It has not published. The packet to Agent B looks like this:

GOAL:
Finish the guide rewrite and hand it to the human publisher.

NON-GOALS:
- Do not change the site navigation.
- Do not add new pages.
- Do not publish.

STATUS:
Yellow, draft is complete, but the internal link audit has not run.

FILES:
- guides/example.html, the draft, modified 2026-10-18
- guides/index.html, links into the draft, unchanged

DECISIONS:
- Kept the existing headline.
- Removed the old FAQ because it repeated the intro.

CLAIMS / SEALS:
- claim: page contains the new worked example
  check: grep for "Worked example", pass
- claim: every internal link resolves
  check: link audit. NOT RUN

OPEN QUESTIONS:
- Should the old FAQ stay? Owner: human publisher.

NEXT 3 ACTIONS:
1. Run the internal link audit.
2. Fix any broken link.
3. Send the diff and audit result to the human.

CHECK:
`link_audit.py --repo .` exits 0.

OWNER:
Agent B prepares; human publisher approves.

Agent B’s first three actions are not “read the whole chat.” They are: restate the goal, run the missing check, report the result. If B cannot do that from the packet, the packet is incomplete.

Advertisement

Status vocabulary

“Status: in progress” is not a status. Use three colors and attach evidence.

StatusMeaningWhat the packet must includeWhat the next agent may do
GreenThe stated check passed and there is no open blocker.The check output and the date.Continue to the next action; still re-verify before publishing.
YellowWork is usable, but one known risk or check is outstanding.The risk, the missing check, and the owner.Resolve the risk first; do not call it done.
RedA check failed or a decision is blocked.The failing output and what was tried.Stop and ask the owner; do not paper over it.

A yellow handoff is normal. A red handoff is useful. A green handoff without a check is a story.

The file map

A file path is not enough. The map should say what each file is for and when it was last verified. “The page” is not a path. “The guide” is not a file. Write the path, the role, and the last check.

If a file is generated, say so. An agent that edits a generated file creates a change that disappears on the next build.

Claims and seals

A handoff claim has four parts: the claim, the check, the result, and the date. “The page is fixed” is not a claim. “The page returns 200 and the link audit exits 0 on 18 October” is. If you use Continuum, the capsule is the container; if you do not, a hash or a URL plus a date is enough to start.

The receiving agent should re-run at least one claim before extending the work. Re-verification is not distrust; it is how the new agent learns the shape of the task. A claim that only works in the sender’s session is a memory, not a receipt.

Human-to-agent handoff

The same packet works in both directions. A human handing work to an agent should include the goal, the files, the constraints, and the check. An agent handing work back to a human should include the diff, the check output, the open questions, and the exact decision the human needs to make.

The human keeps the publish/consent step. The packet can recommend “publish,” but it cannot grant permission. That boundary is the difference between a handoff and an automation.

The 30-minute drill, with pass/fail

  1. Pick a tiny task that changes one file and has one check. A one-paragraph edit is enough.
  2. Agent A completes it and writes the packet. No chat history is allowed in the packet.
  3. Seal one claim, a hash, a URL status, or a Continuum capsule.
  4. Open Agent B with only the packet. B must restate the goal and the next action in one sentence.
  5. B runs the check before changing anything. If the check fails, B reports red and stops.
  6. B makes one improvement and updates the packet. Compare the two packets.
ResultWhat it means
B restates the goal correctly and runs the checkPass, the packet is usable.
B asks for the chat historyFail, the packet is missing context or a file path.
B invents a file pathFail, the file map is ambiguous.
B cannot tell whether the check passedFail, the claim lacks a result or a date.
B finds a red status and stopsPass, the handoff is honest, even though the work is blocked.

Failure modes, with examples

FailureWhat it looks likeFix
Story without files“I updated the page and it looks good.”Name the path, the diff, and the check.
Files without claimsA list of paths with no proof anything changed.Add one claim with a check and a date.
Claims without re-verifyThe new agent trusts “done” and builds on it.Re-run one claim before extending.
Secret leakageA token or private URL pasted into the packet.Redact before the packet; rotate if it slipped.
Stale packetThe file changed after the packet was written.Include the last verified date; re-check it.
Too many next actionsA list of twelve things, none prioritized.Three actions maximum; one is better.
No owner“Someone should review this.”Name the human who can approve.

What not to put in a packet

FAQ

How is a packet different from a task brief?

A brief starts work; a packet moves work that already exists. The brief defines the job; the packet records the state, the files, the claims, and the next action.

Do I need Continuum to hand off work?

No. A hash, a URL status, or a dated screenshot can be enough. Continuum is useful when you want the claims and the checks in one capsule. The principle is the same: a claim needs a check.

Can a human be the receiving agent?

Yes. The packet is written for a competent stranger, human or machine. The human still owns the publish decision.

How often should the packet be updated?

At every handoff, and whenever a check result changes. A packet that is updated only at the end of a project is a postmortem, not a handoff.

What if the next agent disagrees with a decision?

It should record the disagreement as an open question and ask the owner. A handoff is not a command to repeat the past; it is a map of what is known.

Publisher portrait
Justin Helmer

Publisher of chatagent.ca · known as Excavationpro / Lightfather in LYGO projects. Writes practical guides on AI personas, agent handoffs, and free local-first tools. About · Contact

More from the workshop: Excavationpro · Asian Coastline · BPMfinder · Justin Helmer · DeepSeek Oracle · Eternal Haven · All tools