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).
> ### 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.
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.
None.
No comments.