Skip to main content
Back to timeline
tessl.ioSource publication:

Repo rules stop depending on human review: Tessl Verifiers check every agent change for pass or fail

Synopsis

Tessl released Verifiers, which write a repository's coding rules as plain-text checks that an LLM judge scores as pass or fail on every code change, running like lint or tests locally, in pre-commit, or as a CI gate. Previously such rules surfaced only in code review or AI code review, which looks for general problems across a PR and will not reliably check the same rule on every run. Verifiers are in GA, default to the openai/gpt-6-luna judge, and can switch to the Jev model, which returns a verdict and confidence score per rule.

Source-provided article image: Verifiers: enforce your repo's rules on every agent change
tessl.io

Interpretation

Coding rules written down for agents can now be checked automatically on every change, returning a pass or fail result. Previously these rules were mainly caught in code review, or by AI code review, but review looks for general problems across a PR and will not reliably check the same rule on every run. Each run returns pass or fail, so verifiers can be used the same way as lint or tests today: locally, in pre-commit, or as a CI gate.

A check lives in the repository as a JSON file holding an instruction, the conditions for when it applies, and a checklist of yes-or-no rules. Running tessl change verify has an LLM judge read the relevant files and score each rule as pass or fail. The default judge is openai/gpt-6-luna, and the Jev model is also supported, returning a verdict and a confidence score for each rule without written reasoning, toggled with --model jev.

Scope and severity live outside the verifier itself, so one verifier can be reused across teams with different settings. The verify block of tessl.json sets each group to info, warn, or error; in CI warnings are reported but do not fail the build, while errors exit non-zero and can block the PR. By default only files the current change touches are checked, editing a verifier or its config re-checks everything that verifier covers, --all audits the whole project, and --recursive covers a monorepo.

Perspective

Verifiers fit rules with a clear yes-or-no answer, where the evidence is visible in the changed files and no linter or test can check it reliably, such as every API route using typed response helpers, every user-facing error message telling the user what to do next, or no handler logging request headers, tokens, or passwords. They can run in CI as a pull request gate, in a pre-commit hook, or by having the agent run them before it opens a PR. Starting at warn level is suggested to see how a verifier behaves on real PRs, then moving it to error once trusted.

Verifiers do not work well for subjective questions such as whether code is readable, and a rule must be narrowed until it could be checked with a checklist. If a linter can do the job, the linter should be used. By default only files the current change touches are checked, so auditing the whole project requires explicitly adding --all.