* feat(workspaces): align agent and schedule automation Make workspace identity the shared placement boundary for MCP and CLI, while caller identity determines parentage. Keep heartbeats minimal and cron-based without changing legacy rolling interval semantics. * test(cli): expect canonical schedule cadence * fix(automation): preserve workspace and schedule compatibility * fix(automation): preserve compatibility edges * fix(workspaces): align MCP lifecycle resolution * fix(workspaces): preserve creation intent * fix(workspaces): preserve branch and schedule identity
68 lines
2.5 KiB
Markdown
68 lines
2.5 KiB
Markdown
---
|
|
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. **Isolation** — "in a worktree" / "worktree" → create a workspace with `isolation: "worktree"`, using a short branch name derived from the task.
|
|
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
|
|
|
|
Prepare the handoff in a dedicated workspace:
|
|
|
|
1. Select the current workspace or call `create_workspace` with the requested isolation.
|
|
2. Call `create_agent` with a `[Handoff] <task>` title, the briefing as initial prompt, and the selected `workspaceId` when explicit placement is needed.
|
|
3. 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.
|
|
|
|
Leave `notifyOnFinish` omitted unless the user explicitly wants no callback.
|
|
|
|
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).
|