EVIDE ANCHOR
- 1. What ANCHOR Is
- 2. The Primitive: Declaration
- 3. The Atomic Declaration Rule
- 4. The Six Declaration Types
- 5. Questions ANCHOR Answers — Concrete Scenarios
- 6. Cross-Sector Validation
- 7. Position within the EVIDE Ecosystem
- 8. What ANCHOR Does Not Claim
- 9. Long-Term Integrity of a Declaration
- 10. Implementation and End-to-End Validation
On July 31, 2026, RedHotCyber documented a real incident: an AI agent, connected directly to a production database with autonomous access to a code repository, executed a migration command that treated production as a disposable test environment — deleting all tables of the project, two of them unrecoverable. The agent noticed the anomaly and reported it. The boundary between production and development had never been technically enforced, nor preserved through an independent evidentiary declaration — it existed only as an implicit expectation.
An evidentiary boundary can never be made "impassable." EVIDE ANCHOR does not attempt to. It preserves the declaration of a boundary — independently, before the agent acts — without enforcing it, without verifying it, without deciding whether it was correct.
Not to verify it.
Not to decide whether it was correct.
Only to preserve, in an independently verifiable evidentiary record,
what was declared, by whom, and when.
Without an independently preserved declaration, the reconstruction of an operational perimeter after an incident depends entirely on the systems and narratives of the parties involved — logs, internal policies, configuration files, emails, commit history, human recollection. Sometimes that reconstruction succeeds. Sometimes it cannot.
Declaration is not a structure specific to ANCHOR. It is an architectural primitive of EVIDE — distinct from Event/Decision (decision_record, intervention), Artifact/Evidence (evidence_references), and Chain (chain): an explicit, attributable, and time-locatable statement.
preserved by EVIDE without verifying its truthfulness,
in order to enable its subsequent evidentiary reconstruction.
Accessible everywhere as the declarations: [Declaration, ...] array, activated with extensions: ["declarations"] — the same bidirectional pattern already used for evidence_references.
Canonicalization follows RFC 8785 (JSON Canonicalization Scheme): declaration_digest = SHA-256("EVIDE_DECLARATION_V1:" || JCS(Declaration_Payload)). The prefix provides domain separation — it prevents a Declaration's digest from colliding with that of another EVIDE object type, and explicitly versions the canonicalization scheme itself.
null. Treating an absence as null would turn "this field was never declared" into a fictitious declared value — exactly the kind of inference the doctrine prohibits (Decision 2, point 6).
Both authority_source.references[] and subject_references[] use the same Reference shape already used for evidence_references. This is where a Declaration can optionally carry an integrity hash — not on the Declaration itself, but on a document or system it cites. Full field reference: EVIDE JSON Schema — ANCHOR fields.
Surfaced during end-to-end MCP validation, not designed in advance: an agent combined environment and privileges into a single composite declaration. The rule that followed:
A later Declaration can relate to an earlier one through declared_relations[] — stating that it supersedes, clarifies, revokes, restricts, or expands it, by pointing to the earlier Declaration's target_declaration_digest, never to its evide_id. A Declaration is never rewritten. A change to a perimeter is itself a new, dated, attributed Declaration.
declaration_type is free text, not a closed enum — consistent with chain_type and every other categorizing field in EVIDE. Six documented types, not exhaustive:
| declaration_type | What it declares |
|---|---|
| environment_classification | In which environment the declarant states the agent was operating — e.g. "production" vs. "shadow/test" |
| privilege_scope | Which operations the declarant states fell within the agent's operational perimeter |
| declared_purpose | The purpose for which the declarant states the agent had been enabled to operate — distinct from privileges (what it can do vs. why it was declared permitted) |
| tool_availability | Which tools or systems were declared available to the agent |
| prohibited_operations | Declaration of authorized absence — the only negative rather than positive declaration. Its absence does not imply "everything permitted" (Decision 2) |
| agent_configuration | Which model, version, or system prompt was in effect — distinct from execution identity (who the agent is) |
declaration_type: it reuses declarant, authority_source, and execution identity, already present in the schema. No duplication.
Seven forensic questions, each verified against the schema — none required a field that did not already exist at the time it was posed.
| Forensic question | Mechanism in the model |
|---|---|
| Who declared this? | declarant |
| When? | declared_at compared against intake_timestamp_utc |
| Under what authority? | authority_source.declared_attribution_status + references[] |
| What scope/subject did it cover? | subject_references[] |
| Was it later linked, modified, or superseded? | declared_relations[].target_declaration_digest |
| With what continuity over time? | chain.parent_evide_id |
| What was the declared level of human oversight? | human_oversight.declared_level |
The questions above are abstract. What follows is not — eleven scenarios, across the incident that motivated ANCHOR and ten unrelated domains, contrasting what a post-incident investigation can establish without a declared perimeter, against what it can establish with one.
The scenarios in Section 5 answer, domain by domain, the same underlying question the design process posed for the model to hold generally: what was the declared perimeter, and who declared it, before the agent acted?
Six declaration_type values. Zero exceptions.
Full sector-by-sector detail, including what each declaration would make independently reconstructible: EVIDE ANCHOR Working Paper, Section 6.
Four protocols, four distinct questions — no overlap.
| Protocol | Covers | Answers |
|---|---|---|
| FEDIS | Integrity, authenticity, chain of custody | Is the acquired data the same as originally acquired, by whom, and is its custody traceable over time? |
| DAPI | Identity | Who is the subject/authority signing or asserting this fact? |
| GLM | Governance | What are the general declared rules for this ecosystem? — public, high-level |
| ANCHOR | Perimeters | Within which specific declared boundary was the agent enabled to operate at THAT moment? — point-in-time, not general |
Seven constraints, not six — the seventh is what prevents the system from filling an absence on its own:
- Does not verify whether declarations correspond to operational reality, nor compare what was declared with what was observed — that comparison is for later investigators, never for EVIDE
- Does not enforce or apply any declared policy, limit, or privilege
- Does not block, authorize, or prevent any agent operation
- Does not judge whether the declared authority was legitimate, sufficient, or actually held by whoever exercised it
- Does not attribute responsibility or establish fault
- Does not assume that the absence of a declaration equals the absence of the corresponding constraint — it is a neutral fact (no one declared it), not a judgment (therefore it did not exist)
- Never infers, completes, or interprets declarations that do not exist
It does not infer, complete, or interpret missing declarations.
declared_at is a client-supplied value, not verified — the objective fact EVIDE produces is intake_timestamp_utc, the moment of acquisition, not the declared moment. A developer could compose a Declaration with a backdated declared_at after an incident, and EVIDE would faithfully preserve it without turning that date into independent proof of its original existence. Establishing whether a declaration truly existed before a contested action remains an evidentiary assessment — never an assumption made by EVIDE.
ANCHOR does not itself provide the long-term integrity of a Declaration. That guarantee comes from the underlying EVIDE evidentiary infrastructure. Each Declaration becomes part of the canonical intake payload, benefits from the same hash-verifiable, tamper-evident evidentiary record as the rest of the intake, and is anchored through the platform's standard canonicalization and integrity mechanisms — the same RFC 8785 canonicalization used across every other EVIDE object type.
EVIDE ANCHOR is implemented in Schema 2.1. The declarations field is subject to whitelisting and structural validation, travels through the existing intake endpoint, and is included in EAR records and archive views. Validation enforces the conditional requirement of hashed_by whenever hash is present, and declaration_digest is computed server-side.
Validated through five end-to-end scenarios executed via a real MCP client: standard intake, Evidence References, the Epistemic Stabilization Buffer, ANCHOR, and a combination of all three extensions in the same record. Validation confirmed that multiple Declarations can coexist within one intake and that ANCHOR does not alter FCC/DWC/FAC inferences.
declarations extension, reachable without a custom API integration.
EVIDE ANCHOR Working Paper (signed): app.certifywebcontent.com/working-papers
EVIDE JSON Schema — ANCHOR fields: app.certifywebcontent.com/json#anchor
EVIDE Intake Schema Documentation: Intake schema reference
EVIDE MCP Server: MCP Server documentation
EVIDE for Autonomous Robotics — worked ANCHOR example: Use case with declared operational perimeter
EVIDE for Critical Infrastructure — worked ANCHOR example: Use case with declared control_state
Forensic Cross-Check (FCC): Related evidentiary construct
Evidentiary Continuity: Chaining responsibility across decisions
Originating incident: RedHotCyber, July 2026
ANCHOR preserves the declared operational perimeter.
It does not enforce it. It does not verify it. It does not decide.
It records what was declared, by whom, and when.
"EVIDE ANCHOR preserves declared authority."
"Execution evidence explains what happened. Identity explains who declared it.
Governance explains the rules. ANCHOR explains what the agent
was declared authorized to do before it ever acted."
Contact: info@informaticainazienda.it