Skip to content
Back to skills

Otto Handoff

ASecurity

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.

  • 10 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added August 31, 2026
ai-agents

Security analysis

A100/100

Scanned August 31, 2026

npx -y skills add Draek2077/otto-code --skill otto-handoff --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Otto Handoff?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Otto Handoff
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/draek2077-otto-handoff/badge)](https://www.skillsdirectory.com/skills/draek2077-otto-handoff)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: otto-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 **otto** skill. Call `list_agent_profiles` before choosing the receiving agent, and read every entry's `roles` and `guidance`. Do not create the receiving agent until you have inspected the available agent profiles.

## Parsing arguments

1. **Agent profile** - an explicitly named one first; otherwise the one whose `notes` best match the work. Pass its name as `create_chat`'s `agentProfile`, as described by the **otto** skill. If none fits, use Otto's provider-discovery fallback and tell the user.
2. **Worktree** - "in a worktree" / "worktree" → create a worktree via Otto 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 Otto 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.

Do not wait or poll for the agent to finish. Tell the user the agent ID and how to follow along (the otto skill explains).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.