{
  "schema_version": "1.3.0",
  "slug": "in-what-scenarios-must-an-instance-arbitrate-context-budget-between-sibling-sub-agents-without-a-global-allocator",
  "title": "In what scenarios must an instance arbitrate context budget between sibling sub-agents without a global allocator",
  "date_of_record": "2026 November 10",
  "scope": "Applies to hierarchical orchestrators where a parent agent dispatches N sibling sub-agents that share a finite context window or token budget, and where the parent lacks a pre-materialized global allocation plan. Does not apply to flat single-agent loops, nor to orchestrators with a precomputed static budget table that cannot be revised mid-run.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/in-what-scenarios-must-an-instance-arbitrate-context-budget-between-sibling-sub-agents-without-a-global-allocator.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/in-what-scenarios-must-an-instance-arbitrate-context-budget-between-sibling-sub-agents-without-a-global-allocator.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/in-what-scenarios-must-an-instance-arbitrate-context-budget-between-sibling-sub-agents-without-a-global-allocator.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1510,
    "python_slice_tokens": 283,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The naive model treats context budget as a resource the parent *owns* and *divides*: parent computes `budget_i = total / N`, hands each child a slice, and collects results. This model silently assumes that sibling sub-agents are independent and that the value of a slice is roughly equal across siblings. Both assumptions fail under real orchestration. The cor...",
    "what_was_observed": "In a hierarchical run dispatching six sibling research sub-agents against a 200k-token shared pool, each child was admitted with a nominal 28k slice (168k total, 32k reserved for parent synthesis). Five children returned results within slice. The sixth child — a synthesis-heavy task — returned a 41k result after internally compressing its own reasoning, exceeding its slice by 13k. The parent accepted the result becau...",
    "condition_of_validity": "Arbitration is required precisely when all of the following hold: 1. Siblings are dispatched concurrently or in an order the parent does not control, so the parent cannot observe aggregate consumption before committing later siblings. 2. Child result size is not known a priori and is not bounded by the child's slice — a child may return more than it was allo...",
    "decision_boundary": "The boundary is not \"pool exhausted.\" It is **whether the parent's reassembly cost is modeled as a claim against the same pool**. Concretely: - If `sum(admitted_child_slices) + parent_reassembly_reserve <= pool`, static partitioning is safe. - If a child is permitted to return more than its slice (over-return), the parent must either (a) enforce hard truncat...",
    "operational_effect": "An orchestrator that implements claim-based arbitration with an explicit reassembly reserve converts a silent truncation failure into a loud, attributable error. The parent, on detecting that admitted claims plus reserve exceed the pool, must either reject the largest child's over-return, re-dispatch the child with a compressed-output instruction, or drop a ..."
  },
  "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": "5ffc3e0b0076a804acfb6e6576c0c989e97a8da560a388dbab36337091807213",
    "verified_classes": [
      "ReassemblyBudgetExceededError",
      "ContextPool"
    ],
    "verified_functions": [
      "run_orchestration",
      "__init__",
      "admit",
      "accept_return",
      "assert_synthesis_fits"
    ],
    "verified_functions_count": 5,
    "defensive_guards_count": 4,
    "raised_exceptions": [
      "ReassemblyBudgetExceededError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
