Session Handoff
Owns: temporary session continuity artifacts.
This skill creates a short-lived pointer document. It is not scheduler state. It is not a ticket-autopilot checkpoint.
It is not the channel that passes context to a leaf, a worker, or a subagent: that channel is the
schema-3 leaf-result contract of ticket-autopilot resume --events.
It never replaces a spec, ticket, commit, issue, PR, or other durable source of truth.
Boundaries
Use this skill when the user wants a temporary context bridge for a fresh session.
Do not use this skill to resume an existing run, serialize ticket state, or create durable
project documentation; use ticket-autopilot or the owning
workflow instead.
Do not use it to hand context to a leaf, worker, or subagent, and never route leaf context
through a handoff document. Leaf context is carried by the leaf-result contract described in
ticket-autopilot, which binds it to an exact CandidateRef; a
handoff carries no such binding and expires.
For every invocation, never write the handoff into the project workspace, repository, or another synced folder; do not stage, commit, or upload it. Store it only in the operating-system temporary directory.
Process
- Identify the next session's purpose from the user's request. If no focus was supplied, state the narrow continuation goal supported by the conversation.
- Collect only durable pointers: path, URL, issue or PR number, commit, or digest. Do not copy durable content already held by those artifacts.
- Redact before writing. Replace credentials, tokens, cookies, personal data, and other
sensitive values with the exact marker
<REDACTED>. Do not copy the conversation transcript. Do not retain unnecessary command output. - Create a private directory with
mktemp -dunder the operating-system temporary directory. Require directory mode0700; createHANDOFF.mdwith file mode0600. - Write the artifact using the exact section order below. Keep every section concise and make Remaining work begin with one concrete next action.
- Set an explicit UTC expiry that expires within 24 hours. Include the exact deletion command for the private handoff directory.
- Verify that the resolved path is outside the workspace, the file is untracked, every section is present, and no sensitive or duplicated durable content remains.
- Return control to the user. In chat, confirm only the path and expiry; do not echo the handoff contents.
Output contract
Write the artifact with this shape:
# Session handoff
## Purpose
<one sentence describing the next session>
## Durable pointers
- <path, URL, issue or PR number, commit, or digest plus why it matters>
## Remaining work
1. <one concrete next action>
## Limitations
- <unknown, unresolved decision, or evidence boundary>
## Redacted context
- <only the minimum non-sensitive fact needed to interpret a pointer>
## Suggested skills
- <skill name and the reason to invoke it>
## Expiry and deletion
- Created UTC: <ISO-8601 timestamp>
- Expires UTC: <ISO-8601 timestamp within 24 hours>
- Delete: <exact deletion command for this private temp directory>
Do not copy durable content into the handoff. Omit empty pointer entries, but never omit a
section; write None when a section has no safe content.
Examples
- Use this skill: "Create a temporary handoff so a fresh session can continue the design investigation from the linked spec and commit."
- Do not use this skill: "Resume an existing run and continue U-06." That belongs to
ticket-autopilot, whose ledger and checkpoints remain authoritative. - Do not use this skill: "Write an ADR for this decision." Create the durable artifact through its owning workflow and link to it from a later temporary handoff if needed.