Session handoff
Skill the-inconvenience-store/superbeads/skills/session-handoff
Human-invoked session handoff for resuming unfinished work in a fresh context.From its SKILL.md
npx -y skills add the-inconvenience-store/superbeads --skill session-handoffAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.5 KB, as published. Nobody here has run it
Session Handoff
Apply the shared technical writing policy to the handoff and its user-facing summary.
Write a grounded handoff document — and a one-line continuation memory — so a fresh session can resume exactly where this one left off.
Announce at start: "I'm using the session-handoff skill to write a session handoff."
Human-invoked only. This skill is fired by a human (slash command or explicit ask) — before
/clear,/compact, a context limit, or a teammate handoff. It is intentionally absent from every agent-trigger surface and is never auto-invoked.
When a human uses this
- Before
/clearor/compact, mid-task, when context is about to be lost. - End of a working session, to seed the next one.
- Handing work to a teammate or another agent.
Optional argument: a short description of what the next session will focus on — used to tailor Work In Progress / Loose Threads / Suggested Skills.
Pipeline
-
Gather (read-only, run the commands — do not recall):
git status -sb,git log --oneline -15,git diff --stat, branch + ahead/behind;bd ready,bd blocked,bd count --by-status, in-progress beads; list the spec, plan, and architecture-decision-record files touched this session. -
Synthesize into the bundled template (
handoff-template.md). Reference artifacts by path — never paste their bodies (commits, ADRs, specs, plans, diffs). Duplicating bloats the doc and goes stale. -
Write the doc — Default:
.internal/handoff/YYYY-MM-DD[-HHMMSS]-<topic>-handoff.md(-HHMMSSonly if a same-day handoff exists). (The same-day check globs the inbox.internal/handoff/*.mdonly; archived docs underarchive/are out of scope and do not affect same-day naming.) If the human names another location, write there.mkdir -pthe target first. -
Write the continuation memory —
bd remember "continuation-<date>-<topic>: <one-line pointer to doc path + headline state>"(episodic continuation record; one-line pointer only). -
Verification (externally anchored — output the result block):
- Cross-check each state line against the captured Phase-1 command output.
- Gitignore safety:
git check-ignore <output-path>; if NOT ignored, warn the human ("⚠️ <dir> is not gitignored; a handoff can contain sensitive session state") and offer to add it to.gitignorebefore writing. ls <path>confirms the doc exists;bd memories <key>confirms the memory.- Secret-scan grep over the doc (
sk-,ghp_,AKIA,-----BEGIN,password=) — a backstop, not a guarantee. - The narrative synthesis is the author's recollection — not externally verified; that is why it references artifacts by path.
Output a confirmation block: doc path · memory key · gitignore-safety result · secret-scan result.
Doctrine
- Redact secrets (keys, tokens, passwords, PII) — the doc lands on disk and may be shared. This is a hard rule; never weaken it.
- Reference, don't duplicate — point at commits/ADRs/specs by path.
- Ground every fact — run the gather commands; never invent state. If a command
fails (not a git repo,
bdabsent), degrade gracefully and note the gap.
Red Flags (low-independence backstop — not the primary guard)
| Rationalization | Reality |
|---|---|
| "I'll write it from memory" | Run the gather commands — recollection drifts. |
| "I'll paste the whole diff" | Reference by path; pasted output bloats and leaks. |
| "I'll add it to the skill index so the agent finds it" | Forbidden — human-invoked only. |
| "The output dir is probably gitignored" | Run git check-ignore — secrets to a tracked path is a leak. |
Integration
Standalone — human-invoked. This skill is intentionally NOT referenced by any other
skill or hook, and does not appear in any agent routing or trigger surface. Its read-side
counterpart is getting-up-to-speed, which reads this skill's output artifact (the
latest .internal/handoff/ doc) but does not invoke it — there is no skill-to-skill call
in either direction. On read it consumes the doc: it moves the doc it read to
.internal/handoff/archive/ at close, so .internal/handoff/ is an unread inbox and a
stale handoff is not re-read as the last session.