From groundwork
Produces a compact handoff document that transfers context, state, and next objective without copying source material. Use when ending a session or passing work to another agent.
How this skill is triggered — by the user, by Claude, or both
Slash command
/groundwork:handoff [focus][focus]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A handoff is a **baton, not a backpack**: it carries just enough for the next session to resume, and points at everything else. The receiving agent has none of this conversation's context, so the document is the entire transfer — but it must stay compact, or it competes for the very context budget it is meant to preserve.
A handoff is a baton, not a backpack: it carries just enough for the next session to resume, and points at everything else. The receiving agent has none of this conversation's context, so the document is the entire transfer — but it must stay compact, or it competes for the very context budget it is meant to preserve.
Core principle: Reference artifacts by path or URL; never duplicate their content into the handoff.
The optional [focus] argument shapes the summary toward the next objective (e.g. /groundwork:handoff finish the auth refactor). Without it, summarize toward the most recent active thread.
Gather what already exists rather than restating it. Run as needed:
git rev-parse --abbrev-ref HEAD # current branch
git log --oneline -5 # recent commits
git status --short # uncommitted changes
git diff --stat # scope of working-tree changes
Note paths to PRDs, plans (.groundwork-plans/), ADRs, specs, and any issue/PR URLs. These become links, not content.
Write to a temp path outside the repo, slug derived from the focus:
SLUG=$(echo "${ARGUMENTS:-session}" | tr '[:upper:] ' '[:lower:]-' | tr -cd 'a-z0-9-' | cut -c1-40)
OUT="${TMPDIR:-/tmp}/groundwork-handoff-${SLUG}.md"
The document has exactly these sections:
| Section | Contents |
|---|---|
| Summary | Focused recap of the conversation, tailored to the next objective. Decisions made and why; dead ends ruled out. |
| State | What is done, what is in progress, what is blocked. Branch and commit refs. |
| Next objective | The single thing the receiving session should accomplish next. |
| Artifacts | Bulleted links — paths, branch names, commit SHAs, diffs, issue/PR URLs. References only. |
| Suggested skills | Which Groundwork skills to invoke next, and a pointer to [[using-groundwork]] to map any remaining work. |
Strip secrets, API keys, tokens, credentials, and PII from every section. Replace with [REDACTED]. Never echo a .env value or auth header into the file.
Print the absolute temp path so the user can hand it off. Do not move it into the workspace.
| Excuse | Reality |
|---|---|
| "I'll paste the plan/diff inline so it's all in one place" | That's the backpack. The next agent can open the path; copying it bloats the handoff and rots when the source changes. |
| "Writing it next to the code is more convenient" | The repo is not scratch space. Temp dir only — a handoff is transient and must never be committed. |
| "The secret is needed to resume" | Reference where it lives (env var name, secret manager path), never the value. |
${TMPDIR:-/tmp}/... path, not inside the repo or any worktree[focus] when given)npx claudepluginhub etr/groundworkCompacts the current conversation into a self-contained handoff document so a fresh agent or developer can resume work by reading only that file. Use when pausing work or summarizing long sessions.
Produces a handoff document so a fresh agent can continue work from the current session. Handles both mid-arc continuation and backlog handoffs.
Captures full session context into a handoff document so a fresh agent can resume work with zero prior context. Write a single actionable sentence for the next agent.