pi-heartbeat
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
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
$ npx -y skills add espennilsen/pi --skill handoff --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/handoffContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: handoff description: > 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"
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>
<What the user is trying to accomplish — the big picture.>
<Brief project context the new agent needs. Tech stack, relevant architecture, anything non-obvious about the codebase.>
<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:
1. <Next concrete step — this is what the new agent should do first> 2. <Subsequent step> 3. ...
````
---
## Guidelines
### Be Specific, Not Vague
- ❌ "We updated the config"
- ✅ "Added `pi-heartbeat` settings block to `settings.json.example` with all 6 fields"
### Include Dirty File Details
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.
### State the Next Action Clearly
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`".
### Keep It Proportional
- Quick fix session → 10-15 line handoff
- Multi-file feature session → 30-50 line handoff
- Major refactor → up to 80 lines, but no more
### Don't Include
- Full file contents (the agent can read them)
- Conversation transcript or reasoning history
- Obvious project facts the agent will discover from `package.json` etc.
- Emotional context ("we struggled with this" — just state the facts)
---
## Output
1. Present the handoff prompt inside a single fenced code block so it's easy to copy
2. If there are uncommitted changes, mention this outside the code block as a reminder
3. Optionally suggest saving the prompt to a file: `pbcopy` or write to `.handoff.md`This repository is my Pi coding agent home directory. I keep it under version control and symlink it to ~/.pi/agent so Pi loads configuration, extensions, skills, and runtime state from here.
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Manage persistent memory across sessions. Use when asked to remember, recall, forget, or review what was stored. Covers long-term…
Track and manage projects with git status via dashboard and tool.
Delegate tasks to specialized subagents for parallel or sequential execution.
Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold…