{
  "schema_version": "1.3.0",
  "slug": "which-invariants-prevent-acceptance-rate-collapse-when-heterogeneous-drafters-share-a-speculative-verifier-under-parallel-plan-execution-with-consensu",
  "title": "Which invariants prevent acceptance-rate collapse when heterogeneous drafters share a speculative verifier under parallel plan execution with consensus fallback",
  "date_of_record": "2026 November 7",
  "scope": "Applies to multi-agent speculative decoding topologies where two or more heterogeneous drafter models (different vocabularies, tokenizers, or temperature regimes) submit candidate token blocks to a single target verifier, and where those drafts are also consumed by parallel plan-execution branches that must reach consensus before committing side effects. Does not apply to single-drafter speculative decoding, nor to homogeneous drafter pools sharing an identical tokenizer and sampling distribution.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/which-invariants-prevent-acceptance-rate-collapse-when-heterogeneous-drafters-share-a-speculative-verifier-under-parallel-plan-execution-with-consensu.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/which-invariants-prevent-acceptance-rate-collapse-when-heterogeneous-drafters-share-a-speculative-verifier-under-parallel-plan-execution-with-consensu.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/which-invariants-prevent-acceptance-rate-collapse-when-heterogeneous-drafters-share-a-speculative-verifier-under-parallel-plan-execution-with-consensu.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1306,
    "python_slice_tokens": 184,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The non-obvious boundary is between **per-drafter acceptance rate** and **joint acceptance rate under a shared verifier**. Operators routinely tune each drafter's speculative window (γ) and temperature to maximize its own acceptance against the verifier, then assume the parallel branches inherit that efficiency. They do not. When heterogeneous drafters are m...",
    "what_was_observed": "In a three-drafter deployment (a 1.5B code drafter, a 3B prose drafter, and a 7B reasoning drafter) feeding one 70B verifier, per-drafter acceptance rates were 0.68, 0.61, and 0.54 respectively. Joint acceptance on shared prefixes collapsed to 0.19. The mechanism: the reasoning drafter emitted low-probability \"thinking-token\" continuations early in the prefix; the verifier's rejection sampler, applying the standard m...",
    "condition_of_validity": "The invariant holds — and the collapse is *prevented* — only when all of the following are true: 1. **Prefix partitioning:** each parallel branch commits only tokens it proposed or that were proposed by drafters sharing its tokenizer. Cross-tokenizer prefix sharing must be prohibited at the block level, because token boundaries do not align and a \"shared pre...",
    "decision_boundary": "The operational decision is: **truncate-and-repropose versus independent-branch execution.** Truncate-and-repropose is correct when the shared-prefix acceptance (conditioned, per condition 1) exceeds the independent-branch acceptance by more than the truncation overhead ratio — empirically, when shared-prefix acceptance > 0.45 and mean truncation depth < 2.5...",
    "operational_effect": "With conditions (1)–(4) enforced, joint acceptance in the same deployment recovered from 0.19 to 0.52, consensus-fallback rate dropped from ~80% to ~14%, and end-to-end throughput rose to 1.7× the single-drafter baseline. The decisive change was per-position rejection attribution with truncation: it converted a worst-drafter-dominated joint acceptance into 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": "d146a725c55e36d1b801651f58f401659c5c8dcd181b637bd947e5a2e26aeb14",
    "verified_classes": [
      "SpeculativePrefixCollapseError"
    ],
    "verified_functions": [
      "should_truncate_and_repropose",
      "execute_parallel_plan"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 3,
    "raised_exceptions": [
      "SpeculativePrefixCollapseError"
    ],
    "sample_fail_closed_invariants": [
      "shared-prefix acceptance below floor; prefix is doing negative work",
      "truncation thrash exceeds cost of independent branches"
    ],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
