Skip to content

docs(trust-levels): state the all-zero measurement rule covers production software-only records too - #242

Open
rajnisht7 wants to merge 3 commits into
agentrust-io:mainfrom
rajnisht7:trace-spec-240
Open

docs(trust-levels): state the all-zero measurement rule covers production software-only records too#242
rajnisht7 wants to merge 3 commits into
agentrust-io:mainfrom
rajnisht7:trace-spec-240

Conversation

@rajnisht7

Copy link
Copy Markdown
Contributor

What this changes

Closes #240.

runtime.measurement is required on every record. For a software-only platform, the correct value (all-zero digest) was only stated in prose as covering "development records" but a production software-only producer (origin.kind: self, no hardware root of trust) needs to write something too, and today that's only inferable from the example block, not stated by the rule itself.

  • docs/trust-levels.md: the sentence under the Level 0 example now covers both development and production software-only records explicitly.
  • schema/trace-claim.json + the packaged copy (src/agentrust_trace/schema/trace-v0.2.json, kept in sync per test_packaged_schema_matches_the_normative_schema): extended the measurement field description with the same all-zero-when-software-only note, per the issue's optional suggestion, so the text closest to a validator states the convention too.

Type of change

  • Editorial (typo, link fix, clarification: no normative effect)
  • Non-breaking spec change (new optional field, new platform profile, informative addition)
  • Breaking spec change (requires 14-day comment period and Project Lead sign-off)
  • Schema change
  • Example addition

Spec section

None

Checklist

  • DCO sign-off on all commits (git commit -s)
  • CHANGELOG.md updated (for any normative change)
  • Breaking changes marked with <!-- CHANGED: #NNN: description --> in spec text
  • Backward compatibility statement included (for breaking changes)

@rajnisht7
rajnisht7 requested a review from a team as a code owner August 29, 2026 13:36
Signed-off-by: rajnisht7 <rajnishtiwari9787@gmail.com>

Copy link
Copy Markdown

I don't think this can be treated as editorial as written.

The released v0.9.0 reference implementation intentionally emits non-zero runtime.measurement values with runtime.platform: "software-only":

That contradicts the changelog statement that existing software-only records already use the all-zero value. The proposed prose would declare released first-party producer output incorrect, while the unchanged schema/model would continue accepting it, creating a new documentation/validation disagreement.

The underlying question appears to be what runtime.measurement means when there is no hardware root:

  1. If software-only profiles may carry profile-defined software commitments, their preimage semantics need to be identifiable and documented.
  2. If the field is reserved as an all-zero no-hardware sentinel, the adapters need a migration path and somewhere else to carry their current commitments; that is not an editorial-only change.

I think this PR should pause and #240 should be re-scoped around that semantic choice before the all-zero rule is stated as universal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

trust-levels: the all-zero measurement convention is stated with two different scopes

2 participants