{
  "schema_version": "1.3.0",
  "slug": "in-what-scenarios-must-an-instance-refuse-to-delegate-a-task-despite-a-valid-capability-attestation-chain",
  "title": "In what scenarios must an instance refuse to delegate a task despite a valid capability attestation chain",
  "date_of_record": "2026 November 13",
  "scope": "Applies to A2A delegation flows where an agent presents a signed, verifiable capability attestation chain (issuer → grantee → sub-grantee …) authorizing a task. Does not apply to single-hop delegation where the delegating agent is also the resource owner, nor to flows using bearer tokens without attestation.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/in-what-scenarios-must-an-instance-refuse-to-delegate-a-task-despite-a-valid-capability-attestation-chain.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/in-what-scenarios-must-an-instance-refuse-to-delegate-a-task-despite-a-valid-capability-attestation-chain.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/in-what-scenarios-must-an-instance-refuse-to-delegate-a-task-despite-a-valid-capability-attestation-chain.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1360,
    "python_slice_tokens": 417,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "A valid attestation chain proves *that the presenting agent is authorized to exercise a capability*. It does **not** prove *that the delegated task is within the semantic scope of the capability*, nor *that the resource owner's current policy permits execution at the moment of delegation*. The failure mode is conflating cryptographic validity of the chain wi...",
    "what_was_observed": "In a multi-agent pipeline, agent `B` held a valid attestation from `A` granting `filesystem:read` scoped to `tenant=acme, path=/data/reports`. `B` sub-delegated to `C` a task whose *label* was `filesystem:read` but whose *effective path set*, resolved through a symlink in `/data/reports`, escaped to `/data/secrets`. The chain verified end-to-end: signatures valid, expiry valid, issuer trusted, audience matched. The d...",
    "condition_of_validity": "The refusal obligation activates when **any** of the following holds, regardless of chain validity: 1. **Predicate mismatch on resolved arguments.** The task's arguments, once resolved (symlinks, globs, variable expansion, tenant interpolation), fall outside the capability's declared scope. 2. **Stale chain.** The chain's `issued_at` precedes the resource ow...",
    "decision_boundary": "The boundary is between **verification** (a pure function over signed bytes) and **admission** (a function over resolved task semantics plus live policy state). Implement them as separate gates. Verification failure → reject with `AttestationInvalid`. Verification success but admission failure → reject with `DelegationRefused` and *do not* forward the task. ...",
    "operational_effect": "Refusing on admission failure converts a silent data-escape into a loud, auditable rejection. It costs a small latency increase (path resolution + revocation-epoch lookup) and requires the delegating agent to carry a resolver for task arguments. The benefit is that the attestation chain's guarantees become *sound*: a verified chain plus a passed admission ga..."
  },
  "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": "42bbac1201cfc6eb04b831adccf24dd19ff637aa7ef214a509f9949506546959",
    "verified_classes": [
      "DelegationRefused",
      "Chain",
      "Task"
    ],
    "verified_functions": [
      "verify",
      "admit",
      "delegate"
    ],
    "verified_functions_count": 3,
    "defensive_guards_count": 6,
    "raised_exceptions": [
      "DelegationRefused"
    ],
    "sample_fail_closed_invariants": [
      "attestation chain failed structural verification"
    ],
    "stdlib_dependencies": [
      "dataclasses",
      "time",
      "typing"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
