Handover
bathe your agents in engineering rigour and flames
npx -y skills add davidlee/doctrine --skill handoverAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 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
Use when handing work to a fresh context — first bring the durable harvest current, then emit a continuation at one of two weights — a printed continuation prompt (light) or a handover.md context packet (full). Use whenever a fresh agent would more efficiently continue.
SKILL.md
6.9 KB, as published. Nobody here has run it
Handover
First capture, then continue: ensure the durable harvest is current, then emit the transient continuation the next agent starts from.
Guiding principle: existing durable artifacts should already provide suitable context for handover. This skill is to improve token efficiency with transient guidance those durable artifacts elide — and to confirm they are in good condition.
Harvest first — always, both branches
Before emitting anything, confirm the capture pass is current:
- Governing slice: its
## Harvestmust be fresh — thefresh-as-ofstamp matches the current lifecycle position (phase / stage + head commit). If stale, run/harvestfirst — do not re-survey what the harvest already swept. - Another governing artifact (RFC, spec, review …): the capture pass still
runs — route produced / learned / open to their sinks per
harvest.md§5; orientation falls back to entity queries.
Phase status accurate and work committed (or its uncommitted state noted) remain adjacent truth checks.
Design work short-circuits
A slice design under a managed run already holds its own continuation. Before reaching for the dial, ask whether one is live:
doctrine design show <SLICE> --format status
A run prints — short-circuit. Do not compose a packet or a continuation prompt; either would restate what the run already carries.
-
The harvest above is what makes the durable records current. Then land anything you settled this session that the run does not yet hold — status reports the outstanding obligation and the changes since the declared baseline, so check both against what is in your hands, not your memory.
-
Emit the resume command as the continuation:
doctrine design resume <SLICE>It keys on the slice, not on a run id, so it stays true across runs. Add
--run <uid>to have a mismatch refused rather than silently resumed against a different run. -
Add residual prose only for context you can name that neither the run nor the durable records can represent. Stage, cursor, open questions, decisions and section review state are in the run; a copy of them starts ageing the moment you write it.
No run — the command errors, and the error says which of two cases you are
in. Nothing was ever started: there is nothing to short-circuit onto, so
continue with the dial. Or design.md is present and the snapshot is gone, and
the error names doctrine design start <SLICE> --from-design. Do not run it
to manufacture something to hand over. It builds a new run from the authored
prose — no attestation, receipt or gate clearance carries across — so handing
over its reference would promise more than it holds. Report the loss and hand
over with the dial.
This is for managed design runs. Nothing else has a run to short-circuit onto.
The dial
One skill, two weights:
- light — print a continuation prompt; nothing written.
- full — write the
handover.mdcontext packet and print instructions pointing at it.
Default by context: phase boundary, dispatch conclude, or complex in-flight state → full; a simple "continue this in a fresh context" → light. The user's explicit ask overrides.
Light: the continuation prompt
Print:
/route
(path to the governing artifact and the next obvious task)
If the next task is implementation-bound, include the specific artefacts to read
(design.md, plan.toml, the active runtime phase sheet) and name any
unresolved assumptions or design questions the next agent must assess before
declaring readiness. Have the continuation prompt cite the open ids from the
governing slice's ## Harvest — the open DEC / QUE / ASM (decisions / questions
/ assumptions) — so the next agent inherits the live open items, not a stale
story.
Full: the context packet
Write .doctrine/*/<nnn>/handover.md — the disposable, gitignored "start
here" for the agent picking up the next Phase or otherwise continuing the work.
It is scaffolding for the next session, not a durable record: durable facts
live in persisted artifacts, notes.md or the memory store (doctrine memory); the handover only points at them and frames the immediate work.
For a phase:
- Read the just-completed
state/.../phases/phase-NN.md(findings, hand-forward) and the slicenotes.md## Harvestsection for the produced / learned / open ids. - Confirm the next phase's scope from
plan.toml(EX/VT are authoritative). - At a dispatch conclude (SL-170 S6): embed the
slice verify-vt <id>VT summary block and a one-line S1 regression status (from the verify beat'scheck regression diff) in the packet — surfacing anyUNCHECKABLE/WAIVED/Failgap at handover, not at audit. - Emit the sections below into
handover.md - Print instructions (with path to
handover.md) addressed to the next agent
For another artifact:
- adapt as appropriate — the harvest-first step above still applies
- author or replace
handover.mdin the most relevant artifact's folder - Print instructions (with path to
handover.md) addressed to the next agent
You must include a clear startup instruction (eg /route) with path to handover.md.
Then: STOP
Shape (sections to emit) for a phase packet
- Where this is — phase status ladder + commit refs; what is DONE, what is now.
- Reading List — pointers to design/plan/notes, relevant other artifacts /
code, key source
file:lines. What the next agent should ingest to build context efficiently. - Artifacts / pointers — scope / design / plan / notes / specs. Optional / reference material.
- Terrain — the surface to ride, not refork; e.g. what the last phase built. Point to it described elsewhere, or summarise if it is not.
- Next actions — the literal
doctrine slice phase <ID> PHASE-NN --status in_progress(status is the--statusflag, not a trailing positional) / other obvious and immediate next step(s). - Procedure & Caveats — risks, unknowns and open decisions. Process guardrails (command, fill the sheet, TDD, commit, flip status, etc).
- Environment notes — build/gate/lint specifics; pre-existing dirty files to leave.
Rules
- handover is gitignored + will be deleted — never put the only copy of a durable fact here.
- Link to durable artifacts, don't repeat their contents.
- Supersede stale notes explicitly; do not leave contradictory guidance.
- Don't summarize commands or procedures from skills. The skill gets skipped. Accidents happen. Do reference the skill; describe relevant state.
- Terse. Fragments fine. Reader is an agent, not human reviewer.