Review can’t keep up
Agents open pull requests around the clock. Every merge of money-movement code is a release decision, and the thread is the only signature.
Helix checks every money change in your workflow and helps you decide whether it's safe to ship to production.
Illustrative example. About 240ms on your runner.
Works in GitHub. Checks code from people and any AI coding agent. Built for payments, lending, banking, and expense teams.
Why Helix
Keep the linters, scanners, and review bots already in the pipeline. Helix adds the check they leave open: did this diff keep the money intact?
Agents open pull requests around the clock. Every merge of money-movement code is a release decision, and the thread is the only signature.
The second click, the retry, the bank reply that arrives late. Tests cover what their author thought of.
A quarter later, the reason a change merged is a comment. The commit itself has no record of the verdict.
The product
The live check stays in the hero. These four open the risks, the gate, and the workflow around it.
Same change, same answer. A record of every decision. The console shows Go, No-go, or Not proven, with the finding and the fix on the pull request.
See it on a pull requestThe second click, the retry, the bank reply that arrives late. Tests cover what their author thought of. These are the breaks the rules are written for.
Go, No-go, or Not proven. Missing evidence is never read as a pass. The fix names the file, the line, the rule, and the edit.
Point Helix at the repositories that move money. It runs on each pull request and each push to main.
The same change returns the same Go, No-go, or Not proven. The verdict is rules, computed on your runner.
Make the Helix check required in GitHub. A No-go or Not proven holds the merge. Every decision is stored on the commit.
The platform
Three parts of the gate. Each one is already in the check, the fix, or the commit.
01
02
Go, No-go, or Not proven. The same change returns the same answer. Make the Helix check required in GitHub and a No-go or Not proven holds the merge. A waiver needs an approver, a reason, and an end date.
03
File, line, the rule, and the edit sit on the pull request. Rule, verdict, and any waiver stay with the SHA. The next commit is a new decision.
The verdict
Fixed rules run on the diff. The verdict is rules, computed on your runner. The same change returns the same answer.
1 · Proposed change
src/payouts/send.ts
export async function sendPayout(payout) {
await bank.transfer(payout.amount, payout.account);
await ledger.record(payout);
}
2 · Rules
3 · Review
No-go
Held before merge. The same change returns the same answer.
4 · Record
Rule, verdict, and any waiver stay with the SHA. The next commit is a new decision.
The rules that ran are satisfied. Missing evidence is never read as a pass, so a gap cannot arrive here as Go.
The rule is broken. A retried payout can send the money twice. The payout is sent before the ledger entry is written. A settled payout is updated in place. Make the Helix check required in GitHub and a No-go holds the merge.
Helix could not find the evidence the rule needs, such as a test for a late bank reply. That result is never a pass, so the gap stays visible and the merge stays held.
Questions
Keep them. They check style and known vulnerabilities. Helix checks whether the money still moves once, and whether the ledger still ties, on this diff.
Fixed rules produce the verdict, so the same change gets the same answer. Review bots can still comment. Helix is the check that can fail the build.
Helix could not find the evidence the rule needs, such as a test for a late bank reply. That result is never a pass, so the gap stays visible and the merge stays held.
Yes. Make the Helix check required in GitHub. A No-go or Not proven then holds the merge. A waiver needs an approver, a reason, and an end date.
Every change gets the same rules, whoever wrote it. Agents can read the verdict and the finding through a read-only interface.
On your GitHub Actions runner, against the checkout that runner already has. A typical evaluation finishes in about 240 milliseconds.
We’ll set up a trial on a change you choose.