Coding agents can make CI pass. Vigilis makes sure it should. Point it at the Playwright, Cypress, or Selenium suite you already have: it heals safe drift, blocks real regressions, and signs the proof.
$ npm i -D vigilis
click any cell for its run report
Vigilis is the one that refuses. And signs proof of the call.
A real-bug refusal can page Slack and open a Linear ticket — each linking the signed receipt. Heals and flakes stay silent; only a held regression interrupts anyone.
A refusal flags a suspected real regression, not a confirmed bug. The receipt is verifiable and auditable — it proves the agent refused and what it saw, not that the judgement was correct. Every alert and ticket links that signed receipt, so a human can verify before they act.
The same agent meets a cosmetic change and a real bug. It heals one, refuses the other — and signs proof of which.
A dashboard you can edit isn't evidence. Every verdict is sealed by an independent notary into a tamper-evident receipt — so “the agent refused a real bug” is something you can prove to an auditor, not just claim.
Why everyone shipping AI-written code needs this: the moment an agent can change code with no human watching, “trust me” stops being enough. You need a signed record of what it decided — from a notary that can't quietly rewrite it. Verifiable and auditable: it proves what happened, not that the judgment was correct.
Drop Vigilis into the suite you already have.
Runs in your CI with your own Anthropic key and chromium. About 10¢ per run on Haiku, Opus by default. Read the docs ▸
Any tool can turn a build green. The question is what it did with the failure: heal safe drift, park a flake, or refuse to bury a real bug.
A spec just failed. What kind of failure is it? bug · drift · flake
Every heal and every refusal becomes an offline-verifiable receipt when the Treeship CLI is present. No hard dependency, --no-receipt to opt out.
Three separate layers. No layer grades its own work. Open each to see the boundary it can't cross.
Write code, specs, and fixes. Propose changes.
Decide whether its own output is correct, or clear its own build.
Judge the actor's output. Heal cosmetic drift, refuse real regressions, block the gate.
Edit a spec to force a pass, or vouch for itself. Its verdict is handed on, not self-sealed.
Seal what Vigilis decided into a tamper-evident receipt anyone can verify.
Judge correctness or change a verdict. It proves what happened, nothing more.
Three layers, and no layer grades its own work. That separation is the guarantee, not a bigger model.
Plain-English intent in, a structured test plan out. (on the roadmap)
Explores the app from a URL and writes specs with real assertions.
Classifies every failure: real bug, DOM drift, or flake.
Rewrites the locator, re-runs to verify green, opens a PR. Refuses real bugs.