Start here · page 1 of 17
What DoneMark is for
Agents build software now. They also report on their own work, and a report is not a record.
DoneMark 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. DoneMark 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 DoneMark 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, DoneMark 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 DoneMark — 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.
Where you meet it
AI builds it. You sign it off. Your day starts on the Home, with what waits for you one press away from every page, worst first — and the parts of the work you look after first. Each thing you sign off there becomes a record like the one above.
The name
DoneMark was called Constat until September 2026. A few things you will meet still carry the old name, because they are names other systems hold: the GitHub App you install (Constat on GitHub), the check it writes on a pull request, the command-line tool (npx @constat-io/cli), the app's address (app.constat.io), and file names such as constat-check-report and .constat/. They are the same product.