skills/handoff/SKILL.md
Generate a self-contained handoff prompt that lets the user continue work in a fresh coding agent session with empty context. The prompt captures everything a new agent needs: project, goal, progress, decisions, current state, and remaining work. **Triggers — use this skill when:** - User says "handoff", "hand off", "hand-off" - User asks to "generate a continuation prompt" - User says "give me a prompt to continue this" - User asks to "wrap up for a new session" - User says "context transfer", "session transfer" - User asks "how do I pick this up later" - User wants to "pass this to another agent"
npx skillsauth add espennilsen/pi handoffInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a self-contained prompt that a fresh coding agent (with zero prior context) can use to seamlessly continue the current work.
Context is expensive. When a session hits its limit, or you want to switch tools, the work-in-progress knowledge shouldn't evaporate. A good handoff prompt is:
Collect facts from the codebase. Do not rely on conversation memory alone — verify against the filesystem.
# Project identity
basename $(pwd)
git remote -v 2>/dev/null | head -2
# Branch and recent work
git branch --show-current 2>/dev/null
git log --oneline -10 2>/dev/null
# Uncommitted changes (critical for handoff)
git status --short 2>/dev/null
git diff --stat 2>/dev/null
# Stashed work
git stash list 2>/dev/null
# Any running processes or dev servers the user should know about
# (mention if relevant to the task)
Review the conversation to extract:
| Element | Question to answer | |---------|-------------------| | Goal | What is the user ultimately trying to accomplish? | | Scope | What specific task was this session focused on? | | Completed | What has been done? (commits, files created/edited, commands run) | | In-progress | What was being worked on when the handoff was requested? | | Remaining | What still needs to be done? | | Decisions | What architectural or design choices were made and why? | | Blockers | Any issues, bugs, or unknowns that the next session should know about? | | Key files | Which files are most relevant to the current task? |
Produce a single Markdown code block containing the prompt. The user copies this into their next session.
Use this structure. Adapt and omit sections as needed — a trivial task doesn't need architectural decisions. The prompt should be as short as possible while remaining complete.
```
Project: <name> — <one-line description>
Path: <absolute path to project root>
Branch: <current branch>
## Goal
<What the user is trying to accomplish — the big picture.>
## Context
<Brief project context the new agent needs. Tech stack, relevant architecture,
anything non-obvious about the codebase.>
## What's Been Done
- <Completed item 1 — be specific: files changed, commits made>
- <Completed item 2>
- ...
## Current State
<What state is the codebase in right now? Clean? Dirty files? Failing tests?
Mention uncommitted changes explicitly — the new agent should not accidentally
discard or duplicate work.>
Dirty files:
- <path/to/file — what was changed and why>
- ...
## What's Left
1. <Next concrete step — this is what the new agent should do first>
2. <Subsequent step>
3. ...
## Key Decisions
- <Decision 1: what was chosen and why>
- <Decision 2>
## Key Files
- `<path>` — <why this file matters for the current task>
- `<path>` — <description>
## Gotchas
- <Anything surprising, non-obvious, or easy to get wrong>
```
pi-heartbeat settings block to settings.json.example with all 6 fields"Uncommitted changes are the most fragile part of a handoff. List every dirty file with a brief note on what changed. If there's a large diff, summarize the intent rather than listing every line.
The first item under "What's Left" should be an unambiguous instruction the new agent can act on immediately. Not "continue the refactor" but "refactor src/parser.ts to use the new TokenStream class — the interface is defined in src/types.ts:42".
package.json etc.pbcopy or write to .handoff.mdtools
# pi-a2a Long-Running Tasks Skill ## Overview The pi-a2a extension supports **long-running tasks** that can execute for hours or days without timeouts. This is essential for: - Data processing pipelines - Batch operations - Research and aggregation tasks - External API jobs with unpredictable duration - Any A2A task that exceeds the standard timeout ## When to Use **Use long-running tasks when:** - Task execution time is unpredictable or known to exceed 10 minutes - The remote agent is proc
development
Orchestrate cmux terminal panes — split terminals, run parallel processes, read output from other panes, and use the built-in browser. Use when working inside cmux and you need to run a dev server, watch tests, spawn sub-agents, or preview web pages.
testing
Review UI designs and implementations for accessibility, consistency, usability, and visual quality. Use when asked to review a design, audit accessibility, check UI consistency, compare implementation against mockups, or evaluate a user interface.
tools
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a skill from a workflow, or convert documentation into a skill. Also triggers on "make a skill for", "build a skill", "skill for [topic]", "teach the agent to", or "package this workflow as a skill".