From claude-skills
Park current working state + session context on a `handoff/<topic>` git branch and push it, so work can be picked up on another machine or in a fresh session via the `handoff-pull` skill. Triggered when the user says "handoff", "handoff-push", "park this session", "hand over", "move to another machine", or similar. Creates/updates `handoff/<topic>` with any uncommitted work plus `.handoff/notes.md` describing status, next steps, and pointers to related PR/tickets. Git-only — does not manage env vars, auth, or memory directories.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-skills:handoff-pushThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Park current working state and session context on a `handoff/<topic>` branch and push it. The receiving-end skill is `handoff-pull`.
Park current working state and session context on a handoff/<topic> branch and push it. The receiving-end skill is handoff-pull.
origin. If not, stop and tell the user.handoff/<something>, the user probably meant to re-snapshot the existing handoff — keep the topic name and proceed.Pick the topic name. Default rule: take the current branch, strip common prefixes (can/, fix/, feat/, refactor/, chore/, and any leading ticket prefix like pla-1188-). Propose the result to the user and let them override in one line. Example: can/pla-1188-domainpurchasesaga-createcloudflarezone-not-idempotent → pla-1188-cf-zone-idempotent.
Preserve uncommitted work on the CURRENT branch first. Do this before switching, so the user's checkpoint stays on their feature branch:
if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
git add -A
git commit -m "wip: handoff snapshot"
fi
Create or fast-forward the handoff branch from current HEAD:
git checkout -B handoff/<topic>
Write .handoff/notes.md. Brief the reader like a colleague walking in cold. Sections (use this exact structure):
# Handoff: <topic>
**Parent branch:** <original feature branch name>
**Last handoff:** <ISO timestamp>
## Current status
<2–4 sentences. What's done, what's pending, what's broken. Reference file paths + line numbers where helpful.>
## Next steps
1. <Concrete action — include the command if there is one>
2. ...
## Related
- PR: <URL or "none yet">
- Linear: <ticket ID and URL>
- Other handoff branches: <if this topic has siblings, list them>
## Key decisions this session
- <Things a cold reader wouldn't learn from git log — tradeoffs, rejected alternatives, why-not-X>
Write this based on the current conversation and git state. Specific file paths + exact commands beat vague summaries.
Commit and push:
mkdir -p .handoff
# (write notes.md)
git add .handoff/notes.md
git commit -m "handoff: <topic>"
git push -u origin handoff/<topic>
Return to the original feature branch so the user can keep working if they change their mind:
git checkout <original feature branch>
Print pickup instructions exactly:
Handoff pushed: handoff/<topic>
On the other machine:
git fetch && git checkout handoff/<topic>
claude
# then ask Claude to pick it up via the `handoff-pull` skill
.handoff/ directory only exists on handoff/* branches. Never commit it to main or feature branches.git push origin --delete handoff/<topic>
git branch -D handoff/<topic>
internal/services/domain/purchase.go:566.go test ./internal/services/domain/...).Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub canyugs/claude-skills --plugin claude-skills