mcpField
H
handoff

handoff

github.com/csark0812Agent workflows062 installsUpdated 1d ago
Repository

About handoff

Handoff is an agent skill for transferring context between separate sessions, with prompt and artifact channels. It defines rules for concise, referenced handoffs, honest progress reporting, and handling secrets across different client interfaces.

Key features

  1. 01Choose prompt or artifact channel
  2. 02Transfer pointers instead of full content
  3. 03Separate completed, ongoing, and blocked work
  4. 04Redact secrets and personal information
  5. 05Map handoffs to client interfaces

Use cases

  1. 01Continue work in a fresh chat
  2. 02Transfer model-invoked context through an artifact
  3. 03Pass review status without a full context pack

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/csark0812/toolbox --skill handoff

After installing, type/handoffin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
handoff-subagent-dispatch.md
output.md
pack.md
research-basis.md

Details

From the project README

Handoff

Orchestrator — cross-session A2A (channel:prompt vs channel:artifact). Shared vocabulary → process-skill-composition.md.

References: pack.md · output.md · handoff-subagent-dispatch.md

When you calibrate claims, read research-basis.md.

Entry gate

  • New chat intended — same-session continuation without transfer is out of scope.
  • Channel chosen — prompt (user) or artifact (model-invoked).

Non-negotiables

  1. Pointers not bodies — paths, URLs, SHAs. Never paste plans, PRDs, or diffs into handoff.
  2. Honest state — done vs in-progress vs broken. When you claim progress, cite commits or tests.
  3. Redact secrets, tokens, and PII before write or paste.
  4. Channel prompt — user /handoff → no disk (_agent/handoffs/ forbidden).
  5. Channel artifact — model-invoked → subagent write mandatory. Coordinator-primary write is a violation.

Workflow

  1. Pick the channel, pack, and goal — use the closest rows in pack.md. These values control production only.
  2. Gather — minimal bullets from thread. Omit empty categories.
  3. Deliver —

Execution interface map

Use this map when the request says "handoff via X client."

  1. Pick channel from producer intent:
    • prompt for user-directed handoff (/handoff)
    • artifact for model-invoked context-pressure continuation
  2. Build one canonical payload from pack, goal, and thread claims.
  3. Route to the client interface:
    • prompt: emit receiving prompt block and hand it to next chat startup.
    • artifact: write <workspace>/_agent/handoffs/<filename>.md, then emit only the read stub.
  4. Validate output with the client-specific rule.
Cross-client default behavior
InterfaceTransport ruleProducer actionRequired receive artifact
CodexChat thread controlschannel:prompt for user handoff, channel:artifact for model-invokedchannel:prompt block or handoff artifact path
CursorConversation continuationchannel:prompt into fresh chat unless artifact hook is explicitly availablePrompt block
Claude CodeChat continuationchannel:prompt into fresh chat; if client-specific task API exists, pass block as first user messagePrompt block
Claude API / GPT-like interfaceChat continuationchannel:prompt is required; map fields to a user-visible handoff messagePrompt block
ChatGPT UI / web chatChat continuationchannel:prompt with Open workspace target first linePrompt block
GitHub Copilot ChatIDE continuationchannel:prompt only; no shared artifact path unless local host exposes handoff writePrompt block
Generic MCP / custom clientAPI-specificmap to canonical payload fields; if no artifact support, downgrade to promptPrompt block (or artifact path if supported)

When an interface does not expose an artifact API, always fall back to channel:prompt.

Codex API branch

Use this when the ask explicitly targets Codex API execution.

  1. Build channel:prompt payload from plan claims.
  2. Prefer one of:
    • start fresh chat with the prompt payload if orchestration is in user flow.
    • use create_thread for a new Codex task, then send_message_to_thread with the prompt block for handoff bootstrap.
  3. For channel:artifact, call handoff with channel:artifact via your orchestration flow, spawn the subagent writer path, then emit only the stub pointing to <workspace>/_agent/handoffs/<filename>.md.

Avoid fabricating any unsupported Codex tool calls. If a required API is unavailable, document fallback at channel:prompt.

High-volume interface notes
  • For clients with both UI and API modes, document the mode explicitly in your own orchestration.
  • If a client has a structured conversation API, preserve the same fields and map only into its initial message payload.
  • For IDE-native chat clients, prefer prompt mode with explicit workspace.
Interface execution boundaries
  • Don’t hard-code any one chat stack’s control API as the only supported path.
  • Do not include channel and pack inside receiving content.
  • Don’t skip the redaction rule for any interface.
  • Don’t write handoff files from the coordinator for channel:artifact; spawn/coordinate the subagent path when required.

If the next session needs only review state, use consumer overlay blocks instead of Pack: full.

Consumer bindings

Project-specific injected context is appended on skill read.

Comments

Markdown supported