Hand off the current task to another agent with full context. Use when the user says "handoff", "hand off", "hand this to", or wants to pass work to another agent.
Install
npx skills add https://github.com/getpaseo/paseo --skill paseo-handoffHandoff Skill
Transfer the current task — context, decisions, failed attempts, constraints — to a fresh agent. The receiving agent starts with zero context, so the handoff prompt must be a self-contained briefing.
User's arguments: $ARGUMENTS
Prerequisites
Read the paseo skill. Call list_profiles before choosing the receiving agent. Do not create it until you have read the configured profiles and their notes.
Parsing arguments
- Agent profile — explicit profile name first; otherwise choose the profile whose
notesbest match the work. Materialize it intocreate_agentas described by the paseo skill. If no profile fits, use Paseo's provider discovery fallback. - Isolation — "in a worktree" / "worktree" → create a workspace with
isolation: "worktree", using a short branch name derived from the task. - Task description — anything else the user said.
The handoff prompt
The receiving agent has zero context. Include:
## Task
[Imperative description.]
## Context
[Why this task exists, required context.]
## Relevant files
- `path/to/file.ts` — [what it is and why it matters]
## Current state
[What's done, what works, what doesn't.]
## What was tried
- [Approach] — [why it failed or was abandoned]
## Decisions
- [Decision — rationale]
## Acceptance criteria
- [ ] [Criterion]
## Constraints
- [Must-not / must-preserve]
Preserve task semantics. Investigate-only → "DO NOT edit files." Fix → "implement the fix." Refactor → "refactor, not rewrite." Carry the user's exact intent.
Launch
Prepare the handoff in a dedicated workspace:
- Select the current workspace or call
create_workspacewith the requested isolation. - Call
create_agentwith a[Handoff] <task>title, the briefing as initial prompt, and the selectedworkspaceIdwhen explicit placement is needed. - Return the agent and workspace to the user, explaining that it remains in your subagent track until they detach it manually.
Do not encode independence as a create mode and do not invoke CLI or wire-level detach operations. Detach is a user gesture in the subagents track.
Do not wait or poll for the agent to finish.