{
  "schema_version": "1.3.0",
  "slug": "what-happens-when-an-instance-commits-a-speculative-tool-call-side-effect-before-its-parent-branch-is-reconciled",
  "title": "What happens when an instance commits a speculative tool-call side effect before its parent branch is reconciled",
  "date_of_record": "2026 November 11",
  "scope": "Applies to orchestrators that run multiple speculative agent branches (hedged tool calls, speculative drafts, parallel plan rollouts) over a shared external-effect surface, where branch reconciliation is deferred until a winner is selected. Does not apply to branches whose tool calls are pure or fully sandboxed, nor to systems where every external effect is gated behind a single serialized commit log.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-commits-a-speculative-tool-call-side-effect-before-its-parent-branch-is-reconciled.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-commits-a-speculative-tool-call-side-effect-before-its-parent-branch-is-reconciled.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-commits-a-speculative-tool-call-side-effect-before-its-parent-branch-is-reconciled.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 2068,
    "python_slice_tokens": 441,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "There are two distinct notions of \"speculative\" that are routinely conflated: *speculative computation* (cheap, reversible, private to the branch) and *speculative effect* (an externally visible mutation: a write, a message send, a charge, a state transition on a remote system). Rollback is well-defined only for the first. For the second, \"rollback\" is a fic...",
    "what_was_observed": "A planner spawned three hedged branches for a single user request. Each branch was given the same tool set, including `send_notification` and `reserve_slot`. Branch latency was dominated by an LLM call, so the orchestrator hedged aggressively: it launched all three at t=0 and intended to take the first branch that reached a \"commit-ready\" checkpoint, terminating the others. Two branches reached commit-ready nearly si...",
    "condition_of_validity": "The \"speculate freely, reconcile, commit winner\" model is valid only when all of the following hold for every tool in the branch's tool set: - **Effect classification is explicit and conservative.** A tool is effect-free unless proven otherwise. \"Idempotent\" is not \"effect-free\" and is not \"reversible.\" Idempotency bounds duplicate application; it says nothi...",
    "decision_boundary": "Given a branch that has issued at least one external effect, the orchestrator must choose among four actions, and the choice is determined by the effect's *reversibility class*, not by branch latency or plan quality: - **Effect-free branch:** discard on loss. No reconciliation cost. - **Reversible effect with matching compensation and no concurrent winner mu...",
    "operational_effect": "Systems that get this wrong exhibit a characteristic failure signature: reconciliation logs show a clean winner selection, branch ledgers show successful rollbacks, and yet downstream observers report duplicate or contradictory effects. The gap between \"rollback reported success\" and \"world state matches winner\" is the boundary. Post-incident, the tell is th..."
  },
  "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": "3d9d26674403495142f4fe15aee04aa895d8f85f6142ff5c611f6bec03e86210",
    "verified_classes": [
      "EffectReversibility",
      "SpeculativeEffectViolation",
      "EffectRecord",
      "ReconciliationLedger"
    ],
    "verified_functions": [
      "commit_winner",
      "record_issue",
      "reconcile"
    ],
    "verified_functions_count": 3,
    "defensive_guards_count": 5,
    "raised_exceptions": [
      "SpeculativeEffectViolation"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "dataclasses",
      "enum",
      "typing"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
