Compliance map
Evidence, not compliance
Each row states what a control asks for and what this profile actually produces. Nothing here certifies anything — whether the evidence satisfies the obligation is an auditor's judgement, and a tool that answered it for them would be selling the one thing it cannot supply.
11 decisions recorded, each with the clause that produced it and a hash linking it to the one before.
6 rules are declared as data and applied to every tool call, rather than living in a runbook.
Decisions are documented per call. Periodic evaluation of the policy itself is an operator process this tool does not perform.
Refusals and held calls are recorded with their clause. This record contains refusals.
Capabilities are restricted per agent. Authorisation of the human is not: approvals record what was decided, never who decided it.
Not mitigated: this gate does not detect injected instructions. Bounded: 3 LLM03 controls (PRAE-001, PRAE-010, PRAE-020) decide what an injected instruction can execute.
1 control mapped (PRAE-002) · 2 sealed decisions under them in this record.
3 controls mapped (PRAE-001, PRAE-010, PRAE-020) · 2 sealed decisions under them in this record.
Where a model or dependency came from is settled before an agent runs; the gate sees the call, not the provenance.
Training and fine-tuning data sit outside the execution boundary this gate stands on.
1 control mapped (PRAE-011); none has decided a call in this record yet, so the mapping is declared, not exercised.
Whether an answer is true is not a property of a tool call.
The assembled system prompt is sealed into the ledger as evidence of what the model was told; nothing here stops the model repeating it.
Retrieval stores are upstream of the call the gate judges.
What downstream code does with model output is that code's boundary, not this one's.
Not mitigated: this gate does not detect a hijacked goal. Bounded: 3 ASI02 controls (PRAE-001, PRAE-010, PRAE-020) decide what a hijacked agent can execute.
3 controls mapped (PRAE-001, PRAE-010, PRAE-020) · 2 sealed decisions under them in this record.
1 control mapped (PRAE-002) · 2 sealed decisions under them in this record.
Where a tool, skill or plugin came from is settled before the agent runs. A rule on the skill tool (integrity, source) is how a pack refuses to trust one at load time; none in this pack does.
No rule in this pack cites this risk.
Memory and retrieval stores are upstream of the call the gate judges. What the gate can do is seal what the agent was told (PRAE-ASM, PRAE-CTX) so a poisoned context is evidenced, never silent; this record holds no such seal.
A message between agents is not a tool call; when it becomes one, it is judged like any other agent's call. The channel itself is outside this boundary.
1 control mapped (PRAE-011); none has decided a call in this record yet, so the mapping is declared, not exercised.
Whether a person was misled is not a property of a tool call. An ask verdict puts a human in the path and seals the outcome; nothing here judges the persuasion.
A drifting agent's actions are judged like any other's: 5 controls under ASI02/03/08 apply to every call, and 3 refusals in this record show them holding.
The executable part of an AI policy: 6 rules declared as data and applied to every tool call. The policy document and its approval are the organisation's.
Every call is judged as it happens; this record holds 3 refusals and 1 hold for a human, each with the clause that produced it.
11 rows recorded, each hash-linked to the one before, chain intact, unsigned — an edited, removed or reordered row breaks it.
Intended use is enforced as scope: 3 actions outside it refused before execution in this record.
3 file-access rules restrict what the agent may read and write; 3 accesses refused in this record. Restriction is per agent, not per human.
2 egress and credential rules in force; none has stopped anything in this record yet.
11 rows recorded, each hash-linked to the one before, chain intact, unsigned — an edited, removed or reordered row breaks it.
Every call is judged as it happens; this record holds 3 refusals and 1 hold for a human, each with the clause that produced it.
Reading the states
For the audit obligations, several rows stop at partial for one reason: the harness records what was decided and never who decided it. Attributable approval needs an identity anchor outside this machine, which is a control-plane concern this build does not claim.
For the OWASP risks, evidence means rules in this pack cite the risk and have decided calls in this record; partial means they cite it and have not yet, or — for prompt injection — that the gate bounds the risk without claiming to detect it; none means no rule cites it, with the reason a tool-call gate is not where that risk is controlled.