Skip to main content

Make targets

Direct commands

Generate the workflow by reading a repository, instead of writing it by hand:
It writes .github/workflows/contract-audit.yml with every derived value commented, refuses to overwrite an existing one without --force, and takes --stdout to print instead. --json reports what it detected without writing anything, which is the quickest way to see whether it found your spec. Audit a real repository:
Leave out routes that were never part of the contract. Patterns are matched against the path as the spec writes it, so after --strip-prefix has been removed, and * crosses slashes:
The same flag works on the deterministic layer on its own:
Extract the route table:
Verify one case:
Score a run:
Compare two runs, which is how the learned memory is measured:

Choosing a model

Any model your endpoint serves works: the client sends whatever id it is given, and nothing in the auditor is tied to one vendor. --model sets it per run, AUDITOR_MODEL in .env sets it once. --reasoning asks the provider to think for longer before answering. It costs output tokens and wall-clock time on every endpoint, so it is off unless you ask for it, and the published results were measured without it.
Not every model accepts every level. z-ai/glm-5.3-flash reasons unconditionally and rejects off with a 400; the error names the model and the level so it is clear what to change. Asking for a level also raises the token ceiling, because thinking is billed as output and emitted before the answer, so a ceiling sized for the answer alone truncates mid-thought. Both settings are recorded in every run’s meta, since two runs at different models or reasoning levels are not comparable.

Learned memory

Off unless you point it at storage you own. Nothing is kept in your repository or inside the action’s image, and no history ships with the tool.
Every run appends each claim and its gate verdict, refuted claims included. Later runs read it back: similar past refutations go into the prompt, and per-kind survival rates decide the order of the report. Memory never suppresses a claim; the gate still decides.

Configuration

From .env at the repository root, or the environment, which wins.