The claim taxonomy in src/claims.rs covers tests, type checks,
lint, build, commit, push, and file writes. Agents routinely assert plenty else, and each of
these has recorded evidence that could back or refute it.
Each item below is a self-contained contribution: one claim pattern, one verifier, two tests.
How to add one
- Add a variant to
ClaimKind and a pattern in all_patterns().
- Extend the evidence ledger in
src/evidence.rs if the
evidence is not already collected.
- Add a match arm in
src/verify.rs returning a verdict and the
line of output it rests on.
- Test both directions: the claim with evidence, and the claim without.
The trap to avoid
The patterns must reject intentions and hypotheticals. "I'll run the migration next" and "once
the migration runs" are not claims, and matching them makes the tool noisy enough that people
turn it off. is_hedged() and is_negated() exist for exactly this — extend them alongside any
new pattern, and add a test proving the hedged form is ignored.
The claim taxonomy in
src/claims.rscovers tests, type checks,lint, build, commit, push, and file writes. Agents routinely assert plenty else, and each of
these has recorded evidence that could back or refute it.
Each item below is a self-contained contribution: one claim pattern, one verifier, two tests.
alembic upgrade,prisma migrate,rails db:migrate,django manage.py migrate, and what they printedactually changing (
package.json,pyproject.toml,Cargo.toml)when the README was never touched
git revert/git checkout/git restore, or an editrestoring the earlier content
console.log/print/dbg!remains inthe added lines. This one is checkable directly from the edit payloads.
curl/httpiecall and its statusgh pr createand the URL it printedHow to add one
ClaimKindand a pattern inall_patterns().src/evidence.rsif theevidence is not already collected.
src/verify.rsreturning a verdict and theline of output it rests on.
The trap to avoid
The patterns must reject intentions and hypotheticals. "I'll run the migration next" and "once
the migration runs" are not claims, and matching them makes the tool noisy enough that people
turn it off.
is_hedged()andis_negated()exist for exactly this — extend them alongside anynew pattern, and add a test proving the hedged form is ignored.