ship

Implements changes in an isolated git worktree and opens a pull request or merge request.

Updated Mar 30, 2026
One-click install
npx skills add https://github.com/TrayMachi/dotfiles --skill ship-traymachi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ship
Source: https://github.com/TrayMachi/dotfiles/tree/main/agents/skills/ship
Command: npx skills add https://github.com/TrayMachi/dotfiles --skill ship-traymachi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It automates the full delivery workflow for a code change—branching, implementing, validating, committing, pushing, and opening a PR/MR—without touching your main checkout, so every request becomes a reviewable, validated change. ## Core Features & Use Cases - Isolated Worktree Workflow: Creates a sibling worktree under <repo>-worktrees with a feature/<name> or fix/<name> branch, keeping the main checkout untouched. - Repository-Native Validation: Runs the project's own formatters, linters, type checkers, and tests across JavaScript, Go, Rust, and Python conventions before committing. - Atomic Commits and PR/MR Creation: Produces Conventional Commits, pushes the branch, and opens a GitHub PR via gh or GitLab MR via glab. - Use Case: Type ship fix the navbar overlap on mobile and receive a validated branch, atomic commits, and a merge request link without manually managing git state. ## Quick Start Start your message with the word ship followed by a description of the feature or fix you want delivered as a pull request.

Frequently Asked Questions about ship

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a pull request automatically from a feature request?

Start your message with the literal word ship followed by a description of the feature or fix. The workflow creates a worktree, implements and validates the change, pushes a conventional-commit branch, and opens a PR with gh or an MR with glab.

How does the ship workflow use git worktrees?

It creates a sibling directory named <repo>-worktrees next to the main checkout and adds a worktree on a feature/<name> or fix/<name> branch from the remote default branch. All implementation, commits, and pushes happen there, never in the main checkout.

Does it support GitLab merge requests as well as GitHub pull requests?

Yes. It detects the hosting platform from the git remote and installed tools, using gh pr create for GitHub and glab mr create for GitLab. If neither CLI is available, it stops after pushing and reports the exact command needed.

What happens if my main checkout has uncommitted changes?

The workflow stops and reports that the main checkout must be clean before shipping. It never overwrites, stashes, resets, or deletes existing work, and it refuses to reuse existing branches or worktree paths.

Which validation checks run before commits are created?

It runs the repository's documented checks first, or detects conventions per language: format, lint, typecheck, and test scripts for JavaScript/TypeScript, gofmt and go vet for Go, cargo fmt and clippy for Rust, and configured tooling for Python.

When should I not use the ship trigger?

Do not use it when your message does not start with the literal word ship, or when you only want discussion or exploration without a branch, commits, and PR/MR. The trigger is mandatory once used, even for trivial one-file changes.