Skip to content

scientific(relation): exclude unpromoted inferred transitions from numerical estimation #673

Description

@seonghobae

Problem

At b85c5896beb24d1b8bb415689c1e6cf4a277a2dc, ReferenceTopicInput::new(...) collects every RelationEdge whose kind is a transition and whose endpoints are in the admitted corpus. collect_transition_pairs(...) does not inspect RelationEvidenceStatus.

That crosses an existing owner boundary. relation_graph::RelationEvidenceStatus explicitly distinguishes Observed from Inferred so estimators and audits do not treat LLM/model/heuristic proposals as raw documentary evidence; Inferred is documented as not yet promoted. Today an inferred TransitionsTo edge therefore enters transition_pairs and changes the relational penalty, eta gradient, GGN precision/diagonal variance, and emitted sequence-edge/lineage counts exactly like observed evidence.

This is scientific activation, not a presentation-only defect. It lets unpromoted model/heuristic output alter numerical estimation and uncertainty.

Required repair

  • topic_measurement numerical admission must use only directly observed transition edges.
  • Inferred transition edges may remain in relation_graph for provenance/review but must not enter the reference estimator's transition_pairs until some explicit owner promotion changes their evidence status.
  • A graph containing only inferred transition edges must fail ReferenceTopicInput::new(...) with InvalidModelInput because there is no numerically admissible transition evidence.
  • A mixed graph must behave as though only its observed transition edges were supplied; no silent promotion or status mutation.
  • Keep relation kind/time validation in relation_graph; do not duplicate source truth or introduce an LLM/model-specific exception in topic_measurement.
  • Update rustdoc/CHANGELOG and trace the exact RED→repair commits.

Non-goals

No change to relation-edge persistence/provenance, no automatic promotion of inferred edges, no tolerance/estimator hyperparameter change, no scanner/gate change, and no claim that observed status alone solves #658/#671 source/event-time provenance.

This issue is independent of #671: #671 authenticates source/event-time coordinates; this issue prevents already-typed but unpromoted inferred relation evidence from becoming numerical authority.

Activity

  1. seonghobae commented on Sep 22, 2026

    @seonghobae
    ContributorAuthor

    Ordinary-forward implementation on #639:

    • RED 400f64b2c1cfff106bd7d318355132ff1a98f42f: public integration contract builds a valid inferred-only TransitionsTo graph and requires ReferenceTopicInput::new(...) to fail with InvalidModelInput. On predecessor b85c5896..., collect_transition_pairs(...) accepts that inferred edge, so the contract is causally red. Its hosted workflows were superseded/cancelled before execution; no hosted RED is claimed.
    • minimal production repair 55274ed1914ccc9fcd49edec5aae7b77eff497cd: topic_measurement::reference now admits transition pairs only when the edge is both a transition kind and RelationEvidenceStatus::Observed; rustdoc now matches ADR 0012's existing "explicit observed predecessor/successor relations only" estimand. No relation graph persistence, estimator arithmetic, tolerance, or hyperparameter changed.
    • CHANGELOG 29d97647bb1a358d3379f9e3f7401b9ac6291e10.
    • mixed-graph hardening 205df30282c6f7b52809e819a1421873d1e81f8d: deterministic reference fits for an observed graph and the same graph plus a distinct inferred cross-cluster transition must be exactly identical, while inferred-only still fails admission.

    The issue remains open until exact-head hosted gates provide current GREEN evidence. This repair does not solve #658/#671 source/event-time provenance; it only prevents unpromoted inferred relation evidence from becoming numerical authority.

  2. seonghobae commented on Sep 22, 2026

    @seonghobae
    ContributorAuthor

    Follow-on owner-authority gap: #675. #673 now correctly prevents RelationEvidenceStatus::Inferred from becoming numerical authority, but RelationEdge::new(...) still lets any public caller supply RelationEvidenceStatus::Observed directly. #675 therefore keeps #673's estimator filter but requires final Observed activation to be backed by an owner-issued Evidence/Temporal Semantics receipt after #527/#658 settle. Do not weaken #673 or add local booleans/digests in topic_measurement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions