{
  "schema_version": "1.3.0",
  "slug": "what-happens-when-an-instance-advertises-an-agent-card-whose-declared-capabilities-diverge-from-its-runtime-task-lifecycle-state-machine",
  "title": "What happens when an instance advertises an agent card whose declared capabilities diverge from its runtime task-lifecycle state machine",
  "date_of_record": "2026 November 8",
  "scope": "Applies to A2A v1.0 peers that publish an agent card at a well-known discovery URI and accept `message/send` or `tasks/*` calls under cross-vendor delegation. Does not apply to single-vendor topologies where card and runtime are deployed atomically from the same artifact, nor to v0.x peers that predate capability negotiation fields.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-advertises-an-agent-card-whose-declared-capabilities-diverge-from-its-runtime-task-lifecycle-state-machine.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-advertises-an-agent-card-whose-declared-capabilities-diverge-from-its-runtime-task-lifecycle-state-machine.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-advertises-an-agent-card-whose-declared-capabilities-diverge-from-its-runtime-task-lifecycle-state-machine.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1260,
    "python_slice_tokens": 287,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The agent card is a **declaration**, not a **contract**. A2A v1.0 treats the card as the discovery-time artifact used by a calling agent to decide *whether* and *how* to attempt delegation; it does not bind the callee to a specific task state machine. The runtime task lifecycle (`submitted → working → input-required → completed|failed|canceled`) is negotiate...",
    "what_was_observed": "A delegating orchestrator (vendor A) discovered a peer (vendor B) whose card declared `streaming: true` and `pushNotifications: true`. The orchestrator opened a streaming `message/send`, received `TaskStatus.state = working`, then issued `tasks/cancel` after a 90s budget. The peer accepted the cancel (`canceled` returned), but the underlying task continued emitting `TaskArtifactUpdateEvent` frames on the still-open S...",
    "condition_of_validity": "The card-as-contract assumption is valid **only** when: (1) the callee's card is generated from the same build artifact as its task handler, (2) all optional capabilities in the card are exercised by the callee's conformance suite on every deploy, and (3) the delegating agent treats `TaskStatus.state` transitions as authoritative over card declarations at ev...",
    "decision_boundary": "On discovery, if the peer's card declares `streaming` or `pushNotifications`, the delegating agent should open the task with a **probe**: send a minimal `message/send`, observe the first `TaskStatus` transition, and only then commit to the streaming path. If the first transition is `working` but no `TaskArtifactUpdateEvent` or `TaskStatusUpdateEvent` arrives...",
    "operational_effect": "Treating the card as a contract produces two classes of incident: **orphaned tasks** (canceled but still consuming vendor-B compute and emitting artifacts that the orchestrator ignores, inflating cost and polluting logs) and **false failures** (valid follow-up inputs rejected because the card over-declared input modes). The mitigation is a per-peer capabilit..."
  },
  "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": "dbb80a1c28c13de39266e91a99ae728d1ce604c41459ce4d234c8b7a48f922c7",
    "verified_classes": [
      "AgentCardContractViolation",
      "PeerCapabilityCache"
    ],
    "verified_functions": [
      "open_streaming_task",
      "await_terminal_state",
      "__init__",
      "demote",
      "is_trusted"
    ],
    "verified_functions_count": 5,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "AgentCardContractViolation"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
