jazzyalex / handover
Use when wrapping up or capturing the current state of a coding session — writes a short, dated entry to the repo's RepoHandover.md so a future agent or you can resume without grepping archived sessions. Triggers on "handover", "hand off", "write handover", "capture state", "checkpoint this session".
Handover
Append a short, dated entry to RepoHandover.md at the repo root (newest-first)
capturing where things stand, so you or a future agent can resume. Keep it lean — a handful
of lines, no git audit. The user already opted in by running /handover, so **draft and
write it directly — do NOT ask for approval or show a draft to confirm.** Just write, report
one line, and stop. Never commit.
Procedure
Draft from the conversation — do NOT run a git audit. You already know what happened
this session. At most, run a singlegit branch --show-currentif you want the branch in
the header. Do not rungit status/log/diffsweeps — that's the verbosity we removed.Compose a short entry in this format. Omit any line/section that would be empty.
Aim for ~8–15 lines total:## <YYYY-MM-DD HH:MM> · <slug> · <title>
status: in-progress # in-progress | blocked | doneState: <one sentence — where things stand right now>
Decided / don't redo: <only if there is something>
- <a decision made, or a dead-end already tried>
Key files: <only if it helps resume>
path— <why it matters>
Next:
- <the next concrete step>
- <...>
slug= the branch or plan/spec name (keep it stable — supersede-matching uses it).- Timestamp:
date +'%Y-%m-%d %H:%M'.
Write it immediately — no approval prompt.
- New file → create
RepoHandover.mdwith this entry as its only content. Existing file → prepend the entry above the current top entry (blank line between).
Don't touch older entries except the silent supersede below.Ensure the repo's
CLAUDE.mdcontains this pointer (add it once, creating a shortCLAUDE.mdif absent):> Before starting work, read the newest entry in
RepoHandover.md.Silent supersede: if an older entry has the same
slugand its status isn't alreadydoneorsuperseded-by:, change that older entry's status line tostatus: superseded-by:<new-entry-date>(one-line edit; leave its prose alone). No prompt.- Never run
git commit.
- New file → create
Report one line and stop. e.g. `Wrote handover to RepoHandover.md (superseded the
previous runway-auth entry). Not committed.` Do not ask follow-up questions — the user is
about to close/archive the session.
Notes
Lean by default. State + key decisions + next steps. No git verification dump, no
"Verified/Believed" ceremony, no risk matrix.If the drafted entry is wrong, the user edits the file directly — it's short and uncommitted,
so a bad entry is cheap. That's why no approval gate is needed.Sanity-check (optional, cheap):
handover-lint.sh RepoHandover.md— installed next to this
skill — exits 0 when the newest entry's heading +status:line are well-formed.Rotation: if
RepoHandover.mdpasses ~1000 lines, offer (never silently) to move all but
the newest ~10 entries toRepoHandover-archive.md.