Actions reference¶
The vocabulary of event_type values Lantern recognizes when rendering Beacon
bundles. These values come from the Beacon receipt schema
(receipt.schema.json);
Lantern's job is to interpret them in human terms for each role.
| event_type | What it means | Engineer view | Compliance view | Auditor view | Regulator view |
|---|---|---|---|---|---|
gate.evaluated |
A policy gate ran; produced a decision. | Confirms the gate executed in the pipeline. | Coverage signal — gate participated in this decision. | Chain-of-custody anchor. | Demonstrates due-diligence runtime check. |
gate.failed |
A policy gate denied or errored. | Likely cause of a CI red — investigate. | Control fired — escalate if production. | Records why the system refused. | Demonstrates enforcement, not just monitoring. |
bundle.signed |
The bundle was cryptographically signed. | Bundle is ready to publish/ship. | Tamper-evidence is established. | Required for admissibility — confirm signature presence. | Evidence integrity claim. |
bundle.anchored |
The bundle was anchored to a transparency log (e.g. Sigstore). | Public-log entry exists. | Third-party witness of timestamp. | Independent timestamp source. | External anchoring strengthens non-repudiation. |
admission.allowed |
An admission webhook permitted the request. | Workload was admitted. | Records a permit decision. | Authorization event in the trail. | Demonstrates control point exists and was exercised. |
admission.denied |
An admission webhook blocked the request. | Workload was blocked — debug the policy. | Control denial — record reason. | Records refusal in the trail. | Enforcement action evidence. |
inference.observed |
An inference call was logged for downstream review. | Observability hook fired. | Coverage of the monitored surface. | Activity record. | Transparency / explainability evidence. |
policy.updated |
A policy bundle was reloaded or changed. | Configuration drift event. | Change-management trigger. | Material change to controls. | Demonstrates managed change. |
Required fields on every receipt¶
Lantern's loader rejects (with BundleError) any receipt missing these
fields. They are the minimum needed to make a receipt human-meaningful:
id— stable, unique within the bundlets_utc— ISO 8601 in UTCuser— the actor (human or service) that triggered the eventvendor— model provider (openai / anthropic / google / …)model— specific model identifierversion— semver or build tag of the workloadprompt_hash—sha256:…digest of the inputresult_hash—sha256:…digest of the outputevent_type— one of the values aboveenvironment—prod/staging/dev/ …
Optional fields Lantern looks for¶
| Field | What Lantern does with it |
|---|---|
signature |
Increments signed_count; surfaces to auditor role. |
evidence_type |
Counted into evidence_types summary. |
ucid |
If present, cross-references against the registry for explain-mode hints. |
pr_url, commit_sha |
Linked in markdown output when rendering for engineers. |
framework_citations |
Surfaced verbatim to regulator role. |
Adding a new event_type¶
Lantern is tolerant of unknown event types — it counts them under
event_types and renders them with a neutral tone, so Beacon can add new
event types without breaking Lantern. To get a custom render lens for a new
event type, add a case to _diff_narrative in src/aigovops_lantern/render.py
and a row to the table above.