Agent skill

Ship

by bex-co in bex-co/beancount-io

Ship pending changes on main by pulling with rebase, committing intentionally, and pushing to origin/main.

MITAuto-check passedBusiness, Finance & HR

Install Ship

skills CLI
$ npx skills add bex-co/beancount-io --skill ship -a claude-code

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

GitHub CLI
$ gh skill install bex-co/beancount-io ship --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/bex-co/beancount-io.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ship .claude/skills/ship && 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
ship
GitHub stars
295
Token cost
~1k tokens
SKILL.md length
497 words
Files
2
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Ship pending changes on main by pulling with rebase, committing intentionally, and pushing to origin/main.

  • Works in 6 steps: Verify branch → Inspect state → Pull latest with rebase → …
  • Explicitly invokes $ship
  • SKILL.md covers Session-aware mode, Step 1 — Verify branch, Step 2 — Inspect state and Step 3 — Pull latest with rebase, plus 4 more sections
  • Calls git

What it does

Ship is an agent skill from bex-co/beancount-io. Ship pending changes on main by pulling with rebase, committing intentionally, and pushing to origin/main. Use only when the user explicitly invokes $ship or asks to ship or publish the current main branch.

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Business, Finance & HR, covering Git workflow. It works with Git. The repository describes itself as: 💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo. The licence is MIT.

When your agent uses it

  • Explicitly invokes $ship
  • Publish the current main branch

Example prompts

  • “/ship”

Requirements

  • Pre-approved tools (allowed-tools): Bash(git status:*), Bash(git pull:*), Bash(git fetch:*), Bash(git diff:*), Bash(git show:*), Bash(git log:*), Bash(git add:*), Bash(git commit:*), Bash(git push:*), Bash(git branch:*), Bash(git rev-parse:*), Bash(git rebase:*)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Verify branch
  2. Inspect state
  3. Pull latest with rebase
  4. Stage and commit (if changes pending)
  5. Push
  6. Report

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(git status:*)
    • Bash(git pull:*)
    • Bash(git fetch:*)
    • Bash(git diff:*)
    • Bash(git show:*)
    • Bash(git log:*)
    • Bash(git add:*)
    • Bash(git commit:*)
    • Bash(git push:*)
    • Bash(git branch:*)

    …and 2 more on the same allowed-tools line.

    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

Ship loads about 1k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 497 words of instructions outside code blocks.

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

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 bex-co/beancount-io at commit 2103ca1, republished under its MIT licence (© bex-co). 497 words, ~1,011 tokens.

Download SKILL.mdSave it as .claude/skills/ship/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
ship
description
Ship pending changes on main by pulling with rebase, committing intentionally, and pushing to origin/main. Use only when the user explicitly invokes $ship or asks to ship or publish the current main branch.
allowed-tools
Bash(git status:*), Bash(git pull:*), Bash(git fetch:*), Bash(git diff:*), Bash(git show:*), Bash(git log:*), Bash(git add:*), Bash(git commit:*), Bash(git push:*), Bash(git branch:*), Bash(git rev-parse:*), Bash(git rebase:*)

Task: Ship the current main branch

Usage: /ship [optional commit message context...]

Bring the local main up to date, commit any pending work, and push to origin/main.

Session-aware mode

If you made the pending changes earlier in this conversation, you already know what changed and why:

  • Skip the git diff --stat and git diff --cached --stat calls in Step 2. Run only git status as a sanity check.
  • In Step 4, stage exactly the files you edited this session by name and write the commit message from your session knowledge.
  • If git status shows files you did not touch this session, inspect those files fully (or ask the user) before staging anything beyond your own edits.

Use the full Step 2 inspection when the working tree contains unfamiliar changes.

Step 1 — Verify branch

bash
git branch --show-current

If not on main, STOP and ask the user whether to switch or abort.

Step 2 — Inspect state

bash
git status

If every listed change is one you made this session, skip the diff inspection below. Otherwise, inspect the unfamiliar changes:

bash
git diff --stat
bash
git diff --cached --stat

If the working tree is clean, skip Step 4 but still pull and push.

Step 3 — Pull latest with rebase

bash
git pull --rebase origin main

If the pull/rebase has conflicts, resolve them proactively and continue shipping.

  1. Inspect git status, git diff --name-only --diff-filter=U, each combined diff, relevant surrounding code, and history. For difficult conflicts, inspect both index stages with git show :2:<path> and git show :3:<path>.
  2. Infer both sides' intent and produce the smallest coherent resolution that preserves both whenever possible. Update dependent code, tests, generated outputs, or documentation when the combined result requires it.
  3. Resolve side-by-side when both sides carry intent. Pick --ours or --theirs only when inspection shows one side is the complete intended result.
  4. Remove conflict markers, run the most relevant formatting and tests practical for the affected package, and review the resolved diff for accidental loss.
  5. Stage resolved paths explicitly, run git rebase --continue with a non-interactive editor if necessary, and repeat until complete. If an autostash is restored with conflicts after the rebase, resolve it with the same care; run git rebase --continue only while a rebase is active.
Show full SKILL.md (142 more words)Show less

Escalate only when competing resolutions would materially change behavior and the intended choice cannot be inferred safely, or when unavailable credentials or external state block progress. Leave the worktree and rebase state intact, explain the exact conflict and competing semantics, and ask one narrow question.

Step 4 — Stage and commit (if changes pending)

Stage only the relevant files explicitly by path.

Generate a Conventional Commits message from session knowledge if you made the changes, otherwise from the diff. Honor $ARGUMENTS as additional context if supplied.

  • Briefly describe UI before/after for frontend changes.
bash
git commit -m "$(cat <<'EOF'
<message>
EOF
)"

If a pre-commit hook fails, fix the underlying issue and create a new commit.

Step 5 — Push

bash
git push origin main

If the push is rejected as non-fast-forward, re-run Step 3, resolve conflicts using its procedure, and retry.

Step 6 — Report

Print the shipped HEAD SHA and commit subject. Example:

Shipped: a1b2c3d feat(mobile): add account filters

Optional User Context

$ARGUMENTS

© bex-co, 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 1 other file in .agents/skills/ship of bex-co/beancount-io.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 2103ca1

Compare with similar skills

Ship 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.

Ship compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ship this skillbex-co/beancount-io295—~1kAutomated safety check: PassMIT
Agentsop Aideragentsope/SkillAlchemy459—~3.5kAutomated safety check: PassMIT
Dora Metricsathola/claude-night-market342—~1.2kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Git Guardrails Claude Codefossasia/eventyay-interpretation1.6k13 repos~578Automated safety check: PassApache-2.0
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone

Similar skills

  • Agentsop Aider

    agentsope/SkillAlchemy

    SOP for terminal-based, git-native AI pair programming with Aider (git work-tree + tree-sitter repo-map + edit-format + human-in-loop REPL).

    459 GitHub stars~3.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Dora Metrics

    athola/claude-night-market

    Computes DORA delivery-performance metrics from git and GitHub API.

    342 GitHub stars~1.2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Git Guardrails Claude Code

    fossasia/eventyay-interpretation

    Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute.

    1.6k GitHub starsUsed in 13 repos~578 tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed

More from bex-co/beancount-io

All 27 skills in this repo
  • Beancount Close

    bex-co/beancount-io

    Close an accounting period in a Beancount ledger by reconciling each active account through beancount-reconcile, checking assertions and recurring gaps, reviewing flags, then proposing a commit with…

    295 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Beancount Import

    bex-co/beancount-io

    Import a bank or card CSV, OFX/QFX, or QIF export into an existing Beancount ledger.

    295 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • Beancount Importer Author

    bex-co/beancount-io

    Write or repair a reusable Beangulp importer from a sample bank export, with reviewed golden files and a passing test harness.

    295 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Beancount Init

    bex-co/beancount-io

    Scaffold a new Beancount ledger with bea init and validation, with optional Fava browser setup when requested.

    295 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check: notes
  • Beancount Options

    bex-co/beancount-io

    Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.

    295 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Beancount Reconcile

    bex-co/beancount-io

    Reconcile one Beancount account against a CSV statement or pasted PDF text.

    295 GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Ship

What does Ship do?

Ship pending changes on main by pulling with rebase, committing intentionally, and pushing to origin/main. Ship is an agent skill from bex-co/beancount-io. Ship pending changes on main by pulling with rebase, committing intentionally, and pushing to origin/main.

When should I use Ship?

Ship fits situations like: explicitly invokes $ship; publish the current main branch.

How do I install Ship in Claude Code?

Run `npx skills add bex-co/beancount-io --skill ship -a claude-code`. Or copy the skill folder (.agents/skills/ship in bex-co/beancount-io) into .claude/skills/ship in your project. Claude Code loads it when a task matches its description.

How do I install Ship in Codex?

Run `npx skills add bex-co/beancount-io --skill ship -a codex`. Or copy the skill folder (.agents/skills/ship in bex-co/beancount-io) into .agents/skills/ship in your project. Codex loads it when a task matches its description.

Can I use Ship 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 bex-co/beancount-io --skill ship -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ship, .gemini/skills/ship, .github/skills/ship and .opencode/skills/ship in your project.

What does Ship need to run?

Going by SKILL.md and its folder, Ship needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Bash(git status:*), Bash(git pull:*), Bash(git fetch:*), Bash(git diff:*), Bash(git show:*), Bash(git log:*), Bash(git add:*), Bash(git commit:*), Bash(git push:*), Bash(git branch:*), Bash(git rev-parse:*), Bash(git rebase:*).

Does Ship 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 Ship 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 Ship use?

Ship is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ship use?

About 1k tokens (SKILL.md is roughly 4k 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 Ship?

Skills that share tags, products or a category with Ship: Agentsop Aider (agentsope/SkillAlchemy, 459 stars), Dora Metrics (athola/claude-night-market, 342 stars), Finishing a Development Branch (obra/superpowers, 296k stars) and Git Guardrails Claude Code (fossasia/eventyay-interpretation, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ship?

bex-co (a GitHub organization) maintains it in bex-co/beancount-io, which has 295 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.

Source: bex-co/beancount-io on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.