Prepare a clean cross-session handoff so the next agent (or you tomorrow) can pick up exactly where you left off. Writes a focused `continue.md` in the active s
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-handoff-7b7502ee9baf ,按照其中的说明把「handoff」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
continue.md exists for exactly this — see auto-prompts.ts, guided-flow.ts, phase-anchor.ts, state.ts. This skill is the deliberate authoring ritual.
Invocation points:
<core_principle>
WRITE FOR A STRANGER. The next reader is not you. They do not have this conversation. They have STATE.md, continue.md, the last summary, and the code. That has to be enough.
CURRENT STATE ONLY. continue.md is ephemeral — it says "pick up HERE." It is not a log of what you did; that goes in summaries. It is not a plan for future work; that lives in the plan files.
NO SECRETS, NO STALE PATHS. Do not inline env values, tokens, or paths that only exist in your working directory. Cite artifacts by relative path from the project root. </core_principle>
Answer briefly:
T##) am I on? What's its current plan file?Before writing continue.md:
gsd_task_complete (or the equivalent tool) to toggle state. Do NOT edit checkboxes by hand. This triggers STATE.md rebuild and T##-SUMMARY.md generation.S##-CONTEXT.md if the slice has one, or .gsd/DECISIONS.md if the decision was project-wide..gsd/KNOWLEDGE.md.This shrinks what continue.md has to carry.
Create .gsd/milestones/<MID>/slices/<SID>/continue.md with the following shape. Keep it tight — one screenful max.
# Continue — S02 / T03
## Last action
<one sentence — what you just did, with evidence>
Example: "Ran `npm test` after editing `src/auth/session.ts`; 2 failures in `session.test.ts` — both complain about a missing `expiresAt` field in the mock fixture."
## Next action
<one concrete action the next agent should take>
Example: "Update `fixtures/sessions.ts` to include `expiresAt: Date.now() + 3600_000` on every fixture, then re-run `npm test`."
## Why
<one or two sentences — why this next step, not something else>
Example: "The session refactor moved `expiresAt` from optional to required in `Session`; fixtures were never updated."
## Open threads
<list of things you noticed but deliberately didn't act on>
- Validator in `src/auth/validator.ts` still accepts unbounded session lengths — file as a separate issue after T03 lands.
## Do not
<traps and false paths the next agent might stumble into>
- Do NOT revert the `Session` interface change — it's required for T04.
- Do NOT run `npm run db:reset` in this branch; dev data is still needed for manual UAT.
Read STATE.md + continue.md + the most recent summary as if you were a fresh agent. Ask:
If any answer is no, the handoff is incomplete. Fix it before stopping.
async_bash or bg_shell jobs. Cancel or wait for them.continue.md — note which files are modified and why.<anti_patterns>
continue.md that summarizes the whole slice. That's what S##-SUMMARY.md is for, at slice completion.continue.md should be thin because the summaries carry the weight.</anti_patterns>
<success_criteria>
continue.md exists in the active slice directory.gsd_* tools, not by hand-edited checkboxes.KNOWLEDGE.md and DECISIONS.md have been updated if anything notable was learned.STATE.md + continue.md + latest summary would produce the right next action.</success_criteria>