Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,20 @@ Format: [Semantic Versioning](https://semver.org/). Spec versions follow `MAJOR.

## [Unreleased]

- **Accuracy pass on non-normative text.** Examples, schema descriptions, adapter
docstrings and unsigned test records use vendor-neutral placeholders
(`example-provider`, `example-model`), the Section 6.2 list keeps confidential-computing and standards
organizations, and the Appendix B reference titles use each project's own name. The Acta crosswalk now cites v0.2 sections. Platform pages no
longer name a cMCP provider value. The package description, spec abstract, charter,
schema descriptions and conformance messages no longer say "hardware-attested": a
record is a signed governance record that can carry hardware attestation evidence, and
`verify_record()` performs no attestation verification.
Signed and digest-pinned vectors are unchanged. No normative text changes.
- **Conformance site links** point at trace.agentrust-io.com/conformance/, where the
combined docs build publishes it; the stale `conformance/CNAME` is removed.
- **Generators write LF on every platform.** `gen_number_spelling.py` and the
anchor-inclusion generator opened their output in text mode, so a Windows run wrote
CRLF and the byte-for-byte regeneration check failed.
- **BREAKING:** Successful `provenance.verify_record()` calls previously returned
`None`; they now return `RevocationCheck` (#279). Callers can distinguish
`no_check_performed` when no revocation store is supplied from `verified` when
Expand Down
2 changes: 1 addition & 1 deletion CHARTER.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

## 1. Mission

The TRACE project develops and maintains an open, portable, hardware-attested governance record for AI agents and other confidential workloads. The mission is to make execution governance evidence verifiable by any party: without trusting the operator, without callbacks to the issuer, and without vendor lock-in to any cloud, silicon vendor, or AI provider.
The TRACE project develops and maintains an open, portable, signed governance record for AI agents and other confidential workloads, which can carry hardware attestation evidence. The mission is to make execution governance evidence verifiable by any party: without trusting the operator, without callbacks to the issuer, and without vendor lock-in to any cloud, silicon vendor, or AI provider.

## 2. Scope

Expand Down
9 changes: 9 additions & 0 deletions conformance/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

## Unreleased

### Changed

- Vendor-neutral placeholders (`example-provider`, `example-model`) in the unsigned
vectors and the policy-resolution generator; the policy-resolution set is regenerated
and every verdict is unchanged. Signed vectors are untouched.
- The anchor-inclusion generator writes LF on every platform.
- Documentation links and robots.txt name trace.agentrust-io.com/conformance/; the stale
CNAME file is removed.

## v0.6.2 - 2026-10-02

### Added
Expand Down
1 change: 0 additions & 1 deletion conformance/CNAME

This file was deleted.

1 change: 0 additions & 1 deletion conformance/overrides/main.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
"https://cmcp.agentrust-io.com",
"https://ca2a.agentrust-io.com",
"https://wcm.agentrust-io.com",
"https://tests.agentrust-io.com",
"https://governance.agentrust-io.com"
]
},
Expand Down
4 changes: 2 additions & 2 deletions conformance/robots.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# tests.agentrust-io.com: search and answer-engine crawlers are welcome.
# trace.agentrust-io.com/conformance/: search and answer-engine crawlers are welcome.

User-agent: *
Allow: /
Expand Down Expand Up @@ -35,4 +35,4 @@ Allow: /
User-agent: CCBot
Allow: /

Sitemap: https://tests.agentrust-io.com/sitemap.xml
Sitemap: https://trace.agentrust-io.com/conformance/sitemap.xml
6 changes: 3 additions & 3 deletions conformance/schemas/trace-claim.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://agentrust-io.com/schema/trace-v0.2.json",
"title": "TRACE Trust Record",
"description": "A TRACE v0.2 Trust Record — hardware-attested governance evidence for an AI agent execution.",
"description": "A TRACE v0.2 Trust Record: a signed governance record for an AI agent execution, which can carry hardware attestation evidence.",
"type": "object",
"required": [
"eat_profile",
Expand Down Expand Up @@ -42,7 +42,7 @@
"properties": {
"provider": {
"type": "string",
"description": "Model provider (e.g. 'anthropic', 'openai', 'meta')."
"description": "Model provider (e.g. 'example-provider')."
},
"model_id": {
"type": "string",
Expand Down Expand Up @@ -329,7 +329,7 @@
},
"cnf": {
"type": "object",
"description": "Confirmation key (RFC 8747) — binds the Trust Record to the TEE-held signing key.",
"description": "Confirmation key (RFC 8747) that binds the Trust Record to the TEE-held signing key.",
"required": [
"jwk"
],
Expand Down
2 changes: 1 addition & 1 deletion conformance/src/trace_tests/modules/tr_rte.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def check(
Status.FAIL,
f"TR-RTE-001: runtime.platform {platform!r} is development-mode "
"and not acceptable for "
f"hardware-attested levels (Level {level} requires a hardware TEE platform)",
f"Level {level}, which requires a hardware TEE platform",
)
)
elif isinstance(platform, str) and platform in _VALID_PLATFORMS:
Expand Down
2 changes: 1 addition & 1 deletion conformance/tests/test_software_only_platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Spec note: trace-spec added `software-only` as a valid `runtime.platform`
value for development and CI use. It carries no hardware attestation evidence
and is therefore only acceptable at Level 0. Level 1+ must reject it with a
clear message that names the reason (development-mode, not hardware-attested)
clear message that names the reason (development-mode, not a hardware TEE platform)
rather than the generic "unknown platform" error.

Covers:
Expand Down
2 changes: 1 addition & 1 deletion conformance/tests/vectors/anchor-inclusion/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def utf16_order(value):
def main() -> None:
for i, v in enumerate(vectors(), 1):
(HERE / f"{i:02}-{v['name']}.json").write_text(
json.dumps(v, indent=2, ensure_ascii=True) + "\n", encoding="utf-8"
json.dumps(v, indent=2, ensure_ascii=True) + "\n", encoding="utf-8", newline="\n"
)


Expand Down
2 changes: 1 addition & 1 deletion conformance/tests/vectors/invalid_missing_runtime.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
"iat": 1748000000,
"subject": "spiffe://example.org/agent/test/001",
"model": {"provider": "anthropic", "model_id": "claude-sonnet-4-5"},
"model": {"provider": "example-provider", "model_id": "example-model"},
"policy": {"bundle_hash": "sha256:a3f8d2b4e1c9f7a5b2d4e6f8a0b2c4d6e8f0a2b4c6d8e0f2a4b6c8d0e2f4a6b8", "enforcement_mode": "enforce"},
"data_class": "internal",
"build_provenance": {"slsa_level": 2, "digest": "sha256:b4e1c9f7a5b2d4e6f8a0b2c4d6e8f0a2b4c6d8e0f2a4b6c8d0e2f4a6b8c0d2e4"},
Expand Down
2 changes: 1 addition & 1 deletion conformance/tests/vectors/invalid_wrong_profile.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"eat_profile": "tag:example.com,2024:wrong-profile",
"iat": 1748000000,
"subject": "spiffe://example.org/agent/test/001",
"model": {"provider": "anthropic", "model_id": "claude-sonnet-4-5"},
"model": {"provider": "example-provider", "model_id": "example-model"},
"runtime": {"platform": "intel-tdx", "measurement": "sha256:a3f8d2b4e1c9f7a5b2d4e6f8a0b2c4d6e8f0a2b4c6d8e0f2a4b6c8d0e2f4a6b8"},
"policy": {"bundle_hash": "sha256:b4e1c9f7a5b2d4e6f8a0b2c4d6e8f0a2b4c6d8e0f2a4b6c8d0e2f4a6b8c0d2e4", "enforcement_mode": "enforce"},
"data_class": "internal",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
WHAT EACH VECTOR ASSERTS
One thing: the status of the TR-POL-003 finding. That is the unit of
measurement for this set, and it is deliberately narrower than a whole
record's verdict. These records carry other findings — they are unsigned,
so TR-SIG-005 has an opinion about them — and reading the set at record
record's verdict. These records carry other findings (they are unsigned,
so TR-SIG-005 has an opinion about them), and reading the set at record
granularity would blur the check under test with everything around it.

ANCHORS
Expand Down Expand Up @@ -152,7 +152,7 @@ def record_with(policy: dict[str, object]) -> dict[str, object]:
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
"iat": RECORD_IAT,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {"provider": "anthropic", "model_id": "claude-sonnet-4-5"},
"model": {"provider": "example-provider", "model_id": "example-model"},
"runtime": {
"platform": "intel-tdx",
"measurement":
Expand Down Expand Up @@ -271,7 +271,7 @@ def main(out_dir: Path | None = None) -> int:

The parameter exists so the byte-reproduction guard can regenerate into a
temporary directory and compare, rather than overwriting the committed
files and comparing them to themselves — which would agree no matter what.
files and comparing them to themselves, which would agree no matter what.
"""
here = Path(out_dir) if out_dir is not None else HERE
policies = here / "policies"
Expand Down
4 changes: 2 additions & 2 deletions conformance/tests/vectors/valid_appraisal_full.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
4 changes: 2 additions & 2 deletions conformance/tests/vectors/valid_level0.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"iat": 1748000000,
"subject": "spiffe://example.org/agent/credit-risk/01926b4c-1234-7abc-9def-000000000001",
"model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "intel-tdx",
Expand Down
4 changes: 2 additions & 2 deletions conformance/tests/vectors/valid_level0_with_transcript.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"iat": 1748000001,
"subject": "spiffe://example.org/agent/payments/01926b4c-1234-7abc-9def-000000000002",
"model": {
"provider": "anthropic",
"model_id": "claude-opus-4-8",
"provider": "example-provider",
"model_id": "example-model-large",
"version": "2026-06"
},
"runtime": {
Expand Down
4 changes: 2 additions & 2 deletions conformance/tests/vectors/valid_openshell_import.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"iat": 1775014139,
"subject": "spiffe://example.org/agent/codex",
"model": {
"provider": "openai",
"model_id": "gpt-5"
"provider": "example-provider",
"model_id": "example-model"
},
"runtime": {
"platform": "software-only",
Expand Down
Loading
Loading