Sign in

Start here · page 1 of 13

What Constat is

Agents build software now. They also report on their own work, and a report is not a record.

Constat is the other side of that boundary. The ask is frozen before the work starts. The evidence is read after it finishes, from your own CI, by something that did not build it. And a person puts their name on done.

That is the whole product. Everything else in this documentation is a detail of those three things.

What it is not

It is not a harness. It does not run your agent, hold its tools, retry it or keep it in bounds. Whatever you already use for that — your own scripts, a framework, your CI — keeps doing it. Constat never asks to be in the middle.

It is not a test runner. It never runs your tests. It reads what your CI published about a run that already happened. That distinction is the reason its records are worth anything: if Constat ran the tests, it would be reporting on itself.

It does not say your software is correct. No tool can. It says what was asked, what CI observed, and who accepted it. A reader draws their own conclusion, with the evidence in front of them.

The one sentence

Agents build. Whatever keeps them in bounds while they build, Constat is the other side of the boundary: the ask frozen before, the evidence seen after, and a person's name on done.

What you end up with

A Constat — a numbered, sealed record of one requirement: what was asked in your own words, what each acceptance criterion was, what your CI observed about each one, what the agent claimed separately from that, who accepted it and when.

It does not change afterwards. You can link to it. Somebody who was not there can read it and see what actually happened.

Why the claim and the evidence are kept apart

An agent's report of its own work is shown on the record, in full, as a claim — never merged into the evidence. This is not politeness. In the sample that started this product, five of eight agent self-reports contradicted their own diffs. The claim is interesting; it is not proof, and a record that mixes the two cannot be read.