Handover
SkillAI & modelsUse when handing finished work over to code review — writing a PR description or packaging a change for review by a human, an agent, or both.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Handover skill
What this skill tells your AI
The instructions your AI receives, as published by eai-org/agent-toolkit in skills/handover/SKILL.md and read by ahel’s review.
Package a finished change so its reviewers never reconstruct intent from the diff. Write for a reviewer holding the diff and nothing else — no planning docs, no session, no knowledge that either exists.
Resolve the task
The input is any partial reference — ticket id, slug, a planning artifact's path — or nothing,
meaning the session's task; in a fresh session, infer it from branch name and recent commits.
Resolve it to the task's planning home: its <id>-<slug>/ directory in the project's planning
directory, or its flat <id>-<slug>.* files in a shared family directory. One clear match →
proceed, stating the home and artifacts found. Inferred, or several candidates (-vN, …) →
confirm first. An explicit reference matching nothing local → stop and ask; never guess.
Gather
Read these, skipping what doesn't exist:
- Task artifacts — every
<id>-<slug>*.mdin the planning home: ticket, requirements, plan, decisions log, prior review and handover rounds, whatever else matches. - Related tickets — one hop only: parent (climbing higher only past thin containers), direct
predecessors/successors, explicit relations, family-directory siblings; never expand their own
relations. Local
.TICKET.mds first; fetch from the tracker only when a relation has no local file and looks load-bearing for a why — in doubt whether to fetch, ask. - The session, when it produced the change: decisions, pivots, constraints.
- The diff against the target, plus commit subjects.
An earlier artifact — a ticket review, a prior round — counts only where nothing later settled the point.
Each source once, no deeper than the artifact needs: skim the diff whole, deep-read only the files you will name in the Review guide, and never rebuild history commit by commit — which commit changed what is the diff's job, not yours.
Then match the plan's steps and acceptance criteria against the diff both ways — planned but absent, present but unplanned. Done when every source is read or confirmed absent and every planned item is matched.
Never invent rationale
State a "why" only where a source gives it. A deviation nothing explains is asked of the author once; unanswered or unaskable, it ships flagged in plain words ("nothing records why — worth confirming"), since it may be an unintentional gap rather than a decision. Sourcing is your gate, not the reviewer's reading: it decides what you may write, and never appears in the text. When not sure, always ask. Never guess.
The artifact
<slug>.HANDOVER.md in the planning home; already taken → <slug>.HANDOVER-2.md, -3, … —
never overwrite. No planning home → present the content and ask where to save it. Its body is
paste-ready as the PR description, and stands alone:
- Mention only what the reviewer can open — a tracker URL, or a file you verified is committed on the branch. Everything else — planning docs, decisions log, session, commit hashes — is neither linked nor named: write what it says ("this was meant to …"), never where it says it. A colleague's clarification is stated as what it settled, grounded in something openable ("the goal is X, which needs"); naming the colleague is the last resort.
- Related tickets go unmentioned unless a why depends on one ("built this way to prepare for ") — then cite its tracker URL.
- Under a screen, ~400 words; the caps below are limits, not targets.
- Never hard-wrap: forges (e.g. GitHub) render newlines in PR bodies as line breaks — one line per paragraph or bullet.
- Plain reviewer-facing wording, never this skill's vocabulary. Before drafting, actually invoke use-conversational-language — reciting its rules from memory does not count.
Sections, skipped only when truly empty:
- What and why — 2–3 lines.
- Decisions worth knowing — at most 5 lines, each: what was chosen or what departs from the plan, its why or the missing-why flag, and where in the code to see it.
- Review guide — the few files where judgment matters and why; the rest named as mechanical.
- Known gaps — at most 3: shortcomings, assumptions, open questions.
Done when every section is filled or knowingly skipped, nothing reads as verified that wasn't, and nothing in the text points at something the reviewer cannot open.
Boundaries
- Modify no source files; the handover doc is the only file written.
- Never push, or open/comment on a PR — publishing is the user's explicit call.
Signals
- GitHub stars
- 46
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
handover- Source
- github.com/eai-org/agent-toolkit