Reviews
Fixes
A finding tells you something is wrong. A fix proposes the correction.
What happens
You click Fix with Garboard on a finding. A model drafts a corrected version of the file. The draft is put through the gate. If it passes, you are shown the diff; accepting it commits to your pull request’s own head branch.
Your branch, your pull request, your review, your merge.
The constraint that matters
A generated fix goes through review.RunChecks — the same function an external pull request goes through. Not a parallel implementation intended to match: the same code path.
Tests including TestRun_GateBlocksPR and TestRun_GatePassesWhenFixed fail if generated output can bypass it, and TestAdoptedRuleReachesTheFixRegate asserts that a rule your organisation adopted applies to Garboard’s own output too.
Garboard cannot approve its own homework. A fix that would trip a rule is not offered.
It needs an API key. The gate does not.
Fixes require an Anthropic API key, because a model writes them. The deterministic gate is entirely unaffected without one — parsing, conventions, findings, evidence, blocking all work with no key, on every plan. Without a key you get findings and no proposed fixes.
That split is the product: the model writes, the parser judges.
Forge
Forge is the same idea for new infrastructure: describe what you want, get a draft. It commits files and opens a pull request a human reads. It is gated identically — TestForgeDraftIsGatedByAdoptedRules — so a Forge draft that violates your own adopted rules never becomes a pull request.
Both Fix and Forge are the only paths that write repository content at all. See what Garboard writes.
