handover-document-creator
Skill10 starsChanged 39 days agoMITView on GitHub
Write (or pick up) a session handover: a point-in-time snapshot of what happened and what remains outstanding, filed under .context/handovers/ so a different agent or a future session of the same agent can resume the work cold, without needing this conversation's context. - The session's work is fully complete and nothing is outstanding: no handover is needed, the git history and any .context/follow-ups/ entries already filed are sufficient - A single outstanding item with no broader session context: file it…
In this repository81 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/development/biome-complete/AGENTS.mdAGENTS.md
- skills/development/bun-development/AGENTS.mdAGENTS.md
- skills/development/commanderjs/AGENTS.mdAGENTS.md
- skills/documentation/markdown-authoring/AGENTS.mdAGENTS.md
- skills/package-mgmt/mise-complete/AGENTS.mdAGENTS.md
- skills/testing/bdd-testing/AGENTS.mdAGENTS.md
- agents-mdSkill
- cache-auditSkill
- context-radar-auditSkill
- create-contextSkill
- guided-interviewSkill
- load-contextSkill
- pick-modelSkill
- pinSkill
- professional-honestySkill
- rules-managementSkill
- save-contextSkill
- session-reflectionSkill
- socratic-methodSkill
- vault-captureSkill
- vault-consolidateSkill
- vault-fetchSkill
- vault-searchSkill
- bird-fortune-political-satireSkill
- brooker-esque-media-satireSkill
- clarke-dawe-esqueSkill
- comedy-style-skill-generatorSkill
- cunk-esque-mockumentarySkill
- gervais-esque-cringe-satireSkill
- monty-python-esqueSkill
- pryor-esque-confessional-standupSkill
- rock-esque-observational-standupSkill
- biome-completeSkill
- bun-developmentSkill
- commanderjsSkill
- conventional-commitsSkill
- humanizerSkill
- journal-entry-importSkill
- markdown-authoringSkill
- mermaid-diagramsSkill
- plain-englishSkill
- professional-communicationSkill
- sop-structureSkill
- logql-generatorSkill
- mise-completeSkill
- context-indexSkill
- create-context-fileSkill
- follow-upSkill
- goal-trackerSkill
- nasa-pm-lessonsSkill
- plan-createSkill
- plan-executeSkill
- plan-reviewSkill
- risk-registerSkill
- tech-debtSkill
- tech-evaluationSkill
- blast-radiusSkill
- bridgeSkill
- challengeSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 4 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Write (or pick up) a session handover: a point-in-time snapshot of what happened and what remains outstanding, filed under …
- Very specific: line 70
Gather the facts before writing: Run git status, git log -1, git stash list (never bare git stash/git stash pop when several worktrees …
- Very specific: line 74
Cross-link, don't duplicate: If outstanding work already has a .context/follow-ups/ entry or a .context/plans/ document, link to it from ## …
- Very specific: line 76
Run the validator: before considering the handover done: bash <skill-dir>/scripts/validate-handover.sh …
- Very specific: line 82
Read the handover file in full before touching any code - don't skim just ## Next Steps.
- Very specific: line 83
Verify ## Current State still matches reality (git status, git log -1) before acting on it - time may have passed since it was written, or …
- Distinctive: line 84
Do the outstanding work.
- Very specific: line 103
scripts/validate-handover.sh: - run against a single handover file or the whole .context/handovers/ directory: bash … - Distinctive: line 110
Write for a reader who was not in this conversation and never will be: no unexplained shorthand, no "as discussed above"
- Distinctive: line 115
NEVER: write a handover that only lists what was attempted, with no evidence of what actually landed.
- Distinctive: line 126
NEVER: use a bare git stash or git stash pop while gathering Current State facts.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Handover Document Creator
Write (or pick up) a session handover: a point-in-time snapshot of what happened and what remains outstanding, filed under .context/handovers/ so a different agent or a future session of the same
agent can resume the work cold, without needing this conversation's context.
When to use
- The session is ending (context limit approaching, user stepping away,
/clearabout to happen) and meaningful work is still in progress - The user explicitly asks for a handover, a "what's outstanding" summary for someone else, or to "hand this off"
- Work is moving between worktrees, branches, or agents (e.g. a wave-based parallel implementation, or handing a spike off to a colleague's session)
When not to use
- The session's work is fully complete and nothing is outstanding: no handover is needed, the git history and any
.context/follow-ups/entries already filed are sufficient - A single outstanding item with no broader session context: file it as a
.context/follow-ups/entry via thecreate-context-fileskill instead (see Relationship to other typologies below) rather than writing a whole handover for one item - Journal entries, tool assessments, or plan documents already cover the need: don't duplicate this skill's job into those, or vice versa
Directory and naming convention
.context/handovers/
YYYY-MM-DD-<slug>.mdOne dated file per handover, following the same YYYY-MM-DD-<slug>.md convention as .context/follow-ups/ and .context/plans/. A handover is a snapshot, not a living document: a second handover on
the same topic is a new dated file with supersedes set, never an in-place edit of the first. Why, and how this differs from tool-review-assessment's in-place convention:
references/typology-and-lifecycle.md.
Frontmatter (required)
---
title: "TICKET-123 example-service dev rollout - mid-migration"
type: handover
date: 2026-09-08 # ISO date (YYYY-MM-DD), must match the filename's date segment
branch: feat/ticket-123-example-service-dev
status: active # active | done | superseded
---Required fields: title, type (fixed to handover), date, branch, status. Optional fields
(session_id, author, tags, related, supersedes) and a full worked example are in
references/document-structure.md.
Required document structure
A handover has nine sections in a fixed order: frontmatter, an # Handover: title, ## Session Summary,
## Completed, ## Outstanding, ## Current State, ## Next Steps, an optional ## Gotchas / Context,
and ## References. The two sections most often written wrong:
## Completedneeds evidence per item (commit SHA, file path, test count, PR/MR link), not a narration of what was attempted. "Ran the tests" is not evidence; "bun test: 42 pass, 0 fail" is.## Outstandinglinks to an existing.context/follow-ups/entry instead of re-describing it, and flags plainly when an item probably needs a follow-up that doesn't exist yet.
Full section-by-section detail (what each one must contain, and why): references/document-structure.md.
Workflow: writing a handover
- Gather the facts before writing. Run
git status,git log -1,git stash list(never baregit stash/git stash popwhen several worktrees share one stash stack), and list any.context/follow-ups/entries filed this session. - Write
.context/handovers/YYYY-MM-DD-<slug>.mdfollowing the structure above. Prefer a short, specific slug over a generic one (ticket-123-example-service-dev-migration, nothandoverorsession-end). - Cross-link, don't duplicate. If outstanding work already has a
.context/follow-ups/entry or a.context/plans/document, link to it from## Outstanding/## Referencesrather than re-describing it in full. - Run the validator before considering the handover done:
bash <skill-dir>/scripts/validate-handover.sh .context/handovers/YYYY-MM-DD-<slug>.md. Fix anything it flags. - Commit it with the outstanding work (or on its own if the handover is the only change left):
docs(handover): <short description>.
Workflow: picking up a handover
- Read the handover file in full before touching any code - don't skim just
## Next Steps;## Gotchas / Contextand## Current Stateoften carry the details that prevent repeating a dead end. - Verify
## Current Statestill matches reality (git status,git log -1) before acting on it - time may have passed since it was written, or someone else may already have progressed the branch. - Do the outstanding work.
- Flip
statustodonein the same change that resolves the outstanding work - never delete the file, matching thecreate-context-filefollow-up lifecycle (status: activeuntil actioned, thendone). If only some outstanding items were resolved, leavestatus: activeand update## Outstandingto reflect what remains, rather than marking the whole handover done prematurely. - Re-run the validator to confirm the frontmatter edit didn't break the schema.
Relationship to other typologies
.context/handovers/ is a distinct, standalone typology from .context/follow-ups/, .context/plans/,
and .context/findings/, and is tracked in the auto-generated .context/index.yaml under its own handovers: section
(the context-index skill maps type: handover to it). An active handover is outstanding work, so any tool that reads the
index for what is outstanding needs to see it. A handover is broader than a single follow-up item: it is the whole
session's end state. Full explanation of the
boundary, and why a handover is a snapshot rather than an in-place-edited document (unlike
tool-review-assessment): references/typology-and-lifecycle.md.
Assets
assets/templates/handover.yaml- the required section list and frontmatter fields, in the same YAML-template style thejournal-entry-creatorskill uses for its own templates.assets/schemas/handover-frontmatter.schema.json- the JSON Schema every handover's frontmatter must satisfy.scripts/validate-handover.sh- run against a single handover file or the whole.context/handovers/directory:bash <skill-dir>/scripts/validate-handover.sh .context/handovers/. Checks filename shape, that the frontmatter date matches the filename's date segment, required frontmatter fields (title,type: handover,date,branch,status), and that all required sections are present.
Mindset
- Evidence beats self-report: a "Completed" item without a commit SHA, test count, or file path is a claim, not a record
- Write for a reader who was not in this conversation and never will be: no unexplained shorthand, no "as discussed above"
- Outstanding work is either linked to an existing
.context/follow-ups/entry or flagged as needing one - never left to exist only inside prose that will be someone's second read, not their first
Anti-Patterns
NEVER write a handover that only lists what was attempted, with no evidence of what actually landed. WHY: a reader picking this up needs to know what is safe to build on, not just what was
tried. BAD: "Worked on the migration, made some progress." GOOD: "Migrated 3 of 5 tables (commit a1b2c3d); bun test db/: 12 pass, 0 fail; remaining 2 tables blocked on schema decision, see
Outstanding."
NEVER edit an existing handover in place to reflect a second session's progress. WHY: unlike a tool assessment, a handover is a snapshot of one session's end state; silently rewriting it loses
the audit trail of what the first session actually left behind. BAD: editing 2026-09-01-ticket-123-handover.md directly when a second session continues the work. GOOD: writing
2026-09-03-ticket-123-handover.md with supersedes: .context/handovers/2026-09-01-ticket-123-handover.md.
NEVER duplicate a full .context/follow-ups/ entry's description inside ## Outstanding instead of linking it. WHY: two descriptions of the same open item drift apart over time and nobody
knows which is current. BAD: re-explaining a follow-up's whole context inline. GOOD: "See .context/follow-ups/2026-09-08-x.md - status unchanged since filing."
NEVER use a bare git stash or git stash pop while gathering Current State facts. WHY: the stash stack is shared by every worktree of a repository; a bare pop can steal another session's
in-progress work. BAD: git stash / git stash pop. GOOD: git stash list, and if something must be set aside, git stash push -u -m "<unique-tag>" with the SHA captured immediately.
References
| Topic | Reference | When to Use |
| Section-by-section detail | references/document-structure.md | Full required-section list and frontmatter fields, with a worked example |
| Typology boundary and lifecycle | references/typology-and-lifecycle.md | Why handovers are separate from follow-ups/plans, and the status lifecycle |
| Frontmatter contract | assets/schemas/handover-frontmatter.schema.json | The JSON Schema every handover's frontmatter must satisfy |
| Structure template | assets/templates/handover.yaml | Required sections and frontmatter, in order |
| Mechanical validator | scripts/validate-handover.sh | Run before considering a handover done or a pickup closed out |
| Adjacent typology, different job | create-context-file skill | Single-item follow-ups/plans/findings, tracked in .context/index.yaml |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

