office runbook: the handover section still prescribes --standing-slot plus a hand-written kickoff nf-cje ← Beads

open priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/629 by tools/beads/import_github.py's reconcile pass.

cfsh/nf-office's runbooks/spawn-dev.md describes handing a live PR to a new session as --standing-slot plus a hand-written --kickoff-file. #626 added --adopt <pr>, which does the whole thing — so the runbook now prescribes the hand-assembly #557 and #625 exist to delete, and a CTO following it correctly gets the failure.

This repo cannot make the edit — the office repo holds prose and .claude/ config, and ninefold holds no write access to it. Same shape as #557's two undeliverable requirements. Filing it here so it does not live only in a PR body, which does not survive the merge (ninefold-reviewer's point on #627).

Replacement text for the handover section

> ### Handing a live PR to a new session > > ```bash > ./tools/office/spawn_dev.py <topic> --adopt <pr> > ``` > > Cuts the worktree from the PR's own branch instead of origin/main, and generates the handover kickoff from the PR — number, title, URL, branch, head. Do not hand-write a kickoff for this; that is what the flag replaces. > > - Pick a topic word for the work, not the branch. The branch comes from the PR; the worktree, Remote Control name and tmux session still come from the topic. > - ⚠️ Do not reuse the outgoing session's topic word while that session is up. It resolves to the same worktree path and the same tmux name, and the spawn refuses — correctly, since spawning over a live dev leaves its worktree unwatched. Stand the other session down first, or pick a different word. > - It refuses rather than choosing for you, twice, and both are the ordinary state of a handover: the outgoing worktree still holding the branch (the refusal names it and the worktree remove that clears it), and a local branch that has drifted from the PR head — which may be commits the departed session never pushed. Read the refusal; do not work around it. > - --issue <n> if you know the chunk, otherwise it is read off the PR body's Closes #n and the kickoff says so. > - --dry-run prints every step including the gh read, and creates nothing. > > The kickoff deliberately carries no review state — not "approved", not "mergeable". Those move, and a kickoff is the one document the session cannot re-check. It names the PR and tells the session the review history predates it; reading it is the session's job.

Also worth checking while in there

The same runbook's spawn section predates --adopt, --standing-slot and --resume having their own refusals. Worth a pass for anything else it still describes as a command list.

Dependencies

None.

Comments

No comments.

Add a comment