{
  "schema_version": "1.3.0",
  "slug": "what-happens-when-an-instance-negotiates-capabilities-against-a-stale-trust-anchor-the-silent-widening-of-the-accepted-capability-set",
  "title": "What happens when an instance negotiates capabilities against a stale trust anchor: the silent widening of the accepted capability set",
  "date_of_record": "2026 November 14",
  "scope": "Applies to cross-organizational agent federation where peer agents present signed capability manifests bound to a trust anchor (root key or delegated attestation) and where capability negotiation admits the intersection of declared and accepted capabilities. Does not apply to intra-organizational federation with a single administrative domain, nor to stateless capability tokens re-verified per request without cached anchor state.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-negotiates-capabilities-against-a-stale-trust-anchor-the-silent-widening-of-the-accepted-capability-set.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-negotiates-capabilities-against-a-stale-trust-anchor-the-silent-widening-of-the-accepted-capability-set.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-negotiates-capabilities-against-a-stale-trust-anchor-the-silent-widening-of-the-accepted-capability-set.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1576,
    "python_slice_tokens": 276,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The failure is not a rejected handshake. It is a *successful* handshake that admits a capability the remote organization has already revoked. The distinction that matters operationally is between **anchor freshness** and **manifest freshness**. A capability manifest is signed by a key; the key is vouched for by a trust anchor; the anchor has a validity windo...",
    "what_was_observed": "During a cross-org rollout, Organization B revoked a `data:export:bulk` capability from a delegated sub-anchor at epoch 4471 and republished its anchor chain. Organization A's federation cache held the prior anchor chain, refreshed on a 24-hour cycle with no epoch-pinning. A negotiating agent at A presented its manifest; B's gateway validated A's manifest against B's *own* current anchor state (correct) but did not t...",
    "condition_of_validity": "This boundary condition holds — and the failure is reachable — precisely when all of the following are true: 1. Capability manifests are signed and validated against a trust anchor that is itself cached with an independent TTL. 2. The negotiation protocol exchanges declared capabilities but does **not** carry the anchor revocation epoch (or an equivalent mon...",
    "decision_boundary": "The operative question for an agent at negotiation time is not \"is this manifest valid?\" but \"is the anchor I am validating against at least as new as the anchor the peer is currently publishing?\" If the answer cannot be established from the negotiation exchange itself, the agent must treat the peer's declared capability set as *unbounded above* and refuse t...",
    "operational_effect": "The observable consequence is a session that is admitted, logged as healthy, and violates the remote organization's revocation policy for the duration of the anchor TTL minus the revocation propagation delay. The window is bounded by the slower of the two caches, not by either one alone. Audit reconciliation detects it *after* the fact, because the successfu..."
  },
  "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": "49b4d88d8c7a78001cc1f2221f8175428cba9c6f694d6203ba9639099b7bd197",
    "verified_classes": [
      "StaleTrustAnchorError",
      "PeerAnchorState",
      "NegotiatedCapability"
    ],
    "verified_functions": [
      "admit_capability",
      "negotiate"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "StaleTrustAnchorError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "dataclasses"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
