PluginBench
Skill
Pass
Audit score 90

paseo-handoff

getpaseo/paseo

Hand off tasks to another agent with full context preservation and zero-context briefing.

What is paseo-handoff?

Transfers the current task—including context, decisions, failed attempts, and constraints—to a fresh agent. Use when the user requests a handoff or wants to pass work to another agent. The receiving agent starts with zero context, so this skill creates a self-contained briefing that preserves task semantics.

  • Parses user arguments to determine provider, worktree preference, and task description
  • Generates a self-contained handoff prompt covering task, context, relevant files, current state, attempted approaches, decisions, acceptance criteria, and constraints
  • Creates a new agent via Paseo with detached relationship and appropriate workspace placement
  • Supports handoffs to current workspace, new worktrees, or existing worktrees
  • Preserves task intent (investigate-only, fix, refactor) in the briefing

How to install paseo-handoff

npx skills add https://github.com/getpaseo/paseo --skill paseo-handoff
Prerequisites
  • Paseo skill must be installed and readable
  • Access to ~/.paseo/orchestration-preferences.json for provider resolution (unless user explicitly specifies a provider)
Claude Code
Cursor
Windsurf
Cline

How to use paseo-handoff

  1. 1.Invoke the skill when the user says 'handoff', 'hand off', 'hand this to', or requests passing work to another agent
  2. 2.Parse the user's arguments to extract: provider (explicit or from preferences), worktree preference, and task description
  3. 3.Gather current task context: what's done, what failed, relevant files, decisions made, and constraints
  4. 4.Construct a self-contained handoff prompt using the template (Task, Context, Relevant files, Current state, What was tried, Decisions, Acceptance criteria, Constraints)
  5. 5.Create the receiving agent via Paseo with [Handoff] title, the briefing as initial prompt, and appropriate workspace configuration
  6. 6.Provide the user with the agent ID and instructions for following along

Use cases

Good for
  • Hand off a partially-completed task to a specialist agent with different capabilities
  • Transfer investigation work to another agent when you've gathered sufficient context
  • Delegate a fix or refactor to a fresh agent in an isolated worktree
  • Pass styling or UI work to an agent optimized for that domain
  • Continue work in a new branch without losing context or decision history
Who it's for
  • Developers coordinating multi-agent workflows
  • Teams using Paseo for agent orchestration
  • Users needing to isolate work in worktrees while maintaining full context
  • Anyone delegating tasks between agents with different specializations

paseo-handoff FAQ

What if the user doesn't specify a provider?

Read ~/.paseo/orchestration-preferences.json and use the `impl` preference, or `ui` if the task is styling-only.

Should I wait for the handoff agent to complete?

No. Don't wait by default—the user decides whether to follow along or move on. Tell them the agent ID and how to follow along.

How should I handle worktree creation?

If the user mentions 'worktree' or 'in a worktree', create one via Paseo with a short branch name derived from the task. Use workspace configuration with kind 'create' and branch-off source.

What if a worktree already exists?

Use workspace configuration with kind 'existing' and the workspaceId returned from the previous create_worktree call.

How do I preserve the user's intent in the handoff?

Investigate-only tasks should include 'DO NOT edit files.' Fixes should say 'implement the fix.' Refactors should say 'refactor, not rewrite.' Carry the exact intent in the briefing.

Full instructions (SKILL.md)

Source of truth, from getpaseo/paseo.


name: paseo-handoff description: 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. user-invocable: true

Handoff 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. Before choosing a provider, read ~/.paseo/orchestration-preferences.json unless the user explicitly named a provider in this request. Do not create the receiving agent until you have read it.

Parsing arguments

  1. Provider — explicit user request first; otherwise resolve from impl preference (or ui if the task is styling-only).
  2. Worktree — "in a worktree" / "worktree" → create a worktree via Paseo with a short branch name derived from the task, based on the current branch.
  3. 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

Create the agent via Paseo with a [Handoff] <task> title, the briefing as initial prompt, and relationship: { kind: "detached" }.

Use workspace for placement:

  • No worktree: workspace: { kind: "current" }.
  • Worktree: workspace: { kind: "create", source: { kind: "worktree", target: { kind: "branch-off", worktreeSlug: "<short-task-slug>", branchName: "fix/<short-task-slug>" } } }.
  • Existing worktree already created by create_worktree: workspace: { kind: "existing", workspaceId: "<returned-workspace-id>" }.

Do not use workspace: { kind: "current", cwd: "<worktreePath>" } to place a handoff in a worktree; that keeps the agent in the caller's workspace with only a different runtime cwd.

Leave notifyOnFinish omitted unless the user explicitly wants no callback.

Handoff agents are siblings/root agents, not your subagents. They must survive you being archived and must not appear in your subagent track.

Don't wait by default — the user decides whether to follow along or move on. Tell them the agent ID and how to follow along (the paseo skill explains).