Agent Evidence

origin_kind

Term URI: https://w3id.org/agent-evidence/vocab/v1/origin_kind

Section: evidence_dimensions. Criticality: critical.

Which party produced the evidence a record is assembled from: the runtime that performed the execution produced its own record (self); the record was assembled from another vendor's runtime governance output, asserted by the system that produced it with no root outside that system (third-party-control-plane); or it was assembled from a log or export whose producer is not a control plane, such as a SIEM export, an audit trail, or a batch job (log-import). first-hand is a FOURTH value this registry adds and the source enum does not carry: the producer obtained the evidence by its own observation and is not the party that executed, so it neither performed the execution nor holds somebody else's output. It exists because the borrowed enum is written from the perspective of a record about its own execution, while this registry also carries observation_vantage, which names a producer that is neither the executing party nor an assembler. Without the fourth value the field is REQUIRED and unfillable for exactly the records an independent observer emits, and the pressure is then to spell one of them self, which is the one reading that makes the field lie. The value says HOW the evidence arrived and never where the producer stood. observation_vantage says where, and the two compose: first-hand with peer and first-hand with below-observed are both real producers, and a value that carried the layer in its own name would have left one of them unfillable again. Two spellings were drafted and dropped for that reason, and the second for a second reason: observer collides with observer-attested in the source specification's own family, where it means a third party that fetched and measured the subject from outside it. A record MUST NOT declare observation_vantage: below-observed unless its origin_kind is first-hand, and a verifier MUST reject it otherwise. A party attesting its own execution is not below itself, and an assembler holding somebody else's output was not there at all. Each of the other three values names a producer that did not observe from below the observed party: self IS the observed party, and the two assembling values hold output somebody else produced. This is the rule that reaches the importer the platform rule below does not. An importer can carry software-only exactly as required, satisfy every other rule here, and still claim a vantage it never occupied, because the platform field answers what the producer runs on and the vantage field answers where it stood. A record whose origin_kind is third-party-control-plane or log-import MUST declare a software-only runtime platform, and a verifier MUST reject it otherwise. An importer holding someone else's log has no quote to present, so a hardware platform value on such a record is not a stronger claim but an untrue one. first-hand MAY declare a hardware platform, because such an observer below the observed party can hold a root of its own, and that is the case the borrowed rule had no value for. The value is REQUIRED. Absent, non-string, or unregistered makes the enclosing statement malformed, and absence is never read as self. This field names the assembler and establishes nothing about independence. A verifier MUST NOT read third-party-control-plane as evidence that the producer is independent of the observed party: the two can be one legal entity, or one can operate the other. Independence is an observation_vantage question and this field does not answer it. It launders assurance in neither direction. Naming a producer does not make unattested evidence attested, and a record with a hardware platform and a verified quote is what it is whether or not it says self. The value is a PRODUCER ASSERTION in the sense of field_evidence_partition, never a substrate-covered field, and nothing in this registry can make it one. A verifier MUST NOT read self as evidence of provenance: a record assembled from somebody else's log and declared self is indistinguishable on the wire from one the runtime produced. What the field is worth is that a false value is then a false statement inside signed bytes, attributable to the key that signed them. A record that carries field_evidence_partition MUST place origin_kind on the producer_asserted side of the split. Three of the four values are borrowed verbatim, hyphens included, from the specification cited in crosswalk/trace.yaml. Re-spelling them in this file's usual underscore style would have produced a false friend across two registries for no gain. The fourth, first-hand, is this registry's own, and the direction of the resulting mismatch is stated, not glossed: this value set is a SUPERSET, so every value that specification emits validates here, and one value this registry admits does not validate there. A crosswalk consumer reads the fourth value as unmapped, not as a renaming of any of the three.

Registered values