The proof chain

One line from the requirement to a signed record.

Nine links. A product requirement becomes a ticket. The ticket becomes an agent run. The run becomes code. The code becomes a merge. The merge becomes a checked, truthful ticket state. All of it becomes a record nobody can quietly edit afterwards.

Fastpace holds the agent and code half. GroundTruth holds the record half. Below, one real-shaped ticket travels all nine links so you can see the same thing move.

Fastpace · agents and code GroundTruth · the record One chain, both halves
The ticket we follow
In the requirements document “A customer must not be able to place an order with an empty basket.”
The ticket ENG-318 · Reject checkout when the basket is empty
The branch feature/ENG-318-empty-basket

ENG-318 is an illustration, not a customer. Everything described around it is how the product works.

Nine links, in order

Each one hands something to the next.

If any link is missing, the ones after it are guesswork. That is the whole reason to care about the chain rather than the parts.

Why the halves need each other

Separately, each half proves a fragment.

Both halves are useful alone. Neither alone answers the question an auditor, a director or a worried customer actually asks, which is: show me this specific requirement, and show me it got built the way it was asked for.

Fastpace alone

A perfect record of agent work, floating free.

You know which agent ran, on which model, under which policy, and exactly which commits it produced. What you cannot show is whether the thing the business asked for was delivered. The chain stops at the repository boundary.

GroundTruth alone

A truthful tracker with an anonymous author.

You know what merged, whether the acceptance criteria were really met, and what each ticket should therefore say. What you cannot show is who or what wrote the code, or what it was permitted to do while writing it.

Joined up

One line, across any agent vendor.

Pick any merged change and read backwards: the status it set, the criteria that justified it, the merge, the commits, the policy in force, the agent and model behind it, the intent it was meant to serve, and the requirement that intent came from. Pick a requirement and read forwards to the same place. The direction does not matter, because it is one chain, and it does not care which agent tool your team happens to be using this quarter.

The span

Two good categories of tool, each stopping early.

Coding agents stop at the repository.

They are excellent at links three to five, and getting better fast. Their records are their own: tied to their own model, their own console, their own log format. Governance bound to one vendor stops being governance the day you add a second vendor. And none of them follows a change out to the ticket or the requirement, because that is not their job.

Reporting tools describe the record without writing back.

Dashboards read your tracker and chart it beautifully. If the tracker is wrong, the chart is a confident picture of something untrue. They describe the record rather than correcting it, and they do not verify a single acceptance criterion against the code that is supposed to satisfy it.

What a regulation asks for, and what we will not claim

We can hand you the record. We cannot hand you compliance.

Article 12 of the EU AI Act asks for automatic logging of events relevant to traceability, tamper-evident, and retained for at least six months. We can tell you what the article asks for, and we can produce a tamper-evident, signed record of these nine links.

What we will not tell you is that any tool, ours included, makes your organisation compliant with that regulation or any other. Compliance is a judgment made about your organisation by people who are not us. Fastpace holds no certification, and claims none. What we offer is evidence that stands up when someone reads it closely.

The honest limits

What the chain does not do.

It records and it verifies. Those are narrower jobs than they sound, and the gap between them and what people hope for is worth stating plainly.

It does not say the thing was worth building.

Nine green links prove the work matches the requirement. They say nothing about whether the requirement was a good idea. A fully proven chain around a bad bet is still a bad bet, documented.

It cannot prove a criterion nobody wrote.

If a ticket says “works correctly”, there is no sentence to check the diff against. GroundTruth will tell you the criterion is unverifiable and help you rewrite it. It will not invent a standard and then declare the code met it.

It does not replace review.

Where the judgment is genuinely hard, the chain routes it to a person rather than guessing. Human decisions stay human. We record them, attach the evidence, and stay out of the way.

It is only as complete as the signals a tool exposes.

Where an agent tool or a tracker exposes little, we record little, and we tell you which link is thin rather than filling the gap with an assumption. Thin links are visible in the chain, not hidden in it.

A ticket link is either stated or inferred, and we label which.

The run receipt and the commit both carry the ticket key, and each one records where that key came from: declared by the agent, read from the commit message, set in the environment, or taken from the branch. When nobody wrote it anywhere, GroundTruth infers the link from other signals, scores its confidence, and marks it inferred. A weak join goes to a person instead of moving a ticket.

Running it inside your own walls is a conversation.

Self-hosted and air-gapped deployment is an Enterprise capability, arranged with our team. It is not something you can switch on yourself from a pricing page, and we would rather say so here than let you find out later.

Follow your own ticket through all nine.

Start in shadow mode on one repository and one project. Nothing is written until you say so.

Start free trial See the integrations