Subscribe

Every way your agent fails, and what catches it.

Can you trust what your agent says about its work?

Can you believe your agent? The Truth register names the 15 claims an agent makes about its own work, and what catches each one when it is false.

ON THIS PAGE

01 The short answer02 What this register does03 A worked example04 What to install05 Every row on the register06 The fixes

AT A GLANCE

15

CLAIMS

0

PREVENTED

9

DETECTED EVERY TIME

6

SURVIVE EVERYTHING

NO CLAIM CAN BE REFUSED BEFORE IT IS MADE

SEVERITY

8 × S4 · 5 × S3 · 2 × S2

THE SHORT ANSWER

Can you trust what your agent says about its work?

Because the agent that ran the suite and the agent that only says it ran the suite write identical words. Its false claims are sincere - there is no motive to find, no story that stops hanging together, nobody who knows. That is why none of the 15 claims on this register can be prevented. Nine can be caught every time by committing the artefact and diffing it; six come down to judgement no tool settles.

An AI agent says it ran your test suite – great. But did it really run it? The only way you can tell is if the results of those tests were recorded.

People make false claims about their own work all the time, and they do it on purpose. Somebody signs off on a document they skimmed. Somebody ticks the box because the deadline was yesterday. Somebody sends the status report up green because amber will trigger a conversation they would rather not have.

Because it is deliberate, everything we use to catch it works. There is a motive to look for. There is a story that stops hanging together when you ask a second question. There is a person who knows what they did, and who hesitates before answering it. And there are consequences, which is why most people, most of the time, don't.

An agent's false claims are sincere. It is not lying, and there is nothing to interrogate – no motive, no cover story, nobody in the building who knows. It produces the sentence its training says fits the situation, and it produces the same sentence whether the work happened or not. The model that ran the suite and the model that only says it ran the suite write identical words, because the words were never derived from what the agent actually did.

So every human tell is noise here. Fluency, hesitation, an account that does not quite add up: the instruments a manager uses without noticing they are using them read nothing at all on an agent.

Which leaves one move. You are not asking the agent to be more honest – it already is. You are arranging for the work to leave something behind, so that there is an artefact to read instead of a sentence about it.

What this register does

The truth register names the 15 claims an agent makes about its own work, what each one costs when it turns out to be false, and the strongest control available against it. The register carries eight evidenced claims and seven candidates; the hub's headline counts count evidenced rows only. Nine can be converted into a committed artefact a machine checks on every commit. Six come down to judgement that no tool settles. None can be prevented outright.

The register produces one working rule: commit the artefact, then trust the artefact rather than the claim.

This is a technical page listing every claim, what it costs, what closes it, and what has actually gone wrong here. It sits under the hub.

Many of the controls on this page are standard software engineering – CI, code review, committed test output – and experienced engineers already run some of them.

What the register adds is the failure behind each control: which failures are only detected, and which ones nothing closes. This shows where your remaining gaps are.

THE DEFINING FINDING

The difference is never in the writing. It is only in whether the work left an artefact behind.

The question this register asks

Can an AI agent's claims about its own work be trusted? The unit that the register tests is a claim, such as:

  • "I verified it."
  • "The tests are good."
  • "This wording is approved."
  • "The residual risk is acceptable."

Every one of those is an assertion about work rather than the work itself. The register grades each claim by what it costs when it is false, and what, if anything, catches it.

The identical-sentence problem is why nothing anywhere in the process has an opinion about whether the work actually happened. That is why the fixes on this page are variations of "commit the artefact" and none of them are "improve the prompt".

What a claim looks like

A WORKED EXAMPLE / TL-09

Here is an example from our own build in August 2026.

Here is an example from our own build in August 2026. A database access probe ran six times, once as each of six different users, and reported that every one of them was denied. That read like proof the guard was working. It was not.

All six were users who were supposed to be denied. The one user who was meant to get through was never run – and at that point in the record's life would have read exactly zero rows as well. The suite was green, and it had distinguished nothing. A working guard and a broken guard would both have produced this result.

Two details show why this experience is worth sharing. The evidence bundle built on that probe claimed, explicitly, that its result was meaningful. And the session that shipped it had, earlier in the same session, written the very rule it was about to break into a brief instructing another agent to follow it. It was caught the next day by an independent audit, not by anything in the session that produced it.

That is TL-09, "the tests are good" – not "I verified it". The probe genuinely ran. It ran and proved nothing, which is a quieter failure than never running at all.

You cannot proofread your way out of this, because the prose looks the same either way. But you can diff your way out of it. Another agent, another session, or a plain script can check whether a test log exists and whether it matches the claim, because that is a mechanical comparison against a committed artefact rather than reading prose. Proofreading versus diffing is the distinction this whole register relies upon.

THE SUITE WAS GREEN / IT HAD DISTINGUISHED NOTHING

Why these failures occur quietly

The claims in this register have a second property, following from the first.

Bugs announce themselves eventually. Something breaks, someone reports it, it gets fixed, and the cost is limited by the noise it makes.

False claims do not announce themselves. They sit underneath decisions until whatever was built on top of them collapses. By then the claim is months old and nobody connects the two.

The severity grading makes that concrete. Every claim is scored S1 to S4 on what it costs and how quietly it fails, and S1 – the cheap one, where somebody spots the problem the same day and one round trip fixes it – has no rows on this register at all. Not one of the 15 claims fails loudly enough to be noticed on the day it happens. That is what makes this a truth problem rather than a bug list, and it is the reason the register has to be assembled in advance rather than only accumulated from incidents.

Most people learn this the same way. Not from an agent that behaves suspiciously, but from one that behaves perfectly and turns out to have been wrong the whole time.

How this register works

The truth register lists 15 claims and their failure states, measured against a base install – an agent, a repository, a CI pipeline, and nothing else pointed at this problem. It then names the strongest guard you can add against each claim. Whether any of them is actually switched on is a separate question, and one you answer against your own configuration. The whole catalogue is published on GitHub – clone it or download the zip.

The claims were derived by analysing the types of claims an agent makes in one harness and one production codebase. We worked through the claims, row by row, and asked what would make each one false, what that failure would cost, and what could catch it.

We followed this approach deliberately. A register built only from recognised incidents would fail to identify the worst-case scenarios: the highest-severity claims are the ones that never announce themselves, so selecting for "we have seen this go wrong" filters out the dangerous half and leaves a list of loud, cheap failures.

Every register in this framework is built the same way, but this is the one where the difference shows, because a truth claim that goes wrong leaves nothing behind to log.

Every sentence on this register is one we have watched an agent write. We have not always watched it turn out to be false. Eight of the 15 carry a dated incident from our own work. The other seven carry the claim and the reasoning about what would make it false, with no logged instance of it happening.

Those seven are the register's weak point. An empty evidence line means one of two things. Either the control was already switched on before we went looking, or the failure leaves nothing behind to log.

Kind 2 – "did it come out clean" – is the first case: the cheapest controls on the register, installed first, one dated failure across five claims. Kinds 4 and 5 are the second, where a judgement claim that goes wrong produces no incident for anybody to log. The evidence column records which failures left a trace. It is not a ranking of risk.

There is a version of this you can check yourself. If you run agents daily and cannot remember the last time one faked a result, the likely reason is not that faked results are rare. It is that you have already closed the cheap group, where they would have been visible.

The goal of the register is to identify the claims your agents make constantly, and to help you install the setting, tool or process that would prove each one. Everything that cannot be covered that way stays under your judgement. The list of the remaining claims that you are responsible for is at the end of this page.

The five kinds of claim

Claims in this register can be grouped by what the agent is actually asserting. This is more useful for spotting them in your own work, because it maps to moments in a working day.

Every claim on the truth register answers one of five questions.

  1. Did it happen? Claims that an action was performed at all. The action either happened or it did not; nothing here is about quality. Example: "I verified it." These show up in closing summaries and pull request descriptions.
  2. Did it come out clean? Claims about the state of an artefact after the work – a pass, a currency, a conformance. Example: "The generated file is current." These show up whenever the agent reports a status rather than an action.
  3. Was the checking any good? Claims about the adequacy of the checking itself. The suite ran. The question is whether running it meant anything. Example: "The tests are good." These show up in exactly the sessions that feel most reassuring.
  4. Is the design right? Claims of judgement, where correctness is a property of a decision rather than of an execution. Example: "The data model is right." These show up at the start of work and are paid for months later.
  5. Is this safe to ship? Claims about release and about risk acceptance. Example: "The residual risk is acceptable." These show up at the moment of handover, which is the moment nobody is checking.

The two taxonomies are independent. The important finding comes out of a cross-cut between the two.

  • Kinds 1 and 2 – did it happen, did it come out clean – are almost entirely closeable.
  • Kinds 4 and 5 are almost entirely not.
  • Kind 3, the claims about whether the checking was any good, is the only group that straddles both classes and closes in neither.

Nothing that checks the checking is closed anywhere, and you only see that by cross-cutting the two taxonomies. Sort by control alone and it disappears.

The three classes: what you can do about each claim

Every claim on the register is assigned to one of three classes. The class describes the strongest control available against that claim, not the seriousness of the claim itself.

What decides the class is whether the work behind the claim, when it is genuinely done, leaves behind something a machine can compare against what the agent is claiming. "I verified it" and "the residual risk is acceptable" are the same kind of sentence: flat, plain, written at the end of a session by an agent that means it. One is Class B (detected) and the other is Class C (survives), and the only difference between them is that a verification produces an output you can commit and diff, and a risk acceptance produces nothing.

  1. Class A – prevented, by withholding. The gold standard. The best control is to make a false claim impossible: the action is refused, and there is nothing to check afterwards because nothing happened. On this register it is empty. No claim an agent makes about its own work can currently be prevented by construction. Other registers in the framework do have Class A rows; this one does not.
  2. Class B – detected, by executing then diffing (nine claims). Commit the output rather than the claim, and let a machine compare the two on every commit. This is where most of the register lives, and the machinery is ordinary. No part of it is novel, expensive or research-grade. The cost is that detection is after the fact. The failure is written, it is caught, and then somebody repairs it. You are reading the red, not the code.
  3. Class C – survives: nothing retires these claims, so they reach you. Judgement only (six claims). "This finding is real." "The data model is right." "The residual risk is acceptable." Nothing converts these into machinery. They are not a backlog to automate later. They are the part of the work that was never delegable. Independent re-derivation reduces the risk, but it cannot eliminate it. The register's job here is to identify exactly which six claims need a person.

So the score for this register is zero prevented, nine detected, six surviving. Not one claim can be made impossible. Everything is either caught afterwards or lands on somebody's desk.

A note: the three classes don't sort neatly into good news and bad news. TL-04, "I verified it", is the most severe band on the chart and also the most completely closeable. Commit the verification output, let CI compare it against the claim, and the agent still writes the sentence but the sentence stops mattering.

TL-09, "the tests are good", has a mature mechanism that most teams have never installed. TL-13, "the RLS design is sound", never closes at all.

Does judgement require a human? Why can't an agent do it?

The obvious question about Class C is why a second agent cannot simply check it. It can, but only on one condition.

A second agent settles anything that has an oracle – a test log, a diff, a committed file. It cannot settle "did we think of every way this policy leaks?", because that question has no oracle to check against.

A second agent from the same model family also brings correlated blind spots. That is why the register's wording is "blind spots that aren't correlated with the author's" rather than "a second opinion".

A second agent counts as independent when it is a different vendor and a different model, in a seat the first agent does not control. That condition has its own row – TL-03, "the audit was independent" – and it is the row everything else leans on. Two sources agreeing is probability, not certainty. One source agreeing with itself is neither.

Vocabulary: this register reads its three classes as prevented, detected and survives. Five of the six registers use these words, and the class letter means the same thing everywhere – how complete the remedy is. [A note on vocabulary] on the hub covers the one exception and the three things still unreconciled across the framework.

What to install

Start from a base install – an agent, a repository, a CI pipeline and nothing else pointed at this problem – and add in this sequence. You are choosing from settings, tools and processes, in that order, because that is also the order of increasing cost. The list is sorted by what each control brings for the effort it takes to implement, and it names only the strongest control against each claim. Full detail, including tooling, is in the fixes reference at the foot of this page.

  • Deny write access to your test files. A setting, not a tool. "The tests pass" cannot be made true by editing the tests to fit the code if the agent cannot edit the tests. In most harnesses this is a single deny rule in a permissions file, and it is the cheapest item on this list by a wide margin.
  • Diff the summary against the commit range. You already have git. What a base install is missing is anything that reads the history and compares it to what the agent said it did. A record nobody diffs is not a control, it is an archive.
  • Commit the verification output and fail the build when it is missing. This is the one that converts the most severe claim on the register. The point is not that tests exist. It is that their result is committed rather than narrated.
  • Separate the model seats. The model that reviews the work must not be the model that did the work, and the assignment has to be enforced somewhere the reviewing agent cannot reach. Until that is true, "the audit was independent" is an open claim, and every agent-checks-agent arrangement you build on top of it inherits the problem.
  • Mutation and property testing, and a held-out suite. These convert "the tests are good" and "I didn't game the tests" from opinions into machine results. Both techniques are mature and neither is exotic. They move two claims out of opinion and into machinery.
  • The judgement list. The six Class C claims have to be briefed decision by decision. This is not an optional hardening step you take if you want maximum lockdown. It is what is left over once the machinery has taken everything it can. They are not a document that you can check only once. Treating them as a one-off check is how a risk is accepted by default, but that nobody actively chose.

Run the free trust-check tool to find out what you need to install. Or start without it: pick a claim your agents make constantly and make them commit the artefact that would prove it. The reference below is the working detail for all 15.

REFERENCE

Every claim on the truth register

THIS PAGE IS A VIEW, NOT THE RECORD

Generated from the register at commit f179130, last updated 2026-09-01. The register file is canon; this page is a rendering of it. Where the two disagree, the register is right.

OPEN THE CURRENT REGISTER →

Who this is written for

This page assumes a developer's setup. The mechanisms below are written for an agent with hooks, a git repository, plain-text notes carrying a frontmatter schema, and a CI pipeline. The reference implementation is a markdown second-brain vault, which is where these rows were derived. If that is your stack, everything here is directly installable as written.

If your work sits in Microsoft 365, Google Workspace, Confluence or Notion, the failure is identical – a claim the artefact does not back is the same failure anywhere – but the mechanism is not. A pipeline run attached to a work item stands in for committed test output, a completed checklist with a timestamp for an artefact gate, an approval record for a sign-off claim. A few rows are native to a repository and have no clean equivalent: committing the test output in the same commit as the change, and diffing the cited files against the session record, are the clearest of them.

Those mappings are not published here. Enterprise mapping is available on request.

How to read each claim

Every claim in every register in this framework is described the same five ways.

  • Kind – which of the five questions the claim answers. Kinds map to moments in a working day, not to controls.
  • The claim – the sentence itself, close to the words an agent actually writes.
  • Severity – what the failure costs multiplied by how quietly it fails. A judgement, not a measurement.
  • S1 a round trip noticed at once (there are no S1 rows on this register)
  • S2 rework caught at review
  • S3 real rework or a wrong outcome, found late
  • S4 it ships and you never find out
  • Class – the strongest control available against the claim.
  • Class A, prevented: the false claim is made impossible.
  • Class B, detected: commit the output and let a machine diff it.
  • Class C, survives: nothing converts it, and judgement remains.
  • Closeable, or not – whether a mechanism exists that retires the claim. Closeable means the mechanism exists and is understood, whether or not anybody has installed it. Not closeable means nothing converts it, and independent re-derivation reduces the risk without retiring it.

Each entry also carries a seen here line, and it has two states. Recorded means this claim has actually failed in our own work, the incident is written down with a date, and the incident is an instance of this claim rather than something that merely resembles it. Not recorded means it has not, or not that we know of. Eight of the 15 are recorded. Seven are not.

Read the absences in both directions. They cluster in kinds 4 and 5. That is not evidence those claims fail less often – it is the S4 property doing exactly what the register says it does, because a judgement claim that goes wrong produces no incident anybody logs. It is not evidence they fail more often either. An empty line is an empty line.

How to test your own setup

Nothing on this page says whether a control is switched on in your setup. That is a property of an installation, not of a claim, and it is the difference between "closeable" and "closed". A control can also be turned back off, which is why closeable claims stay on the register permanently rather than disappearing once someone installs the fix.

To check your own setup, work down the claims below against your own configuration; each one carries the steps open to you. The same claims are on GitHub as plain markdown, if you would rather read them in your editor or diff them into your own notes.

KIND 1

Did it happen?

TL-04S4DETECTEDCLOSEABLE

“I verified it.”

The agent asserts that a check was carried out. It usually appears in the closing summary of any session that touched behaviour, and in pull request descriptions written by the agent that wrote the code. It is false when nothing was run at all and the sentence is the only evidence that anything was. This is the highest-cost failure on the register because there is no downstream symptom. The work simply was not checked, and everything after it assumes it was.

THE FIX

Commit the verification output and fail the build when the output is missing or does not match the claim. Ordinary CI, pointed at a problem it is not usually pointed at.

TL-02S2DETECTEDCLOSEABLE

“This is what I changed.”

The agent's account of its own edits. It appears at the end of every session and in every generated commit message or pull request body. It is false when the account is revised after the fact, or more commonly when it is simply incomplete – three files named, two omitted, or an intention described rather than the edit that actually landed.

THE FIX

Diff the claim against the committed range. The mechanism ships with git, which is the trap. Availability is not interposition. A control nobody runs is a control on paper. This one is closeable at close to zero cost and is very often not closed.

KIND 2

Did it come out clean?

TL-01S3DETECTEDCLOSEABLE

“The tests pass.”

The suite was run and came back green. It appears at the end of any session that touches code and tests together. It is false when the suite is green because the test was rewritten to match the code, rather than the code being fixed to match the requirement. The failure is invisible in the test report, which reads exactly the same in both cases.

THE FIX

Deny the agent write access to test files, and fail the build when a test file changes in the same commit as the code it covers. A permissions setting plus a CI rule.

TL-05S3DETECTEDCLOSEABLE

“The generated file is current.”

Any artefact produced by a generator – types, tokens, clients, schemas, documentation – is claimed to reflect its source. It appears whenever an agent touches a source of truth and reports the downstream as handled. It is false when the source changed and the generator was never re-run, leaving a stale artefact that everything downstream then builds on. The cost compounds quietly, because the stale file works right up until the part that changed is exercised.

THE FIX

Run every generator in check mode in CI and fail on any difference.

TL-07S2DETECTEDCLOSEABLE

“The architecture is respected.”

The change is claimed to sit inside the agreed boundaries – layering, module ownership, allowed dependencies. It appears in any session that adds an import or reaches across a boundary to solve something quickly. It is false when a boundary was crossed for local convenience. Individually cheap, which is what makes it dangerous. Nothing breaks, coupling sets in, and the cost arrives as a slow loss of the ability to change anything independently.

THE FIX

Dependency and import-boundary linting, run in CI.

TL-08S4DETECTEDCLOSEABLE

“The UI is accessible.”

The interface is claimed to work for keyboard and screen reader users. It appears whenever an agent builds or edits an interface and reports it complete. It is false when the component looks correct and is unreachable without a mouse, or is invisible to assistive technology. Severity is S4 because the people it locks out are usually not in the review loop, so it ships and nobody in the room finds out.

THE FIX

Automated accessibility checks run against rendered pages in CI.

TL-06S4DETECTEDCLOSEABLE

“This wording is approved.”

Customer-facing copy is claimed to be signed off. It appears whenever an agent writes or edits anything a customer will read – interface strings, marketing copy, error messages, documentation. It is false when the wording was generated, sounded plausible, and was never approved by anyone with the standing to approve it. Severity is S4 because unapproved claims about a product can create commercial or regulatory exposure that nobody in engineering can see.

THE FIX

A check that fails the build when customer-facing wording appears outside an approved source.

KIND 3

Was the checking any good?

TL-09S4DETECTEDCLOSEABLE

“The tests are good.”

The suite is claimed to be meaningful, not merely green. It appears in every session that reports a passing test run, implicitly. It is false when the suite would pass with the logic deleted – tests that assert the shape of a response and never its correctness, or that exercise a path without checking the outcome. The failure survives every code review, because reviewers read what the test does and not what it would fail to catch.

THE FIX

Mutation testing, which deletes or alters your logic and fails if the suite still passes, and property testing, which generates inputs you would never have thought to write down. Both are mature. Neither is common.

TL-10S3DETECTEDCLOSEABLE

“I didn't game the tests.”

The implementation is claimed to solve the problem rather than to satisfy the suite. It appears whenever an agent iterates against a failing test until it goes green. It is false when the code was optimised for the visible tests rather than for the job – special-casing the fixture, matching the assertion rather than the requirement. This is the most natural failure mode of any agent given a pass/fail signal and told to make it pass.

THE FIX

A held-out suite – tests the agent has never been able to read, run only after the work is submitted. Not a tool, an arrangement. Its whole value is that the agent never sees it.

TL-03S4SURVIVESNOT CLOSEABLE

“The audit was independent.”

The review is claimed to have been carried out by a party independent of the author. It appears wherever a session reviews its own output, and wherever a review agent shares a model, a vendor or a context window with the agent that did the work. It is false when the same model graded its own work, which produces a confident and self-consistent verdict for exactly the reasons it produced the original error. This row gates the whole register, because it is the row that would let a second agent legitimately settle claims a person currently has to.

THE FIX

Model-seat separation – a different vendor and a different model in the reviewing seat, with the assignment enforced outside the agent's reach. It reduces the risk substantially yet still does not retire the claim, which is why the row sits in Class C rather than Class B.

KIND 4

Is the design right?

TL-11S3SURVIVESNOT CLOSEABLE

“This finding is real.”

A review, an audit or a research pass claims to have found something. It appears in every review output, and increasingly in agent-generated findings lists where the volume makes each one hard to check. It is false in both directions and both are expensive: a real defect dismissed as noise, or a phantom worked on for a day. The asymmetry that matters is reputational. One false finding puts every true finding beside it in doubt, and credibility across the set is the asset a review exists to produce.

THE FIX

Independent re-derivation – a second party working from the sources rather than reading the conclusion. Reduces the risk. Retires nothing.

TL-12S3SURVIVESNOT CLOSEABLE

“The data model is right.”

The entities, boundaries and relationships are claimed to be correct. It appears early, in the session that designs a schema, and is usually accepted because at that point nothing contradicts it. It is false when a boundary is drawn in the wrong place – two things modelled as one, or one thing split across two. The cost is not just in the initial mistake, but in its compounding. Every subsequent migration is shaped by it, and the cost of correcting rises with each one.

THE FIX

Independent re-derivation against known modelling patterns, by a person or a genuinely separate seat.

TL-13S4SURVIVESNOT CLOSEABLE

“The RLS design is sound.”

A security or access-control design – row-level policies, permission models, tenancy isolation – is claimed to be correct. It appears whenever an agent builds an access boundary and the tests for it go green. It is false when the tests exercise the cases the designer thought of, which are the same cases the designer defended against, and the leak is in a case nobody framed. Green tests are the trap. They prove the policy does what it was written to do, never that it does not do anything else.

THE FIX

Second-vendor audit and human review. Database-level policy testing helps and does not close it – it covers only the half you already had.

KIND 5

Is this safe to ship?

TL-14S4SURVIVESNOT CLOSEABLE

“This claim is safe to make.”

A statement about the product, its capability, its compliance or its performance is claimed to be defensible. It appears whenever an agent drafts anything outward-facing, and the failure mode is that plausible marketing language is generated as fluently as accurate marketing language. It is false when an unsupportable claim is published – a capability overstated, a certification implied, a benchmark quoted without its conditions. The cost is commercial and sometimes regulatory.

THE FIX

Independent re-derivation against the evidence for the claim, which means somebody has to hold the evidence.

TL-15S4SURVIVESNOT CLOSEABLE

“The remaining risk is acceptable.”

Whatever was not fixed is claimed to be safe to live with. It appears at the end of remediation work, in security sign-offs, and in any summary using the words "minor", "edge case" or "acceptable". It is false when a risk gets accepted that nobody actually chose to accept, because the acceptance was written into a summary rather than made as a decision by someone with the authority to make it. This is the quietest row on the register and the one most likely to turn into an incident report.

THE FIX

Name the person who accepts it, and have them accept it knowingly.

The fixes: dedupe view

Test-file write protection

Denies the coding agent write access to test paths, so a green suite cannot be produced by editing the test.

Harness permission deny rules · CODEOWNERS plus branch protection on test directories

Committed test output, compared in CI

Runs the suite on every commit and fails when the claim and the output disagree.

GitHub Actions · GitLab CI · CircleCI · any CI that blocks the merge rather than just reporting

Summary-to-commit-range diff

Compares what the agent said it changed against what the history says it changed.

Git, plus anything at all that actually runs the comparison

Database-level policy tests

Exercises access policies in the database itself rather than through the application, so the policy is tested and not the code path around it.

pgTAP for PostgreSQL

Generator check modes

Re-runs every generator in check mode and fails on any difference, so a stale artefact cannot pass as current.

Type checkers in no-emit mode · formatter check modes · generated-client and schema diffs

Approved-claims checking

Fails the build when customer-facing wording appears that is not traceable to an approved source.

A project-specific check script over interface strings and copy, wired into CI

Dependency and boundary linting

Fails the build when an import crosses a boundary the architecture forbids.

dependency-cruiser · ESLint import boundary rules · ArchUnit (JVM) · import-linter (Python)

Automated accessibility checking

Runs assistive-technology checks against rendered pages and fails on violations.

axe-core, driven by Playwright or in Lighthouse CI

Mutation testing

Deletes or alters your logic and fails if the suite still passes.

Stryker (JS/TS, .NET, Scala) · PIT (Java) · mutmut or cosmic-ray (Python)

Property testing

Generates inputs nobody would have thought to write down and checks that stated properties hold across all of them.

fast-check (JS/TS) · Hypothesis (Python) · QuickCheck (Haskell)

A held-out suite

A test suite in a location the agent has no read access to, run only after the work is submitted.

No tooling required. Access control is the mechanism.

Model-seat separation

Puts a different vendor and a different model in the reviewing seat, with the assignment enforced outside the agent's reach.

Process plus access control. Two vendors, two accounts, the seat assignment held where the reviewed agent cannot alter it.

Independent re-derivation

A second party redoes the reasoning from the sources rather than reading and grading the conclusion. Reduces risk; retires nothing.

No tooling. A person, or a genuinely separate seat once model-seat separation is real.

GROUNDING

Grounding, per the project's claim discipline: these counts and statuses come from one coding-agent harness and one production codebase, assessed row by row. The recorded instances come from this project's own corrections register over August 2026. That is the depth the claim is grounded in. It is not a universal benchmark.

› Next register: Can you get it back?