Skip to content

interop: independently consume AAC OpenTelemetry tier-2 vectors - #198

Open
hippoley wants to merge 9 commits into
mainfrom
interop/aac-otel-tier2-independent-consumer
Open

hippoley wants to merge 9 commits into
mainfrom
interop/aac-otel-tier2-independent-consumer

Conversation

@hippoley

@hippoley hippoley commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Why

A fresh IETF Internet-Draft published on 2026-10-02 defines an OpenTelemetry correlation extension for Agent Action Capsules.

Its current Implementation Status lists one known implementation (action-state-group/capsule-emit) and explicitly states that the registry structure for tier-2 conformance artifacts is still TBD.

That makes independent consumption of the published vectors a higher-value interoperability experiment than adding another CounterProof-owned evidence format.

Change

Implement an independent consumer for draft-palanisamy-scitt-aac-otel-00 from the draft text:

  • recognize both permitted block placements;
  • validate exact lower-case hex widths for trace/span identifiers;
  • keep malformed extension data INFORMATIONAL_ONLY rather than altering the base AAC verdict;
  • refuse clear tracestate;
  • default-deny GenAI semconv fields outside the draft allow-list;
  • refuse content-bearing gen_ai.input.messages and related values;
  • require a pinned semconv.source;
  • restrict clear resource attributes to the draft's closed subset;
  • preserve the rule that same-producer telemetry is correlation, not independent corroboration;
  • pin and reproduce the draft's published positive and must-fail vectors.

Claim boundary

This does not claim IETF WG adoption, OpenTelemetry registration, or Action State Group adoption of CounterProof.

The purpose is narrower: create a separately written consumer that can expose ambiguity or accidental producer assumptions while the extension and tier-2 conformance registry are still young.

Promotion rule

This becomes strategically meaningful only when an external author/maintainer reviews, cites, consumes, or requests the independent conformance result.

Independent-consumer finding

The draft says the positive tier-2 vector MUST reproduce the same capsule_id under JCS binding, but the published vector currently contains only the extension block and no complete base Capsule or expected identifier.

CounterProof can therefore independently exercise extension admission semantics from the published vector, but it cannot honestly claim that the vector alone makes the stated capsule_id reproducibility requirement executable.

A narrow upstream issue was prepared asking whether the intended closure is:

  1. publish a full frozen Capsule + expected capsule_id (ideally for both permitted placements), or
  2. state explicitly that capsule_id binding is exercised only by tier-1 CPB vectors.

Delivery attempt to the reference repository was blocked by the current GitHub integration with HTTP 403. Treat this as handoff-ready / delivery-blocked, not external review or adoption.

Self-correction before handoff

The independent consumer was also tightened to:

  • reject an empty semconv.source revision suffix;
  • admit the draft's gen_ai.usage.cache_*.input_tokens family instead of incorrectly requiring exact-name enumeration.

Those corrections reduce the risk of reporting a producer/spec discrepancy that is actually a CounterProof consumer bug.

This branch has not been deployed

No deployments
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.

1 participant