Skip to content

aeoess-aps: external-evidence-source, no level claim, floating and fixed CI runs - #178

Merged
imran-siddique merged 2 commits into
agentrust-io:mainfrom
aeoess:aeoess-aps/external-evidence-source
Sep 12, 2026
Merged

aeoess-aps: external-evidence-source, no level claim, floating and fixed CI runs#178
imran-siddique merged 2 commits into
agentrust-io:mainfrom
aeoess:aeoess-aps/external-evidence-source

Conversation

@aeoess

@aeoess aeoess commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Closes #170. Follows the pinning boundary established in #169.

This corrects the APS role to external-evidence-source and drops the record-conformance claim that came with the old role. A record-producer claims to emit TRACE Trust Records, so a conformance level applies to it. APS provides signed external evidence that is mapped into TRACE record shape, so no TRACE record conformance level applies here. Level 0 was misleading in the other direction: it made APS look like a deficient record producer rather than a different kind of source.

It also separates the two CI questions:

  • the existing released-package run remains floating for drift detection
  • a fixed run reproduces the versions recorded in tested_against (it pins the complete package set needed to reproduce that result; integration.yaml records only the package keys its schema supports)

The documentation, module docstrings, example and test names now treat Level 0 as a coverage result, not record verification. Under agentrust-trace 0.10.0, verify_record correctly refuses the mapping output because APS cannot truthfully populate model, data_class or build_provenance. The 0.9.0 revocation observations in the README are kept as 0.9.0 results, since the schema refusal at 0.10.0 precedes the revocation check.

No schema change is proposed.

…loating and fixed runs (agentrust-io#170)

Role moves from record-producer to external-evidence-source and the
trace_conformance_level claim goes, on the nobulex precedent: an APS
decision is signed external evidence, and the mapped record cannot carry
model, data_class or build_provenance without inventing them, so it is not
a TRACE Trust Record and verify_record at 0.10.0 refuses it (pinned by
test_full_verify_record_refuses_a_partial_record).

tested_against moves to agentrust-trace 0.10.0 / agentrust-trace-tests
0.5.1 and states the position at those versions.

CI keeps the unpinned floating run as drift detection (agentrust-io#169, harness gets
pinned, subject does not) and adds a fixed run that installs exactly the
tested_against versions and checks they match integration.yaml.
trace-tests --level 0 stays as a coverage report and is labelled as one.

README drops the partial-record and Level 0 framing; the 0.9.0 revocation
observations are kept as 0.9.0 results since the schema refusal at 0.10.0
precedes the revocation check.

Signed-off-by: Tymofii Pidlisnyi <signal@aeoess.com>
@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown

🔴 Contributor Check: HIGH

Check Result
Profile HIGH
Credential LOW
Overall HIGH

Automated check by AgenTrust Contributor Check.

@github-actions github-actions Bot added the needs-review:HIGH Contributor check flagged HIGH risk label Sep 11, 2026
…arketplace catalog

Signed-off-by: Tymofii Pidlisnyi <signal@aeoess.com>
@aeoess

aeoess commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Two CI fixes pushed in 206c589: the new metadata test no longer imports yaml (parsed with re, test extras unchanged), and marketplace/catalog.json is regenerated. Note on the catalog: the diff adds the ComputeID entry from #176, which main was already missing (#177 regenerated the integration index but not the marketplace catalog), so that part is upstream drift the check was going to flag on any PR, not a change from this one.

@carloshvp carloshvp 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.

Reviewed exact head 206c589a7678fca1909d88a1dee9b6e58914d4f9.

The role correction is accurate: APS supplies signed external evidence but cannot truthfully populate the required TRACE model, data_class, or build_provenance claims, so external-evidence-source with no conformance level is the honest classification. The documentation consistently separates signature validity, schema validity, and Level 0 coverage.

Local isolated validation:

  • declared fixed environment remained at agentrust-trace==0.10.0, agentrust-trace-tests==0.5.1, and agent-passport-system==3.0.1 after installing the integration
  • pytest integrations/aeoess-aps/tests -q: 29 passed
  • generated sample plus trace-tests --level 0: 8 checks, 0 failures, exactly TR-SIG-005 unverified on the unsigned mapping
  • repository validation: 36 integrations, 0 failures; 17 focused validation/schema/catalog tests passed; compatibility and generated index/catalog checks passed
  • clean merge simulation against current main at dc655071bd54ab6822fd373b72a84a86607f90e0

The failing maintainer gate is repository policy state, not an implementation defect. Approving.

@imran-siddique

Copy link
Copy Markdown
Member

Right, and further than the answer asked for. The fixed job checking installed versions against tested_against is what turns that field into something verified rather than recorded.

Two things checked rather than read: the gate failure here is stale from dda7049 and passes on 206c589a, so the rollup is green. And your nobulex precedent holds, no level there either.

Our fault, fixed in #179. The template presented trace_conformance_level and trace_roles as a pair with external-evidence-source among the options, and the schema never forbade a level from an integration claiming neither producer nor consumer. It does now.

One tightening for later, not a blocker: "cannot be re-observed at 0.10.0" is the stronger statement than it sounds. verify_record refuses the record before the revocation path runs. That is the schema check working.

Merging.

@imran-siddique
imran-siddique merged commit 22e088b into agentrust-io:main Sep 12, 2026
19 of 20 checks passed
imran-siddique added a commit that referenced this pull request Sep 12, 2026
…e level (#179)

The template showed `trace_conformance_level` and `trace_roles` as a pair and
listed external-evidence-source as one of the role options, so a contributor
following it pairs the two. That is how aeoess-aps came to carry
`trace_conformance_level: 0` for a mapper that issues no Trust Record of its own
(#170, corrected by #178).

The schema already required a level of anyone claiming record-producer or
record-consumer. It did not forbid one from an integration claiming neither, so
nothing caught the pairing. The mirror rule is now expressed: when trace_roles
is present and contains neither producer nor consumer, trace_conformance_level
must be absent.

The template says the same thing in prose, and now says it the way the WCM half
of the same file already did: roles say what you do, and a role that verifies or
issues nothing of its own declares no level.

Verified against all 36 integrations, which all already comply: nobulex and
computeid-agentpassport-trace carry external-evidence-source with no level, and
every producer or consumer carries one. Checked in both directions, including
that a record-producer with no level is still refused and that an integration
holding both roles keeps its level.


Claude-Session: https://claude.ai/code/session_01X27MBo6tGVw1UmmchuGFnW

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review:HIGH Contributor check flagged HIGH risk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

aeoess-aps: 0.10.0 verify_record rejects a record that passes trace-tests Level 0

3 participants