Skip to content

feat(analysis): bind prediction-contradiction refusals to an analysis-run profile - #487

Draft
seonghobae wants to merge 5 commits into
feat/copy-identity-analysis-run-gap-004from
feat/prediction-contradiction-analysis-run-gap-004
Draft

feat(analysis): bind prediction-contradiction refusals to an analysis-run profile#487
seonghobae wants to merge 5 commits into
feat/copy-identity-analysis-run-gap-004from
feat/prediction-contradiction-analysis-run-gap-004

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Consolidation status

fold_into_landing_vehicleprediction_contradiction_v1 / tepp.prediction_contradiction.v1 is a Validation / Analysis Run profile and changes the same shared integration surface as #416 (Cargo.lock, crates/analysis_engine/Cargo.toml, crates/analysis_engine/src/lib.rs, DOCUMENTATION.md, docs/TRACEABILITY.md, and docs/adr/README.md). It remains a Draft fold child of #416, not an independent protected-main landing authority.

Current exact child head: e07b2ff9f78ef456ff911b8643710af20921fe54. Current surviving #416 head: 0b7155cc238defb1e55129ff3000658f04b343cf. Retargeting is non-destructive; unique source/tests/doctoring remain here until a real conflict-resolving fold verifies inheritance on the surviving head.

Scientific finding and repair

The initial profile incorrectly treated a deliberately mixed four-class fixture as a production-data prerequisite: assignment_count >= 4 and nonzero covered, partial-overlap, adjacent, and contradictory counts were required during execution/artifact validation. Those Allen support classes are observations, not design strata. A real historical census may legitimately contain only covered predictions or only contradictions; absence of a relation class must remain a truthful zero count.

RED a2892b6ad4f632882f63da39eed2d4706ddf9213 adds covered-only and contradiction-only censuses. Causal source repair a64020152300232cb3214a66b45d97225b6d2b5b removes the artificial minimum/four-class gate while preserving nonempty admitted evidence, MAX_EVIDENCE_UNITS, exact class-count sums, refused_promotion_count + covered_count == assignment_count, cutoff-before-duplicate admission, digest validation, and the fixed claim boundary. 6b0c8de64f41bc11f8bf908e0f9cbe854c1e213c removes predecessor tests that encoded the rejected fixture-as-validity rule.

Fresh docs-to-code review found ADR 0079 still contradicted that repaired source: it remained Accepted on a conflicted fold child and still said a mixed four-class census was required. Commit e07b2ff9f78ef456ff911b8643710af20921fe54 repairs the ADR to Proposed implementation lineage under ADR 0002/0016/0022, removes the false class-strata prerequisite, records sparse-census RED/repair lineage, and leaves canonical ADR identity/status normalization to #437. The shared ADR index remains part of the #416 conflict-resolving fold surface rather than independent architecture authority on this child.

The four-class mixed fixture remains useful coverage because it exercises every PredictionContradictionError mapping; it is not a scientific eligibility condition.

Preserved profile evidence

  • Profile/contract prediction_contradiction_v1; schema tepp.prediction_contradiction.v1.
  • Inference status unmatched_prediction_is_not_observed.
  • Binds existing protected-main prediction_contradiction::refuse_promotion semantics rather than duplicating interval truth.
  • Covered pairs may authorize promotion; partial overlap, adjacency, and disjoint predictions stay hypothetical/refused as appropriate.
  • Request cutoff equality is typed through KnowledgeCutoff::instant().
  • AvailableTime <= knowledge_cutoff admission occurs before duplicate-identity checks, so future-unavailable rows cannot perturb historical identity/count results.
  • MAX_EVIDENCE_UNITS bounds execution admission and artifact validation.
  • contradiction_agreement_rate remains library-side; inspect payloads remain metric-free.
  • Not GPU, not MCMC, not topic birth/split/merge, and not implemented-main.

Exact-head merge authority

Only the eventual surviving #416/successor exact head counts after the fold. Child-head checks/reviews do not transfer. Reacquire all required workflows and qualifying independent review on the eventual surviving head. No self-approval, force push, destructive rebase, routine admin bypass, or child-head evidence transfer.

…-run profile

GAP-004: cutoff-safe prediction_contradiction_v1 / tepp.prediction_contradiction.v1.
Binds refuse_promotion already on protected main.
Distinct from support-edge, summarizes-edge, retrospective-edge,
role-contradiction, subevent-containment, inferred-status, episode-membership,
relation-absence, outcome-order, membership-target, citation-edge, and
copy-identity. contradiction_agreement_rate stays library-side.
AvailableTime cutoff runs before duplicate checks; MAX_EVIDENCE_UNITS bounds
execution and artifact validation.
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant