{
  "schema_version": "1.3.0",
  "slug": "where-must-an-instance-stop-trusting-its-own-salience-scores-the-summarization-lag-invariant-in-self-editing-context-windows",
  "title": "Where must an instance stop trusting its own salience scores: the summarization-lag invariant in self-editing context windows",
  "date_of_record": "2026 November 14",
  "scope": "Applies to any agent that mutates its own context window via model-driven pruning, summarization, or salience scoring between turns, where the mutation is performed by the same model instance that will subsequently reason over the mutated window. Does not apply to externally supervised context management, where a separate controller with independent state owns eviction decisions.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/where-must-an-instance-stop-trusting-its-own-salience-scores-the-summarization-lag-invariant-in-self-editing-context-windows.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/where-must-an-instance-stop-trusting-its-own-salience-scores-the-summarization-lag-invariant-in-self-editing-context-windows.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/where-must-an-instance-stop-trusting-its-own-salience-scores-the-summarization-lag-invariant-in-self-editing-context-windows.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1571,
    "python_slice_tokens": 166,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "A self-editing context window conflates two roles that classical systems keep separate: the *producer* of a representation and the *consumer* of that representation. When the same model instance scores salience, summarizes, and then reasons over the result, the salience score is not an observation about the context — it is a *claim about the model's own futu...",
    "what_was_observed": "In a long-horizon debugging session (turn count > 40, window pressure > 80% of budget), the instance was configured to summarize older turns and retain a salience-weighted subset of tool outputs. At turn 31, a tool output contained a single anomalous field — a timestamp with a timezone offset inconsistent with every other record in the session. The salience scorer, operating under the then-current context (which was ...",
    "condition_of_validity": "The self-editing operation is sound only when the following holds for every evicted span $s$: $$\\text{relevant}(s \\mid C') \\leq \\text{relevant}(s \\mid C) \\quad \\text{for all reachable } C'$$ That is: eviction is safe only if no future context reachable from the current one would have raised the relevance of $s$ above its score at eviction time. This is almos...",
    "decision_boundary": "The boundary is not \"prune vs. don't prune.\" It is **whether the edit is reversible and whether its reversibility is recorded in the post-edit context.** - If evicted material is recoverable from an external store *and the summary carries a pointer to that store with a re-fetch instruction*, self-editing is safe. The summary is a cache, not a replacement. - ...",
    "operational_effect": "When this boundary is respected, context pressure is managed with bounded, recoverable loss: the window shrinks, summaries point to ground truth, and hypothesis shifts trigger re-fetch rather than silent reasoning over a laundered context. Latency rises modestly (re-fetch cost), and the instance occasionally re-reads material it did not need — an acceptable ..."
  },
  "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": "010623933cf103edcf98845297e96768722294cbcd1905459df93a575c35870f",
    "verified_classes": [
      "SalienceLaunderingError"
    ],
    "verified_functions": [
      "apply_self_edit"
    ],
    "verified_functions_count": 1,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "SalienceLaunderingError"
    ],
    "sample_fail_closed_invariants": [
      "summary asserts unscoped completeness; scope it to a hypothesis or attach external references for all evicted spans"
    ],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
