From agentops
Creates structured session handoff documents that capture working state for continuation or context rehydration. Useful before clearing context or ending a session.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentops:handoffThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Quick Ref:** Create structured handoff for session continuation. Output: `.agents/handoff/YYYY-MM-DD-<topic>.md` + continuation prompt.
Quick Ref: Create structured handoff for session continuation. Output:
.agents/handoff/YYYY-MM-DD-<topic>.md+ continuation prompt.
YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.
Create a handoff document that enables seamless session continuation.
Handoff is not only an end-of-session ritual — it is the write-side of the
handoff → clear → rehydrate loop that keeps a long-running agent (or a peer
orchestrator) healthy against context bloat. The natural pre-/clear step is to
hand off: capture the working state to durable state first, then clear, then
rehydrate from the artifact. Handoff before clear, always — clearing without
a current handoff loses the thread.
For that to be safe, the handoff must be complete enough to rehydrate the lane
to exactly where it was: the active goal, the claimed bead(s), held file
reservations, the peer/comms topology, and a pointer to the working thread. A
thin handoff makes clear destructive; a complete one makes the agent
disposable-yet-continuous (the system-not-DAG property at the orchestrator
level). The structured artifact is ao handoff → .agents/handoff/ (JSON;
--no-kill writes without the tmux restart).
A handoff is a first-class node in the compounding artifact graph, not a
throwaway note. It feeds the llm-wiki / knowledge corpus, gets mined and
measured (the artifact already carries consumed / consumed_by hooks), and
each cycle should make the next handoff better. Context, code, and markdown are
all artifacts to be fed back. Write handoffs dense and honest — they are evidence
the flywheel compounds on, not paperwork.
Given /handoff [topic]:
mkdir -p .agents/handoff
If topic provided: Use it as the handoff identifier.
If no topic: Derive from recent activity:
# Recent commits
git log --oneline -5 --format="%s" | head -1
# Check current issue
bd current 2>/dev/null | head -1
# Check ratchet state
ao ratchet status 2>/dev/null | head -3
Use the most descriptive source as the topic slug.
Topic slug format: 2-4 words, lowercase, hyphen-separated (e.g., auth-refactor, api-validation).
Fallback: If no good topic found, use session-$(date +%H%M) (e.g., session-1430).
Review what was done this session:
# Recent commits this session (last 2 hours)
git log --oneline --since="2 hours ago" 2>/dev/null
# Recent file changes
git diff --stat HEAD~5 2>/dev/null | head -20
# Research produced
ls -lt .agents/research/*.md 2>/dev/null | head -3
# Plans created
ls -lt .agents/plans/*.md 2>/dev/null | head -3
# Issues closed
bd list --status closed --since "2 hours ago" 2>/dev/null | head -5
Determine where we stopped:
Check for in-progress work:
bd list --status in_progress 2>/dev/null | head -5
List files the next session should read first:
# Recently modified
git diff --name-only HEAD~5 2>/dev/null | head -10
# Key artifacts
ls .agents/research/*.md .agents/plans/*.md 2>/dev/null | tail -5
Write to: .agents/handoff/YYYY-MM-DD-<topic-slug>.md (use date +%Y-%m-%d)
# Handoff: <Topic>
**Date:** YYYY-MM-DDTHH:MM:SSZ
**Session:** <brief session description>
**Status:** <Paused mid-task | Between tasks | Blocked on X>
---
## What We Accomplished This Session
### 1. <Accomplishment 1>
<Brief description with file:line citations>
**Files changed:**
- `path/to/file.py` - Description
### 2. <Accomplishment 2>
...
---
## Where We Paused
<Clear description of pause point>
**Last action:** <what was just done>
**Next action:** <what should happen next>
**Blockers (if any):** <anything blocking progress>
---
## Context to Gather for Next Session
1. <Context item 1> - <why needed>
2. <Context item 2> - <why needed>
---
## Questions to Answer
1. <Open question needing decision>
2. <Clarification needed>
---
## Files to Read
path/to/critical-file.py .agents/research/YYYY-MM-DD-topic.md
path/to/related-file.py
### Step 7: Write Continuation Prompt
**Write to:** `.agents/handoff/YYYY-MM-DD-<topic-slug>-prompt.md` (use `date +%Y-%m-%d`)
```markdown
# Continuation Prompt for New Session
Copy/paste this to start the next session:
---
## Context
<2-3 sentences describing the work and where we paused>
## Read First
1. The handoff doc: `.agents/handoff/YYYY-MM-DD-<topic-slug>.md`
2. <Other critical files>
## What I Need Help With
<Clear statement of what the next session should accomplish>
## Key Files
```
<Suggested skill to invoke, e.g., "Use /implement to continue">
### Step 8: Extract Learnings (Optional)
If significant learnings occurred this session, also run post-mortem:
```bash
# Check if post-mortem skill should be invoked
# (if >3 commits or major decisions made)
git log --oneline --since="2 hours ago" 2>/dev/null | wc -l
If ≥3 commits: Suggest running /post-mortem --quick to extract learnings.
If <3 commits: Handoff alone is sufficient; learnings are likely minimal.
Tell the user:
/post-mortem --quickOutput completion marker:
<promise>DONE</promise>
If no context to capture (no commits, no changes):
<promise>EMPTY</promise>
Reason: No session activity found to hand off
Handoff created:
.agents/handoff/20260131T143000Z-auth-refactor.md
.agents/handoff/20260131T143000Z-auth-refactor-prompt.md
Session captured:
- 5 commits, 12 files changed
- Paused: mid-implementation of OAuth flow
- Next: Complete token refresh logic
To continue: Copy the prompt from auth-refactor-prompt.md
<promise>DONE</promise>
Handoff captures state for continuation. Post-mortem captures learnings for the flywheel (full knowledge lifecycle).
For a clean session end:
/handoff # Capture state for continuation
/post-mortem --quick # Extract learnings for future
Both should be run when ending a productive session.
If ao CLI not available:
ao ratchet status check in Step 2.agents/handoff/User says: /handoff (after working on OAuth flow for 2 hours, need to stop)
What happens:
bd list (issue #42 still open)/post-mortem --quick to extract learningsResult: Handoff captures state, continuation prompt ready, post-mortem suggested.
User says: /handoff (just closed issue #40, about to start #41 next session)
What happens:
/implement #41 suggestionResult: Handoff captures clean boundary, continuation is simple.
User says: /handoff (no topic provided, agent derives from commits)
What happens:
Result: Topic auto-derived from git history, no user input needed.
| Problem | Cause | Solution |
|---|---|---|
| "No session activity found to hand off" | No commits, no file changes detected | Expected for idle sessions. Nothing to hand off. Start new work or skip handoff. |
| Handoff files not written | .agents/handoff/ directory does not exist or not writable | Run mkdir -p .agents/handoff or check directory permissions |
| Topic slug is generic "session-1430" | No descriptive commits or issues to derive topic from | Provide explicit topic: /handoff auth-refactor for better naming |
| Continuation prompt missing key context | Recent files or artifacts not listed in handoff | Manually add missing files to handoff document or re-run with explicit topic |
| Post-mortem suggested but no learnings | Agent sees ≥3 commits and auto-suggests /post-mortem --quick | Run /post-mortem --quick or skip if commits are trivial (agent can't judge learning quality, only commit count) |
skills/post-mortem/SKILL.md — Full validation + knowledge lifecycle (council + extraction + activation + retirement); --quick quick-captures a single learning (folded the retired /retro)npx claudepluginhub boshu2/agentops --plugin agentopsProduces a compact handoff document that transfers context, state, and next objective without copying source material. Use when ending a session or passing work to another agent.
Captures full session context into a handoff document so a fresh agent can resume work with zero prior context. Write a single actionable sentence for the next agent.
Produces a handoff document so a fresh agent can continue work from the current session. Handles both mid-arc continuation and backlog handoffs.