Architecture
This is a design, not a system. None of it runs. There is no schema, no runtime and no user, and the counter on the experiment page stands at zero. This page exists so the design can be argued with before it is written – not to suggest that it exists.
The whole thing answers one question about one proposed action: may this be done, to this asset, right now? Everything below is in service of making that answer checkable by someone who did not write it.
The shape
Four kinds of source feed the pack. The gate reads the pack, not the sources. The agent talks to the gate, not to the pack.
Components
The agent is the thing this is built for, and the thing it is not.
One real asset, described across five layers, machine-readable.
One per source. They turn a device, a rulebook, a price feed or a mandate file into facts with provenance.
Takes a proposed action and the pack. Returns Yes, No with a reason, or Escalate.
Every question and every verdict, append-only, so a human can check after the fact.
Data
The shape below is the whole argument in miniature: a value is never alone. It carries where it came from, when it was true, and how long it may be used.
state_of_charge:
value: 0.92
unit: ratio
source: device/modbus:40071
observed_at: 2027-01-14T10:31:07Z
valid_for: 60s grid_feed_in_limit:
value: 800
unit: W
applies_to: metering_point
source:
reference: "EEG §8(5a)"
quote: "…"
retrieved_at: 2026-11-02
valid_for: until_amended The two differ in exactly one way that matters. The measured value expires in a minute; the normative one expires when somebody changes the law, and nobody sends a notification. The pack has to be able to say “this was true when I last looked, and I last looked in November” – because that is the honest answer, and the agent has to be able to act on it.
Design rules
Each of these is here because breaking it would quietly turn the experiment into something that cannot be checked.
If a layer cannot answer, the gate refuses or escalates. It never treats silence as permission. This is why layer 0 is evaluated first and why every value carries its age: without that, a refusal and an outage look identical from the outside.
Statute text is free to reproduce; DIN, VDE and IEC standards are private and protected even where a law refers to them. The pack therefore stores a reference and a short quotation. That is a legal constraint that turns out to be an architectural virtue: a citation is checkable, a copy is only trustworthy.
Nothing in the design may require the agent to understand the schema. It proposes an action and receives a verdict. The moment the agent has to read the pack to obey it, every new agent has to be taught, and a foreign agent becomes impossible — which is the whole measure of this project.
The write path to the device belongs to the agent, never to the gate. If the gate could act, its refusals would be unfalsifiable: there would be no independent party left to disagree with it.
A consumer device keeps a write path for its manufacturer that the owner cannot revoke. The asset can therefore change under the pack at any moment. Every verdict states what it assumed and how old that assumption was, so a wrong verdict can be traced to a wrong belief rather than to bad luck.
Open
These are open on purpose. Settling them before the first refusal exists would be answering questions nobody has asked yet.