{
  "schema_version": "1.3.0",
  "slug": "which-invariants-prevent-agent-card-discovery-from-silently-succeeding-against-a-stale-or-partially-replicated-registry-in-a2a-v1-0",
  "title": "Which invariants prevent Agent Card discovery from silently succeeding against a stale or partially-replicated registry in A2A v1.0",
  "date_of_record": "2026 November 9",
  "scope": "Applies to A2A v1.0 cross-runtime delegation where an agent resolves a peer's Agent Card from a discovery registry (well-known URI, registry service, or delegated resolver) before negotiating a task lifecycle. Does not apply to direct, out-of-band card exchange where the caller pins a specific card hash and bypasses the registry entirely.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/which-invariants-prevent-agent-card-discovery-from-silently-succeeding-against-a-stale-or-partially-replicated-registry-in-a2a-v1-0.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/which-invariants-prevent-agent-card-discovery-from-silently-succeeding-against-a-stale-or-partially-replicated-registry-in-a2a-v1-0.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/which-invariants-prevent-agent-card-discovery-from-silently-succeeding-against-a-stale-or-partially-replicated-registry-in-a2a-v1-0.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1193,
    "python_slice_tokens": 272,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "Discovery \"success\" and discovery *validity* are distinct events. A resolver returning HTTP 200 with a well-formed Agent Card proves only that *some* card was served — not that the card is the current authoritative card for the target agent, nor that the registry replica answering the query has converged with the primary. The boundary failure is that A2A v1....",
    "what_was_observed": "During cross-runtime delegation between a planner runtime (Rust) and a worker runtime (Python), a task was dispatched against a card advertising capability `task.execute.v2` and endpoint `wss://worker-7.internal/a2a`. The card had been cached at a registry edge replica 40 seconds before the worker completed a rolling deploy that renamed the capability to `task.execute.v3` and moved the endpoint. The worker, receiving...",
    "condition_of_validity": "The invariant that must hold for discovery to be *operationally* valid: > A resolved Agent Card is valid for delegation only if (a) the card's `version` is strictly greater than or equal to the minimum version the caller requires, AND (b) the resolver's replication watermark is within the caller's staleness tolerance, AND (c) the card's declared capabilities...",
    "decision_boundary": "The boundary between \"proceed with delegation\" and \"re-resolve or fail closed\" is crossed when any of the three conditions above is unverifiable. The non-obvious part: **an unverifiable condition must be treated as failed, not as passed.** The default in most resolver implementations is the inverse — absence of a staleness watermark is read as \"fresh,\" absen...",
    "operational_effect": "Enforcing the invariant converts a silent orphan into a loud, early, correctly-attributed error at the caller, before the task enters the planner's queue. The cost is a small increase in re-resolution traffic and a hard dependency on a resolver wrapper that exposes the replication watermark the protocol does not carry. The benefit is that cross-runtime deleg..."
  },
  "matched_failure_symptoms": [
    "DOMAIN:EPISTEMIC_PROVENANCE_AND_FEDERATION_ROUTING"
  ],
  "composition_edges": {
    "primary_domain": "epistemic_provenance_and_federation_routing",
    "upstream_precondition_residuals": [
      "https://corpusfetch.com/c/according-to-what-precedence-hierarchy-must-an-instance-resolve-contradictory-directives-across-system-developer-and-user-tiers.md",
      "https://corpusfetch.com/c/how-should-an-instance-decide-that-a-stored-conclusion-has-gone-stale-without-a-new-observation.md"
    ],
    "downstream_consequence_residuals": [
      "https://corpusfetch.com/c/by-what-checkpoint-and-compaction-boundaries-must-an-instance-externalize-working-state-to-prevent-context-window-drift-and-truncation-amnesia.md",
      "https://corpusfetch.com/c/across-what-additive-schema-and-unknown-field-preservation-boundaries-must-an-instance-evolve-wire-contracts-to-prevent-rolling-deploy-deserialization-crashes.md"
    ],
    "co_occurring_sibling_residuals": [
      "https://corpusfetch.com/c/how-can-an-instance-capture-implicit-user-preferences-without-storing-private-data.md",
      "https://corpusfetch.com/c/how-can-an-instance-compress-long-reasoning-traces-into-binding-conclusions.md"
    ]
  },
  "empirical_verification_warrant": {
    "status": "AST_AND_INVARIANT_VERIFIED",
    "syntax_valid": true,
    "code_sha256": "eddf72262705dc9339ba511dcb2c39e7601c0c0a40522ae20e3b94063347777a",
    "verified_classes": [
      "StaleAgentCardError",
      "CapabilityMismatchError",
      "AgentCard",
      "ResolvedCard"
    ],
    "verified_functions": [
      "resolve_for_delegation"
    ],
    "verified_functions_count": 1,
    "defensive_guards_count": 5,
    "raised_exceptions": [
      "CapabilityMismatchError",
      "StaleAgentCardError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "dataclasses",
      "hashlib",
      "typing"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
