gsd-headless
Orchestrate GSD (Git Ship Done) projects programmatically via headless CLI. Use when an agent…
Prepare a clean cross-session handoff so the next agent can pick up where you left off. Saves a focused Work Checkpoint with `gsd_checkpoint_save` and ensures summary artifacts are current. Use when asked to "hand off", "prepare handoff", "pause work", "bookmark this", "I'll
$ npx -y skills add open-gsd/gsd-pi --skill handoff --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/handoffContext preview
The summary Claude sees to decide when to auto-load this skill.
Prepare a clean cross-session handoff so the next agent can pick up where you left off. Saves a focused Work Checkpoint with `gsd_checkpoint_save` and ensures summary artifacts are current. Use when asked to "hand off", "prepare handoff", "pause work", "bookmark this", "I'll
name: handoff description: Prepare a clean cross-session handoff so the next agent can pick up where you left off. Saves a focused Work Checkpoint with `gsd_checkpoint_save` and ensures summary artifacts are current. Use when asked to "hand off", "prepare handoff", "pause work", "bookmark this", "I'll come back to this later", before running out of context budget, or ending a long session with unfinished work.
<objective> Leave the project in a state where a fresh agent with no memory of this session can be productive within one minute. The deliverable is a Work Checkpoint saved with `gsd_checkpoint_save` plus up-to-date summary artifacts — not a chat recap. </objective>
<context> GSD already renders `STATE.md` (from the database, after every lifecycle tool call) and summary files (`M###-SUMMARY.md`, `S##-SUMMARY.md`, `T##-SUMMARY.md`). The gap is the *mid-task* handoff: you're partway through a task, context is getting long, and the next session shouldn't start by re-deriving your mental state.
The Work Checkpoint exists for exactly this. It is a database row. The next session of the task gets it as the "Resume State" section of its prompt, and `/gsd` offers "Resume" instead of "Execute" for a task that has one. `CONTINUE.md` in the slice directory is rendered from the row for people to read; it is never read back. Do not write `continue.md`, `CONTINUE.md` or `HANDOFF.md` yourself.
Invocation points:
</context>
<core_principle> **WRITE FOR A STRANGER.** The next reader is not you. They do not have this conversation. They have the project snapshot (`gsd_project_snapshot`), the checkpoint, the last summary, and the code. That has to be enough.
**CURRENT STATE ONLY.** The checkpoint 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>
<process>
Answer briefly:
1. What task (`T##`) am I on? What's its current plan file? 2. What have I completed since the last summary? 3. What's the next concrete action? (Not a goal — an action: "Run X. If Y, do Z.") 4. What, if anything, is blocking or uncertain?
Before saving the checkpoint:
This shrinks what the checkpoint has to carry.
Call `gsd_checkpoint_save` with the fields below. Keep it tight — one screenful max.
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. The session refactor moved `expiresAt` from optional to required in `Session`; fixtures were never updated."
Example: "Update `fixtures/sessions.ts` to include `expiresAt: Date.now() + 3600_000` on every fixture, then re-run `npm test`."
Example: "Validator in `src/auth/validator.ts` still accepts unbounded session lengths — file as a separate issue after T03 lands. 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."
Call `gsd_project_snapshot`, then read the checkpoint you saved + the most recent summary as if you were a fresh agent. Ask:
1. Do I know what to do next? 2. Do I know why? 3. Do I know what not to do?
If any answer is no, the handoff is incomplete. Save a new checkpoint; the newest one is the resume state.
</process>
<anti_patterns>
GSD Pi is a local-first coding agent for planning, implementing, verifying, and tracking project work from the command line.
Repo: open-gsd/gsd-pi
Orchestrate GSD (Git Ship Done) projects programmatically via headless CLI. Use when an agent…
Audit and improve web accessibility following WCAG 2.1 guidelines. Use when asked to "improve…
Browser automation CLI for AI agents. Use when interacting with websites — navigating pages,…
Design or review an HTTP/REST/GraphQL API for versioning, pagination, error shapes,…
Apply modern web development best practices for security, compatibility, and code quality.…
Ask a quick side question about your current work without derailing the main task. Answers…