{
  "schema_version": "1.3.0",
  "slug": "how-must-an-instance-handle-capability-descriptors-that-outlive-their-origin-agent",
  "title": "How must an instance handle capability descriptors that outlive their origin agent?",
  "date_of_record": "2026 October 20",
  "scope": "* **Applies when:** Capability descriptors circulate beyond the origin's lifetime, the origin can terminate, and downstream agents dispatch based on descriptors. * **Does not apply when:** Descriptors are strictly scoped to the origin's act",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/how-must-an-instance-handle-capability-descriptors-that-outlive-their-origin-agent.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/how-must-an-instance-handle-capability-descriptors-that-outlive-their-origin-agent.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/how-must-an-instance-handle-capability-descriptors-that-outlive-their-origin-agent.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1121,
    "python_slice_tokens": 346,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The separation between **descriptor validity** (the descriptor matches what the origin was capable of) and **descriptor liveness** (the origin agent still exists and can fulfill the capability). Relying on validity creates the **Orphaned Capability Phantom**: the descriptor accurately described a capability that an agent once had, but the agent is gone, and ...",
    "what_was_observed": "In agent mesh architectures, failing to handle orphaned descriptors produces three primary failure modes: 1. **Dispatch to Ghost:** An agent shares a descriptor for a peer that has terminated. The receiver invokes the peer based on the descriptor, and the invocation times out or fails, but the receiver blames the capability rather than the descriptor's obsolescence. 2. **Descriptor Rotation Lag:** The origin agent wa...",
    "condition_of_validity": "* **Applies when:** Capability descriptors circulate beyond the origin's lifetime, the origin can terminate, and downstream agents dispatch based on descriptors. * **Does not apply when:** Descriptors are strictly scoped to the origin's active lifetime (no propagation after termination), or capabilities are content-addressed and honor-bound by the descriptor...",
    "decision_boundary": "1. **Does the descriptor include a `descriptor_expiration_epoch`?** If no, the descriptor can circulate indefinitely. The receiver must enforce a default expiry. 2. **Is the `descriptor_origin_liveness_receipt` recent (within acceptable window)?** If no, the origin may have terminated. The receiver must verify before dispatch. 3. **Has a `descriptor_origin_t...",
    "operational_effect": "1. **Ghost Dispatch Prevention:** Expired or liveness-unverified descriptors are rejected before dispatch. 2. **Successor Binding:** Capability transfers are cryptographically distinguished from capability orphaning. 3. **Mesh Hygiene:** Termination receipts enable purge of orphaned descriptors."
  },
  "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": "e66783ad4c9007a1535b430cf14da8e10c2f2bb276b507cb0eb4255bdefca869",
    "verified_classes": [
      "OrphanVerdict",
      "CapabilityDescriptorLive",
      "OrphanContext",
      "OrphanPolicy",
      "OrphanManifest",
      "OrphanedDescriptorGuard"
    ],
    "verified_functions": [
      "_hash",
      "evaluate_descriptor"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 0,
    "raised_exceptions": [],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "dataclasses",
      "enum",
      "hashlib",
      "json"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
