handover
GitHub用于在编码会话结束时记录当前状态,生成简短的交接条目至RepoHandover.md,便于后续Agent或用户快速恢复工作上下文。
触发场景
安装
npx skills add jazzyalex/agent-sessions --skill handover -g -y
SKILL.md
Frontmatter
{
"name": "handover",
"description": "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 single
git 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 | done **State:** <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:** 1. <the next concrete step> 2. <...>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.
-
-
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.
版本历史
- e881b78 当前 2026-07-25 10:02


