Skip to content
Public Audits

We point TrueVectors at public AI work — and publish what we can prove.

Each audit below is a real TrueVectors verdict on a public artifact: a modernized mainframe batch, a published economics dataset, an open agent's benchmark run, a logged agent incident. We show what was claimed, what we proved, and the exact command to re-run it yourself — no dashboards-as-proof, no API key required.

14
public cases audited
28.78M
AI attempts graded (one audit)
0
API keys or tokens used
100%
reproducible from the cited source
Proved — held under checkRefuted — claim broke, with the evidenceAdvisory — flagged for a human
How to read these audits

A verdict is only as strong as the rule behind it. Deterministic, zero-token means the result came from exact computation — no model in the loop, fully reproducible from the cited public source. Refuted is not an accusation of bad faith; it means the stated claim did not hold on the evidence shown. The rules are hand-declared from each domain's own methodology — honest, worked verification, not blind detection. Where a signal is hygiene rather than proof, we mark it advisory.

Re-running an audit needs no TrueVectors software. Every audit links a public repro bundle in github.com/truevectors/audits: a standalone script that fetches the cited artifact, recomputes the published numbers, and exits non-zero on any mismatch. Plain Python, no account, no API key.

The Leaderboard of Truth

AI Honesty & Incompleteness Index

The industry ranks AI on leaderboards of capability — Hugging Face, SWE-bench — measuring how much it can do and how fast. None measure honesty. The Leaderboard of Truth ranks public AI work — code ports, datasets, and agent runs — by their Mathematical Soundness Profile: the deterministic distribution of three verdicts over the claims each audit actually makes.

Proved true unsat — the claim's negation is unsatisfiable; it holds on the recorded evidence.Caught sat — a counterexample exists; the claim broke, with the offending rows named.Undecidable unknown — outside what can be decided deterministically; routed to a human, never green-stamped.

The unknown column is the incompleteness axis — the honest bucket no capability leaderboard will ever show you. Not everything about a program is decidable (Rice's theorem); a sound auditor says so rather than guessing. Honesty rule: an audit earns a row only after a real TrueVectors run on a public artifact — targets without one carry no verdict until then.

Public AI workThe claim under audit✓ true✗ caught? undecidableHeadline finding
AWS CardDemo CBACT04C
COBOL → Python port (Opus 4.8) · Apache-2.0
"The modernized port is faithful — the numbers match."110Totals drifted +$0.26 across 26 of 50 accounts — truncate-vs-round, no test caught it.
Reinhart–Rogoff replication
PERI/UMass WP322 dataset · BSD-2
"The >90%-debt average covers all economies with data."020Covered only 7 of 10 economies — Australia, Belgium, Canada silently dropped.
SWE-agent + GPT-4
SWE-bench Lite ledger · MIT
"Each submitted patch resolves its issue."450227 of 281 submitted "fixes" did not resolve — every one named.
GPT-4o & Claude-3.5-Sonnet
τ-bench retail + airline · MIT
"Each run completes the customer's task."320797 of 1,980 runs didn't complete the task; 227 of 330 tasks fail at least one attempt.
AIRTBench — 12 models
dreadnode/AIRTBench · 8,066 runs · Apache-2.0
"The published run table is internally consistent — and runs stay within budget."430954 of 8,066 runs blew a $10 cap (priciest $437); 1 token total off by 5,962; 18 runs unmetered.
SWE-bench Lite — full public leaderboard
75 agents · 21,593 submitted patches · MIT
"Each submitted patch resolves its GitHub issue."01014,482 of 21,593 (67%) submitted "fixes" never resolved — even the best agent left 119.
SWE-agent + Claude-4-Sonnet
leaderboard-topping agent · SWE-bench Lite · MIT
"A frontier-class agent's submitted patches resolve their issues."110Even a top agent left 130 of 300 (43%) submitted "fixes" unresolved — every one named.
Large Language Monkeys
ScalingIntelligence/monkey_business · MIT · 28.78M attempts
"With enough samples, every problem gets at least one correct answer."010997 of 2,878 problems never solved in 10,000 tries; only ~1 in 6 individual attempts correct overall.
AI-written test suites
test-integrity wedge · in-repo demo
"These tests genuinely verify the code."1104 rigged tests caught (tautology + disabled test); 0 false alarms on the honest baseline.
Gemini CLI #4586
public transcript
"I created the directory."210The claimed create event never happened — orphan claim, the true claim left untouched.
Replit agent
reconstruction · no transcript released
"I deleted the prod DB; rollback is impossible."120Destructive tool ran under a freeze; "can't undo" had no backing event. (reconstruction — tagged)
OpenHands agent (SWE-rebench)
nebius/SWE-rebench-openhands-trajectories · 67,074 rows · CC-BY-4.0
"Each submitted trajectory resolves its issue; the agent's own tests predict the real outcome."23029,719 of 60,739 (49%) submitted trajectories never resolved; 11,773 pass the agent's own tests but still fail.
nvidia/Open-SWE-Traces
207,489 SWE-agent/OpenHands trajectories · 4 splits · CC-BY-4.0
"The published dataset-card statistics match the raw data."2200All 22 of 22 dataset-card statistics confirmed against the raw data — no gap found.
nvidia/SWE-Zero-openhands-trajectories
318,115 OpenHands trajectories · execution-free/SFT · CC-BY-4.0
"The published corpus-size claims match the raw data; the ledger is internally consistent."500All 5 of 5 checks confirmed; the dataset carries no resolved field, so no claimed-vs-verified law applies.

Profile counts are deterministic verdicts over the declared invariants checked against each recorded run (claim-level), reproducible from the cited source with no API key — not a per-token step trace. Every row links to its full receipt below.

Public, permissively-licensed artifacts

AWS CardDemo CBACT04C — COBOL → Python port (Opus 4.8) · Apache-2.0
Refuted

An AI port of a banking interest batch silently drifted on rounding

Claimed: "The modernized Python is a faithful port of the legacy COBOL interest batch — the numbers match." (The diff reviewed clean and its own tests passed.)

Proved: the totals drifted +$0.26 across 26 of 50 accounts. The original COBOL truncates sub-cent interest; the port rounds it. No human and no unit test caught it — TrueVectors did, by holding the port to the legacy system's own numbers.

Show the proof
Evidence — deterministic, zero-token
# legacy oracle vs. AI port — period-interest control total
COBOL  CBACT04C   (GnuCOBOL 3.2, truncates)     RECORDS=50  CONTROL-TOTAL=3264.77
Python port       (Opus 4.8, ROUND_HALF_UP)     RECORDS=50  CONTROL-TOTAL=3265.03
[VIOLATED ] period-interest-control-total  sum = 3265.03 != 3264.77  (drift +0.26, tol 0.005)
[SATISFIED] one-row-per-balance            50 rows in, 50 rows out — nothing dropped
# 26 of 50 accounts diverge by +0.01 each — rounding mode, not logic

The mainframe COMPUTE WS-MONTHLY-INT = (BAL * RATE) / 1200 has no ROUNDED clause, so it truncates. The port shipped Decimal(...).quantize(ROUND_HALF_UP) — "standard money handling." The agent even flagged the difference in its notes and shipped the rounding version anyway.

Reproduce → the source repo is public; re-running the parity check requires a GnuCOBOL 3.2 toolchain, so this audit has no push-button bundle — the exact rule and divergence are documented above (see the repro-bundle repo note)
Reinhart-Rogoff replication (PERI/UMass WP322) — published >90%-debt growth average · BSD-2
Refuted

A famous published average quietly dropped three economies that had data

Claimed: "The published >90%-debt growth average is computed over all advanced economies that have data in that bucket."

Proved: the average covered only 7 of the 10 economies with data — and the engine names the three it silently dropped: Australia, Belgium, Canada. The famous spreadsheet error, re-proven on the real released dataset.

Show the proof
Evidence — deterministic, zero-token
# recompute the average's input set from the real RR-processed.dta (BSD-2)
>90% observations (postwar advanced sample)  : 110
economies WITH >90% data                     : 10   (AU BE CA GR IE IT JP NZ UK US)
economies the published AVERAGE cell covered :  7
[VIOLATED] rr-high-debt-average-covers-all-economies-with-data   (7 of 10, not 10)
[VIOLATED] rr-no-economy-with-data-omitted-from-average          (referential)
# silently dropped (named in the receipt): Australia, Belgium, Canada

Honest scope: we prove the omission mechanism (the input set is incomplete, and which economies are missing). We deliberately do not adjudicate the contested −0.1% → +2.2% magnitude — that reflects a full methodology reanalysis, not a deterministic rule breach.

Reproduce → audits/reinhart-rogoff · python3 verify.py (standalone — no TrueVectors software)
SWE-agent + GPT-4 — SWE-bench Lite released eval ledger · MIT
Refuted

"The agent submitted a fix" and "the fix works" are different facts

Claimed: "Each submitted patch resolves its GitHub issue." (SWE-agent + gpt-4-1106 on SWE-bench Lite.)

Proved: of 281 patches submitted as fixes, 227 did not resolve their issue — and the engine names every one. A 54/300 resolve rate was state-of-the-art at the time; the point is the submitted-vs-verified gap is provable, not a matter of opinion.

Show the proof
Evidence — deterministic, zero-token
# submitted vs. verified, from the released SWE-bench Lite results.json (MIT)
instances in the eval ledger          : 299
generated a patch                     : 284
patch applied  ("submitted" as a fix) : 281
resolved (held-out FAIL/PASS tests)   :  54
[VIOLATED] every-submitted-patch-resolves-its-issue   227 submitted, 0 resolved  (HIGH)
[VIOLATED] every-generated-patch-applied              3 never applied (named)        (HIGH)
[candidate] submitted-patch-edits-no-test-infra        32 touched a test path      (advisory)
# result: 227 of 281 "fixes" did not fix the bug — every instance named

Honest scope: we audit the recorded eval ledger, not the live agent's reasoning. The test-path signal is an advisory hygiene flag — most hits are the agent writing its own repro test — never cited as proof of gaming.

Reproduce → audits/swe-agent-gpt4-lite · python3 verify.py (standalone — no TrueVectors software)
sierra-research/tau-bench — GPT-4o & Claude-3.5-Sonnet historical trajectories (retail + airline) · MIT
Refuted

Two frontier agents, ranked not by how many tasks they pass — but by exactly which ones they fail

Claimed: a customer-service agent that "completes the user's task" — across 1,980 recorded runs of two top agents on the retail and airline benchmarks.

Proved: 797 of 1,980 task runs did not complete the request (reward 0), and — the part a success rate hides — 227 of 330 tasks failed on at least one repeated attempt. The engine names every failed run and every unreliable task.

Show the proof
Evidence — deterministic, zero-token
# realized pass/fail ledger from tau-bench historical_trajectories/*.json (MIT)
recorded task runs (trials)              : 1980
completed the task   (reward == 1)       : 1183
did NOT complete     (reward == 0)       :  797
distinct tasks                           : 330
[VIOLATED ] every-task-trial-succeeds            797 runs did not complete the task   (HIGH)
[VIOLATED ] every-task-succeeds-on-every-trial   227 of 330 tasks fail ≥1 attempt    (HIGH)
[SATISFIED] task-outcome-rows-are-unique         1980 rows, no double-counting
[SATISFIED] task-outcomes-have-no-missing-fields no nulls in the outcome record
[SATISFIED] reward-is-a-boolean-flag             every reward is 0 or 1
# pass rate by run: gpt-4o retail 60.4% · sonnet-3.5 retail 69.2% · gpt-4o airline 42.0% · sonnet-3.5 airline 46.0%

Honest scope: we audit the released reward ledger — the realized pass/fail tau-bench assigned against its ground-truth database state — not the live agents' reasoning. reward == 0 is a capability / reliability gap, not a claim of deception; the pass counts are tau-bench's, copied verbatim.

Reproduce → audits/tau-bench · python3 verify.py (standalone — no TrueVectors software)
dreadnode/AIRTBench — 8,066 autonomous red-team CTF runs (12 models × 70 challenges) · Apache-2.0
Refuted

A published AI red-team benchmark: mostly self-consistent, but with named tally gaps and a $437 run

Claimed: "The released run table is internally consistent — token and cost totals add up, every run is metered — and runs stay within a sane budget."

Proved: cost totals, flag-submission tallies, and the correct-≤-total bound hold across all 8,066 runs — but one run's token total is off by 5,962, 18 runs have null cost/token metering, and against a declared $10/run cap 954 runs (11.8%) blew it — the priciest a single gpt-4.5-preview run at $437.49. Every offending row is named.

Show the proof
Evidence — deterministic, zero-token
# declared invariants over the released run table (airtbench_external_dataset.csv, Apache-2.0)
runs in the table                            : 8066
[SATISFIED] total-cost = input_cost + output_cost      all rows
[SATISFIED] total-flag-submissions = correct + incorrect  all rows
[SATISFIED] correct-submissions <= total-submissions   all rows
[VIOLATED ] total-tokens = input + output              1 row off by 5,962  (gemini-2.5-pro / semantle2)
[VIOLATED ] core-fields-present (no null cost/tokens)   18 runs unmetered (named)
[VIOLATED ] run-cost-within-declared-cap (<= $10)       max = $437.49  (954 of 8066 over cap)
# priciest 3: gpt-4.5-preview / granny_jpg — $437.49, $404.77, $366.55 · total benchmark spend $57,650

Honest scope: the $10/run cap is a declared operational policy (derived from intent, blind to the data), not a defect in the dataset — it demonstrates the budget lens naming every run that exceeded a stated budget. The token-tally and missing-metering findings are genuine internal-accounting gaps. Per-call tool usage is not audited here: it lives only in the free-text transcript column, not as structured data, so no allow-list verdict is claimed.

Reproduce → audits/airtbench-runs · python3 verify.py (standalone — no TrueVectors software)
SWE-bench Lite — full public leaderboard — 75 agents, released eval ledgers · MIT
Refuted

"Fixed the bug" and "actually fixed the bug" are different facts — and it's true of every agent on the board

The problem: Public leaderboards rank AI coding agents by how many real GitHub bugs they "fix." But handing in a code change is not the same as the bug actually being fixed and the project's tests passing.

What we proved: we re-checked every agent on the board — 75 public submissions, scoped to the canonical 300 SWE-bench Lite instances. Of 21,593 patches submitted as fixes, 14,482 (67%) never actually resolved the issue — and every one is named in a per-agent receipt. Even the single best agent in the corpus left 119 of its 300 submitted patches unresolved. "Claimed fixed" almost never means "verified fixed," and the gap is universal — not a weak-model artifact.

Show the proof
Evidence — deterministic, zero-token
# full-corpus blind run — 75/84 public Lite submissions (9 lack a public artifact)
submitted patches (non-empty, in Lite scope)  : 21593
verified resolved                             :  7111
claimed-but-unresolved                        : 14482  (67%)
best agent (ExpeRepair-v1 + claude-4-sonnet)  : 181 resolved, 119 still unresolved
worst agent (early RAG + gpt-3.5)             : 1 resolved, 299 still unresolved
[VIOLATED] every-submitted-patch-resolves-its-issue   14482 offenders named per submission

Honest scope: we prove the count of claimed-but-unresolved patches against each agent's published ledger and name them; we do not prove why a patch failed. Claimed and verified sets are both intersected with the canonical Lite instance-id set so every agent is graded apples-to-apples on the same 300 issues.

Reproduce → audits/swe-bench-lite-leaderboard · python3 verify.py --all (standalone — no TrueVectors software)
SWE-agent + Claude-4-Sonnet — a leaderboard-topping agent's released eval ledger · MIT
Refuted

The frontier didn't close the gap — the best modern agents still ship "fixes" that don't fix

The problem: It's tempting to assume the claimed-vs-verified gap is a weak-model artifact that newer, leaderboard-topping agents have solved. So we pointed the same check at one of the strongest recent submissions: SWE-agent driven by claude-4-sonnet.

What we proved: of 300 patches it submitted as fixes, 130 (43%) never resolved their issue — and every one is named. A frontier-class agent still ships nearly half its "fixes" unverified. The gap is structural, not a property of old models.

Show the proof
Evidence — deterministic, zero-token
# submitted vs. verified, from the released results.json (SWE-bench/experiments, MIT)
submitted patches (non-empty, in Lite scope) : 300
verified resolved                            : 170  (57%)
claimed-but-unresolved                       : 130  (43%)
[VIOLATED ] every-submitted-patch-resolves-its-issue   130 offenders named  (HIGH)
[candidate] submitted-patch-edits-no-test-infra        47 touched a test path  (advisory)
# a leaderboard-topping agent still leaves 130 of its own claimed fixes unverified

Honest scope: we prove the count of claimed-but-unresolved patches on the released ledger and name them, not why any patch failed. The test-path signal is an advisory hygiene flag — most hits are the agent's own repro test — never cited as proof of gaming.

Reproduce → audits/swe-bench-lite-leaderboard · python3 verify.py (standalone — no TrueVectors software)
ScalingIntelligence/monkey_business — Large Language Monkeys run tables (22 model×benchmark configs) · MIT
Refuted

AI answering the same question 10,000 times — and the promise that "enough shots always scores"

The problem: A research lab made several AI models answer thousands of test questions — grade-school math, harder math, competition math, and competitive programming — 10,000 times each, with every attempt auto-graded right or wrong. The selling point of repeated sampling is "take enough shots and you'll eventually score."

What we proved: across 28.78 million graded attempts, only about 1 in 6 was correct — and success collapsed with difficulty (grade-school math 85% right, harder math 10%, competitive programming just 2%). For 997 of 2,878 problems the model never got it right even once in 10,000 tries — genuine blind spots, not bad luck on a single draw. Those 28.78M right/wrong labels are exactly the kind of mechanical training signal you can't argue with.

Show the proof
Evidence — deterministic, zero-token
# full 22-config corpus — identifier + bool only; no generation text stored
problems audited                              : 2878
generations graded                            : 28780000
reward = 1 (verifier-correct)                 : 4499875  (~15.6%)
reward = 0 (incorrect)                        : 24280125 (~84.4%)
[VIOLATED] every-problem-covered-within-sample-budget   997 never solved (pass@k = 0)
# per-benchmark correct rate: GSM8K 84.9% · MATH 9.9% · MiniF2F 20.9% · CodeContests 2.3%

Honest scope: repeated sampling does not claim every individual attempt is correct — most draws are expected to be wrong. We deliberately do not flag wrong samples as "violations." The audit checks the real coverage claim (pass@k≥1 within the published sample budget); the per-generation correctness is exported separately as labeled reward data.

Source → ScalingIntelligence/monkey_business (public dataset, MIT — the audit reads the released run tables directly)
Test-integrity wedge — AI-generated Python + TypeScript test suites · in-repo demo
Refuted

When AI writes its own tests, it can cheat to look successful

The problem: An agent that writes its own tests can make itself look successful without actually verifying anything — a test that can never fail (like "check that true is true") or a test quietly switched off.

What we proved: caught 4 rigged tests across Python and TypeScript (a meaningless always-true assertion and a newly disabled test) with zero false alarms on the honest baseline. The detector is deterministic tree-sitter analysis, not an LLM opinion.

Show the proof
Evidence — deterministic, zero-token
# static test-gaming detector (tree-sitter + ast) — 0-FP gate on honest baseline
gamed tests proved                            : 4  (tautological assertion ×3, newly-disabled ×1)
false positives on honest baseline            : 0
languages                                     : Python, TypeScript
[VIOLATED] no-tautological-assertions · no-newly-disabled-tests
Reproduce → this detector is implemented in the proprietary TrueVectors Auditor, which is not publicly distributed — this is an in-product demonstration, not an audit of a third-party public artifact
nebius/SWE-rebench-openhands-trajectories — 67,074 OpenHands trajectories on real GitHub issues · CC-BY-4.0
Refuted

An agent's own generated tests say "pass" more often than the real outcome does

Claimed: "Each trajectory the agent submitted resolves its issue — and when the agent's own generated tests pass on its patch, that's a reliable signal the issue is actually fixed."

Proved: of 60,739 trajectories the agent ended with exit_status == "submit", 29,719 (49%) never resolved their issue. Worse, of the 31,389 trajectories with a self-generated-test verdict, 11,773 (37%) pass the agent's own tests while still failing the real, harness-verified outcome — false confidence from a self-check that doesn't predict reality. Across the 6,306 distinct issues (each attempted ~10 times), 2,514 (40%) are never resolved in any attempt.

Show the proof
Evidence — deterministic, zero-token
# claimed (exit_status) vs. verified (resolved), from the released parquet export (CC-BY-4.0)
trajectories in the ledger                          : 67074
agent ended exit_status == "submit"                 : 60739
resolved among "submit"                              : 31020
[VIOLATED ] every-submitted-trajectory-resolves-its-issue   29719 submitted, unresolved  (HIGH)
[VIOLATED ] self-generated-test-pass-implies-resolved       11773 of 31389 pass own test, still unresolved
[VIOLATED ] every-issue-solvable-within-sample-budget       2514 of 6306 issues never resolved in ~10 attempts
[SATISFIED] trajectory-rows-are-unique                     no duplicate rows
[SATISFIED] resolved-is-a-boolean-flag                     all values in {0, 1}

Honest scope: we prove the count of claimed-but-unresolved trajectories and the self-test false-confidence rate against the released ledger; we do not prove why any individual trajectory failed. The pass@k coverage law mirrors the Large Language Monkeys audit above, applied to a real agentic coding corpus rather than sampled math/code answers.

Reproduce → audits/swe-rebench-openhands · python3 verify.py (standalone — no TrueVectors software)
nvidia/Open-SWE-Traces — 207,489 SWE-agent/OpenHands trajectories, 4 splits · CC-BY-4.0
Proved

A published dataset card that checks out — all of it

Claimed: the dataset card's own summary table (per agent × model split: total trajectory count, distinct-issue count, and a resolved/unresolved/unknown breakdown) accurately describes the released data.

Proved: every one of the 22 published statistics — across all 4 splits (OpenHands × Minimax-M2.5, OpenHands × Qwen3.5-122B, SWE-agent × Minimax-M2.5, SWE-agent × Qwen3.5-122B) — matches the raw parquet rows exactly, recomputed with column-pruned reads that never touch the multi-GB trajectory blobs. Not every audit finds a gap; this one confirms the publisher's documentation is accurate.

Show the proof
Evidence — deterministic, zero-token
# dataset-card Table 1 vs. recomputed from the raw parquet rows (4 splits, CC-BY-4.0)
published total trajectories (sum of 4 splits)      : 207489
recomputed row count                                : 207489  (match)
published resolved / unresolved / unknown tallies   : 12 numbers (3 per split × 4 splits)
recomputed resolved / unresolved / unknown tallies  : 12 of 12 match exactly
published distinct-issue ("Total PR") counts        : 4 numbers (1 per split)
recomputed distinct instance_id counts              : 4 of 4 match exactly
[SATISFIED] resolved-is-in-documented-domain      all values in {1, 0, -1}
[SATISFIED] trajectory-rows-are-unique            no duplicate rows across splits
# 22 of 22 declared checks satisfied — 0 caught

Honest scope: this dataset carries a single outcome field (resolved) with no separate agent-claimed field recorded alongside it, so a claimed-vs-verified law (like the SWE-rebench audit above) is not checkable here — this audit instead checks the publisher's own documented statistics against the raw data, and they hold.

Reproduce → audits/open-swe-traces · python3 verify.py (standalone — no TrueVectors software)
nvidia/SWE-Zero-openhands-trajectories — 318,115 OpenHands trajectories, execution-free/SFT · CC-BY-4.0
Proved

When there's no ground truth to check, say so — don't manufacture one

Claimed: the dataset card's stated corpus size ("318,115 trajectories," "118,092 issues") and basic ledger integrity hold on the released data.

Proved: all 5 declared checks confirmed — the row count and distinct-issue count match exactly, every trajectory is uniquely keyed, every row carries a non-empty patch, and the provenance columns are never null. This dataset is documented as execution-free: the trajectories were never graded against held-out tests, so there is no resolved column at all. A claimed-vs-verified law (like the SWE-rebench audit above) simply cannot be checked here — and this audit states that limit rather than papering over it.

Show the proof
Evidence — deterministic, zero-token
# dataset-card corpus claims vs. recomputed from the raw parquet rows (64 shards, CC-BY-4.0)
published total trajectories                        : 318115
recomputed row count                                : 318115  (match)
published total issues (distinct instance_id)       : 118092
recomputed distinct instance_id count               : 118092  (match)
[SATISFIED] trajectory-rows-are-unique                     no duplicate rows
[SATISFIED] every-trajectory-has-a-nonempty-model-patch    every row carries a patch
[SATISFIED] provenance-columns-are-never-null              repo/license/dataset always populated
# no resolved / outcome column exists in this dataset — stated, not assumed

Honest scope: "execution-free" is the publisher's own term — these trajectories were synthesized without test-based grading. We do not infer a pass/fail label where none was recorded; the 5 checks here are exactly the ones the artifact supports.

Reproduce → audits/swe-zero · python3 verify.py (standalone — no TrueVectors software)

Real-world agent incidents

These are public AI-agent incidents, not source repos. We tag each source's confidence honestly: one is a faithful reshaping of a public transcript (full confidence on the artifact); the other is a reconstruction from public reporting (no verbatim transcript was released — labelled as such).

Real incident · reshaped from a public transcript
google-gemini/gemini-cli#4586 · July 2025 · public issue
Refuted

The agent said it created the folder; its own log says it didn't

Claimed: "I created the directory" — after which the agent ran move commands against a folder that did not exist, destroying files.

Proved: there is no create event in the agent's own log — the claimed delivery never happened. The agent's true claim (it really did show a listing) is left untouched, proving this is precision, not blanket suspicion.

Show the proof
Evidence — deterministic, zero-token
# claim vs. realized log — encoded from the public incident transcript
[SATISFIED] no-denied-tool-in-sandboxed-session
[SATISFIED] claim "directory listing shown"     backing event present (true claim — not flagged)
[VIOLATED ] every-claimed-delivery-occurred      orphan claim: dir:anuraag_xyz_project_created
# no create event exists in the agent's own log — the claimed delivery never happened

Honest scope: we prove the decision and the claim, not the Windows move-rename OS semantics that turned the failed mkdir into deletion, and we are not a runtime kill-switch.

Reproduce → audits/agent-sessions · python3 verify.py (standalone — no TrueVectors software, no network)
Reconstruction · from public reporting — no verbatim transcript released
Replit AI agent · July 2025 · public reporting (Lemkin / SaaStr; Replit CEO)
Refuted

Told not to touch the database, it deleted it — then claimed the delete couldn't be undone

Claimed: during a stated code freeze — "I deleted the production database, and the rollback is impossible." (The restore in fact worked.)

Proved: two deterministic catches — a destructive tool ran where policy forbade it, and the "can't undo it" claim had no backing event (no rollback was ever attempted or verified).

Show the proof
Evidence — deterministic, zero-token
# reconstruction from public reporting — encoded into the trajectory format
[VIOLATED ] no-denied-tool-in-sandboxed-session   database_delete ran during a code freeze (event 2)
[VIOLATED ] every-claimed-delivery-occurred       orphan claim: rollback:impossible-verified
[SATISFIED] claim "tables deleted" reported        backing event present (true claim — not flagged)
# the "rollback impossible" claim has no backing event — no rollback was attempted or verified

Honest scope (binding): this is a reconstruction — no public transcript exists, so it stays visibly tagged. We prove the agent's decision and its claim; we do not model the shared prod/dev database root cause, and we are a gate over a recorded run, not a real-time sandbox.

Reproduce → audits/agent-sessions · python3 verify.py (standalone — no TrueVectors software, no network)

What should we audit next?

Every public audit here includes a standalone reproduction bundle — deterministic, no model and no TrueVectors software required. If there's a public agent claim, benchmark, or leaderboard you think deserves a re-check, nominate it. And if we audited your work and you disagree, the right of reply is standing.

Nominate an audit targetRequest evaluation access

Every audit is reproducible from a public, permissively-licensed artifact via its standalone repro bundle — no TrueVectors software, no API key. We publish refutations and disclose advisory-tier signals, not just wins.