From superpowers-ruby
Captures session state into a structured handoff document before switching context or ending a session, so future sessions can resume without losing context.
How this skill is triggered — by the user, by Claude, or both
Slash command
/superpowers-ruby:handoffThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Capture the current session's state into a structured handoff document so a future session (or a different agent) can resume without losing context. The handoff document records goals, decisions, progress, and next steps.
Capture the current session's state into a structured handoff document so a future session (or a different agent) can resume without losing context. The handoff document records goals, decisions, progress, and next steps.
Core principle: Capture what the next session needs to know — not everything that happened.
Announce at start: "I'm using the handoff skill to capture session state."
Don't use when:
superpowers-ruby:finishing-a-development-branch instead)superpowers-ruby:compound instead)/superpowers-ruby:handoff # Create a full handoff document
/superpowers-ruby:handoff-resume # Resume from the latest handoff
/superpowers-ruby:handoff-list # List available handoffs
Output location: docs/handoffs/YYYY-MM-DD-<topic>.md
Archive location: docs/handoffs/_archive/
Run these commands to collect file-level state:
# Modified files
git diff --name-only
git status --porcelain
# Detect plan files
ls .claude/plans/*.md 2>/dev/null
ls docs/superpowers/specs/*.md 2>/dev/null
ls docs/superpowers/plans/*.md 2>/dev/null
Derive a short topic slug from the current work context. Use the branch name as a starting point, stripped of prefixes like feature/, fix/, lg/. If no branch context, ask the user or derive from the goal.
Topic slug guidelines:
auth-jwt-migration not fix-auth or JIRA-1234docs/handoffs/stimulus-form-validation, stripe-webhook-retry-logicbugfix, refactor, updates — these are meaningless when you have 10 handoffs in the directorydocs/handoffs/ — consistency beats clevernessCreate a file at docs/handoffs/YYYY-MM-DD-<topic>.md with this structure:
---
created: <ISO 8601 UTC timestamp>
branch: <current git branch>
trigger: manual
restored: false
topic: <topic slug>
---
# Handoff: <descriptive title>
## Goal
<What we're working on and why — 2-3 sentences max>
## Current State
<What's done, what's in progress, what's blocked — bullet list>
## Key Decisions
<Important choices made and their rationale — bullet list with "decision — rationale" format>
## Modified Files
<From git status/diff — bullet list of file paths>
## Failed Approaches
<What was tried and didn't work, so the next session doesn't repeat it — bullet list>
## Files to Read
<Plan files, specs, design docs the next session should read first — bullet list with backtick paths>
## Next Steps
<Concrete actions to take next — numbered list, most important first>
## Open Questions
<Unresolved uncertainties or decisions that need user input — bullet list>
Unlike the hook-triggered version (which leaves <!-- to be enriched by LLM --> markers), the manual skill fills every section from conversation context:
Handoff saved to `docs/handoffs/<filename>.md`
Summary:
- Goal: <one-line summary>
- Next steps: <count> items remaining
- Files to read: <count> documents
This skill also runs automatically via hooks when context compaction occurs:
PreCompact hook runs hooks/handoff-create before compactionexperimental.session.compacting event triggers the same scriptThe hook-generated handoff captures mechanical state only (modified files, plan files). After compaction, the PostCompact hook (or session.compacted event) restores the handoff as additionalContext and instructs the agent to fill in the LLM-dependent sections from compacted context.
Handoff documents are plain markdown files in docs/handoffs/ — any agent or tool that can read the filesystem can resume from them. This makes handoffs work across agent boundaries, not just within the same session.
Use cases:
/superpowers-ruby:handoff-resume to pick up where Claude Code left off.docs/handoffs/ to understand what the agent was working on, then continues manually or starts a new session with context.handoff-resume to continue.Why this works: The handoff document is the contract. It doesn't depend on any specific agent's memory, context window, or session state. Any agent that can read markdown and follow instructions can resume from it.
3plugins reuse this skill
First indexed Jul 12, 2026
npx claudepluginhub lucianghinda/superpowers-ruby --plugin superpowers-rubyProduces 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.
Generates a portable markdown handoff document capturing session state, decisions, and next steps for continuation by another agent or session.
Produces a handoff document so a fresh agent can continue work from the current session. Handles both mid-arc continuation and backlog handoffs.