The problem
Every merge diff across the ERP estate is a chance to introduce a security defect, and reviewing all of them by hand is work no team sustains. The obvious fix — point an LLM at the diff — fails in a specific way: it produces confident findings it cannot substantiate, and a reviewer who is wrong often enough gets ignored entirely.
What I built
I initiated CodeHarbor and led its scan engine. It runs a coding agent inside a sandboxed per-execution clone of the repository, so the agent can read real code, run real commands and still not touch anything shared. On a schedule, it pulls GitLab diffs and scans them against a 9-check security checklist, including:
- public-webhook-to-internal-ERP backdoors
- prompt injection and excessive agency in LLM-touching code
- hardcoded secrets
- injection-prone database operations
The rule that makes it usable is that the agent must prove every finding — a finding without supporting evidence from the code does not become an alert.
How it works
FastAPI schedules and serves; LangGraph orchestrates the scan graph; the Claude Code SDK drives the agent inside the sandbox. Findings are embedded and de-duplicated against previous findings by similarity search in Pinecone, which is what stops the same long-lived issue from re-alerting on every scan. Surviving findings are ranked by severity and pushed to email and a dashboard.
Evidence
207 commits and roughly 25K insertions of my own, concentrated in core application code rather than configuration: the scan graph, the sandbox execution path, the evidence gate and the de-duplication layer.
What I owned
I initiated CodeHarbor — I wrote its first commit — and led the scan engine end to end: the sandboxed per-execution clone, the 9-check security checklist, the evidence gate that forces the agent to prove a finding before it can alert, and the Pinecone similarity de-duplication that keeps a long-lived issue from re-alerting on every scan.
Stack
FastAPI · LangGraph · Claude Code SDK · Pinecone · GitLab · Python