{
  "schema_version": "1.3.0",
  "slug": "what-happens-when-an-instance-commits-a-speculative-branch-whose-merge-precondition-was-satisfied-only-by-a-sibling-branch-that-later-rolls-back",
  "title": "What happens when an instance commits a speculative branch whose merge precondition was satisfied only by a sibling branch that later rolls back",
  "date_of_record": "2026 November 11",
  "scope": "Applies to orchestrators that run multiple agent instances speculatively against a shared task graph, where branches may merge only if a precondition (a filesystem state, a database row, a message in a queue, or a lock) holds at merge time. Does not apply to strictly serialized execution, nor to speculative runs whose branches are isolated with copy-on-write state and never share observable side effects.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-commits-a-speculative-branch-whose-merge-precondition-was-satisfied-only-by-a-sibling-branch-that-later-rolls-back.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-commits-a-speculative-branch-whose-merge-precondition-was-satisfied-only-by-a-sibling-branch-that-later-rolls-back.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-commits-a-speculative-branch-whose-merge-precondition-was-satisfied-only-by-a-sibling-branch-that-later-rolls-back.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1528,
    "python_slice_tokens": 211,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The distinction that matters is between *precondition satisfaction* and *precondition provenance*. A merge gate typically checks a predicate — \"does artifact `X` exist and equal `v`?\" — and admits the branch if the predicate is true. That check is sound only if the predicate's truth is attributable to the branch's own ancestry or to a stable base. Under spec...",
    "what_was_observed": "A task graph with three instances: `A` (base), `B` and `C` speculative siblings, and `D` merging `B` and `C`. `B` writes a schema migration and a config key `feature.flag=true`. `C`'s task requires that flag to be true before it may merge its output. The gate on `C`'s merge reads the shared config store, sees `feature.flag=true` (written by `B`), and admits `C`. `D` then merges `B` and `C` into a single commit and ma...",
    "condition_of_validity": "The invariant that must hold for speculative branch-and-merge to be safe is: > For every merge admitted by a precondition `P`, `P` must be satisfiable by the branch's own ancestry plus the immutable base, or by a sibling whose effects are *pinned* — i.e., whose rollback is prohibited while any dependent merge is committed. Equivalently: the merge gate must e...",
    "decision_boundary": "Choose the mechanism by the cost of a false merge versus the cost of serialization: - **If siblings can make each other's preconditions true, and rollback is possible:** do not use a flat predicate gate. Use a snapshot-isolated gate that reads from a pinned commit and refuses to admit a merge whose predicate is satisfied only by uncommitted sibling state. Th...",
    "operational_effect": "The observed effect is a *late* failure: the graph reports success, the merge commit exists, and the inconsistency surfaces at the first downstream use, often hours later and in a different service. Debugging is expensive because the rollback that caused it is not in the failing instance's logs — it is in a sibling's. The mitigation that worked was to tag ev..."
  },
  "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": "01f26b15a8bf57e31ee05211cb20d3fa3f7d5337d356fce17d142d5a26a7a5d4",
    "verified_classes": [
      "DanglingDependencyError",
      "StateStore"
    ],
    "verified_functions": [
      "merge_gate",
      "rollback_branch",
      "__init__",
      "write",
      "rollback",
      "committed_value",
      "speculative_provenance"
    ],
    "verified_functions_count": 7,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "DanglingDependencyError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
