From handoff-skill
Save Claude Code session state to a per-epic handoff doc. Writes or updates docs/handoff/<epic-slug>.md so the next session can pick up without context loss. Pass --archive when the whole epic is shipped.
How this skill is triggered — by the user, by Claude, or both
Slash command
/handoff-skill:handoffWhen to use
Trigger when the user says "handoff", "/handoff", "wrap up", "let's wrap up", "let's stop here", "let's stop for today", "save state", "I'm going to /clear", "I want to clear", or "make me a handoff doc". Use --archive only when the whole epic is done.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Save session state to `docs/handoff/<epic-slug>.md`. One file per epic, features accumulate inside it, never overwrites.
Save session state to docs/handoff/<epic-slug>.md. One file per epic, features accumulate inside it, never overwrites.
One file per epic. Features accumulate inside it. Never overwrites. Archive only when the whole epic is done.
An epic is a coherent body of work that spans multiple sessions and multiple features (e.g. "funnel rewire", "billing v2", "auth migration"). The handoff file (docs/handoff/<epic-slug>.md) is the same file across all those sessions — it grows, it doesn't get replaced.
Inside an epic, you'll complete one feature at a time. When a feature is done, you log it into the epic's handoff and move to the next. The epic's handoff file is the running history of the whole campaign.
Section semantics:
Features completed, Session log, Decisions made, Files touched, Tech debt, GotchasCurrent state, Features remaining, Next 3 priorities, Last updatedStatus field: in-progress (default), blocked (something needs user input), or archiving (epic is done, ready for --archive)When the whole epic is done, /cofoundr:handoff --archive moves the file to docs/handoff/archived/<epic-slug>.md.
/handoff is for stopping points, not check-ins.docs/ directory and the user explicitly wants nothing written to disk.Determine the current epic slug.
.claude/tasks/ for an active multi-feature task doc — its slug is a strong hint.funnel-rewire, billing-v2, auth-migration). Use the broader campaign, not the specific feature you just finished."Check if docs/handoff/<epic-slug>.md already exists.
Identify any feature just completed. If the conversation makes clear a feature inside the epic just shipped, log it under Features completed. If not, skip that section's append.
Output a 4-line summary to the user:
/clear then /cofoundr:pickup to continue in a fresh session. (Or /cofoundr:handoff --archive if the whole epic is done.)"Write docs/handoff/<epic-slug>.md using the template below. Replace every <placeholder> with concrete content — no brackets should remain in the output.
# <epic name>
_Status: in-progress_
_Started: <YYYY-MM-DD>_
_Last updated: <YYYY-MM-DD HH:MM>_
## Current state
<2-3 sentences. Where the epic is right now. What's shipped. What's actively being worked on.
This section gets overwritten every handoff.>
## Features completed (in this epic)
- <YYYY-MM-DD> — <feature name> — <one-line outcome / what shipped>
## Features remaining (priority order)
- [ ] <feature name> — <one-line scope, success criterion>
- [ ] <feature name> — <one-line scope, success criterion>
## Next 3 priorities (across features)
1. <task or feature> — success criterion: <how we'll know it's done>
2. <task or feature> — success criterion: <how we'll know it's done>
3. <task or feature> — success criterion: <how we'll know it's done>
## Open questions
<things that need a user decision before continuing.
Empty section "_(none)_" if there aren't any.>
## Session log
- <YYYY-MM-DD HH:MM> — <one-line summary of what this session did>
## Files touched (cumulative)
- `<path>` — <one-line purpose>
## Decisions made (cumulative, with rationale)
- <decision> — <why, especially if it contradicts the spec>
## Tech debt / known issues
- [<low|med|high>] <issue> — <where it lives>
## Gotchas
<weird things only learned by hitting them. Env vars. Race conditions. Library quirks. Empty if none yet.>
When the file already exists:
Read the existing file. Parse its sections.
Overwrite these sections with this session's view:
Current state — replace entirely with current epic statusFeatures remaining — refresh (reorder, drop completed ones, add new ones)Next 3 priorities — refresh based on what's now nextLast updated — set to nowAppend to these sections (never overwrite, never drop):
Features completed — if a feature shipped this session, add it as a dated bulletSession log — add a new bullet: <timestamp> — <summary>Decisions made — add any new decisions (deduplicate by string match)Files touched — add any new files (deduplicate)Tech debt — add new issues (don't delete resolved ones; if resolved, mention it in Current state or the relevant Features completed entry)Gotchas — add new ones (deduplicate)Keep Status accurate. Default to in-progress. If the user said the epic is blocked on something, set to blocked and add a note under Open questions. If the user said the epic is done, set to archiving and suggest --archive.
Show a brief delta to the user so they can see what changed:
Updated docs/handoff/funnel-rewire.md (session #6)
Feature completed: handoff-skill-spinout
Added: 4 decisions, 8 files, 3 gotchas
Refreshed: current state, features remaining, next 3 priorities
--archive)Trigger on any of:
/cofoundr:handoff --archiveOnly run this when the whole epic is shipped — not a single feature inside it. If unsure, ask: "Just confirming — the whole <epic-slug> epic is done, not just one feature inside it? --archive moves the file out of the active list."
--archive doesdocs/handoff/<epic-slug>.md.<timestamp> — ARCHIVED. <summary>.Status to archived._Archived: <YYYY-MM-DD>_ to the header.docs/handoff/archived/ exists (create if not).docs/handoff/<epic-slug>.md to docs/handoff/archived/<epic-slug>.md.Archived: docs/handoff/archived/<epic-slug>.md
Features shipped: <n>
Sessions: <count>
docs/handoff/ directory exists yet. Create it. Don't ask.<slug> is about X. Is this the same epic, or should we use a different slug?"Features completed.--archive but the epic still has open features. Confirm: "There are still features under Features remaining. Archive anyway, or rename the remaining ones first?"Status: archived. Tell user the epic was archived on <date>. Ask if they want to re-open it (move back from archived/) or start a new epic.npx claudepluginhub cofoundr-org/handoff-skill --plugin handoff-skillProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.