ship
Commit, push, and create a PR with
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Commit, push, and create a PR with
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Catch up on what shipped across Platform Engineering / SRE / Observability / Cloud Native — CNCF, Kubernetes, OpenTelemetry, Go / Rust / TypeScript releases, and influential practitioner blogs. Use when the user asks for the "latest", "this week", "catch-up", "trends", "what's new", or wants a weekly report or blog draft in this space. Combine with `/loop` or `/schedule` for recurring runs.
Analyze source code for improvements across security, correctness, performance, refactoring, code smells, and best practices. Supports Go, TypeScript, and Python with language-specific checks.
Basado en la clasificación ocupacional SOC
| name | ship |
| description | Commit, push, and create a PR with |
Commit changes, push, and create a Pull Request with a clean ## What / ## Why description. Match whatever conventions the host repository already uses (language, scope prefixes, commit style) — this skill never imposes its own.
main (fall back to master if main does not exist). Store as BASE_BRANCH.git diff $BASE_BRANCH...HEAD --name-only — list changed filesgit diff $BASE_BRANCH...HEAD — inspect the actual changesgit log $BASE_BRANCH..HEAD --oneline — all commits on this branchgit log --oneline -20 on $BASE_BRANCH — learn the repo's commit/PR title styleauth:, feat(api):, web/ui:). Pick the dominant top-level directory or package when changes span multiple areas. If the repo does not use scopes, skip this.-s), only commit already-staged files.git add -A or git add .) and commit with a message matching the project's style.Co-Authored-By lines unless the project's existing history uses them.git ls-remote --heads origin $(git branch --show-current)
git push -u origin $(git branch --show-current)git pushNever switch branches. All operations happen on the current branch.
Re-read git log $BASE_BRANCH..HEAD --oneline and the full diff to understand what the PR achieves as a whole — the title describes the PR, not just the latest commit.
{type}({scope}): summary or {scope}: summary (e.g. feat(auth):, fix(api):, refactor(web):, docs:, chore:). Otherwise write a plain imperative summary.Write ## What and ## Why sections. ## What is a decision tool, not a description or summary — a reviewer or future engineer should be able to decide whether this PR matters to them without reading the diff.
## What
<One sentence: what problem disappears when this PR is merged?>
## Why
<What prompted this? What risk, pain, or requirement makes this necessary?>
## What rules:
## Why rules:
Before proceeding to Step 7, review EVERY sentence in ## What against all 4 filters below.
If ANY filter matches ANY sentence, rewrite that sentence and re-run the check.
Do NOT proceed to Step 7 until all sentences pass all filters.
Filter 1 — Function/method/API name:
Does the sentence mention a specific function, method, callback, API, class, or variable name
(e.g. set_after_send, useEffect, handleClick, SecretStore::open)?
→ Remove it. Describe the outcome instead.
Filter 2 — "How" verb: Does the sentence use verbs like "migrate to", "refactor into", "move X into Y", "replace X with Y", "consolidate into", "extract into", "split into"? → These describe structural changes (how), not goals (what). Rewrite to describe what the user/system gains.
Filter 3 — Technical mechanism: Does the sentence describe WHERE or HOW the code runs (e.g. "in the callback", "at the middleware layer", "via a cron job", "using a goroutine")? → Remove the mechanism. Describe the behavior change.
Filter 4 — Diff-readable: Could the reader learn this information just by reading the diff? → If yes, it's "how" and should not be in What.
Examples:
set_after_send callback" — function name (filter 1) + "move into" (filter 2) + "callback" (filter 3)fmt.Errorf with liberrors.Wrap across the repository layer" — function names (filter 1) + "replace with" (filter 2) + "repository layer" (filter 3)Create the PR as draft by default. Use --assignee @me.
If the user specified:
--reviewer flags--draftmainAfter PR creation, print the PR URL.
/ship # commit all, push, draft PR to main
/ship -s # staged files only
/ship -b release/v1.0 # target a release branch
/ship -r reviewer1,reviewer2 # assign reviewers
/ship -o # create as open (not draft)
/ship -s -o # combine options