In short:
ak-shiptakes a finished branch through tests, review, version, changelog, commit and push, and opens a PR, all in one command. Add--mergeand it hands off toak-review-prto get to a merge, then passes on toak-journal. It does not work around failures outside its reach, like missing credentials or a conflict it cannot resolve: it stops and shows you the evidence.
Disclosure: I maintain AgentKit and have an affiliate relationship with it: the AgentKit link in this post is an affiliate link; buying through it gets you 30% off.
Summary
Use it when you have a finished feature branch and need a PR. Do not run it while you are on the target branch: it cancels right away.
flowchart LR
A["ak-code-review"] --> B["ak-ship"]
B --> C["PR URL"]
B --> D["--merge: ak-review-pr merge, green CI"]
B --> E["Stop: out-of-reach failure, conflict"]
C --> F["ak-journal"]Every ship settles 4 points:
| Point | Question | Example |
|---|---|---|
| Ship mode | Which branch does the PR target, and which steps run? | official targets the default branch and runs the docs step. beta targets the development branch and skips docs |
| Gates | When does it fix things itself, and when does it stop? | Tests fail because of the branch's code: fix and rerun. Missing credentials: stop with evidence |
| Commit scope | Which files go into the commit? | Only files for the work being shipped, plus version, changelog, plan and related docs |
| Who merges | Stop at the PR or go on to merge? | Stops at the PR URL by default. With --merge it hands off to ak-review-pr |
With no mode given, it guesses from the current branch name (feature/* is official, dev/* is beta), and asks you when it is unclear. If the repo declares a batch merger, ship stops after opening the PR, even with --merge.
Sample prompt for shipping to the main branch:
/ak-ship official| Flag | What it is for | Since ak |
|---|---|---|
--both | Ships to beta, then to stable, in one run | 2.13.0 |
--advice | Has kongming supervise the path to the PR | 2.13.0 |
--merge | Goes on from the PR to a reviewed merge | 2.13.0 |
--skip-tests | Skips the test step | 1.0.0 |
--skip-review | Skips the local review before the PR | 1.0.0 |
--skip-journal | Skips writing the journal | 1.0.0 |
--skip-docs | Skips the docs update | 1.0.0 |
--social | Posts build-in-public after shipping | 2.12.0 |
--yes-post | Posts for real, not just a dry run | 2.12.0 |
--yes-post-private | A second confirmation when the repo is private | 2.12.0 |
--dry-run | Previews without doing anything | 1.0.0 |
Below is the detailed version: the run flow, 6 situations with prompts, each flag explained (when to use it, when you do not need it, what you get, which flags it combines with), the change history by ak release, and common pitfalls. The detailed version and the interactive page are for subscribers. Your agent can also search them through the portal's MCP.
Opens when your account has subscriber access
This guide is for subscribers
Once your account has access, the full piece, the interactive visual and the agent call all open.
- Sign in or create a modernEngineer accountReading access belongs to your account email.
- Choose a plan on the pricing page1, 3 or 12 months, paid by VietQR bank transfer. Access opens about a minute after the money arrives.
- Or redeem a Facebook subscriber codePeople supporting the page on Facebook get an activation code by message each month.
Already a subscriber? Sign in to read.
Use this piece in your agent
Get an API keyCopy the text below and paste it into Claude Code, Codex or whichever agent you use. The agent reads the piece and checks it against the repo you have open.
Read "ak-ship: take a finished branch through tests and review to a PR" on modernEngineer and apply it to this repo.
1. Call the content_get tool of the modernengineer MCP server with locale "en", slug "ak-ship". If the modernengineer MCP server is not connected, stop and walk me through connecting it from https://modernengineer.dev/en/mcp.
2. Summarize the main steps of the piece and point out which apply to this repo.
3. Propose concrete changes and ask me before editing any file.Connect MCP in Claude Code (once)
claude mcp add --transport http modernengineer \
https://api.modernengineer.dev/mcp \
--header "Authorization: Bearer <API key>"Reading the full piece over MCP needs an API key from a subscriber account or one that bought this guide. Without access, the agent only gets the opening.
- Version
- v1.0.0
- Updated
- 22/10/2026
- Licence
- All rights reserved
- Slug
- ak-ship


