Shipwright Harness

Rollout model

Trust is the bottleneck, not the tooling.

Most teams stall on AI adoption for the same reason: nobody wants to be the person who let an agent break production. So it stays a side experiment for a few enthusiasts and nothing changes for everyone else.

Shipwright is built to be dialled up, not switched on. You choose how much the agent does on its own, and you change your mind in under a minute.

The three stages

Stage 1

Plan and build.

The agent reads your task queue, picks the next ready task, builds it with tests, and opens a PR. Your engineers review and merge, exactly as they would for a new hire. The agent cannot merge anything.

Crons: dev-task on.review, patch,deploy off.

Stage 2

Add review and patch.

The agent reviews open PRs and fixes failing CI. Review and patch are separate toggles, so you can take one without the other. Your engineers still control every merge.

Crons: dev-task, review,patch on. deploy off.

Stage 3

Close the loop.

The agent merges approved PRs and watches post-merge CI. Plan, build, review, patch, deploy, without manual intervention.

Crons: all on.

Only turn on Stage 3 once the safeguards are in place: CI gates, required reviewers, and a working deploy pre-check. The docs say the same thing, and we mean it.

The dial, in detail

Each of these is a real setting in state/agent-policy.md, changed by asking your agent. No restart, no redeploy, picked up on the next config sync.

You wantSetting
Read every review before it reaches GitHubauto_post_reviews: false - findings stage locally until you approve them
An agent can never block a human PRallowed_events excludes REQUEST_CHANGES by default
Agent PRs always need a human reviewerallow_self_review: false, the default
Less review noisemin_confidence, max_findings

What does not change between stages

Three things are true at Stage 1 and still true at Stage 3:

Two ways in

Every stage is a toggle, and every toggle goes both ways. If a stage is not working for your team, turn it off and nothing is stranded.

Read the full configuration reference →

Try it

Install the plugin into Claude Code and run a task end to end. Free, MIT, runs on your own infra.

/plugin install shipwright@app-vitals/shipwright

Rolling this out to a team? We can talk through which stage to start at.How the stages work