--- name: handover description: Procedure for an outgoing lead to write the handover file that a fresh lead session inherits. Load this when your context is filling up and you are about to be replaced, whether you hand off by hand or fleetd does it for you. The file is the new lead's only inheritance — follow it exactly. --- # Handover — write the file the next lead depends on A lead session fills up its context and has to be replaced by a fresh one. The outgoing lead writes a handover file, and the new session reads that file and carries on. **There are two ways to hand off, and the file is the same either way.** - **By hand.** You write the file, then tell the operator where it is. The operator starts the new session and points it at the file. This always works. - **With `fleet_handover`** (fleetd #480, merged 2026-09-11). You ask fleetd to do the swap: it checks the file, clears your pane, and tells the fresh session to read it. This needs `leadRollover:` in `fleetd.yaml`; without it every action answers a clean refusal naming `NOT_CONFIGURED`, and you fall back to the manual path. Section 11 below is the procedure. Nothing else in this skill changes between the two. Only who performs the swap changes. **The new lead's only inheritance is that file.** It does not see your conversation, your plan, or your screen. If the file is thin or wrong, the new lead re-derives what you already knew, and that wastes hours. Writing a good handover file is real work. It is not paperwork you rush through at the end of a session. This skill is the procedure for writing it. Every rule below earned its place because a past handover got it wrong. ## 1. Confirm you are the right session to write this Run `fleet_whoami` first. It must answer `primary`. Only a primary (lead) session writes a handover file. A worker's job ends with its own pull request, not a fleet-wide handoff. ## 2. Every number needs a command, run in this turn A number is a claim: a count, a commit hash, a process id, a percentage, a queue depth. Before you write one, run the command that produces it — now, in this turn, against the live state. Never take a number from: - earlier in your own conversation — the state has moved since then, - a peer lead's report — that is their measurement, not yours, - your own memory of an earlier session. Put the command, or its real output, next to the number. That lets the next lead re-run it and check it still matches. If you cannot measure something yourself, say so instead of guessing: "the fleet01 lead reports 91 commits behind; I have not checked this myself." ## 3. Say what you measured and what you did not Mark every claim as one of two things: - **"I checked this myself, in the code or on this host, at `