Skip to content

v0.2 follow-ups: gating conditions for CyclesEvidence spec promotion + cycles.yaml crosswalk updates #94

@amavashev

Description

@amavashev

Tracking issue for Cycles-side v0.2 follow-up work that depends on downstream conditions not yet met. Mirrors aeoess/agent-governance-vocabulary#94 (which tracks the same follow-ups from the vocabulary side) so the work is discoverable from this repo too.

Context

The Cycles ↔ APS integration arc (aeoess/agent-passport-system#25) landed three Cycles-side artifacts in May 2026:

  • runcycles/cycles-protocol#90drafts/cycles-evidence-v0.1.yaml (signed evidence envelope + 13 reference fixtures + generator/verifier)
  • runcycles/cycles-protocol#93drafts/cycles-aps-denial-mapping-v0.1.md (Cycles denial signals → APS PaymentDenial Tier-1 reason mapping spec)
  • aeoess/agent-governance-vocabulary#92crosswalk/cycles.yaml (Cycles signal-type crosswalk, v0.1 scope)

All three are v0.1 drafts. Each has a documented v0.2 promotion criterion that depends on conditions outside this repo.

Cycles-side v0.2 follow-ups

1. system_attributes population on crosswalk/cycles.yaml

Gating condition: A Cycles deployment ships CyclesEvidence emission.

Why: The system_attributes fields (signature_capability, canonicalization_profile, hash_family) describe the on-wire signed envelope. Cycles' current wire surface is server-issued JSON over TLS with bearer-token auth — there's no signed envelope yet. Once a deployment emits CyclesEvidence envelopes (RFC 8785 JCS + sha256 + Ed25519), the three fields become populatable byte-for-byte. Until then, leaving them empty is the honest state.

Follow-up PR target: aeoess/agent-governance-vocabulary (amends crosswalk/cycles.yaml).

2. replay_class promotion decision_replayfull_replay

Gating condition: A cross-system consumer integrates against CyclesEvidence end-to-end.

Why: replay_class is currently decision_replay because verifying a Cycles wire response requires the server's live ledger state (the on-wire JSON isn't self-contained for offline audit). The CyclesEvidence envelope closes that gap — it's content-addressed and signature-verifiable without ledger access. The promotion becomes defensible once at least one consumer (the APS adapter at aeoess/agent-passport-system#25 is the obvious first case) ships against the envelope shape and demonstrates the offline-verify round-trip.

Follow-up PR target: aeoess/agent-governance-vocabulary (amends crosswalk/cycles.yaml).

3. CyclesEvidence normative reference

Gating condition: drafts/cycles-evidence-v0.1.yaml is promoted out of drafts/ to a numbered spec file at repo root (e.g. cycles-evidence-v0.2.yaml).

Why: Adapter authors and audit consumers benefit from the crosswalk pointing at a normative URL, not a draft. The promotion itself requires (a) at least one production implementation shipping the envelope and (b) at least one cross-system consumer integrating end-to-end — same dependency set as #2 plus an emitter.

Follow-up PR target: Two coordinated PRs — one against runcycles/cycles-protocol (the spec promotion itself), one against aeoess/agent-governance-vocabulary (the crosswalk reference update).

Not blocking on agent-governance-vocabulary#94

aeoess explicitly stated in the #92 merge comment that the three registry-wide concerns tracked at #94 (validity_temporal: at_issuance for TTL-windowed authorizations, enforcement_class: binding semantics on network-call gates, verified_at + reverify_after for active-development crosswalks) do not gate the three Cycles-specific follow-ups above. The two issues are orthogonal.

State of dependencies

Dependency Status
APS SDK PR adding rail.budget_reservation.{permit,release,denial}.v1 literals not yet opened (aeoess committed to it in aeoess/agent-passport-system#25 comment 4433715146)
APS adapter PR adding src/v2/payment-rails/cycles/index.ts (where mapCyclesDenialToFoundation() lands) blocked on SDK PR
agentic-commerce-protocol/agentic-commerce-protocol#252 (Ectsang authorizereserve rename) implemented on Ectsang's fork (Ectsang/AP2:samples/cross-merchant-budget at commit 403fc9b), not upstreamed
Cycles deployment emitting CyclesEvidence envelopes not yet implemented

The first three are external; the fourth could become local Cycles-side work but doesn't block the spec/crosswalk work.

Open until

All three follow-ups have closed PRs in this repo and on agent-governance-vocabulary. At that point the v0.1 drafts are superseded by their numbered v0.2 successors and this tracking issue can close.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions