Use when writing a Codewhale takeover prompt, continuation note, or end-of-session summary for another agent or a later session: a paste-ready handoff grounded
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-cw-handoff-07b835c88d20 ,按照其中的说明把「cw-handoff」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
A handoff is read by an agent with none of your context and every incentive to believe you. That makes an optimistic handoff worse than no handoff: it converts your guesses into the next session's premises. Write it so the reader can re-derive the state instead of trusting the prose.
Stage 6 of the loop, and the one that makes the loop a loop: the next session starts at cw-orient with what you leave here.
Write it as a prompt the next agent can paste directly. Not a report about the work — instructions for continuing it.
Open with the refresh block, not with your summary. The first thing the reader should do is verify you:
cd <repo path>
git status --short --branch && git branch --show-current
git log --oneline --decorate -20
git worktree list
./scripts/release/check-versions.sh
Tell them to trust that output over anything below it.
Cover these, in whatever order fits; drop sections that are empty:
AGENTS.md for
the area, then the specific docs (docs/CACHE.md,
docs/MOTION_CONTRACT.md, docs/ARCHITECTURE.md, crates/tui/AGENTS.md)
the task actually touches.Separate three states, and never blur them: done and verified (with the command output that proves it), suspected (a hypothesis, labeled), and blocked (with what unblocks it). If you did not run it, it is not done.
Say what the branch is for. Local-only, pushed for backup, or intended to
stay unpushed — the next agent cannot tell from git alone, and guessing
wrong is how work gets force-pushed away.
Record missing external receipts. If the task was local-only, say which evidence you could not gather (CI state, registry state, review threads) rather than inferring it. A named gap is useful; a confident guess is not.
A single paste-ready block with the default shape — refresh commands, authority line, files to read, landed SHAs, named dirty files, prioritized next slices, the verification gate, and the open decisions — with done / suspected / blocked visibly separated. Compress when trivial, but never compress away the state separation: that is what keeps guesses from becoming the next session's premises.