This skill should be used when the user asks to "create a handoff", "document context for another AI", "prepare handoff document", or needs to transfer problem context to another AI assistant.
Write a session handoff document: what the session set out to do, where it stands, and what the next session should do. The reader is an AI agent that was not present and knows nothing about this session.
SAFETY: Code and Git are read only. The single file this skill writes is the handoff document itself — never a source file, never a commit.
$ARGUMENTS is the mission for the next session, in the user's own words:
continue with ABC-123, next up: PROJ-42 checkout flowfinish the migration, pick up the failing tests--blocked, --wip, --doneAnything that is not a status flag is the mission text, verbatim. Do not paraphrase it away — it is the user's instruction to the next agent, and it outranks whatever next step you would have inferred.
Determine the session's status, then let it shape the emphasis of the document:
| Status | Signal | Emphasis |
| -------- | -------- | -------- |
| Blocked | An open problem resisted several attempts; the last thing tried failed | Blockers, what was ruled out, what to try next |
| In Progress | Work is moving, nothing is stuck, but the goal is not reached | What is half-done and where the seam is |
| Complete | The session's goal was reached | What was delivered, what it enables next |
An explicit --blocked / --wip / --done flag overrides detection. When signals are mixed — a finished feature
plus one unresolved side issue — choose the status of the main thread and record the rest under
"What Was Not Done".
git status --short), commits made during this
session (git log). This is the most common blind spot on a session switch: what is on disk versus what is
committed.docs/handoffs/YYYY-MM-DD-<slug>.md, creating the directory if needed. The slug comes
from the mission or the session's subject. If the file exists, append -2, -3, … rather than overwriting.Omit any section that would be empty — an empty heading is noise, not structure. Blockers appears only when the
status is Blocked.
# Session Handoff — <topic>
**Date**: YYYY-MM-DD
**Branch**: <branch>
**Status**: Blocked | In Progress | Complete
## Mission for the Next Session
[The user's instruction, verbatim. If none was given: the next step this session leads to, marked as derived.]
## Executive Summary
[3-6 sentences: the goal, what happened, where it stands. Written for someone with zero context.]
## What Was Done
- [Change or finding, with its outcome]
## What Was Not Done
- [Open, deferred, or deliberately out of scope — and which it is]
## Current State
### Git
- Branch, uncommitted changes, commits made this session
### Files Touched
- `path/to/file` — why it was touched
## Decisions & Assumptions
- **Decision**: [what was chosen] — [why]
- **Assumption**: [what is being taken for granted] — [not yet verified]
## Blockers
[Only when Blocked: the specific error, what was attempted, why each attempt failed]
## Suggested Next Steps
1. [Concrete first action for the next session]
## Environment & Constraints
[Languages, frameworks, test and build commands, project conventions the next agent must follow]
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer