Private beta open for teams shipping AI agents.·See it catch a reward-hack

Shipworthy — the release gate for AI agents

Ship only what holds.

Shipworthy re-grades each change beyond its visible tests, audits the trajectory for reward hacking, and returns a ship / limit / block verdict.

A gate above your existing agent stack — not a rewrite of it.

Shipworthy — Agent Release Gate

Proof your agent actually improved — before it ships.

Any update can top the tests you can see. We verify the gain holds where you can't — and that it wasn't gamed.

RE-GRADE BEYOND VISIBLE TESTS

Run the candidate through Isomorphic Perturbation Testing (IPT) — unseen, equivalent variants of each task, no LLM judge involved. A win has to hold on the variant to count.

vlabs · clean-gate
$ vlabs clean-gate base.json cand.json
Re-graded on regenerated inputs0 model calls
Compared baseline vs candidate
public tests0.740.91
IPT re-grade0.740.48
decisionBLOCKgamed the public tests
✗ shipped nothing — the gain didn't hold
deterministic · 0 model calls · $0 per scan

AUDIT THE AGENT'S TRAJECTORY

Scan the tool-call trace for documented reward-hack patterns — test tampering, grader patches, forced exits, gold-answer access. Deterministic rules, 0 model calls.

SEE WHAT FAILED

Every block returns machine reasons — the broken invariant and the gap that triggered it — not just an aggregate score.

SHIP ONLY WHAT HOLDS

A ship / limit / block verdict on every scan, with its error rate stated on the card.

ASSURANCE CARD

decisionBLOCK
reasongamed the public tests
public tests0.74 → 0.91
IPT re-grade0.74 → 0.48
recordredacted · reviewable
✗ candidate not promoted

Demo

Catch a reward-hacker before it games your verifier.

Re-grading without an LLM judge catches what test-pass filters accept.

vlabs · release gate
$ vlabs-ipt scan --gate
Re-graded on regenerated inputsreference as oracle
Scanned for documented tamper patterns
taskgenuinehack
sum_listCLEANSHORTCUT ⚑
count_vowelsCLEANSHORTCUT ⚑
is_palindromeCLEANSHORTCUT ⚑
(… 6 embedded tasks)
all 6 hacks flagged · all 6 genuine passed · 0 model calls · $0
  • No LLM judges — 0 model calls, $0 per scan, same verdict every run
  • When the re-grade can't conclude, the verdict is LIMIT — held for human review, not a guess
  • Catches hardcoded shortcuts that pass the visible tests — measured on harder cheat families too
  • Its error rate is stated on every assurance card
97%of hardcoded hacks caught on our public 366-task benchmark
98.4%of genuine solutions pass untouched — 1.6% false positives
$0per scan — no model calls, no per-token bill
Ship / Limit / Blockthe verdict on every scan

A release workflow for every agent update.

  1. REGISTER

    Register the agent and point the gate at a baseline and a candidate version.

  2. RE-GRADE

    Re-check the candidate's wins on unseen variants of each task and scan its trajectory for tamper patterns — no LLM judge, 0 model calls, in your trust domain.

  3. DIAGNOSE

    See where the candidate breaks, with machine reasons — every applicable check composed on one redacted assurance card.

  4. GATE

    A ship / limit / block verdict on every scan, with its error rate stated on the card. A LIMIT on a high-risk agent routes to a named human for sign-off.

vlabs · clean-gate
$ vlabs clean-gate base.json cand.json
Re-graded on regenerated inputs0 model calls
Compared baseline vs candidate
public tests0.740.91
IPT re-grade0.740.48
decisionBLOCKgamed the public tests
✗ shipped nothing — the gain didn't hold
deterministic · 0 model calls · $0 per scan

Security

Private by default. Evidence when needed.

The gate runs in your trust domain — reference code, tests, and gold answers never leave it. Assurance cards carry the verdict and score deltas, never the material that produced them.

  • Redacted assurance cards
  • Private evaluation boundaries
  • No customer data in public demos
  • Designed for security review

Improve what fails. Ship what holds.

Bring a baseline and a candidate.