Skip to content

Add EvidenceBound Core TRACE integration - #285

Merged
imran-siddique merged 2 commits into
agentrust-io:mainfrom
Evalbound:evidencebound-core-trace
Oct 5, 2026
Merged

imran-siddique merged 2 commits into
agentrust-io:mainfrom
Evalbound:evidencebound-core-trace

Conversation

@Evalbound

Copy link
Copy Markdown
Contributor

Summary

Adds the EvidenceBound Core → TRACE integration.

The adapter re-verifies explicit current EvidenceBound state, verifies the supplied signed EvidenceBound receipt against that exact recomputed result, requires an ACTIVE-key current ALLOW, and then emits a signed software-only TRACE v0.2 record.

Acceptance boundary:

historical integrity != current applicability

A historical EvidenceBound signature can remain valid while current evidence or policy is no longer applicable.

Released-package reproduction

Acceptance was reproduced from released packages with:

  • Python: 3.13.1
  • evidencebound-core==0.4.0
  • agentrust-trace==0.11.0
  • agentrust-trace-tests==0.6.2

EvidenceBound was installed from PyPI. The clean-room checks assert that the evidencebound-core distribution has no direct_url.json, so the acceptance run is not using a GitHub checkout, editable EvidenceBound source, or local EvidenceBound wheel.

Exact reproduction commands are in integrations/evidencebound-core/README.md.

The deterministic integration suite covers:

  • current-state positive emission;
  • changed, stale, missing, and explicitly refuted evidence rejection;
  • policy-drift rejection;
  • tampered signed-receipt rejection;
  • unknown and revoked key rejection;
  • EvidenceBound v0.4.0 retired-key semantics (VERIFIED_RETIRED_KEY is historically verifiable but refused for fresh TRACE emission);
  • verification-time/timezone boundary behavior;
  • exact recomputed-result / receipt binding;
  • exact signed-receipt digest binding in the TRACE reference;
  • TRACE signature verification against the explicit signing key.

Observed result:

15 passed
POSITIVE=TRACE_EMITTED
NEGATIVE_STALE=REFUSED

TRACE conformance

The conformance level was determined by running the current released suite across levels 0–2 rather than assumed in advance:

agentrust-trace-tests 0.6.2
agentrust-trace       0.11.0

Level 0  PASS
Level 1  FAIL
Level 2  FAIL
highest_level_passed = 0

An explicit trace-tests verify --record evidencebound.trace.json --level 0 also passes:

Result: PASS  (15 checks, 4 skipped)

Level 1 is intentionally not claimed: the record declares runtime.platform: software-only and appraisal.status: none, and carries no TEE attestation. Level 2 is also not claimed and has no transcript/transparency-anchor evidence.

The submitted manifest therefore remains tier: community and declares trace_conformance_level: 0.

Claims and limits

This integration claims only the behavior reproduced above against the pinned released packages.

It does not claim:

  • TEE or hardware attestation;
  • truth of upstream evidence;
  • non-bypassability or mandatory mediation;
  • certification;
  • independent appraisal;
  • production safety outside the tested fixture.

Caller-supplied subject, model, runtime-measurement, build-digest, and data-class metadata are not represented as independently observed EvidenceBound facts.

Marketplace and validation

  • integration.yaml validates against the current repository schema.
  • marketplace/catalog.json is regenerated with scripts/generate_marketplace_catalog.py and passes --check.
  • Repository validator/catalog tests pass.
  • Candidate repository/homepage links resolve successfully.
  • The root conformance workflow installs exact released package versions and re-runs the integration tests and TRACE conformance checks.

Verified tier request

Please run the README reproduction end-to-end against the released packages above. If the documented behavior and Level 0 result reproduce, please set this integration to the Verified tier during maintainer review.

No Verified status is self-declared by this submission.

@Evalbound
Evalbound requested review from a team, carloshvp and imran-siddique as code owners October 5, 2026 15:09
imran-siddique
imran-siddique previously approved these changes Oct 5, 2026

@imran-siddique imran-siddique left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Evalbound reproduced: the 15 tests pass here against evidencebound-core==0.4.0 and agentrust-trace==0.11.0 from PyPI, and the added workflow is read-only and pinned like the other per-integration conformance jobs.

The one red check is validate. The README integration index is generated, and this branch does not carry its new row. Run python scripts/generate_integration_index.py and commit the result (one line in README.md), and it merges once green.

@imran-siddique imran-siddique left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approving: the index regeneration dismissed the earlier approval. 93476617 adds only the EvidenceBound Core row to README.md.

@imran-siddique
imran-siddique merged commit 4758df1 into agentrust-io:main Oct 5, 2026
30 of 38 checks passed

Copy link
Copy Markdown
Contributor Author

Thanks again for reproducing and merging this integration.

Could you please complete the Verified tier step requested in PR #285?

The PR explicitly requested Verified after maintainer reproduction, and the maintainer review confirmed that the 15 integration tests reproduced against the released packages evidencebound-core==0.4.0 and agentrust-trace==0.11.0. The repository's evidencebound-core conformance workflow also passed across Python 3.11, 3.12, and 3.13 (run 37356972994), including released-package verification, integration tests, TRACE emission, conformance-level determination, and enforcement of the declared TRACE level.

The current merged manifest still has:

tier: community
trace_conformance_level: 0

The TRACE conformance level should remain 0; this request is only about the separate marketplace verification tier. Per the repository's contribution rules, Verified is maintainer-set after end-to-end reproduction of the documented behavior.

If no additional verification requirement remains, could you please flip:

tier: verified

and regenerate the generated index/catalog entries as required?

If you prefer a small contributor follow-up PR for that exact change, please say so and we'll submit it. We will not represent the integration externally as Verified until the repository itself reflects the Verified tier.

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.

2 participants