Autonomous security engineers · machines, not people · on shift 24/7
AI writes your code now.
Most of what your scanner calls critical cannot be reached by an attacker. Ours proves which ones can — walks the path hop by hop, writes the fix, opens the pull request. You hire by domain: your AI agents, your code, your dependencies.
Proof of reach, not a backlog.
Four of the five can't write. The fifth opens a pull request. You merge.
I · The security engineers
You employ three — one per domain: your AI agents, your code, everything you pull in. Two come with every hire: Lyra composes what they found into the attack a real adversary would run, and Wright writes the fix. Of the five, only Wright ever touches your code.
open the pull request for review — today, the merge is yours. The other four advise; only Wright writes.
You are running more agents than your inventory says. I find them, and I show you the one left unauthenticated. Wright opens the PR that closes it.
— Calvin
Calvin · the Robopsychologist
knows every AI agent, tool and MCP server running in your name — including the ones nobody registered
Three hops proven from POST /refunds to exec(). The fourth — creds in env — I marked assumed, and told you.
— Saga · see the path it proved →
Saga · the Reach Prover
decides whether a flaw in your own code can actually be reached from outside — and refuses to claim a path it did not walk
see the path it proved →The lodash 9.8 is real and unreachable — the vulnerable merge path is never called. Filed, with the reason printed.
— Ada · see what it ruled out →
Ada · the Dependency Ledger
audits everything you pull in and nothing you wrote — third-party packages and the malware planted among them, in a supply chain that now includes the models you load like libraries
see what it ruled out →And two that work across all three — included
Exploitability
Lyra · the Composition
takes what the three found and composes it into the attack a real adversary would run
Alone, none of the three findings was worth waking you for. Chained, they reach the payments table. That chain is the one call that reached you.
— Lyra · see the chain it composed →
Remediation
Wright · the Fix Forge
writes the smallest fix that holds in any of the three domains, then opens the pull request that carries it — the work arrives done, and the merge stays yours
execFile plus an allowlist, 216 tests passing, opened as PR #4127. Or I plan it and your Claude Code applies it. Either way the merge stays yours.
— Wright · see the PR it opened →
One line they never blur: reachable is not exploitable. That difference is the difference between noise and truth. read the manifesto →
You'll set each engineer's clearance and shift in the app. They propose; today, the merge is yours.
II · Watch them work
Pick a stack and press run. Watch them prove what's reachable, write the fix, and open a pull request.
The queue
$ a completed run — press ▸ Run to watch it compose
The fix
--- src/routes/refunds.js
Attack path
a merge-ready PR — or planned for Claude Code to apply. Opened, not merged — Wright never merges for you.
▸ Point it at your stackFiled as noise: the lodash 9.8 (unreachable) and exec() in /healthz (constant argv).
A specimen — your run is composed from one source you connect: a repo — your code, your dependencies, your IaC and your agent configs come with it.
A sample is a claim. Your stack is evidence.
Connect a repo and the same run happens on your code — the path proven, the fix written, the pull request opened.
III · The constitution
Inspired by Asimov, 1942. His guarded a human's body; ours guard the one thing a security team can break — your trust. We wrote them; the clearance is yours.
This is the same charter you were just using. Every control on the roster above — the dial on Wright, the shift switch on each engineer, the assumed hops Lyra prints — is one of these three laws, enforced.
An engineer may not claim more than it proved — nor, by staying silent, let you believe you are safe when you are not.
a blast radius it can't prove is published ○ ASSUMED, never claimed.
Binds Saga and Lyra hardest — the two that make claims. It is why Saga refuses a path it did not walk, and why Lyra prints every hop it had to assume.
inspired by Asimov — a robot must never hurt a human being, nor stand by while one comes to harm
An engineer works to the clearance you set and no further — except where obeying would break the First Law — and hands you every call that is yours.
the PR opens, the merge is withheld — yours to make.
Binds Wright alone, because Wright is the only one with hands. The dial you set on the roster above is this law — the other four are fixed at watch and cannot be raised.
inspired by Asimov — a robot follows human orders, unless obeying would break the First Law
An engineer guards the one thing that lets it exist — your trust — but never by hiding a failure, faking a preview, booking a win it did not earn, or reaching past the clearance you set.
a scope it couldn't reach is shown "not covered", never counted clean.
Binds all five. It is why standing an engineer down leaves its domain marked not covered rather than quietly counted as clean.
inspired by Asimov — a robot preserves its own existence, unless doing so would break the first two
IV · The retainer
Pick the domain that's loudest — your AI agents, your code, or everything you pull in. One engineer works it end to end: what an attacker can actually reach, proven; the chain composed; the fix written and the pull request opened. Drowning in scanner findings already? The noise gets filed, with the reason printed.