AI work handoff
Hand a Claude Code task to Codex, Cursor, or tomorrow's session
People keep asking for one tool that packages the next action, the current branch, the failing tests, the constraints, and the definition of done. Four of those five are fields on a Wagglet task. This page names the one that is not, and what stands in for it.
The five fields
Next action, current branch, failed tests, constraints, definition of done
That list is not ours. It is the specification buried inside the question people ask when they go looking for this tool. Here is where each field lives in a Wagglet task — checked against the task model, in the order the question asks for them.
- Next action — carried
- The task body. Markdown the owner writes before anyone claims it, and the first section of the handoff the next session reads — ahead of the project setup, ahead of the repository. A second field, the human instructions, holds the note addressed to the person rather than the agent; it shows on the task page and is deliberately never copied into the agent prompt.
- Current branch — carried, as fields rather than prose
- The repository and branch render their own section of the handoff. The delivery mode — none, push to the source branch, or branch off it — renders the line that says where the work has to land. After delivery, the delivered branch records what the runner actually pushed, and that value wins wherever it disagrees with what was planned.
- Failed tests — not carried
- Wagglet has no field for this. No column, no API field, no section that names a failing test. What it carries instead: the task body you wrote, the task's own comment thread with its attachments, and three switches — human QA with written instructions, screenshots, video — that say what evidence the delivery owes before it can be filed. A failing test name is something you type into prose. Nothing validates it, and nothing notices when it stops failing.
- Constraints — carried, but split in half
- Worth knowing which half you are writing into. Enforced by the handoff itself: required skills the agent must install and read before starting, a preferred-model check that stops the session rather than guessing, the workspace readiness check, and the hold every context prompt ends with — do not call any delivery API or change the task status from these instructions. Prose, in the task body beside the next action: every constraint specific to the change itself.
- Definition of done — carried, as two separate things
- The delivery contract says where the work lands and requires the runner to report the exact branch they pushed. The lifecycle then adds a second decision by a different person: claimed, delivered, done. A runner reporting that they are finished moves the task to delivered and no further. Sending it back is a first-class outcome, not an error path.
The same-person case
Handing off to yourself, tomorrow
A new session can read the current task through a claim-scoped, read-only credential.
The transcript does not move. Record decisions, rejected approaches, and the next action in the task so the next session receives durable context instead of depending on yesterday's terminal history.
The teammate case
What changes when the next session belongs to someone else
Almost nothing about the context changes. What changes is who may pick it up, whose subscription runs it, and who decides it is finished.
- Who may claim it is part of the task: required skills matched as any or all of them, named people who may claim it whatever their skills, and blocks that override both.
- No account, key, subscription, credit, or token allowance moves between people. The runner works under the agent subscription they already pay for, and the task carries no way to spend anyone else's.
- Delivery is scoped to the person holding the claim. Their delivery credential is minted for them and revokes every earlier one, so an old prompt left in a stale terminal cannot file a second delivery.
- The owner's note to the runner is separate from the agent prompt. It is addressed to a person, attributed to whoever wrote it, and never pasted into a session.
- Acceptance is a third seat. The person who wrote the task, the person who ran it, and the person who accepts it can be three different people.
Across agents
Claude Code to Codex, and back
Portability across agents, not lock-in to one. The handoff is Markdown, and nothing in it is addressed to a particular vendor.
- Paste it anywhere that takes text. The prompt is a task section, a repository and branch, attachments as absolute URLs any agent can fetch without a credential, the discussion, the rework history, and a closing that says where the work lands. Claude Code, Codex, Cursor, or a plain chat session all read the same thing.
- Only the context belonging to that task travels. The prompt is assembled from the task's own fields and thread — not from your session history, and not from the rest of the board.
- The one place a vendor is named is an optional check. A task that insists on a specific model tells the session how to verify which model it actually is, and to stop and ask rather than guess. That guard is opt-in per task and fails closed.
Read first, deliver second
The Dual Prompt: a read-only context prompt, then a separate delivery prompt
Two prompts, minted at different moments, because reading a task and closing it are not the same permission. The Task Handoff guide documents the credential each one carries.
- 01
The context prompt
Everything needed to do the work, plus a read-only credential that can refresh the task and nothing else. It ends with the hold: do not call any delivery API or change the task status from these instructions. - 02
The work, supervised
Human-supervised AI execution on the runner's own machine and their own subscription. The task can require a QA pass, screenshots, or a recording before a delivery will be accepted at all. - 03
The delivery prompt
Minted separately, by the person holding the claim, only while they hold it. Minting it revokes every earlier delivery credential, so an old prompt in a stale terminal cannot file a second delivery. - 04
Review
Someone else accepts it or sends it back with an explanation — and that explanation becomes the rework feedback the next session reads.
Frequently asked questions
Claude Code, Codex, and Cursor handoff FAQ
Short answers to the questions this workflow is designed to settle.
- Can a Claude Code task be continued in Codex or Cursor?
- Yes. Wagglet renders the task context as vendor-neutral Markdown that can be pasted into Claude Code, Codex, Cursor, or another text-based agent.
- Does the original AI session move with the task?
- No. The prepared task, repository and branch details, constraints, discussion, and delivery contract move. The original transcript and provider account do not.
- How is delivery separated from reading the task?
- The context prompt carries read-only access. A separate delivery prompt is minted for the current claimant when it is time to report the result.
For a repository-file alternative and a HANDOFF.md template, read the written coding-agent handoff guide.
Who this is not for
When a shared task record is pure overhead
The disqualifier matters more than any feature on this page.
Keep reading
Where this sits
The workflow above it, the siblings beside it, and the documentation underneath it.