Agent skill

Session Handoff

by SethGammon in SethGammon/Citadel

Synthesizes the current session into a structured HANDOFF block for context transfer between sessions.

MITAuto-check passedAgent Workflows

Install Session Handoff

skills CLI
$ npx skills add SethGammon/Citadel --skill session-handoff -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SethGammon/Citadel session-handoff --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/session-handoff .claude/skills/session-handoff && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
session-handoff
GitHub stars
922
Token cost
~942 tokens
SKILL.md length
470 words
Files
3
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Synthesizes the current session into a structured HANDOFF block for context transfer between sessions.

  • Works in 4 steps: Collect session data (run in parallel) → Identify the primary thread: If an… → Map data to HANDOFF fields → …
  • Tasks that involve Session handoff
  • SKILL.md covers Orientation, Protocol, Output Format and Quality Gates, plus 3 more sections
  • Calls git

What it does

Session Handoff is an agent skill from SethGammon/Citadel. Synthesizes the current session into a structured HANDOFF block for context transfer between sessions. Captures what was built, decisions made, and unresolved items.

Its SKILL.md is about 940 tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `__benchmarks__/mid-campaign.md` and `__benchmarks__/no-active-work.md`).

It sits in Agent Workflows, covering Session handoff. It works with Git. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.

When your agent uses it

  • Tasks that involve Session handoff

Example prompts

  • “Use the session-handoff skill to synthesiz the current session into a structured HANDOFF block for context transfer between sessions”
  • “/session-handoff”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Collect session data (run in parallel)
  2. Identify the primary thread: If an active campaign exists, use its current phase as the anchor. If multiple campaigns are active, list…
  3. Map data to HANDOFF fields
  4. Output the HANDOFF block.

What it can do on your machine

Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Session Handoff loads about 942 tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 470 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~942

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 470 words, ~942 tokens.

Download SKILL.mdSave it as .claude/skills/session-handoff/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
session-handoff
description
Synthesizes the current session into a structured HANDOFF block for context transfer between sessions. Captures what was built, decisions made, and unresolved items.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
handoff, session summary
last-updated
2026-03-20

/session-handoff — Context Transfer

Orientation

Use when ending a session and wanting to preserve context for the next one. Also used automatically by orchestrators (Archon, Fleet) at session boundaries.

Don't use when: You want to extract reusable patterns from a completed campaign (use /learn), write a structured postmortem for a failed campaign (use /postmortem), or produce documentation rather than a context transfer.

Protocol

  1. Collect session data (run in parallel):

    • git log --oneline -20 and git diff HEAD --stat
    • Read .planning/campaigns/ for files with status: active
    • Read .planning/fleet/ for files with status: active or needs-continue
  2. Identify the primary thread: If an active campaign exists, use its current phase as the anchor. If multiple campaigns are active, list each. If no campaign, use the most recent git commits as the frame.

  3. Map data to HANDOFF fields:

    • What changed: campaign phase output if campaign active; otherwise commit subjects from this session
    • Key decisions: commit messages with a tradeoff word ("instead", "because", "not"); or explicit statements from the conversation
    • Unresolved items: campaign items marked blocked or parked; TODOs added this session; anything explicitly deferred
    • Next steps: campaign's next phase if active; otherwise the top open item from above
  4. Output the HANDOFF block.

Output Format

---HANDOFF---
- {what was built or changed — be specific}
- {key decisions and tradeoffs — include reasoning}
- {unresolved items — what's blocking}
- {next steps — what the next session should do first}
---

Keep it to 3-5 bullets, under 150 words. This is a context transfer, not a report.

Quality Gates

  • Every bullet must be actionable or informative
  • No vague statements ("made progress on X")
  • Specific file references where relevant
  • Decisions include reasoning, not just the choice
Show full SKILL.md (223 more words)Show less

Fringe Cases

.planning/ does not exist: Skip campaign and fleet checks. Treat as "no active campaigns" and proceed with git-only context.

Corrupted or unparseable campaign file (malformed frontmatter, invalid status, or truncated content in .planning/campaigns/): Skip that file and treat it as inactive. Output: "Campaign file at {path} could not be parsed — treating as inactive. Check the file manually if this is unexpected."

No active campaign and no git changes: If there is nothing to summarize, say so explicitly: "No active campaign or session changes found. Nothing to hand off." Do not fabricate a handoff.

No context to summarize (fresh session with no edits): Output a minimal handoff noting the session start state. At minimum, include what the user asked about and what was found.

Campaign is in a blocked/parked state: Include the block reason and the recommended next action in the handoff so the next session can resume immediately.

Contextual Gates

Reversibility: Green — this skill writes nothing to disk; the HANDOFF block is display-only. Cost: No cost actions — synthesis only; no agents spawned, no confirmation needed. Trust: No gates — safe at all trust levels.

Exit Protocol

Output the HANDOFF block and then wait for the next command. This skill does not write to disk — the HANDOFF block is the deliverable, for the user to copy into the next session or save manually.

© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in skills/session-handoff of SethGammon/Citadel.

  • SKILL.md
  • __benchmarks__/mid-campaign.md
  • __benchmarks__/no-active-work.md

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Session Handoff next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Session Handoff compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Session Handoff this skillSethGammon/Citadel922—~942Automated safety check: PassMIT
Beads Task Memorygastownhall/beads28k—~1.2kAutomated safety check: PassMIT
Session History Searchslopus/happy24k—~3.1kAutomated safety check: PassMIT
Codewhale Session Handoffcodewhale-hq/Codewhale41k—~1.1kAutomated safety check: PassMIT
Auditopenwpm/OpenWPM1.4k—~676Automated safety check: PassCustom licence
MemorixAVIDS2/memorix835—~516Automated safety check: PassApache-2.0

Similar skills

  • Beads Task Memory

    gastownhall/beads

    Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.

    28k GitHub stars~1.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.

    24k GitHub stars~3.1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Codewhale Session Handoff

    codewhale-hq/Codewhale

    Writes a paste-ready handoff for the next agent session, opening with a state-check command block and separating done, suspected and blocked work.

    41k GitHub stars~1.1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Audit

    openwpm/OpenWPM

    A skill your agent uses when stuck, confused, or disoriented in a crosslink-tracked project — dumps the full context (session state, active issue, locks, blockers, hook config, git state, project…

    1.4k GitHub stars~676 tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Memorix

    AVIDS2/memorix

    A skill your agent uses when Claude Code needs Memorix shared memory, reasoning, Git Memory, mini-skills, session handoff, orchestration coordination, or integration troubleshooting.

    835 GitHub stars~516 tokensUpdated 5 days ago
    Agent WorkflowsAuto-check passed
  • Session Catchup and Handoff

    poshan0126/dotclaude

    Rebuilds working context after /clear by reading a handoff note and the branch's git state, or writes that handoff note before a session ends.

    871 GitHub stars~811 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed

More from SethGammon/Citadel

All 48 skills in this repo
  • Create Skill

    SethGammon/Citadel

    Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

    Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.2k tokensUpdated 6 days ago
    Auto-check passed
  • Loop

    SethGammon/Citadel

    Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.4k tokensUpdated 6 days ago
    Auto-check passed
  • Triage

    SethGammon/Citadel

    GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.7k tokensUpdated 6 days ago
    Auto-check passed
  • Watch

    SethGammon/Citadel

    File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.

    922 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check passed
  • Archon

    SethGammon/Citadel

    Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.

    922 GitHub stars~5.4k tokensUpdated 6 days ago
    Auto-check passed

Works with

Categories

Questions about Session Handoff

What does Session Handoff do?

Synthesizes the current session into a structured HANDOFF block for context transfer between sessions. Session Handoff is an agent skill from SethGammon/Citadel. Synthesizes the current session into a structured HANDOFF block for context transfer between sessions.

When should I use Session Handoff?

Session Handoff fits situations like: tasks that involve Session handoff.

How do I install Session Handoff in Claude Code?

Run `npx skills add SethGammon/Citadel --skill session-handoff -a claude-code`. Or copy the skill folder (skills/session-handoff in SethGammon/Citadel) into .claude/skills/session-handoff in your project. Claude Code loads it when a task matches its description.

How do I install Session Handoff in Codex?

Run `npx skills add SethGammon/Citadel --skill session-handoff -a codex`. Or copy the skill folder (skills/session-handoff in SethGammon/Citadel) into .agents/skills/session-handoff in your project. Codex loads it when a task matches its description.

Can I use Session Handoff in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill session-handoff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/session-handoff, .gemini/skills/session-handoff, .github/skills/session-handoff and .opencode/skills/session-handoff in your project.

What does Session Handoff need to run?

Going by SKILL.md and its folder, Session Handoff needs the command-line tools its instructions call (git).

Does Session Handoff access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Session Handoff safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Session Handoff use?

Session Handoff is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Session Handoff use?

About 942 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Session Handoff?

Skills that share tags, products or a category with Session Handoff: Beads Task Memory (gastownhall/beads, 28k stars), Session History Search (slopus/happy, 24k stars), Codewhale Session Handoff (codewhale-hq/Codewhale, 41k stars) and Audit (openwpm/OpenWPM, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Session Handoff?

SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 922 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 1, 2026.

Source: SethGammon/Citadel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.