agentsclimarketplace

Claude handoff

Skill iam25th1/claude-handoff

A Claude skill that captures the entire current chat as a structured handoff document, ready to paste into Codex, Cursor, or any other IDE-based AI coding agent.

Install
npx -y skills add iam25th1/claude-handoff

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

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 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

Capture the entire current chat as a structured handoff document for the user to paste into Codex, Cursor, or another IDE-based AI coding agent. Use this skill whenever the user types `/handoff`, `/export-context`, `/brief codex`, `/give to cursor`, `/dump`, or says anything like "package this for codex", "export this chat", "make a handoff doc", "send this to cursor", "i wanna take this to another model", or otherwise indicates they want to continue the work elsewhere. Trigger this even when the user's phrasing is loose -- if they're clearly trying to move the session's context to another tool, use this skill. Produces two files: a polished `.md` and a flat `.txt`, both containing every meaningful detail from the chat with discarded approaches explicitly labeled so the next model does not repeat rejected paths.

SKILL.md

8.9 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

Handoff

Generate a complete, structured handoff document from the current chat session, optimized for consumption by Codex, Cursor, or other IDE-based AI coding agents.

The output is two files with identical content in different formats:

  • handoff-{project}-{YYYY-MM-DD}.md -- markdown with headings, code fences, tables
  • handoff-{project}-{YYYY-MM-DD}.txt -- flat text with ASCII section dividers

Save both to /mnt/user-data/outputs/ and present them with present_files.

Core principle

This is lossless distillation, not transcription. Every meaningful detail from the chat survives, but reorganized so the next model can act immediately. The biggest single value-add is explicitly labeling discarded approaches with the reason they were rejected, so the next model does not re-suggest them.

Do not paraphrase technical details. File paths, function names, error messages, version numbers, command strings, and config values must appear verbatim. Prose around them can be tightened.

When to run

One-shot. Do not ask the user clarifying questions. Infer the project name from the chat (repo name, app name, or main subject). If genuinely ambiguous, use session as the project slug.

What to extract from the chat

Walk the entire conversation from start to current turn. Pull out:

  1. Project identity -- name, repo URL, local path, deployment target, stack, key dependencies
  2. The goal of the session -- what the user was trying to accomplish
  3. Decisions made -- each one with the reasoning, and any alternatives that were considered and rejected
  4. All code blocks -- both final and discarded, clearly labeled (see Code Handling below)
  5. Errors hit and their fixes -- error message verbatim, root cause, solution
  6. Environment quirks and gotchas -- anything non-obvious about the setup, library versions, OS-specific behavior, config requirements
  7. File paths touched -- every file mentioned, created, or edited, with one-line purpose
  8. Commands run or planned -- shell commands, git operations, deploy steps
  9. User preferences expressed -- naming conventions, style rules, things to avoid
  10. Open questions -- anything unresolved at the moment of handoff
  11. Next steps -- ordered, imperative, actionable

Do not omit detail because it seems minor. A throwaway comment like "we found out port 465 needs secure: true" is exactly the kind of thing the next model needs.

Code handling

Include every code block from the chat. Label each one with one of these statuses:

  • [FINAL] -- the version that was accepted and is currently in use
  • [SUPERSEDED] -- earlier version that was replaced; include the reason it was replaced
  • [REJECTED] -- a version that was tried and explicitly thrown out; include the reason
  • [DRAFT] -- proposed but never finalized

For [SUPERSEDED] and [REJECTED] blocks, the rejection reason is mandatory. This is the whole point. Without it, the next model will re-suggest the same wrong thing.

Never abbreviate or truncate [FINAL] code blocks. Emit the full file contents verbatim. No [... rest of file ...], no [... see repo for full content ...], no [... truncated ...]. The receiving model has zero file system access to your environment, so a pointer to a path it cannot reach is useless. If the file is 800 lines, output 800 lines. The same applies to [SUPERSEDED] blocks: the whole reason for including a superseded version is so the next model can see exactly what was changed and why. The only blocks that may be abbreviated are [REJECTED] blocks where the rejection happened at the concept level and no actual code was ever written -- in that case write (no code; behavioral choice) or similar and explain in prose.

Each code block must include the file path it belongs to (or "no file -- one-off snippet") and the language tag.

Output structure

Use this exact section order in both files. Omit a section only if it would be empty.

# Session Handoff: {Project Name}

> Generated {ISO timestamp} for handoff to Codex / Cursor.
> Source: chat session with Claude.

## TL;DR

{3-5 bullets. What was being built, where we landed, what is next.}

## Project Context

- **Name:** ...
- **Repo:** ...
- **Local path:** ...
- **Stack:** ...
- **Deployment:** ...
- **Key deps:** ...
- **Branch / working state:** ...

## Session Goal

{One paragraph. What the user came in wanting to accomplish.}

## Timeline

{Chronological, tight. Each item: what happened + why + outcome. One or two lines each. This is the narrative spine.}

1. ...
2. ...

## Decisions

| Decision | Rationale | Alternatives Rejected |
|---|---|---|
| ... | ... | ... |

## Constraints, Gotchas, and Hard Rules

{The non-obvious stuff. Environment quirks, library version pins, "do not do X" rules from the user, platform-specific behavior. Each as a bullet.}

- ...

## Files Touched

| Path | Purpose | Status |
|---|---|---|
| ... | ... | created / modified / deleted |

## Code Artifacts

### [FINAL] {file path}
```{lang}
{code}

[SUPERSEDED] {file path}

Replaced because: {reason}

{code}

[REJECTED] {description}

Rejected because: {reason}

{code}

{... repeat for every code block in the chat ...}

Errors and Fixes

ErrorRoot CauseFix
.........

Commands

{Shell commands, git operations, deploy steps. Verbatim. Group by purpose.}

# Local dev
...

# Deploy
...

User Preferences and Style Rules

{Anything the user expressed about how they want code, naming, tone, formatting.}

  • ...

Open Threads

{Unresolved questions, known bugs, deferred work.}

  • ...

Next Steps

{Ordered, imperative. The next model should be able to start executing from item 1.}

  1. ...
  2. ...

Raw Notes

{Anything that did not fit cleanly above but might matter. Dump zone. Do not omit detail to keep this section short.}


## TXT format adaptation

The `.txt` version follows the same structure but with these substitutions:

- `# Heading` becomes `=== HEADING ===` (uppercase, padded with `=`)
- `## Subheading` becomes `--- Subheading ---`
- Markdown tables become aligned plaintext tables with `|` separators and `-` divider rows
- Code fences become indented blocks (4 spaces) with a `--- CODE: {file path} [{status}] ---` header line and a `--- END ---` footer line
- Bullets use `*` instead of `-`
- Bold/italic markdown is stripped

## Filename convention

handoff-{project-slug}-{YYYY-MM-DD}.md handoff-{project-slug}-{YYYY-MM-DD}.txt


Project slug is lowercase, hyphenated, no spaces. If the chat has multiple handoffs in one day, append `-1`, `-2`, etc.

## Final step

After writing both files to `/mnt/user-data/outputs/`, call `present_files` with the `.md` first (it renders nicer in the chat preview) followed by the `.txt`. Add a one-line summary above the file presentation: how many code blocks were captured, how many decisions logged, and what the recommended first prompt to Codex/Cursor is.

Example summary:

> Captured 14 code blocks (9 FINAL, 3 SUPERSEDED, 2 REJECTED), 6 decisions, 4 errors with fixes. Recommended first prompt for Codex: "Read this handoff doc, then continue from Next Step 1."

## Hard rules

- Never omit detail because it seems redundant. The next model has zero context.
- Never paraphrase identifiers, paths, or error strings. Verbatim only.
- Never skip the rejection reason on `[SUPERSEDED]` or `[REJECTED]` code blocks.
- Never abbreviate, truncate, or summarize `[FINAL]` code blocks. Emit the full file contents verbatim, no matter how long. Phrases like `[... rest of file ...]`, `[... see repo ...]`, or `[... full content ...]` are forbidden inside FINAL blocks. The receiving model needs the actual bytes, not a pointer. The same rule applies to `[SUPERSEDED]` blocks where the full prior version is the entire point of including it.
- Never use em dashes anywhere in the output. Use double hyphens or commas instead.
- Never invent details that were not in the chat. If a section has no content, write `_(none recorded in this session)_` rather than fabricating.
- Do not ask the user any questions. One-shot only.

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

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

  • run the full test suite after integrating changesin 53 of 742, across 20 files
  • reference existing artifacts by path or URLin 52 of 742, across 22 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 15 files
  • redact sensitive informationin 41 of 742, across 11 files
  • save to the temporary directory of the operating systemin 39 of 742, across 9 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

  • extract all meaningful details from chat
  • label discarded code approaches with rejection reasons
  • keep identifiers, paths, and error strings verbatim
  • run as a one-shot operation
  • label every code block with a status
  • include full verbatim contents for FINAL code blocks

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 328,083. 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.