Every piece exists.
Nothing connects them.
The tooling a regulated AI team buys today, sized by how much of the problem each slice owns. And the gaps between the slices, where the work is a person clicking, querying, grepping and pasting.
Not by integrating the tools.
By making the work itself write the record.
Six mechanisms. Each one closes a seam or two. None of them is a connector.
Every action is a command through one bus.
Reads and writes, human or agent: all of it enters through the same seam. HTTP today, with the MCP seam already derived from the same registry. There is no side door to a table or a vendor, so there is exactly one place to authenticate, authorize, scope the tenant, and record.
The transaction that does the work writes its own receipt.
The command log, the outgoing events, the outbound side effects, and the AI decision all commit with the business change, or none of them do. Append-only, in your own database, with a declared retention policy.
Trace, correlation, cause, and tenant travel together.
A request, its command, its events, the downstream handlers in other services, the external calls, the AI prompts, and the trace in your observability tool all share the same identifiers.
Undeclared behavior cannot merge.
A handler can only call the vendors it declared. A route cannot exist off the map. An AI node cannot skip recording. These are lints and conformance tests in CI, not conventions in a wiki.
The system map is generated from code and gated for currency.
Entry points, commands, handlers, events, tables, and vendors are read from the declarations the runtime enforces. The build fails if the committed map drifts.
An agent is a user with a permission set. Never plumbing.
The triage agent, the audit assistant, and a client’s own bots authenticate, get authorized, and record exactly like people. They cannot approve, merge, or reach a table any other way. Dry-running a command to see its blast radius before commit is part of the line; its status and basis are listed, dated, on the capability-status page.
SELECT … WHERE correlation_id = … The same read surface a person, an auditor’s PDF, or an agent uses.
What we don’t say hereThe receipt format is published, and so is the schema: receipt-spec. What stays ours is how the rails are expressed, and how one declaration becomes a route, a tool, and a map node at once. You do not need that to check this.
Proportions are illustrative: a working estimate of how much of a regulated AI team’s operational and compliance surface each slice covers, not market size. Incumbents listed are representative, not exhaustive. The claim is not that Haltere replaces them. It is that on Haltere every slice reads from and writes to one by-construction record, every command, every authorization, every decision, every event, and the map, so the seams between tools stop being a person’s job.
Ten good tools. One record.
Keep every tool on the ring. Bring us the seam that costs you the most on incident day or audit day, and we’ll show you the record closing it, in the first conversation, before anything is signed.
Inquiries are answered within one business day, by someone who can answer them.
