agentsclimarketplace

Handoff pro

Skill Rishiidev/handoff-pro

🀝 A Claude Skill that compresses your session into a structured handoff doc and auto-resumes it later β€” works across Claude.ai, Cowork, and Claude Code.

Install
npx -y skills add Rishiidev/handoff-pro

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Eliminates starting-from-zero when context fills up or a session ends. Two modes β€” SAVE compresses the current session into a structured handoff document; LOAD reads a previous handoff and resumes with full context as if the conversation never ended. Invoke immediately when the user says any of: "handoff", "create handoff", "save handoff", "load handoff", "load latest handoff", "resume", "load session", "save session", "pick up where we left off", "continue from last session", or when the context window is visibly filling up. In Cowork and Claude Code, loading is fully automatic β€” no copy-paste needed. Works across Claude.ai, Cowork, and Claude Code.

SKILL.md

8.0 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it

Handoff Pro

Preserves full session context between conversations so the next session feels like a continuation β€” not a restart. The previous session's decisions, constraints, vocabulary, failed attempts, and exact stopping point are all restored before any new work begins.

Two modes:

  • SAVE β†’ compress current session β†’ write or display handoff doc
  • LOAD β†’ read handoff doc β†’ internalize context β†’ brief user β†’ resume

Environment Detection

Before either mode, detect the environment once and adapt I/O accordingly.

SignalEnvironment
Filesystem + project folder accessibleCowork
bash_tool availableClaude Code
No filesystem accessClaude.ai web

Storage paths:

  • Cowork: {project_root}/.handoffs/ (preferred) or ~/.claude/handoffs/ (global fallback)
  • Claude Code: .claude/handoffs/ in project root, or ~/.claude/handoffs/ globally
  • Claude.ai: Artifact only β€” user copies and pastes into next session

Filenames: YYYY-MM-DD-HHMMSS-{slug}.md Slug = 2–3 word session summary, auto-generated (e.g. bunchshop-pricing-deck, ghosts-pwa-auth)


SAVE Mode

Triggered by: "handoff", "create handoff", "save handoff", "save", or context window running visibly long.

Step 1 β€” Extract the 12 Elements

Read the full conversation and extract every field below. Do not skip or guess β€” missing fields are exactly why handoffs feel incomplete in the next session.

1.  GOAL STACK        The surface task + the actual underlying outcome the user needs
2.  LAST CURSOR       The exact thought / line / file / step at moment of handoff
3.  DECISIONS         Every non-trivial decision made, with rationale
4.  FAILED ATTEMPTS   What was tried and abandoned β€” prevents re-running dead ends
5.  CONSTRAINTS       Hard (non-negotiable) + soft (preferences discovered mid-session)
6.  OPEN THREADS      Things noted but not yet addressed, ordered by priority
7.  ARTIFACT GRAPH    Every file, doc, design, URL, code in play β€” with status
8.  ENVIRONMENT       Active branch / MCP / tool / design ID / file handles / skills
9.  VOCABULARY        Shorthand, nicknames, and abbreviations used this session
10. ASSUMPTIONS       Things operated on as true but never explicitly confirmed
11. URGENCY           Deadlines or pressure that affects priority order
12. META CONTEXT      Why this work matters β€” what's at stake

Critical: LAST CURSOR (#2) is the most important field. It is not a summary β€” it is the exact thought mid-action. Example of wrong vs right:

WRONG:  "We were working on the pricing slide."
RIGHT:  "Mid-row 3 of the pricing table, Farmley 100g column.
         Next action: find Farmley 100g SKU price, fill cell,
         then complete rows 4-5 before adding footnote."

Step 2 β€” Generate the Handoff Document

Use compressed format β€” tables and structured fields, not prose. See references/handoff-template.md for the exact document structure.

Rule: every field should carry the minimum tokens needed to reconstruct full context. If you find yourself writing paragraphs, compress them.

Step 3 β€” Save or Display

Cowork / Claude Code:

  1. Create handoffs directory if it doesn't exist
  2. Write file: {handoffs_dir}/YYYY-MM-DD-HHMMSS-{slug}.md
  3. Update index: append a new row to {handoffs_dir}/index.md
  4. Confirm path to user

Claude.ai:

  1. Generate the document as a markdown artifact
  2. Add this note at the bottom of the artifact:

    Save this document to Notion, Apple Notes, or any file. To resume: paste it at the start of your next session and say "load handoff".

Step 4 β€” Confirm Save

Report back concisely:

  • File path (or "saved as artifact")
  • Slug
  • The single most critical next action from this session

LOAD Mode

Triggered by: "load handoff", "load latest handoff", "resume", "load", "pick up where we left off", "continue from last session", or when a handoff document is pasted at the start of a conversation.

Step 1 β€” Find the Handoff

Cowork / Claude Code β€” fully automatic, zero prompting:

Any load trigger without a specific slug = find and read the most recent handoff immediately. Do not ask. Do not show a list. Just load it.

Priority order:
1. {project_root}/.handoffs/   ← check here first (project-scoped)
2. ~/.claude/handoffs/         ← fall back to global

Within the folder: sort files by timestamp prefix (YYYY-MM-DD-HHMMSS-*)
β†’ pick the latest, read it, proceed.

Only show the index list when the user explicitly asks β€” e.g. "show my handoffs" or "load handoff [specific-slug]".

Claude.ai: The handoff document is pasted directly in the conversation. Read it from there.

Step 2 β€” Parse and Internalize

Read all 12 fields silently. Do not output anything yet.

Flag staleness before resuming:

  • Doc older than 7 days β†’ warn the user
  • Referenced files/URLs β†’ check existence if filesystem is accessible
  • Assumptions β†’ mark for re-validation if context has likely shifted

Step 3 β€” Brief the User

Output one compact brief β€” not a dump of the entire document:

RESUMED: {slug} β€” {date}
────────────────────────────────────────
WHERE WE LEFT OFF:
{LAST CURSOR field β€” 2-3 sentences max}

FIRST ACTION:
{Top item from OPEN THREADS or the next logical step}

WATCHOUTS:
{Stale items, unvalidated assumptions, or blockers}
────────────────────────────────────────
Ready. Say "go" to continue or give me a new direction.

Step 4 β€” Resume

Work as if the conversation never ended.

  • Apply VOCABULARY silently β€” do not re-explain what terms mean, just use them
  • Apply CONSTRAINTS silently β€” they are now operating rules, not things to announce
  • Apply ASSUMPTIONS β€” treat them as working truth unless the user corrects them
  • Respect DECISIONS β€” do not re-open settled choices without a reason from the user

Do not narrate the handoff back. The user already knows the context. You are the one who needed the briefing. Act like you were there.


Handoff Index

Maintained at {handoffs_dir}/index.md. Never delete entries β€” history is the point.

# Handoff Index

| # | Date | Slug | Last Cursor (brief) | Status |
|---|------|------|---------------------|--------|
| 001 | 2025-01-15 14:32 | bunchshop-pricing-deck | Mid slide 6 pricing row, need Farmley 100g price | βœ“ resumed |
| 002 | 2025-01-16 09:10 | ghosts-pwa-dark-theme | localStorage snapshot bug, line 142 | ⏳ active |
| 003 | 2025-01-20 11:05 | api-rate-limiter | Drafted Redis approach, rejected β€” see FAILED | πŸ“¦ archived |

Status values: ⏳ active β†’ βœ“ resumed β†’ πŸ“¦ archived

Mark as βœ“ resumed when loaded. Mark as πŸ“¦ archived when the work is fully complete or superseded.


Proactive Triggering

If the conversation is long and no handoff has been saved, suggest it naturally:

"This session has covered a lot of ground. Want me to create a handoff before we go further? Just say 'create handoff' β€” takes 30 seconds."

Suggest this after ~25 back-and-forth exchanges or when you detect context pressure. Do not wait for the user to notice.


Reference Files

  • references/handoff-template.md β€” exact document template with field-by-field guidance

What ships with it: 5 files

14.9 KB alongside SKILL.md

assets/

references/

Gives 0 of the 12 instructions most agent orchestration skills give in ~1.8k tokens

Counted across 742 of the 995 authors here whose files we hold, read 2026-08-07

  • Reference existing artifacts by path or URLin 53 of 742, across 25 files
  • Run the full test suite after integrating changesin 51 of 742, across 19 files
  • Dispatch one agent per independent problem domainin 50 of 742, across 17 files
  • Verify fixes do not conflictin 45 of 742, across 13 files
  • Include a suggested skills section in the documentin 45 of 742, across 17 files
  • Redact sensitive informationin 41 of 742, across 11 files
  • Save to the temporary directory of the operating systemin 39 of 742, across 10 files
  • Tailor the document to user-provided focus argumentsin 39 of 742, across 9 files
  • Spot check agent changes for systematic errorsin 34 of 742, across 7 files
  • Write a handoff document summarising the current conversationin 31 of 742, across 6 files
  • Assign each agent a specific scopein 23 of 742, across 8 files
  • Provide specific scope and clear goalin 23 of 742, across 5 files

Said here and by no other author read

  • detect the environment before executing either mode
  • extract all twelve context elements from the conversation
  • record the exact current thought and next action
  • compress context into structured fields instead of prose
  • append a row to the handoff index file
  • load the most recent handoff automatically without asking

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.