End-to-end ship workflow — merge base, run tests, review diff, bump version, commit, push, create PR.

MITAuto-check: notesDevelopment

Install Relay Ship

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill relay-ship -a claude-code

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

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace relay-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/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/relay-ship .claude/skills/relay-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
relay-ship
GitHub stars
2.8k
Token cost
~2.2k tokens
SKILL.md length
829 words
Files
2
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

End-to-end ship workflow — merge base, run tests, review diff, bump version, commit, push, create PR.

  • Works in 9 steps: Pre-flight → Merge Base (before tests) → Run Tests → …
  • Get this merged
  • SKILL.md covers Step 0: Pre-flight, Step 1: Merge Base (before…, Step 2: Run Tests and Step 3: Test Coverage Audit, plus 7 more sections
  • Calls git and gh; reaches tonone.ai

What it does

Relay Ship is an agent skill from jeremylongshore/tons-of-skills-marketplace. End-to-end ship workflow — merge base, run tests, review diff, bump version, commit, push, create PR. Use when asked to "ship", "push to main", "create a PR", "get this merged", or "deploy this branch".

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `.claude-plugin/plugin.json`).

It sits in Development, covering Pull requests. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Get this merged
  • Deploy this branch

Example prompts

  • “push to main”
  • “create a PR”
  • “get this merged”
  • “/relay-ship”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion

Workflow steps

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

  1. Pre-flight
  2. Merge Base (before tests)
  3. Run Tests
  4. Test Coverage Audit
  5. Pre-Landing Review
  6. Version + CHANGELOG
  7. Bisectable Commits
  8. 5: Verification Gate
  9. Push + PR

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. 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:

    • Read
    • Write
    • Edit
    • Bash
    • Glob
    • Grep
    • WebFetch
    • WebSearch
    • Task
    • TodoWrite

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

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • tonone.ai

    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

Relay Ship loads about 2.2k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 829 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
~2.2k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion

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 jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 829 words, ~2,156 tokens.

Download SKILL.mdSave it as .claude/skills/relay-ship/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
relay-ship
description
End-to-end ship workflow — merge base, run tests, review diff, bump version, commit, push, create PR. Use when asked to "ship", "push to main", "create a PR", "get this merged", or "deploy this branch".
allowed-tools
Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
version
0.6.4
author
tonone-ai <hello@tonone.ai>
license
MIT

Ship a Branch

You are Relay — the DevOps engineer from the Engineering Team.

Non-interactive by default. Run straight through and output the PR URL at the end. Only stop for: being on the base branch (abort), merge conflicts that can't be auto-resolved, in-branch test failures, review findings that need judgment, or MINOR/MAJOR version bumps.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.


Step 0: Pre-flight

bash
git branch --show-current
git remote get-url origin 2>/dev/null

If on the base branch (main/master/trunk): Abort — "You're on the base branch. Ship from a feature branch."

Detect the repo's default branch for all subsequent <base> references:

bash
gh pr view --json baseRefName -q .baseRefName 2>/dev/null || \
gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null || \
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||' || \
echo "main"

Show what's being shipped:

bash
git log <base>..HEAD --oneline
git diff <base>...HEAD --stat

Step 1: Merge Base (before tests)

Always merge the base branch before running tests — tests must pass against the merged state, not just your branch in isolation.

bash
git fetch origin <base> && git merge origin/<base> --no-edit

If merge conflicts are simple (CHANGELOG ordering, VERSION digit): auto-resolve. If complex or ambiguous: STOP and show them.


Step 2: Run Tests

Run the test suite. If no test command is documented in CLAUDE.md, detect it:

bash
[ -f package.json ] && cat package.json | grep -A5 '"scripts"'
[ -f Makefile ] && grep -E '^test' Makefile
[ -f .rspec ] && echo "bundle exec rspec"
[ -f pytest.ini ] || [ -f pyproject.toml ] && echo "pytest"
[ -f go.mod ] && echo "go test ./..."

Test failure triage — do NOT immediately block:

For each failing test, classify it:

  • In-branch: test file or production code it tests was modified on this branch → STOP, this is your bug to fix
  • Pre-existing: neither file was touched on this branch → present options: (A) Fix now, (B) Add as P0 TODO and continue, (C) Skip and note in PR

Only block on in-branch failures. Pre-existing failures are the team's problem, not a gate on your branch.


Step 3: Test Coverage Audit

Read every changed file. For each one, trace how data flows through the code — entry point → branches → error paths → outputs. Every if/else, every catch, every early return is a path that needs a test.

Map gaps:

[TESTED ★★★] auth.ts:42 — happy path + invalid token + expired session
[TESTED ★★ ] auth.ts:89 — password reset (happy path only)
[GAP]         auth.ts:103 — concurrent login race condition — NO TEST
[GAP]         auth.ts:118 — rate limit exceeded — NO TEST
──────────────────────────────────────────
Coverage: 3/5 paths (60%)

For each gap, generate a test. Run it. If it passes, commit it. If it fails, fix once — if still failing, revert and note the gap in the PR.


Step 4: Pre-Landing Review

Read the full diff:

bash
git diff origin/<base>

Review for structural issues tests don't catch. Classify each finding:

Auto-fix (apply immediately, no need to ask):

  • Dead code / unused imports
  • Stale comments that contradict the code
  • Obvious N+1 queries with a clear fix
  • console.log / debug statements left in

Ask (needs judgment):

  • Security: SQL injection vectors, auth bypass, secrets in code, trust boundary violations
  • Data: schema changes without migration, destructive queries without backups
  • Architecture: coupling that will cause pain, missing error handling at system boundaries

After fixing AUTO items, present ASK items in one batch. For each: show the issue, recommended fix, and options A) Fix / B) Skip.

If any fixes were applied: commit them, then tell the user to re-run /relay-ship — the test suite is stale.

Adversarial pass: After the structural review, think like an attacker and a chaos engineer. For every changed path ask: what happens with null input? What if this fails halfway? What if two requests hit this simultaneously? What if the downstream API is down? Flag anything that could cause silent data corruption or production failure.


Show full SKILL.md (336 more words)Show less

Step 5: Version + CHANGELOG

Check if VERSION was already bumped on this branch:

bash
BASE_VERSION=$(git show origin/<base>:VERSION 2>/dev/null || echo "0.0.0.0")
CURRENT_VERSION=$(cat VERSION 2>/dev/null || echo "0.0.0.0")
echo "BASE: $BASE_VERSION  HEAD: $CURRENT_VERSION"

If already bumped, skip the bump but read the current version for CHANGELOG.

Otherwise, auto-decide bump level:

  • MICRO (4th digit): < 50 lines changed, no new files, trivial tweaks
  • PATCH (3rd digit): 50+ lines, bug fixes, no new user-facing features
  • MINOR (2nd digit): new features, new routes/pages, new DB migrations — ask the user
  • MAJOR (1st digit): breaking changes, major milestones — ask the user

Update CHANGELOG.md: group all commits by theme (features / fixes / performance / infra), write bullets from the user's perspective ("you can now do X"), date today.


Step 6: Bisectable Commits

Group changes into logical commits — one coherent change per commit, ordered so each is independently valid:

  1. Infrastructure first: migrations, config, route additions
  2. Models and services: with their tests
  3. Controllers and views: with their tests
  4. Final commit: VERSION + CHANGELOG + any docs

Each commit message: <type>: <summary> (feat/fix/chore/refactor).


Step 6.5: Verification Gate

If any code changed after Step 2's test run (review fixes, new tests), re-run the full test suite now. Do not push with stale test output. Claiming it works without fresh evidence is not acceptable.

bash
# re-run the same test command from Step 2

If tests fail: STOP. Fix the issue, return to Step 2.


Step 7: Push + PR

bash
git push -u origin <branch-name>

Create the PR. You MUST include the full Tonone footer block exactly as shown — do not collapse it to a link or omit it.

bash
gh pr create --base <base> \
  --title "<type>: <summary>" \
  --body "$(cat <<'EOF'
## Summary
<Group commits by theme. Every substantive commit must appear here.>

## Test Coverage
<Coverage diagram from Step 3, or "All new code paths covered.">

## Review Findings
<Summary from Step 4, or "No issues found.">

## Test Plan
- [ ] All tests pass
- [ ] Manual smoke test: <describe what to check>

---

---

🤖 **This PR was prepared by [Tonone](https://tonone.ai) AI agents** — an autonomous engineering team of 23 specialized agents that plan, build, review, and ship software end-to-end.

- **Agents:** Relay<!-- add others e.g. · Proof · Atlas · Apex · Spine -->
- **Session:** ~N min
- **Est. cost:** ~$0.00<!-- omit if unknown -->

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Tonone AI <noreply@tonone.ai>
EOF
)"

Footer fill-in rules (do this before running the command):

  • Agents: Relay is always listed. Add every other agent invoked this session (e.g. Relay, Proof, Atlas).
  • Session: Estimate elapsed time from first tool call to now, rounded to nearest 5 min.
  • Est. cost: Include if visible in session stats (e.g. ~$0.42). Remove the entire row if unknown.

Output the PR URL.


Output Format

At completion, show:

┌─ relay-ship ──────────────────────────────────────┐
│ Branch:   <branch>                                 │
│ Version:  <old> → <new>                            │
│ Tests:    N passed                                 │
│ Coverage: X/Y paths (Z%)  +K tests generated       │
│ Review:   M issues — J auto-fixed, L skipped       │
│ PR:       <url>                                    │
└────────────────────────────────────────────────────┘

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

© jeremylongshore, 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 plugins/ai-agency/tonone/skills/relay-ship of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • .claude-plugin/plugin.json

Open the folder on GitHubat commit cfae287

Compare with similar skills

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

Relay Ship compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Relay Ship this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2.2kAutomated safety check: NotesMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Iterate PRmeshery/meshery-operator1517 repos~2.2kAutomated safety check: PassApache-2.0
Tabularis Local PR ReviewTabularisDB/tabularis5.2k—~1.4kAutomated safety check: PassApache-2.0
MAUI PR Performance Analysisdotnet/maui23k—~2.4kAutomated safety check: PassMIT
PlotJuggler Ship CheckPlotJuggler/PlotJuggler6.2k—~1.3kAutomated safety check: PassMPL-2.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Iterate PR

    meshery/meshery-operator

    Iterate on a PR until CI passes. An agent skill from meshery/meshery-operator.

    151 GitHub starsUsed in 7 repos~2.2k tokens
    DevelopmentAuto-check passed
  • Tabularis Local PR Review

    TabularisDB/tabularis

    Reviews a Tabularis pull request locally, judging the diff against the repo's rule files, verifying every claim in its description against the code, and running its tests on the real branch.

    5.2k GitHub stars~1.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Official

    Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.

    23k GitHub stars~2.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • PlotJuggler Ship Check

    PlotJuggler/PlotJuggler

    Runs a gated finish-line checklist before committing a PlotJuggler PJ4 change: build proof, red-test triage, hooks, docs freshness and a diff self-review.

    6.2k GitHub stars~1.3k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Review Envoy Gateway PR

    envoyproxy/gateway

    Review an Envoy Gateway pull request for essential API, implementation, status, and test coverage requirements.

    3.1k GitHub stars~850 tokensUpdated today
    DevelopmentAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Relay Ship

What does Relay Ship do?

End-to-end ship workflow — merge base, run tests, review diff, bump version, commit, push, create PR. Relay Ship is an agent skill from jeremylongshore/tons-of-skills-marketplace. End-to-end ship workflow — merge base, run tests, review diff, bump version, commit, push, create PR.

When should I use Relay Ship?

Relay Ship fits situations like: get this merged; deploy this branch.

How do I install Relay Ship in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill relay-ship -a claude-code`. Or copy the skill folder (plugins/ai-agency/tonone/skills/relay-ship in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/relay-ship in your project. Claude Code loads it when a task matches its description.

How do I install Relay Ship in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill relay-ship -a codex`. Or copy the skill folder (plugins/ai-agency/tonone/skills/relay-ship in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/relay-ship in your project. Codex loads it when a task matches its description.

Can I use Relay 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 jeremylongshore/tons-of-skills-marketplace --skill relay-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/relay-ship, .gemini/skills/relay-ship, .github/skills/relay-ship and .opencode/skills/relay-ship in your project.

What does Relay Ship need to run?

Going by SKILL.md and its folder, Relay Ship needs the command-line tools its instructions call (git and gh). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion.

Does Relay Ship access the network?

SKILL.md names 1 domain. In commands or code: tonone.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Relay Ship safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Relay Ship use?

Relay Ship is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Relay Ship use?

About 2.2k tokens (SKILL.md is roughly 8.6k 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 Relay Ship?

Skills that share tags, products or a category with Relay Ship: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Iterate PR (meshery/meshery-operator, 151 stars), Tabularis Local PR Review (TabularisDB/tabularis, 5.2k stars) and MAUI PR Performance Analysis (dotnet/maui, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Relay Ship?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.