Coding agents can write a fix. Shipmill does the rest: it triages the issue, lands the pull request on green CI, cuts the release your policy allows and tells the person who reported it. The agents run on your machine. Every decision stays in your repo.
Shipmill runs on Shipmill
This is one morning on Shipmill's own repository. The agent checked the issue against main, wrote the fix with a test, reviewed it in its own worktree and merged it once CI went green. Then the policy cut the release, published it and told the issue.
Every step left a comment, a label or a tag on the issue, so you can audit the whole run from one page.
How it works
Agents do the judgment work; plain CI and the shipmill CLI do the releasing. The release side works without the agents, so you can start there.
Feature requests and discussions grouped into opportunities you accept or decline
A verdict on every issue (implement, feature, postpone, clarify), with a comment and labels
The issue verified against main, fixed with a regression test, opened as a pull request
Each pull request reviewed in its own worktree, small problems fixed, merged only on green CI
Cut on its lane when the policy says one is due, CI run on that exact commit, tagged and published
Health checks, bake time, promotion between environments, rollback that opens an incident
A stalled release, a missing upload, an unannounced fix: reported and finished
You stay in charge
Every stage runs at observe, propose or act. Start with agents that only comment, then let them open pull requests, then let them merge. One file, shipmill.toml, holds the whole policy and goes through review like any other code.
Ask shipmill status what needs you. It answers stuck, waits on you, working or idle, with a link to each item.
Open a shipmill-hold issue, from your phone if you must, and no agent or lane moves until you close it.
Release lanes
Each pull request adds its own CHANGELOG entry, and the entries decide the next version. Installers skip dev and rc unless asked, so someone who needs a fix today pins the pre-release while everyone else waits for a stable one that soaked.
From main after every batch of merges
From main each workday morning
An rc that soaked without a blocker
The pull requests you name, by hand only
Run this in the repo with Claude Code. Setup asks which lanes you want and opens a pull request; releases stay in dry run until you switch them on.
claude plugin marketplace add shipmill/shipmill && claude plugin install shipmill@shipmill && claude "/shipmill:shipmill-setup"