From Pragmatic Claude
Use at the end of a working session, before /clear or context compaction, or when the user asks to wrap up or summarize for next time.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pragmatic-claude:session-handoffThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Invoke at the end of a working session, before `/clear`, before context compaction, or any time the user asks to "wrap up" or "summarize for next time". The output is written for a reader who has not seen this conversation: a future Claude session, a teammate, or the user themselves a week from now.
Invoke at the end of a working session, before /clear, before context compaction, or any time the user asks to "wrap up" or "summarize for next time". The output is written for a reader who has not seen this conversation: a future Claude session, a teammate, or the user themselves a week from now.
A single document with four sections in this exact order. Skip a section that has nothing real to put in it; do not pad.
Observable facts only. No interpretation, no narration.
If the session did not touch a repo, replace this with the equivalent "current state" facts for the work that was happening.
The choices that survived this session and the reason each one was made. One line per decision. The WHY is mandatory: a decision without its reason rots into folklore.
Rules:
Only if there is concrete remaining work. Ordered by what should happen first. Each item: the action plus why-now or why-next.
If the session ended at a clean stopping point, write the single line Clean stop. No pending work. and skip the list. Do not invent next steps to look thorough.
Do not list speculative future enhancements that were not actually discussed.
Anything ambiguous, deferred, or risky that future work has to resolve. Each item: the gap plus which decision or task surfaced it. If nothing is genuinely open, omit the section entirely.
This is the section where "we did not verify X" or "Y depends on Z which is not yet checked" gets recorded honestly.
path:line references, versions as exact strings, dates as absolute ISO. "We bumped TypeScript" is wrong; "TS 5.5.0 -> 5.9.3 because 5.5.0 was never released stable" is right.Default: print the handoff to the conversation as plain Markdown. The user can copy it into a note, a PR description, an issue, or wherever they want.
If the user passes a path as an argument (e.g. /session-handoff docs/handoffs/2026-06-22.md), additionally write the document to that file. Create parent directories as needed. Confirm the written path in one line after the document.
If the argument is a bare filename with no directory, write it to the current working directory. Never write to a path that was not explicitly provided.
# Session Handoff - <one-line topic>
## Where we are now
- <fact>
- <fact>
## Decisions made
- <chosen path>. Why: <reason>.
- <chosen path>. Why: <reason>.
## Next steps
1. <action>. Why now: <reason>.
2. <action>. Why next: <reason>.
(or: "Clean stop. No pending work.")
## Open questions
- <gap>. Surfaced by: <decision or task>.
The topic line is one short phrase summarizing what the session was about, not a generic "Session handoff for 2026-06-22". Specific over generic: "v0.2.0 monorepo restructure complete" beats "Coding session".
npx claudepluginhub igorjs/pragmatic-claude --plugin pragmatic-claudeCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.