agentsclimarketplace

Handoff

Skill makieali/claude-code-engineer/skills/handoff

Run Claude Code as a teammate that owns work end to end. A maintained CLAUDE.md (works as AGENTS.md) plus a plan/execute/review skill pipeline with external verification, adversarial review, and structurally safe parallel execution. Dated changelog, updated when model behaviour changes.

Install
npx -y skills add makieali/claude-code-engineer --skill 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

  • 13 days oldThe repository was created 13 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 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

Writes a session handoff to disk before a context reset — what's done, what changed, what was decided, what was ruled out, and the single next step — then tells you whether to /clear or /compact. Use when a session is getting long or slow, before compacting, at the end of a work block, or when handing work to another person or session. Trigger: "write a handoff", "save progress", "save state", "session is getting slow", "before I compact", "wrap up", "I'm stopping here".

SKILL.md

5.1 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Handoff — Write State Down Before You Lose It

Quality degrades as context grows, well before the window is full, and worst for information in the middle of a long session. The model summarising at the end is already impaired by the thing you are trying to escape.

So write the handoff deliberately, while judgment is intact — not when auto-compact fires.

HARD GATE: this skill writes one file. It does not change code, run tests, or commit.

The loop

/handoff  →  writes plans/handoffs/<date>-<slug>.md
          →  tells you: /clear or /compact
   you    →  run it
/resume-work → reads the newest handoff, you carry on

You run the reset, not this skill. /clear and /compact are REPL commands with no tool behind them — no skill can invoke them. Anything claiming otherwise is guessing.


Step 1: Gather state

~/.claude/skills/handoff/scripts/gather-state.sh

Reads branch, status, diff stat, staged stat, recent log, and files touched. If the script is missing, run the equivalents by hand — but prefer the script; it keeps its own output out of context.

Step 2: Write the file

Path is computed in bash, never assembled in the prompt — a title you pass through is untrusted input and the allowlist is what keeps it out of the shell.

~/.claude/skills/handoff/scripts/handoff-path.sh "<title>"    # prints the safe path; use it verbatim

Files are append-only. Never overwrite an existing handoff, never delete one. Each save is a new file, and the sequence is the record.

Template:

---
branch: <branch>
date: <ISO 8601>
status: in-progress | blocked | complete
files_touched:
  - <path>
---

# Handoff — <title> — <date>

## Where things stand
One paragraph. What is done, what is half-done.

## What changed
Files, commands run, config values set. Not "fixed the search".

## Decisions and why
The reasoning, not just the outcome.

## Ruled out
Approaches tried and rejected, and why.

## Blockers
Open questions, decisions needed from a human.

## Next step
One action, specific enough to start on cold.

Ruled out is the section that matters

It is the one automatic summaries reliably lose, and its absence is exactly why a fresh session cheerfully re-tries everything that already failed. If you write nothing else well, write this well. An empty Ruled out on a session that hit dead ends is a bug in the handoff, not a clean run.

Next step must be startable cold

"Continue the refactor" is not a next step. "Add the tenant_id filter to app/api/search.py:88, then run pytest tests/test_search.py" is.


Step 3: Tell the user which reset to run

Pick from what happens next, and say which and why:

Next workCommandWhy
Same thread, context is just noisy/compactKeeps continuity; drops tool output and dead ends
New task, or the session is tangled/clearA fresh window plus the handoff beats a summary of a mess
Stopping for the day/clearTomorrow's session starts from the file, not from a stale summary

Rule of thumb: compact when the thread still matters, clear when it doesn't. If you have already compacted once in this session and it is slow again, clear — a summary of a summary is where detail goes to die.

Then print:

HANDOFF WRITTEN
  File:    plans/handoffs/<file>
  Branch:  <branch>
  Files:   <n> touched
  Status:  <status>

  → Run /clear (or /compact), then /resume-work

Rules

  • Infer, don't interrogate. Use git state and the conversation. Ask only if the title genuinely can't be inferred.
  • Never modify code. If work is uncommitted, say so in What changed and leave it.
  • Record failures honestly. A handoff that only lists wins sends the next session into the same wall.
  • Always include the branch. Cross-branch resume depends on it.
  • Don't summarise tool output. Point at the file or the command. The next session can re-run it more cheaply than it can read your paraphrase.

When not to use this

Short sessions that ended cleanly with everything committed. git log is already the handoff. Writing one for a two-commit session is ceremony.

Related

  • /resume-work — reads the newest handoff and restores working context
  • Long-running plans have their own state in plans/{slug}/state/ — this is for the session narrative around them, not a replacement

<sub>Script paths above assume a user-level install (~/.claude/skills/). Installed as a plugin or per-project, the scripts still sit beside this file — swap the prefix for ${CLAUDE_PLUGIN_ROOT}/skills/handoff or .claude/skills/handoff respectively.</sub>

What ships with it: 2 files

2.6 KB alongside SKILL.md, 2 of them executable

scripts/

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.