handoff

handoff is a skill for Claude Code from heliohq/ship. It costs 56 tokens per session (5,964 once invoked), scanned A, original, MIT.

A delivery process for finished software changes, covering local checks, commits, pull requests, automated checks, reviews, and fixes until the change is ready to merge.

In plain words
What is it for?
Use it to verify changes, update related documentation, push a branch, create or update a pull request, monitor checks, and resolve failures or merge conflicts.
Why use it?
It prevents work from being treated as finished while tests, reviews, conflicts, or build checks are still unresolved. It keeps the final handoff tied to evidence.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: names the AskUserQuestion tool; mentions Claude Code; mentions Codex.

Part of the ship plugin — 11 skills, 3 hooks, 1 MCP server shipped together

Good fit Use it to verify changes, update related documentation, push a branch, create or update a pull request, monitor checks, and resolve failures or merge conflicts.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/heliohq/ship/handoff
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add heliohq/ship --skill handoff
Clone the repo
git clone --depth 1 https://github.com/heliohq/ship

Made for: Claude Code.

Or install ship, the plugin that ships this one along with the rest of its 11 skills, 3 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for handoff

README.md
[![agentmods](https://agentmods.dev/badge/skills/heliohq/ship/handoff/github.svg)](https://agentmods.dev/skills/heliohq/ship/handoff)
Your own site
<a href="https://agentmods.dev/skills/heliohq/ship/handoff"><img src="https://agentmods.dev/badge/skills/heliohq/ship/handoff/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for handoff

Your own site · 80×15
<a href="https://agentmods.dev/skills/heliohq/ship/handoff"><img src="https://agentmods.dev/badge/skills/heliohq/ship/handoff.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 56 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,964 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 3 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Tool Misuse · line 386
    Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
  • high Tool Misuse · line 481
    Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
  • medium Memory Poisoning · line 234
    Skill injects content designed to persist in agent memory or context across interactions. Persistent injection can alter agent behavior long after the initial interaction.
    Fix: Do not allow untrusted input to persist in agent memory or context. Validate all content before storing and implement memory isolation between sessions.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00056 $0.05964
Opus 5.5 $0.00022 $0.02386
Sonnet 5.5 $0.00011 $0.01193
Haiku 4.5 $0.00006 $0.00596

Measured 2mo ago against content hash 1e4b7a85cf89, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

handoff scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/handoff/SKILL.md · 607 lines

How it starts

The opening of the file, as written. The whole thing — 607 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Ship: Handoff

Do not stop when the PR is created. Do not stop while any GitHub check is pending. If any GitHub check fails, fix the problem, push again, and wait again. If the PR is not merge-ready, sync with base or resolve conflicts inside the same fix loop.

This is a goal-directed loop, not a counted one. Keep looping while each round makes progress toward the completion conditions; escalate on evidence, never on a round counter — the specific evidence classes are in Loop Governance. Done means every condition in Completion is satisfied.

Process Flow

Phase index — the phases below own the detail:

  1. Pre-flight (resolve branch, base, and scope)
  2. Verify locally
  3. Update changelog / directly affected docs
  4. Push and create/update the PR
  5. Wait for GitHub checks
  6. Fix loop — governed by the round ledger, not a counter

Red Flag

Never:

  • Stop when the PR is created — #1 failure mode
  • Push code changes without re-running relevant local verification
  • Force push without --force-with-lease
  • Rewrite an already-pushed PR branch when there are human review, approval, or shared-branch signals
  • Treat pending checks as "good enough"
  • Treat green checks as sufficient when mergeStateStatus is still blocked
  • Create the PR before local verification runs
  • Use git add -A when unrelated local changes are present
  • Forget to stage and commit changelog or doc edits before the first push
  • Mark a thread or comment as resolved before the fix is actually pushed
  • Resolve comments that still need product, security, or architecture judgment
  • Silently ignore a comment — a decline is a visible reply with a reason
  • Apply "further fixes add no value" to CI or merge-readiness — that judgment exists only for the comment decline classes
  • Fix failures without reading the actual check logs or review comments
  • Sync with base preemptively — only when drift, conflicts, or repo policy require it
  • Re-attempt a fix for a failure signature that already survived a fix aimed at it — the second identical outcome is evidence the approach is wrong; escalate with the ledger instead of iterating on hope
  • Count rounds as a stopping condition — progress, judgment, and external blockers are the only reasons to stop looping
  • Leave doc debt implicit — carry it into the PR

Read the full file on GitHub · 607 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2mo ago First seen · 607 lines · 56 tokens per session scan A 1e4b7a85cf89

Subscribe to this mod's changes

handoff is a skill published in the GitHub repository heliohq/ship (94 stars, last pushed 4mo ago), licensed MIT. It adds 56 tokens to every session and 5,964 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

handoff compared with skills from other repositories

handoff next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
handoffheliohq/shipSkill944mo agoMITA56Claude Code
git-workflow-and-versioningaddyosmani/agent-skillsSkill115k8d agoMITA131Claude Code
git-opsPrismer-AI/PrismerCloudSkill1.4k18d agoMITA62Claude Code
releasegtapps/hermitdSkill84todayMITA104Claude Code, Codex
git-workflowhuangwb8/skillsSkill50yesterdayMITA47Claude Code, Codex
git-branchlessOutlineDriven/odin-claude-pluginSkill401mo agoApache-2.0A45Claude Code, Codex
changelog-generatorborghei/Claude-SkillsSkill1.1kyesterdaynoneA48Claude Code