Haiku Reads, Sonnet Builds, Opus Reviews

Go back3 min read

If you use Claude Code a lot, you’ve probably noticed that running the biggest model for everything burns through your limits fast. Dropping to a smaller model for everything isn’t great either, because you lose the careful review on the parts that matter. I built ship-kit so I didn’t have to pick between the two.

What it is

ship-kit is a Claude Code plugin. You describe a feature or a bug in plain English and it takes it from there.

/ship-kit:ship Double-clicking Pay applies the coupon twice

Who does what

Each model gets the job it’s best at.

  • Haiku scouts the codebase. Two to four of them run in parallel and come back with short summaries and file references. They can’t edit anything.
  • Sonnet is the main session. It plans, writes the code, and runs the tests.
  • Opus reviews. It only gets called at three checkpoints, and it can’t edit anything either.

The three checkpoints

  1. Before the plan is locked. Opus looks for rules enforced in the wrong place, missed edge cases, and schema or auth risks.
  2. When the same test fails twice. Instead of letting Sonnet keep guessing, Opus checks whether it’s fixing the root cause or just patching the symptom.
  3. Before calling it done. Opus reads the full diff and looks for regressions or migrations that would break existing data.

So Opus runs at most three times per task. That costs more than Sonnet alone, but a lot less than running Opus the whole time.

No screenshots, not done

Every run has to end with screenshots that prove the change works. For UI changes that’s the app working, plus a “before” shot for bugs when it can still reproduce them. For backend changes it’s the passing tests. They’re saved outside your repo in ~/.claude/ship-evidence/.

If it can’t take a screenshot, it has to tell you why instead of saying the work is verified. The final review opens every screenshot too, so a blank page or an error overlay doesn’t slip through.

It also never commits, pushes, or deploys. You review the diff and commit it yourself.

Try it

claude plugin marketplace add denniscampos/ship-kit
claude plugin install ship-kit@ship-kit

Start a new Claude Code session and run /ship-kit:ship with your task. If you want to change how it works, fork the repo and edit the Markdown files. The whole workflow lives in skills/ship/SKILL.md.

If you have any questions or feedback, feel free to reach out from the socials below. Thanks for reading!

Enjoyed the Blog? Clickhereto buy me Coffee! ☕