Case study — shipped

RepoMend

Security findings fixed and PR-ready by morning. Five scanners, one focused fix per finding, and a three-gate verifier that discards anything it can't prove — all inside your own infrastructure.

Status

Shipped · in production at CallMed AI

Public proof

checkdmarc B110 fix shipped in v5.17.3

Verification

3 gates: re-scan · diff bounds · test suite

Test surface

371 automated tests · 89% coverage

Deployment

On-premise · Docker · iptables egress control

Findings are cheap. Fixes are not.

Every security scanner on the market is good at one thing: producing a list. Semgrep, Bandit, pip-audit — run them on any real codebase and you get hundreds of findings, most of them legitimate, almost none of them fixed. The list gets exported to a spreadsheet, triaged in a meeting, and quietly ages. The problem was never detection. It's that fixing a finding takes an engineer's afternoon, and there are four hundred findings.

RepoMend is my answer: an autonomous pipeline that scans, triages, fixes, verifies, and opens a draft pull request — entirely on-premise, so the code never leaves the client's infrastructure.


The pipeline

Five scanners run in parallel: Semgrep, Bandit, pip-audit, Trivy, and ESLint. Their output is normalised to SARIF and handed to a Haiku-based analyst that triages by severity and exploitability. Then Fix-Gen takes over with a deliberately narrow contract: one finding, one focused fix, no blast radius. It does not refactor. It does not improve adjacent code. It changes the lines the finding is about and nothing else.

Every candidate fix then has to survive three gates, in order:

  • Gate 1 — re-scan. The original rule must no longer fire on the patched code.
  • Gate 2 — diff bounds. The edit must sit entirely within the authorised lines. A fix that wandered outside its lane is discarded, even if it looks correct.
  • Gate 3 — test suite. The project's own tests must pass.

A fix that fails any gate is thrown away. It is never pushed, never queued for retry with a persuasive prompt, never "manually reviewed later." Discarded. This is the part of the design I'm most attached to, because it means a RepoMend PR carries a specific guarantee: the finding is gone, the edit stayed in bounds, and the tests pass.


On-premise, and provably so

Security tooling that uploads your source to someone's cloud is asking for a trust you haven't earned yet. RepoMend runs inside the client's environment in a Docker sandbox with iptables egress control. Scanner output never reaches the cloud. The only thing that crosses the Anthropic API boundary is the fix prompt itself, scrubbed of credentials. Everything else stays home.

The engine ships as an installable CLI — uv tool install repomend, then repomend fix --repo . — and carries 371 automated tests at 89% coverage. The whole scan-to-PR path is auditable after the fact.


The checkdmarc fix

The proof I like best is small. RepoMend scanned checkdmarc, a DNS-security library used in mail-infrastructure tooling, and flagged a B110 finding: a bare try/except/pass swallowing every exception, including the ones that should have surfaced.

I opened the PR. The maintainer reviewed it, narrowed the catch to UnicodeError — a better fix than the generated one — and shipped it in v5.17.3.

I want to be precise about why I count this as a win rather than spinning it. The autonomous pipeline found a real defect, produced a safe fix, and got a human expert to engage with it. The human improved it. That is the correct division of labour, and any vendor telling you their agent's first draft should be merged untouched is selling something.


Engagement

A RepoMend pilot is free: point it at a repository and see verified fix PRs before committing to anything. Details at callmedai.com.


SymbioteQG-Synthesis Engine