Skip to content

feat(analysis): bind role-contradiction refusals to an analysis-run profile - #482

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

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

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Consolidation status

fold_into_landing_vehicle — this cutoff-safe role_contradiction_v1 profile targets #416 (feat/copy-identity-analysis-run-gap-004), not protected main. It changes the same Analysis Run/Validation shared Cargo/lib/docs surfaces as #416, so it remains a Draft fold child rather than independent architecture authority.

Current exact source head: 506dbae236a4484301b704b6c6a05b20faf0fe69.

Preserved profile evidence

  • Profile/contract role_contradiction_v1; schema tepp.role_contradiction.v1.
  • Inference status customer_competitor_cannot_share_group_role_is_not_entity_class.
  • Source-specific implementation crates/analysis_engine/src/role_contradiction_artifact.rs plus cutoff/execution contracts and doctoring.
  • Request cutoff equality is typed through KnowledgeCutoff::instant().
  • MAX_EVIDENCE_UNITS bounds execution admission and artifact validation.
  • Terminal summary.validation_status is validated; the domain claim remains in inference_status.
  • identity_recovery_rate remains library-side and inspect payloads remain metric-free.

Leakage repair

Fresh source review found a historical-cutoff leak: census_admitted_assignments inserted every assignment identity into the duplicate-detection set before excluding evidence whose available_time was after the knowledge cutoff. A future-unavailable assignment reusing an eligible identity could therefore change a historical run from success to DuplicateEvidence, even though that future evidence was not yet admissible.

  • RED 181804423d4b99448b356cf8d6dc00fcca90716d adds future_duplicate_identity_cannot_change_a_historical_cutoff_result, proving that a future duplicate must not alter the cutoff-bound census.
  • Causal repair 506dbae236a4484301b704b6c6a05b20faf0fe69 applies the availability cutoff before duplicate-identity admission. Duplicate identities among evidence actually available at the cutoff still fail closed.

This ordering is part of TEPP's leakage-safe AvailableTime/knowledge-cutoff contract and must survive the eventual #416 fold. Hosted exact-head evidence must be reacquired on this new source head; predecessor checks are stale.

After retarget GitHub still reports the child as non-mergeable against #416 because the shared Cargo/lib/docs surfaces require a real conflict-resolving fold. Do not land this child independently and do not discard its source/tests/doctoring or RED/repair lineage.

ADR 0075 remains implementation lineage pending repository-wide normalization under #437; implementation maturity does not create branch-local architecture authority.

Merge authority

Only the eventual surviving #416/successor exact head counts after the fold. Reacquire all live required workflows, resolve current review threads, and satisfy the live organization ruleset's qualifying independent-review requirement on that surviving head. No self-approval, force push, routine admin bypass, or stale evidence transfer.

…rofile

GAP-004: cutoff-safe role_contradiction_v1 / tepp.role_contradiction.v1.
Binds refuse_contradictory_roles and refuse_role_as_entity_class already
on protected main. Distinct from subevent-containment, inferred-status,
episode-membership, relation-absence, outcome-order, membership-target,
and copy-identity. identity_recovery_rate stays library-side.
@coderabbitai

coderabbitai Bot commented Sep 2, 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant