home/dot_claude/skills/handoff/SKILL.md
Write a handoff brief summarizing the current conversation so a fresh agent can pick up the work. Writes to a file if given, otherwise copies to the clipboard.
npx skillsauth add ivy/dotfiles handoffInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write a compact, actionable brief that lets a fresh agent (with empty context) resume where this conversation left off.
$ARGUMENTS
If a filename is given, write the brief there. Otherwise pipe it to pbcopy.
Run only what's relevant — don't dump everything. Typical:
pwd
git rev-parse --abbrev-ref HEAD
git status --short
git log --oneline -5
git diff --stat
Skip git commands entirely if the work isn't in a repo or the state is irrelevant (e.g. pure research conversation).
Use the structure below. Keep it dense — a fresh agent reads this cold and should be able to continue within a minute. Omit sections that don't apply; don't pad.
# Handoff: <one-line task title>
## Mission
<1–3 sentences: what the user is trying to accomplish and why it matters.>
## State
- **Cwd:** <path>
- **Branch:** <branch> (omit if not in a repo)
- **Uncommitted:** <short summary of dirty files, or "clean">
- **Last commit:** <sha — subject>
## Done
- <Completed step> — `path/to/file:line` if relevant
- ...
## In progress
- <What's actively being worked on; include the specific file/line and what's half-finished>
## Next steps
1. <First concrete action>
2. <Next>
3. ...
## Decisions made
- **<decision>** — <why>. Rejected: <what was considered and discarded>.
## Don't redo
- <Approach already tried that failed> — <why it didn't work>
## Open questions
- <Question for the user or new agent to resolve>
## Key files
- `path/to/file:line` — <why it matters>
## Useful commands
- `command` — <what it does in this context>
If $ARGUMENTS is non-empty → treat it as the filename and write the brief there with the Write tool. Report the absolute path.
If $ARGUMENTS is empty → pipe the brief to pbcopy:
pbcopy << 'HANDOFF_EOF'
<the brief>
HANDOFF_EOF
Confirm "Handoff copied to clipboard" with a one-line summary of what's in it.
/handoff → copy brief to clipboard
/handoff HANDOFF.md → write brief to ./HANDOFF.md
/handoff /tmp/auth-refactor.md → write brief to absolute path
/handoff notes/today.md → write brief to nested path (create dirs as needed)
data-ai
Use when the user wants to set, change, or clear git commit co-authors for pair or mob programming.
tools
Use when bootstrapping hk pre-commit hooks for a project.
testing
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
tools
--- name: gitingest description: Use when the user wants to fetch and contextualize a GitHub repository for future reference. argument-hint: [url | user/repo | repo-name] [filters...] allowed-tools: - Bash(mkdir docs/reference) - Bash(gitingest:*) - Read --- # Fetch GitHub Repository Context ## Arguments ``` $ARGUMENTS ``` ## Instructions ### 1. Parse Input - **Full URL**: use directly - **user/repo**: construct `https://github.com/{user/repo}` - **Single name**: infer canonical repo