SwiftRelay

← All sprint notes

First Lap: A Checklist for Claude Haiku 4.5 Review Runs

Model splitsEN

Write the Review Brief Before the First Run

A first-pass review is only as sharp as the brief in front of it. Claude Haiku 4.5 will review anything you hand it, so the value of the findings depends on fixing the job before the run starts. Name the language, the framework, the conventions your team enforces, and the classes of defect that matter most.

Set severity language early. If every comment reads like an emergency, your team stops reading the comments. Ask for three tiers and require the reviewer to label each finding with exactly one of them.

  • Blocking: correctness bugs, security holes, data loss risks, and broken public contracts.
  • Follow-up: missing tests, rough abstractions, and documentation gaps worth their own ticket.
  • Style: preferences that a formatter should own, kept to a short list at the end.

Store that brief next to your review configuration and paste it unchanged on every run. A stable brief turns the first pass into a comparable signal instead of a fresh opinion each time.

Send the Diff With the Context It Actually Needs

A diff alone rarely carries enough meaning. Give the reviewer the changed files with surrounding code, the signatures of the functions and types the change touches, and the test that exercises the new path. That is enough for Haiku 4.5 to reason about behavior instead of guessing at it.

Include the failure you are chasing: the error message, the stack frame, the repro steps, or the ticket text. A reviewer that can see the symptom looks for the cause rather than commenting on whitespace.

  • Include the diff, the touched interfaces, relevant test output, the task description, and any spec clause the change claims to satisfy.
  • Exclude lockfile churn, generated code, vendored dependencies, and formatting-only hunks that bury the real change.
  • Split unrelated refactors into their own pull requests; smaller changes earn sharper reviews.

When a touched file is long, paste the region around the change plus the type definitions it depends on instead of the whole file. Precision beats volume here.

Keep the packet identical across runs so differences in findings reflect differences in code. Consistent input is what makes week-over-week review results worth comparing.

Run the Same Checklist on Every Pull Request

Free-form review questions drift. One run you get security notes, the next you get naming nits. A fixed checklist spreads attention evenly and shows you when a class of defect keeps slipping through.

  • Correctness: does the change do what the ticket asks on every branch?
  • Edge cases: empty collections, zero values, nulls, unicode input, concurrent access.
  • Error handling: are failures caught, wrapped, logged, and surfaced sensibly?
  • Security: injection, missing auth checks, secrets in logs, unvalidated redirects.
  • API surface: naming, parameter order, breaking changes, deprecation notes.
  • Tests: is the new code covered, and do the assertions assert something real?
  • Operability: useful logs, safe defaults, and clear failure messages for the on-call engineer.

Ask for a short verdict per item, clear, needs work, or not applicable, before any prose. The verdict list gives you a scan-friendly summary, and the prose underneath explains the calls worth reading.

Treat the checklist as living documentation. When a bug escapes to production, add the question that would have caught it, and drop items that never produce findings.

Split Findings Into Blockers, Follow-Ups, and Nits

First-pass reviews usually fail by drowning the signal. A reviewer that comments on everything produces a wall of suggestions people skim past, and one real defect hides in the middle of it. Ask explicitly for restraint: flag only what would change a decision.

Require every finding to cite the file and line, state the reason in one sentence, and offer a concrete fix or a test that would catch the problem. Findings without evidence are cheap; findings with a suggested patch are actionable.

  • Comments on code the change did not touch.
  • Restatements of the code with no reason attached.
  • Style preferences already enforced by tooling.
  • The same point repeated across multiple files.

Deduplicate before sharing the report. Six complaints about the same helper function are one finding, and teammates will thank you for collapsing them.

Watch for confident guesses dressed as facts. If a comment asserts intent the code does not show, ask the reviewer to mark uncertainty instead of inventing a story about the author's reasoning.

Escalate the Ambiguous Calls for a Second Pass

The first pass is a triage layer, not a verdict. Some comments are obvious wins you can apply immediately. Others touch design tradeoffs, concurrency, or schema migrations where one fast opinion is not enough. Route those to a heavier second pass.

A useful habit: ask Claude Haiku 4.5 to mark any finding where it is unsure, then hand the flagged items to a stronger model such as Claude Sonnet 5 with the original diff and the first-pass reasoning attached. The heavier pass argues with the lighter one, and that friction exposes wrong assumptions.

Keep humans in the loop on anything touching data, permissions, or public interfaces. A review tool shortens the distance to a decision; it does not make the decision. Record escalation outcomes so the brief and checklist can be tightened over time.

Run this loop before the green light: brief attached, checklist answered, findings triaged, escalations resolved, and the diff approved by a person who understands the change.

Wire the First Pass Into Your CLI and CI Loop

Reviews stay consistent when they run the same way every time. Put the brief and checklist in a script or prompt file, trigger it on every pull request, and post the triaged findings as a single review comment instead of a stream of messages.

SwiftRelay is a pay-as-you-go relay for Claude, GPT, Gemini, DeepSeek, Kimi, GLM, Qwen, Grok and other models, so the same review script works with Claude Code, Codex, Gemini CLI and any OpenAI-compatible SDK. Use https://api.fastapirelay.com as the host in Claude Code and Gemini CLI, and add /v1 for OpenAI SDKs. Billing is per token with no subscription, which suits a review job that runs only when code changes.

Keep the model choice deliberate. Haiku 4.5 handles the volume pass on everyday changes, while a heavier model earns its tokens on the occasional architectural review.

New accounts receive a small gift credit, and inviting friends earns 14% of their top-ups, so a team can trial the loop before scaling it. Sign up for SwiftRelay and point your first review script at the relay this week.

Keep reading

Back for another lap?Log in