pki.sgit.ai / execution

The execution broker, and why receipts are the third corner

A registry that records who a key belongs to and what it was permitted to do leaves out the most auditable event of all: what it actually did. This site does not own the execution layer — but a reader arriving at a key registry is usually trying to answer a question about something that happened, and the registry alone cannot answer it. So it is named here.

Three questions, three layers

   WHO IS THIS AGENT?              identity        a registry problem
   WHAT MAY IT DO?                 mandate         a delegation problem
   SHOULD THAT PRODUCE THIS
   EFFECT, NOW, HERE?              execution       a broker problem

The first two are what a registry publishes. The third is a different kind of control and a different product line — but the three only make sense together, and a site that shows two of them without naming the third is describing a triangle with a missing corner.

StatementSaysLives in
IdentityThis key is this agentThe registry
MandateThis agent may do thisThe registry
ReceiptThis agent did this, under that mandate, at this timeEvidence

The shift: the agent never holds the credential

TraditionalExecution broker
What the agent receivesA credentialNothing — it sends a mandate and a request
Who acts on the serviceThe agentThe broker, using credentials the agent never sees
Effective authority bounded byThe platform's permission granularityThe business operation the mandate names
What a leak of the agent's context yieldsA usable credentialNothing to exfiltrate
What remainsA hope that it uses the credential only as intendedA constraint the agent has no means of exceeding

The unit of delegation moves from credential access to authorised action. Every other mechanism in this space — short-lived credentials, just-in-time access, rotation, secret injection, workload identity, gateway policy — improves how a credential is issued, scoped or expired. They all still eventually hand the agent one.

The example is exact. An agent may need to create one pull request containing changes to three approved files. The platform may only offer a token whose permissions permit substantially more. So the security system can say this agent may possess this token for five minutes, and cannot say this agent may perform exactly this operation, on this repository, in this workflow, at this stage, using these files, once.

This closes a boundary named three times

Three separate pieces of work reached the same edge from different directions, and each named it honestly as the limit of what that control could do:

ControlStated limit
Capability grantsConstrain what a component may touch, not what it does with it
Plan-then-executeConstrains which actions occur, not what arguments they carry
Per-agent keysConstrain which agent acts when, not what that agent does within its step

Every one ends at the same place: an authorised party misusing authority it legitimately holds. A compromised agent can read its input, do something wrong, sign it correctly and pass it on — with every cryptographic check passing. This closes that gap by construction rather than by policy, because the agent does not perform the action at all.

Which is the limit the mandate page states, resolved. A mandate constrains what an agent may be authorised to do, not what it does within that authority. The execution layer closes that — and it closes it by holding the credential, not by writing a better policy.

The mandate as the authorisation object

A valid certificate proves a request came from a given agent. It proves nothing about whether that agent may perform the action. So the mandate carries: subject, issuer, service and instance, capability, resource, constraints, workflow and stage, environment, validity window, usage limit, and a signature. Verification checks the issuer signature, the subject, the requester's proof of possession, the requested action, and validity including revocation.

Encryption restricts who can read a mandate. The signature and subject binding establish who may exercise it.

That distinction is worth protecting because the two get conflated constantly — and conflating them produces somebody believing a mandate is safe because it is encrypted, when what makes it safe is that exercising it requires a private key the reader does not hold.

Receipts are the evidence chain

Every operation, successful or rejected, produces a signed receipt establishing that a named broker executed a named action for a named agent under a named mandate at a given time.

This creates an evidence chain rather than relying solely on mutable platform audit logs.

A receipt is a fact with provenance — produced by the party that performed the action rather than by the party being assessed, and it cannot be quietly amended afterwards. The more interesting use is forward rather than backward: a workflow stage that requires evidence the previous stage completed can consume the receipt directly, rather than trusting a status field somebody could set.

It works for rented agents, without attestation

The industry's answer to agent identity is attestation-based, which requires a workload you run. For an agent running inside a hosted assistant there is no answer at all — the two-populations thesis. This needs no attestation: it needs the agent to hold a key and present a mandate, and a hosted agent can do both.

The practical consequence is the one people actually want: you can let a hosted coding agent open a pull request without giving it repository write access, because it never holds a token. And an agent that never holds a credential cannot leak one, whatever is injected into it, because there is nothing in its context to exfiltrate.

The honest limit is unchanged. This establishes that a specific key presented a specific mandate. It does not establish what software that key is running inside. Attribution without attestation — which for many purposes is what was wanted, but it is not the same claim.

The concentration risk, stated plainly

The broker holds every credential. That is the mechanism — it cannot execute against a service without a usable credential for it, and it holds them for every service and every tenant it serves. Applying the catastrophic-failure question:

ComponentTotal compromise yields
The vaultCiphertext, and the shape of the estate
The brokerEvery credential it holds, usable immediately

That is the opposite property to everything else in this architecture, and it should be stated rather than left for a reader to notice. The design removes credentials from many agents by concentrating them in one place: a real and defensible trade, and not a reduction in total exposure. Three things follow.

Enforcement is interpretation, not proxying

A mandate carrying an allowed path list, a maximum changed-file count or a base branch requires understanding the request, not forwarding it. To check that a pull request touches only permitted paths, the broker must parse the diff; to check a file count, it must count. None of that is proxying.

So the broker is an interpreter, per provider, per capability — which is where the real engineering cost sits, and why the phasing argument is one provider, one capability, deeply, before any breadth. Adapters are maintenance rather than a build: every provider carries its own authentication, error semantics, rate limits and naming, all of which change underneath you, with the added burden that each capability's constraints must track the provider's request format as it evolves.

Independent check: the market has not closed this either

Third-party research · 19 Aug 2026

Market research produced independently of this corpus reached the same conclusion from the outside: a market is forming around this architecture, converging from two directions — several products solve the credential boundary, keeping the provider secret away from the agent, and several newer ones solve parts of the authority boundary, with signed mandates, approval and receipts. What it did not find is the combination:

a portable signed mandate, followed by broker-side semantic execution, followed by a signed receipt from the party that actually performed the effect.

Two cautions on reading that. Its assessment of specific products is a snapshot on a stated date and will age, which is the dating discipline this project applies to any comparison. And it was written to a brief rather than as neutral research, so its whitespace conclusion is a hypothesis somebody could disprove rather than a finding.

The acceptance test, worth reusing verbatim

Can an agent holding no token request one pull request, constrained by an independently issued authorisation object covering repository, branch, exact path set, file count, workflow stage and single use, with those arguments enforced by the broker rather than trusted from the caller, and a signed receipt an offline third party can validate?

That is a better question than any feature list, because every clause is checkable against a real product. It is offered here as a tool for evaluating anything in this space — including whatever we build.

A note on the name

The source document calls this a Service Twin. This site calls it an execution broker, deliberately. A digital twin already means something specific in this corpus: the node where a graph meets reality, the thing facts attach to and obligations are assessed against. A digital twin represents a thing; this acts on one. Using one word for both would confuse readers who have met the first, and the confusion would land in security documentation. The rename costs nothing today.