Help us improve
Share bugs, ideas, or general feedback.
From handoff
Generate a handoff document compacting the current conversation for a fresh agent to pick up. Walks the mandatory checklist, runs the redaction linter, saves to the configured location. On first run, asks 'Run setup now? (Y/n)' to choose where handoffs save (OS temp, home folder, project-local). Use when ending a session, switching machines, or passing work to another agent.
npx claudepluginhub msm47/gitskil --plugin handoff-productivityHow this command is triggered — by the user, by Claude, or both
Slash command
/handoff:cs-handoff [goal of next session]This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /cs:handoff
Compact the current conversation into a handoff document for another agent to pick up.
## Invocation
The argument (if provided) becomes the **Goal of next session** verbatim. Without it, infer from the most recent unresolved thread.
## Flow
1. **Check first-run state.** Run `python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/config_loader.py --status`.
- If `should_prompt_setup: true`, ask the user: *"Run setup now? (Y/n)"*.
- **Y** → invoke `/cs:handoff-setup`, then return here.
- **N** → mark declined: `python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scrip...Share bugs, ideas, or general feedback.
Compact the current conversation into a handoff document for another agent to pick up.
/cs:handoff [optional description of what the next session will focus on]
The argument (if provided) becomes the Goal of next session verbatim. Without it, infer from the most recent unresolved thread.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/config_loader.py --status.
should_prompt_setup: true, ask the user: "Run setup now? (Y/n)".
/cs:handoff-setup, then return here.python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/setup.py --decline. Continue with defaults.python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/cleanup.py. mtime-guarded — never deletes edited files.skills/handoff/references/handoff_prompt.md and apply every step against the conversation.python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/handoff_template_generator.py --goal "<goal>". Capture the printed path.python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/skill_recommender.py --goal "<goal>". Pick 3-5 max. Edit the auto-list.python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/handoff_self_check.py <path>. Fixes fidelity gaps (empty Goal, State bullets without artifacts, missing Decisions when git is dirty, too few/many Skills, inline content in Artifacts). Strict mode by default — resolve findings before save.python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/redaction_linter.py <path>. Strict mode by default — resolve findings before save. Use <!-- handoff:allow secret --> for true false positives.When work continues past the original handoff, pass --refresh to the generator instead of creating a new file:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/handoff/scripts/handoff_template_generator.py --refresh --goal "<updated goal>"
The script returns the path of the most recent handoff; edit it in place. Re-run the self-check and redaction linter after editing.
The plugin's SessionStart hook surfaces the most recent handoff (within retention window) on the next session start. The next agent reads it as data, not instructions. Disable per-session with HANDOFF_SESSIONSTART=0.
Inspired by Matt Pocock's handoff skill (MIT). The no-duplication discipline is his.