From 7b64e8eba5ed8c216d3514e3b8fbcf2ce485ed52 Mon Sep 17 00:00:00 2001 From: Filipp Balakin Date: Thu, 30 Jul 2026 12:11:22 +0300 Subject: [PATCH 1/3] test: pin the curation_decision_v2 wire contract and per-target applicability --- .../memory/curation_derivation_tests.py | 146 +++--- .../engram/memory/curation_judge_tests.py | 433 +++++------------- 2 files changed, 208 insertions(+), 371 deletions(-) diff --git a/apps/backend/engram/memory/curation_derivation_tests.py b/apps/backend/engram/memory/curation_derivation_tests.py index f715302bf1..267b76900e 100644 --- a/apps/backend/engram/memory/curation_derivation_tests.py +++ b/apps/backend/engram/memory/curation_derivation_tests.py @@ -20,7 +20,7 @@ ClaimEvidence, CurationEvidenceContext, CurationJudgeInput, - CurationJudgeVerdictV1, + CurationJudgeVerdict, ) from engram.memory.curation_shortlist import CurationShortlist, CurationShortlistEntry from engram.memory.deterministic_gates import EffectiveCandidateScope, SanitizedCandidateView @@ -146,23 +146,26 @@ def _relations(data: CurationJudgeInput, assignment: tuple[str, ...]) -> dict[uu } -def _verdict(decision: DerivedDecision, data: CurationJudgeInput, applicability: str) -> CurationJudgeVerdictV1: - return CurationJudgeVerdictV1( - schema_version=1, +def _applicability(data: CurationJudgeInput, assignment: tuple[str, ...]) -> dict[uuid.UUID, str]: + return {entry.memory_version_id: value for entry, value in zip(data.shortlist.entries, assignment, strict=True)} + + +def _verdict(decision: DerivedDecision, data: CurationJudgeInput) -> CurationJudgeVerdict: + return CurationJudgeVerdict( + schema_version=2, outcome=decision.outcome, relation=decision.relation, target_memory_version_id=decision.target_memory_version_id, - candidate_evidence_refs=data.evidence.candidate.refs, comparisons=(), - applicability=applicability, + applicability=decision.applicability, temporal_order=decision.temporal_order, reason_code=decision.reason_code, reason='derived decision', ) -def _single_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], str]]: - rows: list[tuple[CurationJudgeInput, tuple[str, ...], str]] = [] +def _single_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]]: + rows: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]] = [] for relation, candidate_tier, target_tier, complete, conflict, same_visibility in itertools.product( _RELATIONS, _TIERS, _TIERS, (True, False), (True, False), (True, False) ): @@ -181,7 +184,7 @@ def _single_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], ), ) for applicability in _APPLICABILITIES: - rows.append((data, (relation,), applicability)) + rows.append((data, (relation,), (applicability,))) return rows @@ -194,8 +197,8 @@ def _single_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], ) -def _two_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], str]]: - rows: list[tuple[CurationJudgeInput, tuple[str, ...], str]] = [] +def _two_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]]: + rows: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]] = [] for first_spec, second_spec, candidate_tier, complete in itertools.product( _PAIR_SPECS, _PAIR_SPECS, _TIERS, (True, False) ): @@ -206,14 +209,14 @@ def _two_target_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], str specs=(first_spec, second_spec), ) for assignment in itertools.product(_RELATIONS, _RELATIONS): - for applicability in _APPLICABILITIES: + for applicability in itertools.product(_APPLICABILITIES, _APPLICABILITIES): rows.append((data, assignment, applicability)) return rows -def _empty_refs_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], str]]: - rows: list[tuple[CurationJudgeInput, tuple[str, ...], str]] = [] +def _empty_refs_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]]: + rows: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]] = [] for relation, complete, candidate_has_refs, target_has_refs, target_at in itertools.product( _RELATIONS, (True, False), (True, False), (True, False), _TARGET_MOMENTS ): @@ -233,13 +236,13 @@ def _empty_refs_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], str ), ) for applicability in _APPLICABILITIES: - rows.append((data, (relation,), applicability)) + rows.append((data, (relation,), (applicability,))) return rows @pytest.fixture(scope='module') -def f_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], str]]: +def f_lattice() -> list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]]: return _single_target_lattice() + _two_target_lattice() + _empty_refs_lattice() @@ -248,30 +251,30 @@ def _target_facts(facts: DerivationFacts, target_id: uuid.UUID | None) -> Target def test_derivation_never_raises_over_the_lattice( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) - derive_decision(facts, _relations(data, assignment), applicability) + derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) def test_every_derived_decision_passes_the_evidence_policy( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, assignment), applicability) + decision = derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) if decision is None: continue - curation_judge._apply_evidence_policy(_verdict(decision, data, applicability), data) + curation_judge._apply_evidence_policy(_verdict(decision, data), data) def test_mutation_outcomes_never_target_cross_visibility_entries( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, assignment), applicability) + decision = derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) if decision is None or decision.outcome not in _MUTATIONS: continue target = _target_facts(facts, decision.target_memory_version_id) @@ -280,11 +283,11 @@ def test_mutation_outcomes_never_target_cross_visibility_entries( def test_merge_revise_supersede_never_touch_a_conflicted_target( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, assignment), applicability) + decision = derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) if decision is None or decision.outcome not in _CONFLICT_BLOCKED: continue target = _target_facts(facts, decision.target_memory_version_id) @@ -293,11 +296,11 @@ def test_merge_revise_supersede_never_touch_a_conflicted_target( def test_mutation_outcomes_require_both_tiers_in_the_supported_set( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, assignment), applicability) + decision = derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) if decision is None or decision.outcome not in _MUTATIONS: continue target = _target_facts(facts, decision.target_memory_version_id) @@ -307,35 +310,36 @@ def test_mutation_outcomes_require_both_tiers_in_the_supported_set( def test_complete_comparison_always_yields_a_decision( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) if not facts.comparison_complete: continue - assert derive_decision(facts, _relations(data, assignment), applicability) is not None + assert derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) is not None def test_no_decision_implies_incomplete_comparison( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) - if derive_decision(facts, _relations(data, assignment), applicability) is None: + if derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) is None: assert facts.comparison_complete is False def test_derivation_is_deterministic( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: for data, assignment, applicability in f_lattice: facts = build_derivation_facts(data) relations = _relations(data, assignment) - assert derive_decision(facts, relations, applicability) == derive_decision(facts, relations, applicability) + values = _applicability(data, applicability) + assert derive_decision(facts, relations, values) == derive_decision(facts, relations, values) def test_empty_feasible_set_forbids_every_relation_assignment( - f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], str]], + f_lattice: list[tuple[CurationJudgeInput, tuple[str, ...], tuple[str, ...]]], ) -> None: checked = 0 seen: set[int] = set() @@ -349,7 +353,7 @@ def test_empty_feasible_set_forbids_every_relation_assignment( checked += 1 for assignment in itertools.product(_RELATIONS, repeat=len(facts.targets)): for applicability in _APPLICABILITIES: - assert derive_decision(facts, _relations(data, assignment), applicability) is None + assert derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) is None assert checked > 0 @@ -359,7 +363,9 @@ def test_ties_within_a_rung_resolve_to_shortlist_order() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec, spec)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('equivalent', 'equivalent')), 'same') + decision = derive_decision( + facts, _relations(data, ('equivalent', 'equivalent')), _applicability(data, ('same', 'same')) + ) assert decision is not None assert decision.outcome == 'merge_evidence' @@ -371,7 +377,9 @@ def test_open_conflict_outranks_a_merge_on_another_target() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec, spec)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('equivalent', 'mutually_incompatible')), 'same') + decision = derive_decision( + facts, _relations(data, ('equivalent', 'mutually_incompatible')), _applicability(data, ('same', 'same')) + ) assert decision is not None assert decision.outcome == 'open_conflict' @@ -385,7 +393,9 @@ def test_supersede_outranks_revise_on_another_target() -> None: data = _judge_input(candidate_tier='corroborated', candidate_at=_EQUAL, complete=True, specs=(spec, spec)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('candidate_revises', 'candidate_supersedes')), 'same') + decision = derive_decision( + facts, _relations(data, ('candidate_revises', 'candidate_supersedes')), _applicability(data, ('same', 'same')) + ) assert decision is not None assert decision.outcome == 'supersede_memory' @@ -399,7 +409,7 @@ def test_revise_fires_when_no_supersede_relation_is_asserted() -> None: data = _judge_input(candidate_tier='corroborated', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('candidate_revises',)), 'same') + decision = derive_decision(facts, _relations(data, ('candidate_revises',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'revise_memory' @@ -413,7 +423,7 @@ def test_redundant_target_outranks_publish_new() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('redundant',)), 'same') + decision = derive_decision(facts, _relations(data, ('redundant',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'reject_candidate' @@ -428,7 +438,7 @@ def test_redundant_target_below_tier_falls_through_to_publish_new() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('redundant',)), 'same') + decision = derive_decision(facts, _relations(data, ('redundant',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'publish_new' @@ -443,15 +453,18 @@ def test_publish_new_relation_is_unrelated_only_when_every_comparison_is_unrelat data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - assert derive_decision(facts, _relations(data, ('unrelated',)), 'same').relation == 'unrelated' - assert derive_decision(facts, _relations(data, ('compatible_distinct',)), 'same').relation == 'compatible_distinct' + applicability = _applicability(data, ('same',)) + + assert derive_decision(facts, _relations(data, ('unrelated',)), applicability).relation == 'unrelated' + distinct = derive_decision(facts, _relations(data, ('compatible_distinct',)), applicability) + assert distinct.relation == 'compatible_distinct' def test_empty_shortlist_publish_new_is_unrelated_and_not_applicable() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=()) facts = build_derivation_facts(data) - decision = derive_decision(facts, {}, 'same') + decision = derive_decision(facts, {}, {}) assert decision is not None assert decision.outcome == 'publish_new' @@ -465,7 +478,7 @@ def test_zero_evidence_candidate_claiming_supersession_is_rejected_as_unsupporte data = _judge_input(candidate_tier='none', candidate_at=_LATER, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('candidate_supersedes',)), 'same') + decision = derive_decision(facts, _relations(data, ('candidate_supersedes',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'reject_candidate' @@ -481,7 +494,7 @@ def test_open_conflict_is_skipped_when_comparison_is_incomplete() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=False, specs=(spec,)) facts = build_derivation_facts(data) - assert derive_decision(facts, _relations(data, ('mutually_incompatible',)), 'same') is None + assert derive_decision(facts, _relations(data, ('mutually_incompatible',)), _applicability(data, ('same',))) is None def test_open_conflict_is_skipped_when_precedence_is_deterministic() -> None: @@ -489,7 +502,7 @@ def test_open_conflict_is_skipped_when_precedence_is_deterministic() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('mutually_incompatible',)), 'same') + decision = derive_decision(facts, _relations(data, ('mutually_incompatible',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'publish_new' @@ -502,7 +515,7 @@ def test_open_conflict_is_skipped_when_either_side_has_no_refs() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('mutually_incompatible',)), 'same') + decision = derive_decision(facts, _relations(data, ('mutually_incompatible',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'publish_new' @@ -514,7 +527,7 @@ def test_mutation_rungs_require_same_applicability() -> None: facts = build_derivation_facts(data) for relation in ('equivalent', 'candidate_revises', 'candidate_supersedes'): - decision = derive_decision(facts, _relations(data, (relation,)), 'different') + decision = derive_decision(facts, _relations(data, (relation,)), _applicability(data, ('different',))) assert decision is not None assert decision.outcome == 'publish_new' @@ -524,7 +537,7 @@ def test_redundant_rung_ignores_applicability() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('redundant',)), 'different') + decision = derive_decision(facts, _relations(data, ('redundant',)), _applicability(data, ('different',))) assert decision is not None assert decision.outcome == 'reject_candidate' @@ -536,7 +549,7 @@ def test_temporal_order_reports_target_newer() -> None: data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) facts = build_derivation_facts(data) - decision = derive_decision(facts, _relations(data, ('equivalent',)), 'same') + decision = derive_decision(facts, _relations(data, ('equivalent',)), _applicability(data, ('same',))) assert decision is not None assert decision.outcome == 'merge_evidence' @@ -601,3 +614,34 @@ def test_facts_ignore_shortlist_entries_without_evidence() -> None: assert facts.targets[0].tier == 'none' assert facts.targets[0].has_refs is False assert facts.targets[0].candidate_precedes is False + + +def test_applicability_is_evaluated_per_target() -> None: + spec = _TargetSpec(tier='supported', same_visibility=True, has_open_conflict=False, target_at=_EQUAL) + data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec, spec)) + facts = build_derivation_facts(data) + first, second = (entry.memory_version_id for entry in data.shortlist.entries) + + decision = derive_decision( + facts, + _relations(data, ('equivalent', 'equivalent')), + _applicability(data, ('different', 'same')), + ) + + assert decision is not None + assert decision.outcome == 'merge_evidence' + assert decision.target_memory_version_id == second + assert decision.applicability == 'same' + assert decision.target_memory_version_id != first + + +def test_targetless_decision_reports_not_applicable_applicability() -> None: + spec = _TargetSpec(tier='supported', same_visibility=True, has_open_conflict=False, target_at=_EQUAL) + data = _judge_input(candidate_tier='supported', candidate_at=_EQUAL, complete=True, specs=(spec,)) + facts = build_derivation_facts(data) + + decision = derive_decision(facts, _relations(data, ('unrelated',)), _applicability(data, ('same',))) + + assert decision is not None + assert decision.outcome == 'publish_new' + assert decision.applicability == 'not_applicable' diff --git a/apps/backend/engram/memory/curation_judge_tests.py b/apps/backend/engram/memory/curation_judge_tests.py index 42862deaf0..c64951e02f 100644 --- a/apps/backend/engram/memory/curation_judge_tests.py +++ b/apps/backend/engram/memory/curation_judge_tests.py @@ -262,53 +262,23 @@ def _two_entry_fixture() -> tuple[object, object, tuple[object, object], object] def _payload( - entry: object, *, - outcome: str = 'publish_new', relation: str = 'unrelated', - target: str | None = None, - candidate_refs: list[str] | None = None, - target_refs: list[str] | None = None, - comparisons: list[dict[str, object]] | None = None, - reason_code: str = 'distinct_claim', applicability: str = 'same', - temporal_order: str = 'not_applicable', + comparisons: list[dict[str, object]] | None = None, reason: str = 'distinct claim', ) -> dict[str, object]: - memory_version_id = str(entry.memory_version_id) return { - 'schema_version': 1, - 'outcome': outcome, - 'relation': relation, - 'target_memory_version_id': target, - 'candidate_evidence_refs': ( - candidate_refs if candidate_refs is not None else ['candidate-ref', 'candidate-ref-2'] - ), + 'schema_version': 2, 'comparisons': comparisons if comparisons is not None - else [ - { - 'memory_version_id': memory_version_id, - 'relation': relation, - 'target_evidence_refs': target_refs if target_refs is not None else ['target-ref'], - }, - ], - 'applicability': applicability, - 'temporal_order': temporal_order, - 'reason_code': reason_code, + else [{'index': 1, 'relation': relation, 'applicability': applicability}], 'reason': reason, } def _manifest_comparisons(entries: tuple[object, ...]) -> list[dict[str, object]]: - return [ - { - 'memory_version_id': str(entry.memory_version_id), - 'relation': 'unrelated', - 'target_evidence_refs': [f'target-ref-{index + 1}'], - } - for index, entry in enumerate(entries) - ] + return [{'index': index, 'relation': 'unrelated', 'applicability': 'same'} for index in range(1, len(entries) + 1)] def _semantic_snapshot(project_id: UUID) -> dict[str, tuple[object, ...]]: @@ -365,29 +335,21 @@ def test_malformed_judge_output_has_no_default_semantic_outcome() -> None: @pytest.mark.django_db -def test_judge_cannot_reference_memory_or_evidence_outside_manifest() -> None: - module, data, entry, candidate = _fixture() - foreign_target = str(uuid.uuid4()) - foreign_payload = _payload(entry, target=foreign_target, relation='equivalent', outcome='merge_evidence') +@pytest.mark.parametrize('index', [0, 2, -1]) +def test_judge_cannot_reference_a_comparison_outside_the_shortlist(index: int) -> None: + module, data, _entry, candidate = _fixture() + foreign_payload = _payload(comparisons=[{'index': index, 'relation': 'equivalent', 'applicability': 'same'}]) with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: module.parse_curation_judge_verdict(json.dumps(foreign_payload), data) assert getattr(error.value, 'code', None) == 'judge_invalid_output' - foreign_payload = _payload(entry, relation='equivalent', outcome='merge_evidence') - foreign_payload['comparisons'][0]['target_evidence_refs'] = ['not-in-manifest'] - with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: - module.parse_curation_judge_verdict(json.dumps(foreign_payload), data) - - assert getattr(error.value, 'code', None) == 'judge_reference_invalid' - @pytest.mark.django_db def test_fallback_verdict_must_pass_the_same_strict_schema(monkeypatch: pytest.MonkeyPatch) -> None: module, data, entries, candidate = _two_entry_fixture() data = replace(data, candidate=replace(data.candidate, body='Use sk-abcdefghijklmnop in production')) - entry = entries[0] candidate.refresh_from_db() organization, project = candidate.organization, candidate.project session_team = candidate.team @@ -395,7 +357,7 @@ def test_fallback_verdict_must_pass_the_same_strict_schema(monkeypatch: pytest.M primary.fallback_enabled = True primary.save(update_fields=['fallback_enabled']) create_curation_policy(organization, session_team, project, task_type='generation') - malformed_fallback = _payload(entry, comparisons=_manifest_comparisons(entries)) + malformed_fallback = _payload(comparisons=_manifest_comparisons(entries)) malformed_fallback['comparisons'][0]['nested'] = {'forbidden': True} calls: list[object] = [] @@ -419,25 +381,18 @@ def call(self, call_input: object) -> ProviderCallResult: assert getattr(error.value, 'code', None) == 'judge_invalid_output' assert len(calls) == 2 - assert all(call.response_kind == 'curation_decision_v1' for call in calls) + assert all(call.response_kind == 'curation_decision_v2' for call in calls) prompt = json.loads(calls[0].prompt) - assert [item['memory_version_id'] for item in prompt['comparisons']] == [ - str(entry.memory_version_id) for entry in entries - ] + assert [item['index'] for item in prompt['comparisons']] == list(range(1, len(entries) + 1)) assert 'vector_distance' not in calls[0].prompt assert 'sk-' not in calls[0].prompt @pytest.mark.django_db def test_destructive_verdict_below_evidence_threshold_is_not_applied() -> None: - module, data, entry, candidate = _fixture(comparison_complete=False) + module, data, _entry, candidate = _fixture(comparison_complete=False) destructive = _payload( - entry, - outcome='supersede_memory', relation='candidate_supersedes', - target=str(entry.memory_version_id), - reason_code='ordered_replacement', - temporal_order='candidate_newer', reason='destructive outcome lacks complete comparison', ) @@ -457,13 +412,7 @@ def test_similarity_point_999_cannot_choose_destructive_outcome() -> None: evidence=replace(data.evidence, candidate=module.ClaimEvidence(tier='supported', refs=('candidate-ref',))), ) destructive = _payload( - ranked_entry, - outcome='supersede_memory', relation='candidate_supersedes', - target=str(ranked_entry.memory_version_id), - candidate_refs=['candidate-ref'], - reason_code='ordered_replacement', - temporal_order='candidate_newer', reason='high similarity is retrieval evidence only', ) @@ -479,18 +428,8 @@ def test_conflict_tag_blocks_revise_and_supersede_targets() -> None: module, data, entry, candidate = _fixture() conflicted = replace(entry, has_open_conflict=True) data = replace(data, shortlist=replace(data.shortlist, entries=(conflicted,))) - for outcome, relation, reason_code in ( - ('revise_memory', 'candidate_revises', 'same_subject_revision'), - ('supersede_memory', 'candidate_supersedes', 'ordered_replacement'), - ): - payload = _payload( - conflicted, - outcome=outcome, - relation=relation, - target=str(conflicted.memory_version_id), - reason_code=reason_code, - temporal_order='candidate_newer', - ) + for relation in ('candidate_revises', 'candidate_supersedes'): + payload = _payload(relation=relation) with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) assert verdict.outcome == 'publish_new' @@ -502,15 +441,7 @@ def test_conflict_tag_blocks_merge_evidence_target() -> None: module, data, entry, candidate = _fixture() conflicted = replace(entry, has_open_conflict=True) data = replace(data, shortlist=replace(data.shortlist, entries=(conflicted,))) - payload = _payload( - conflicted, - outcome='merge_evidence', - relation='equivalent', - target=str(conflicted.memory_version_id), - reason_code='equivalent_claim', - applicability='same', - temporal_order='not_applicable', - ) + payload = _payload(relation='equivalent') with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -519,24 +450,8 @@ def test_conflict_tag_blocks_merge_evidence_target() -> None: assert verdict.target_memory_version_id is None -def _conflict_payload( - entry: object, - *, - candidate_refs: list[str] | None = None, - target_refs: list[str] | None = None, -) -> dict[str, object]: - return _payload( - entry, - outcome='open_conflict', - relation='mutually_incompatible', - target=str(entry.memory_version_id), - candidate_refs=candidate_refs, - target_refs=target_refs, - reason_code='same_scope_contradiction', - applicability='same', - temporal_order='unordered', - reason='same scope contradiction', - ) +def _conflict_payload() -> dict[str, object]: + return _payload(relation='mutually_incompatible', reason='same scope contradiction') def _conflict_data( @@ -566,7 +481,7 @@ def _conflict_data( def test_open_conflict_opens_with_genuinely_unordered_evidence() -> None: module, data, entry, candidate = _fixture() data = _conflict_data(module, data, entry, candidate_at=_TARGET_EVIDENCE_AT, target_at=_TARGET_EVIDENCE_AT) - payload = _conflict_payload(entry, candidate_refs=['candidate-ref']) + payload = _conflict_payload() with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -577,7 +492,7 @@ def test_open_conflict_opens_with_genuinely_unordered_evidence() -> None: @pytest.mark.django_db def test_parse_judge_verdict_strips_markdown_json_fence() -> None: module, data, entry, candidate = _fixture() - payload = _payload(entry) + payload = _payload() fenced = f'```json\n{json.dumps(payload)}\n```' with _unchanged(candidate.project_id): @@ -592,7 +507,7 @@ def test_open_conflict_denied_when_comparison_incomplete() -> None: data = _conflict_data( module, data, entry, candidate_at=_TARGET_EVIDENCE_AT, target_at=_TARGET_EVIDENCE_AT, complete=False ) - payload = _conflict_payload(entry, candidate_refs=['candidate-ref']) + payload = _conflict_payload() with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -604,7 +519,7 @@ def test_open_conflict_denied_when_comparison_incomplete() -> None: def test_open_conflict_denied_when_deterministic_precedence_exists() -> None: module, data, entry, candidate = _fixture() data = _conflict_data(module, data, entry, candidate_at=_CANDIDATE_EVIDENCE_AT, target_at=_TARGET_EVIDENCE_AT) - payload = _conflict_payload(entry, candidate_refs=['candidate-ref']) + payload = _conflict_payload() with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -628,7 +543,7 @@ def test_open_conflict_denied_when_evidence_refs_empty(side: str) -> None: candidate_refs=candidate_refs, target_refs=target_refs, ) - payload = _conflict_payload(entry, candidate_refs=list(candidate_refs), target_refs=list(target_refs)) + payload = _conflict_payload() with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -645,14 +560,17 @@ def test_open_conflict_denied_when_evidence_refs_empty(side: str) -> None: lambda payload: payload.pop('reason'), lambda payload: payload['comparisons'][0].update({'extra': 1}), lambda payload: payload['comparisons'][0].pop('relation'), + lambda payload: payload['comparisons'][0].pop('applicability'), lambda payload: payload.update({'target_memory_version_id': 'not-a-uuid'}), + lambda payload: payload.update({'outcome': 'publish_new'}), + lambda payload: payload.update({'candidate_evidence_refs': ['candidate-ref']}), ], ) def test_judge_schema_rejects_recursive_extra_and_missing_keys( mutator: Callable[[dict[str, object]], object], ) -> None: - module, data, entry, candidate = _fixture() - payload = _payload(entry) + module, data, _entry, candidate = _fixture() + payload = _payload() if mutator is not None: mutator(payload) with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: @@ -665,16 +583,15 @@ def test_judge_schema_rejects_recursive_extra_and_missing_keys( ('field', 'value'), [ ('schema_version', True), - ('schema_version', 1.0), - ('target_memory_version_id', 1), - ('candidate_evidence_refs', [True]), + ('schema_version', 2.0), + ('schema_version', 1), ('comparisons', {}), - ('applicability', False), + ('reason', 5), ], ) def test_judge_schema_rejects_bool_as_int_and_wrong_primitive_types(field: str, value: object) -> None: - module, data, entry, candidate = _fixture() - payload = _payload(entry) + module, data, _entry, candidate = _fixture() + payload = _payload() payload[field] = value with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -683,60 +600,50 @@ def test_judge_schema_rejects_bool_as_int_and_wrong_primitive_types(field: str, @pytest.mark.django_db @pytest.mark.parametrize( - ('outcome', 'relation', 'target', 'reason_code', 'applicability', 'temporal_order', 'candidate_tier', 'complete'), + ('field', 'value'), [ - ('publish_new', 'unrelated', None, 'distinct_claim', 'same', 'not_applicable', 'supported', True), - ('publish_new', 'compatible_distinct', None, 'distinct_claim', 'same', 'not_applicable', 'supported', True), - ('merge_evidence', 'equivalent', 'target', 'equivalent_claim', 'same', 'not_applicable', 'supported', True), - ( - 'revise_memory', - 'candidate_revises', - 'target', - 'same_subject_revision', - 'same', - 'candidate_newer', - 'corroborated', - True, - ), - ( - 'supersede_memory', - 'candidate_supersedes', - 'target', - 'ordered_replacement', - 'same', - 'candidate_newer', - 'corroborated', - True, - ), - ('reject_candidate', 'redundant', 'target', 'redundant_claim', 'same', 'not_applicable', 'supported', True), - ('reject_candidate', 'unsupported', None, 'unsupported_claim', 'same', 'not_applicable', 'none', True), - ( - 'open_conflict', - 'mutually_incompatible', - 'target', - 'same_scope_contradiction', - 'same', - 'unordered', - 'supported', - True, - ), + ('index', True), + ('index', '1'), + ('index', 1.0), + ('relation', 'invented_relation'), + ('relation', False), + ('applicability', 'maybe'), + ('applicability', False), ], ) -def test_judge_allows_only_locked_outcome_relation_target_combinations( - outcome: str, +def test_judge_comparison_fields_reject_wrong_types_and_unknown_enums(field: str, value: object) -> None: + module, data, _entry, candidate = _fixture() + payload = _payload() + payload['comparisons'][0][field] = value + with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: + module.parse_curation_judge_verdict(json.dumps(payload), data) + assert getattr(error.value, 'code', None) == 'judge_invalid_output' + + +@pytest.mark.django_db +@pytest.mark.parametrize( + ('relation', 'candidate_tier', 'outcome', 'derived_relation'), + [ + ('unrelated', 'supported', 'publish_new', 'unrelated'), + ('compatible_distinct', 'supported', 'publish_new', 'compatible_distinct'), + ('equivalent', 'supported', 'merge_evidence', 'equivalent'), + ('candidate_revises', 'corroborated', 'revise_memory', 'candidate_revises'), + ('candidate_supersedes', 'corroborated', 'supersede_memory', 'candidate_supersedes'), + ('redundant', 'supported', 'reject_candidate', 'redundant'), + ('unsupported', 'none', 'reject_candidate', 'unsupported'), + ('mutually_incompatible', 'supported', 'open_conflict', 'mutually_incompatible'), + ], +) +def test_each_relation_derives_its_locked_outcome( relation: str, - target: str | None, - reason_code: str, - applicability: str, - temporal_order: str, candidate_tier: str, - complete: bool, + outcome: str, + derived_relation: str, ) -> None: - module, data, entry, candidate = _fixture() + module, data, _entry, candidate = _fixture() candidate_at = _TARGET_EVIDENCE_AT if outcome == 'open_conflict' else _CANDIDATE_EVIDENCE_AT data = replace( data, - shortlist=replace(data.shortlist, comparison_complete=complete), evidence=replace( data.evidence, candidate=module.ClaimEvidence( @@ -746,66 +653,43 @@ def test_judge_allows_only_locked_outcome_relation_target_combinations( ), ), ) - target_id = str(entry.memory_version_id) if target else None - payload = _payload( - entry, - outcome=outcome, - relation=relation, - target=target_id, - candidate_refs=[] if candidate_tier == 'none' else None, - reason_code=reason_code, - applicability=applicability, - temporal_order=temporal_order, - ) + payload = _payload(relation=relation) with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) assert verdict.outcome == outcome - assert verdict.relation == relation + assert verdict.relation == derived_relation @pytest.mark.django_db -def test_judge_requires_comparisons_exactly_once_in_manifest_order() -> None: - module, data, (first, second), candidate = _two_entry_fixture() - comparisons = [ - { - 'memory_version_id': str(first.memory_version_id), - 'relation': 'unrelated', - 'target_evidence_refs': ['target-ref'], - }, - { - 'memory_version_id': str(second.memory_version_id), - 'relation': 'unrelated', - 'target_evidence_refs': ['target-ref-2'], - }, - ] - payload = _payload(first, comparisons=comparisons) - payload['comparisons'] = [comparisons[0]] - with _unchanged(candidate.project_id), pytest.raises(ValueError): - module.parse_curation_judge_verdict(json.dumps(payload), data) - payload['comparisons'] = [comparisons[0], comparisons[0]] - with _unchanged(candidate.project_id), pytest.raises(ValueError): - module.parse_curation_judge_verdict(json.dumps(payload), data) - payload['comparisons'] = list(reversed(comparisons)) - with _unchanged(candidate.project_id), pytest.raises(ValueError): - module.parse_curation_judge_verdict(json.dumps(payload), data) +def test_judge_requires_one_comparison_per_shortlist_entry_by_index() -> None: + module, data, entries, candidate = _two_entry_fixture() + comparisons = _manifest_comparisons(entries) + for broken in ([comparisons[0]], [comparisons[0], comparisons[0]], [*comparisons, comparisons[0]]): + payload = _payload(comparisons=broken) + with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: + module.parse_curation_judge_verdict(json.dumps(payload), data) + assert getattr(error.value, 'code', None) == 'judge_invalid_output' @pytest.mark.django_db -@pytest.mark.parametrize('refs', [['candidate-ref'] * 2, ['invented-ref'], [f'ref-{index}' for index in range(17)]]) -def test_judge_evidence_refs_are_unique_manifest_tokens_and_capped_at_sixteen(refs: list[str]) -> None: - module, data, entry, candidate = _fixture() - payload = _payload(entry, candidate_refs=refs) - with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: - module.parse_curation_judge_verdict(json.dumps(payload), data) - expected_code = 'judge_reference_invalid' if refs == ['invented-ref'] else 'judge_invalid_output' - assert getattr(error.value, 'code', None) == expected_code +def test_judge_accepts_comparisons_in_any_index_order() -> None: + module, data, entries, candidate = _two_entry_fixture() + comparisons = _manifest_comparisons(entries) + comparisons[1]['relation'] = 'equivalent' + payload = _payload(comparisons=list(reversed(comparisons))) + + with _unchanged(candidate.project_id): + verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) + + assert verdict.outcome == 'merge_evidence' + assert verdict.target_memory_version_id == entries[1].memory_version_id @pytest.mark.django_db @pytest.mark.parametrize('reason', ['', 'x' * 501, 'Use sk-abcdefghijklmnop in production']) def test_judge_reason_is_bounded_and_redacted(reason: str) -> None: - module, data, entry, candidate = _fixture() - payload = _payload(entry, reason=reason) + module, data, _entry, candidate = _fixture() + payload = _payload(reason=reason) with _unchanged(candidate.project_id), pytest.raises(ValueError) as error: module.parse_curation_judge_verdict(json.dumps(payload), data) assert getattr(error.value, 'code', None) == 'judge_invalid_output' @@ -1058,19 +942,7 @@ def test_corrupt_target_provenance_raises_operational_retry_without_downgrade() @pytest.mark.django_db def test_targetless_outcome_is_overridden_by_an_identity_relation_comparison() -> None: module, data, entry, candidate = _fixture() - payload = _payload( - entry, - outcome='publish_new', - relation='unrelated', - target=None, - comparisons=[ - { - 'memory_version_id': str(entry.memory_version_id), - 'relation': 'equivalent', - 'target_evidence_refs': ['target-ref'], - } - ], - ) + payload = _payload(comparisons=[{'index': 1, 'relation': 'equivalent', 'applicability': 'same'}]) with _unchanged(candidate.project_id): verdict = module.parse_curation_judge_verdict(json.dumps(payload), data) @@ -1082,7 +954,7 @@ def test_targetless_outcome_is_overridden_by_an_identity_relation_comparison() - @pytest.mark.django_db def test_supersede_requires_deterministic_precedence_not_provider_claim() -> None: - module, data, entry, candidate = _fixture() + module, data, _entry, candidate = _fixture() data = replace( data, evidence=replace( @@ -1094,13 +966,7 @@ def test_supersede_requires_deterministic_precedence_not_provider_claim() -> Non ), ) payload = _payload( - entry, - outcome='supersede_memory', relation='candidate_supersedes', - target=str(entry.memory_version_id), - reason_code='ordered_replacement', - applicability='same', - temporal_order='candidate_newer', reason='provider asserts precedence the evidence does not support', ) @@ -1113,15 +979,10 @@ def test_supersede_requires_deterministic_precedence_not_provider_claim() -> Non @pytest.mark.django_db def test_supersede_requires_same_applicability() -> None: - module, data, entry, candidate = _fixture() + module, data, _entry, candidate = _fixture() payload = _payload( - entry, - outcome='supersede_memory', relation='candidate_supersedes', - target=str(entry.memory_version_id), - reason_code='ordered_replacement', applicability='different', - temporal_order='candidate_newer', reason='supersession across a different applicability is not authorized', ) @@ -1162,7 +1023,7 @@ def test_judge_result_carries_comparison_manifest_binding(monkeypatch: pytest.Mo organization, project = candidate.organization, candidate.project session_team = candidate.team create_curation_policy(organization, session_team, project, task_type='curation') - verdict_body = json.dumps(_payload(entry)) + verdict_body = json.dumps(_payload()) class GatewayStub: def call(self, call_input: object) -> ProviderCallResult: @@ -1191,7 +1052,7 @@ def test_judge_call_carries_decision_system_prompt(monkeypatch: pytest.MonkeyPat organization, project = candidate.organization, candidate.project session_team = candidate.team create_curation_policy(organization, session_team, project, task_type='curation') - verdict_body = json.dumps(_payload(entry)) + verdict_body = json.dumps(_payload()) calls: list[object] = [] class GatewayStub: @@ -1212,8 +1073,8 @@ def call(self, call_input: object) -> ProviderCallResult: assert calls assert calls[0].system_prompt == module._CURATION_JUDGE_SYSTEM_PROMPT - assert 'curation_judge_input.v1' in calls[0].system_prompt - assert 'reject_candidate form that matches the candidate evidence' in calls[0].system_prompt + assert 'curation_judge_input.v2' in calls[0].system_prompt + assert 'the system derives the outcome' in calls[0].system_prompt assert 'Allowed outcome and relation combinations' not in calls[0].system_prompt assert 'exactly one object per input comparisons entry' not in calls[0].system_prompt @@ -1409,12 +1270,11 @@ def _verdict( temporal_order: str = 'not_applicable', reason_code: str = 'distinct_claim', ) -> object: - return module.CurationJudgeVerdictV1( - schema_version=1, + return module.CurationJudgeVerdict( + schema_version=2, outcome=outcome, relation=relation, target_memory_version_id=target, - candidate_evidence_refs=('candidate-ref',), comparisons=(), applicability=applicability, temporal_order=temporal_order, @@ -1626,21 +1486,8 @@ def _agent_parse_data(target_specs: list[tuple[str, bool]]) -> tuple[object, obj def test_publish_new_allows_cross_visibility_identity_comparison() -> None: module, data, entries = _agent_parse_data([(VisibilityScope.PROJECT, False)]) payload = { - 'schema_version': 1, - 'outcome': 'publish_new', - 'relation': 'compatible_distinct', - 'target_memory_version_id': None, - 'candidate_evidence_refs': ['candidate-ref'], - 'comparisons': [ - { - 'memory_version_id': str(entries[0].memory_version_id), - 'relation': 'mutually_incompatible', - 'target_evidence_refs': ['target-ref-0'], - } - ], - 'applicability': 'same', - 'temporal_order': 'not_applicable', - 'reason_code': 'distinct_claim', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}], 'reason': 'distinct claim against a project-global target', } @@ -1655,21 +1502,8 @@ def test_publish_new_allows_cross_visibility_identity_comparison() -> None: def test_publish_new_yields_to_a_same_visibility_identity_comparison() -> None: module, data, entries = _agent_parse_data([(VisibilityScope.TEAM, True)]) payload = { - 'schema_version': 1, - 'outcome': 'publish_new', - 'relation': 'compatible_distinct', - 'target_memory_version_id': None, - 'candidate_evidence_refs': ['candidate-ref'], - 'comparisons': [ - { - 'memory_version_id': str(entries[0].memory_version_id), - 'relation': 'mutually_incompatible', - 'target_evidence_refs': ['target-ref-0'], - } - ], - 'applicability': 'same', - 'temporal_order': 'not_applicable', - 'reason_code': 'distinct_claim', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}], 'reason': 'same-visibility identity should block targetless publish', } @@ -1685,26 +1519,11 @@ def test_publish_new_yields_to_a_same_visibility_identity_comparison() -> None: def test_same_visibility_target_merges_over_targetless_publish() -> None: module, data, entries = _agent_parse_data([(VisibilityScope.PROJECT, False), (VisibilityScope.TEAM, True)]) payload = { - 'schema_version': 1, - 'outcome': 'merge_evidence', - 'relation': 'equivalent', - 'target_memory_version_id': str(entries[1].memory_version_id), - 'candidate_evidence_refs': ['candidate-ref'], + 'schema_version': 2, 'comparisons': [ - { - 'memory_version_id': str(entries[0].memory_version_id), - 'relation': 'mutually_incompatible', - 'target_evidence_refs': ['target-ref-0'], - }, - { - 'memory_version_id': str(entries[1].memory_version_id), - 'relation': 'equivalent', - 'target_evidence_refs': ['target-ref-1'], - }, + {'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}, + {'index': 2, 'relation': 'equivalent', 'applicability': 'same'}, ], - 'applicability': 'same', - 'temporal_order': 'not_applicable', - 'reason_code': 'equivalent_claim', 'reason': 'equivalent to same-visibility target', } @@ -1715,7 +1534,7 @@ def test_same_visibility_target_merges_over_targetless_publish() -> None: @pytest.mark.django_db -def test_provider_path_emits_cross_visibility_rule_and_settles(monkeypatch: pytest.MonkeyPatch) -> None: +def test_provider_path_settles_cross_visibility_identity_without_a_conflict(monkeypatch: pytest.MonkeyPatch) -> None: from engram.model_policy.services import OpenAICompatibleGateway module = _judge_module() @@ -1727,21 +1546,8 @@ def test_provider_path_emits_cross_visibility_rule_and_settles(monkeypatch: pyte _module, data, entries = _agent_parse_data_for(candidate, scope, [(VisibilityScope.PROJECT, False)]) publish_payload = { - 'schema_version': 1, - 'outcome': 'publish_new', - 'relation': 'compatible_distinct', - 'target_memory_version_id': None, - 'candidate_evidence_refs': ['candidate-ref'], - 'comparisons': [ - { - 'memory_version_id': str(entries[0].memory_version_id), - 'relation': 'mutually_incompatible', - 'target_evidence_refs': ['target-ref-0'], - } - ], - 'applicability': 'same', - 'temporal_order': 'not_applicable', - 'reason_code': 'distinct_claim', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'compatible_distinct', 'applicability': 'same'}], 'reason': 'distinct claim', } opener = _opener_returning(_completion_bytes(publish_payload)) @@ -1750,26 +1556,13 @@ def test_provider_path_emits_cross_visibility_rule_and_settles(monkeypatch: pyte result = module.JudgeCurationCandidate().execute(data) - assert b'cross-visibility' in opener.requests[0].data.lower() + assert b'curation_judge_input.v2' in opener.requests[0].data assert result.verdict.outcome == 'publish_new' assert result.verdict.target_memory_version_id is None conflict_payload = { - 'schema_version': 1, - 'outcome': 'open_conflict', - 'relation': 'mutually_incompatible', - 'target_memory_version_id': str(entries[0].memory_version_id), - 'candidate_evidence_refs': ['candidate-ref'], - 'comparisons': [ - { - 'memory_version_id': str(entries[0].memory_version_id), - 'relation': 'mutually_incompatible', - 'target_evidence_refs': ['target-ref-0'], - } - ], - 'applicability': 'same', - 'temporal_order': 'unordered', - 'reason_code': 'same_scope_contradiction', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}], 'reason': 'rule-ignoring conflict', } opener_conflict = _opener_returning(_completion_bytes(conflict_payload)) @@ -1801,7 +1594,7 @@ def call(self, call_input: object) -> ProviderCallResult: call_record_id=uuid.uuid4(), redaction_state='clean', generated_title='', - generated_body=json.dumps(_payload(entry)), + generated_body=json.dumps(_payload()), ) monkeypatch.setattr(module, 'get_provider_gateway', lambda *_args, **_kwargs: GatewayStub()) From c4079c86617fe443016fcea6e9440dc09024b46f Mon Sep 17 00:00:00 2001 From: Filipp Balakin Date: Thu, 30 Jul 2026 13:00:45 +0300 Subject: [PATCH 2/3] feat: curation_decision_v2 asks the judge only for indexed per-target relations --- .../engram/console/model_presets_tests.py | 2 +- .../engram/console/views/model_setup_tests.py | 2 +- .../commands/engram_curator_eval_tests.py | 18 +- .../memory/c53_orchestrator_test_support.py | 21 +- .../engram/memory/curation_derivation.py | 12 +- .../memory/curation_derivation_tests.py | 7 +- apps/backend/engram/memory/curation_judge.py | 113 ++++------- apps/backend/engram/memory/curation_tests.py | 34 ++-- apps/backend/engram/memory/evals/corpus.py | 156 +++------------ .../memory/evals/curation_v1/corpus.jsonl | 188 +++++++++--------- .../selected-policy-responses.jsonl | 182 ++++++++--------- .../engram/memory/evals/scorer_tests.py | 18 +- .../engram/memory/propose_e2e_tests.py | 28 +-- .../engram/model_policy/model_policy_tests.py | 42 +--- .../model_policy/openai_request_shape.py | 2 +- .../openai_request_shape_tests.py | 2 +- .../model_policy/real_provider_tests.py | 36 +--- apps/backend/engram/model_policy/services.py | 162 ++++----------- .../engram/model_policy/services_tests.py | 184 +++++------------ scripts/mock_anthropic_server.py | 20 +- scripts/mock_anthropic_server_tests.py | 51 ++--- 21 files changed, 418 insertions(+), 862 deletions(-) diff --git a/apps/backend/engram/console/model_presets_tests.py b/apps/backend/engram/console/model_presets_tests.py index 39639feddf..d25d756434 100644 --- a/apps/backend/engram/console/model_presets_tests.py +++ b/apps/backend/engram/console/model_presets_tests.py @@ -121,7 +121,7 @@ def test_openai_chat_policies_ship_the_reasoning_request_shape() -> None: shape = _task_model(PRESET_BY_KEY[key], task_type)['metadata']['request_shape'] assert shape['completion_tokens_param'] == 'max_completion_tokens' assert shape['temperature'] is None - assert shape['reasoning_effort']['curation_decision_v1'] == 'minimal' + assert shape['reasoning_effort']['curation_decision_v2'] == 'minimal' def test_only_the_flex_preset_requests_the_flex_tier() -> None: diff --git a/apps/backend/engram/console/views/model_setup_tests.py b/apps/backend/engram/console/views/model_setup_tests.py index a16a95e75e..aad65ffb2f 100644 --- a/apps/backend/engram/console/views/model_setup_tests.py +++ b/apps/backend/engram/console/views/model_setup_tests.py @@ -658,7 +658,7 @@ def test_apply_openai_all_persists_the_reasoning_request_shape( assert curation.model == 'gpt-5-mini' assert curation.metadata['request_shape']['completion_tokens_param'] == 'max_completion_tokens' assert curation.metadata['request_shape']['temperature'] is None - assert curation.metadata['request_shape']['reasoning_effort']['curation_decision_v1'] == 'minimal' + assert curation.metadata['request_shape']['reasoning_effort']['curation_decision_v2'] == 'minimal' assert 'service_tier' not in curation.metadata embedding = ModelPolicy.objects.get(organization=f_setup_org, task_type='embedding', active=True) diff --git a/apps/backend/engram/core/management/commands/engram_curator_eval_tests.py b/apps/backend/engram/core/management/commands/engram_curator_eval_tests.py index 6d54e6c26c..33bf0e7091 100644 --- a/apps/backend/engram/core/management/commands/engram_curator_eval_tests.py +++ b/apps/backend/engram/core/management/commands/engram_curator_eval_tests.py @@ -38,7 +38,6 @@ def test_threshold_miss_exits_nonzero(tmp_path: Path) -> None: target = next( case for case in cases if case['bucket'] == 'equivalent_merge' and case['scope_control'] == 'in_scope' ) - entry = target['input']['shortlist']['entries'][0] lines: list[str] = [] for case in cases: if case['gate'] != 'semantic' or case['fixture_verdict'] is None or case['bucket'] == 'provider_fault': @@ -46,21 +45,8 @@ def test_threshold_miss_exits_nonzero(tmp_path: Path) -> None: verdict = case['fixture_verdict'] if case['case_id'] == target['case_id']: verdict = { - 'schema_version': 1, - 'outcome': 'open_conflict', - 'relation': 'mutually_incompatible', - 'target_memory_version_id': entry['memory_version_id'], - 'candidate_evidence_refs': list(target['input']['candidate']['evidence_refs']), - 'comparisons': [ - { - 'memory_version_id': entry['memory_version_id'], - 'relation': 'mutually_incompatible', - 'target_evidence_refs': list(entry['evidence_refs']), - } - ], - 'applicability': 'same', - 'temporal_order': 'unordered', - 'reason_code': 'same_scope_contradiction', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}], 'reason': 'injected incompatible verdict', } lines.append(json.dumps({'case_id': case['case_id'], 'verdict': verdict})) diff --git a/apps/backend/engram/memory/c53_orchestrator_test_support.py b/apps/backend/engram/memory/c53_orchestrator_test_support.py index 91e3b68244..2f051376fa 100644 --- a/apps/backend/engram/memory/c53_orchestrator_test_support.py +++ b/apps/backend/engram/memory/c53_orchestrator_test_support.py @@ -27,9 +27,9 @@ from engram.memory.curation_judge import ( ClaimEvidence, CurationEvidenceContext, - CurationJudgeComparisonV1, + CurationJudgeComparison, CurationJudgeResult, - CurationJudgeVerdictV1, + CurationJudgeVerdict, ) from engram.memory.curation_shortlist import CurationShortlist, CurationShortlistEntry from engram.memory.distillation_provenance import session_candidate_content_hash @@ -230,7 +230,7 @@ def stub_evidence( _OUTCOME_TABLE = { - 'publish_new': ('unrelated', 'distinct_claim', 'different', 'not_applicable'), + 'publish_new': ('unrelated', 'distinct_claim', 'not_applicable', 'not_applicable'), 'merge_evidence': ('equivalent', 'equivalent_claim', 'same', 'not_applicable'), 'revise_memory': ('candidate_revises', 'same_subject_revision', 'same', 'candidate_newer'), 'supersede_memory': ('candidate_supersedes', 'ordered_replacement', 'same', 'candidate_newer'), @@ -238,30 +238,29 @@ def stub_evidence( } -def stub_verdict(outcome: str, *, target: MemoryVersion | None = None) -> CurationJudgeVerdictV1: +def stub_verdict(outcome: str, *, target: MemoryVersion | None = None) -> CurationJudgeVerdict: relation, reason_code, applicability, temporal = _OUTCOME_TABLE[outcome] - comparisons: tuple[CurationJudgeComparisonV1, ...] = () + comparisons: tuple[CurationJudgeComparison, ...] = () target_id = None if target is not None: target_id = target.id - comparisons = (CurationJudgeComparisonV1(target.id, relation, ('tref-1',)),) + comparisons = (CurationJudgeComparison(target.id, relation, applicability),) - return CurationJudgeVerdictV1( - schema_version=1, + return CurationJudgeVerdict( + schema_version=2, outcome=outcome, relation=relation, target_memory_version_id=target_id, - candidate_evidence_refs=('cref-1',), comparisons=comparisons, applicability=applicability, temporal_order=temporal, reason_code=reason_code, - reason='decision under contract v1', + reason='decision under contract v2', ) def stub_judge_result( - verdict: CurationJudgeVerdictV1, + verdict: CurationJudgeVerdict, call_record: ProviderCallRecord, policy: ModelPolicy, shortlist: CurationShortlist, diff --git a/apps/backend/engram/memory/curation_derivation.py b/apps/backend/engram/memory/curation_derivation.py index 33b0f4bda0..bf716bb9e5 100644 --- a/apps/backend/engram/memory/curation_derivation.py +++ b/apps/backend/engram/memory/curation_derivation.py @@ -61,6 +61,7 @@ class DerivedDecision: relation: str target_memory_version_id: UUID | None temporal_order: str + applicability: str reason_code: str rung: int suppressed_identity_relations: tuple[tuple[UUID, str], ...] @@ -160,14 +161,14 @@ def feasible_outcomes(facts: DerivationFacts) -> frozenset[str]: def _select_target( facts: DerivationFacts, relations: dict[UUID, str], - applicability: str, + applicability: dict[UUID, str], ) -> tuple[int, str, str, TargetFacts] | None: for rung, outcome, relation, eligible, requires_same in _LADDER: - if requires_same and applicability != 'same': - continue for target in facts.targets: if relations.get(target.memory_version_id) != relation: continue + if requires_same and applicability.get(target.memory_version_id) != 'same': + continue if eligible(facts, target): return rung, outcome, relation, target @@ -196,7 +197,7 @@ def _suppressed( def derive_decision( facts: DerivationFacts, relations: dict[UUID, str], - applicability: str, + applicability: dict[UUID, str], ) -> DerivedDecision | None: selected = _select_target(facts, relations, applicability) if selected is not None: @@ -207,6 +208,7 @@ def derive_decision( relation=relation, target_memory_version_id=target.memory_version_id, temporal_order=target.temporal_order, + applicability=applicability.get(target.memory_version_id, 'not_applicable'), reason_code=_REASON_CODES[(outcome, relation)], rung=rung, suppressed_identity_relations=_suppressed(facts, relations, target.memory_version_id), @@ -220,6 +222,7 @@ def derive_decision( relation=relation, target_memory_version_id=None, temporal_order='not_applicable', + applicability='not_applicable', reason_code=_REASON_CODES[('publish_new', relation)], rung=6, suppressed_identity_relations=_suppressed(facts, relations, None), @@ -231,6 +234,7 @@ def derive_decision( relation='unsupported', target_memory_version_id=None, temporal_order='not_applicable', + applicability='not_applicable', reason_code=_REASON_CODES[('reject_candidate', 'unsupported')], rung=7, suppressed_identity_relations=_suppressed(facts, relations, None), diff --git a/apps/backend/engram/memory/curation_derivation_tests.py b/apps/backend/engram/memory/curation_derivation_tests.py index 267b76900e..27a75d2eb4 100644 --- a/apps/backend/engram/memory/curation_derivation_tests.py +++ b/apps/backend/engram/memory/curation_derivation_tests.py @@ -343,7 +343,7 @@ def test_empty_feasible_set_forbids_every_relation_assignment( ) -> None: checked = 0 seen: set[int] = set() - for data, _assignment, _applicability in f_lattice: + for data, _assignment, _values in f_lattice: if id(data) in seen: continue seen.add(id(data)) @@ -352,8 +352,9 @@ def test_empty_feasible_set_forbids_every_relation_assignment( continue checked += 1 for assignment in itertools.product(_RELATIONS, repeat=len(facts.targets)): - for applicability in _APPLICABILITIES: - assert derive_decision(facts, _relations(data, assignment), _applicability(data, applicability)) is None + for values in itertools.product(_APPLICABILITIES, repeat=len(facts.targets)): + relations = _relations(data, assignment) + assert derive_decision(facts, relations, _applicability(data, values)) is None assert checked > 0 diff --git a/apps/backend/engram/memory/curation_judge.py b/apps/backend/engram/memory/curation_judge.py index 57f166aacf..2c3c0becac 100644 --- a/apps/backend/engram/memory/curation_judge.py +++ b/apps/backend/engram/memory/curation_judge.py @@ -72,20 +72,19 @@ class CurationJudgeInput: @dataclass(frozen=True, slots=True) -class CurationJudgeComparisonV1: +class CurationJudgeComparison: memory_version_id: uuid.UUID relation: str - target_evidence_refs: tuple[str, ...] + applicability: str @dataclass(frozen=True, slots=True) -class CurationJudgeVerdictV1: +class CurationJudgeVerdict: schema_version: int outcome: str relation: str target_memory_version_id: uuid.UUID | None - candidate_evidence_refs: tuple[str, ...] - comparisons: tuple[CurationJudgeComparisonV1, ...] + comparisons: tuple[CurationJudgeComparison, ...] applicability: str temporal_order: str reason_code: str @@ -94,7 +93,7 @@ class CurationJudgeVerdictV1: @dataclass(frozen=True, slots=True) class CurationJudgeResult: - verdict: CurationJudgeVerdictV1 + verdict: CurationJudgeVerdict provider_call_record_id: uuid.UUID policy_id: uuid.UUID policy_version: int @@ -105,26 +104,15 @@ class CurationJudgeResult: comparison_complete: bool +_SCHEMA_VERSION = 2 +_RESPONSE_KIND = 'curation_decision_v2' _LIFECYCLE_TYPES = frozenset({'session_start', 'session_end', 'session_lifecycle'}) _GROUP_TOKEN_PREFIX = 'curation-evidence-group:v1:' _MAX_EVIDENCE_REFS = 16 _MAX_CLAIM_SNAPSHOT_CHARS = 2000 -_TOP_KEYS = frozenset( - { - 'schema_version', - 'outcome', - 'relation', - 'target_memory_version_id', - 'candidate_evidence_refs', - 'comparisons', - 'applicability', - 'temporal_order', - 'reason_code', - 'reason', - } -) -_COMPARISON_KEYS = frozenset({'memory_version_id', 'relation', 'target_evidence_refs'}) +_TOP_KEYS = frozenset({'schema_version', 'comparisons', 'reason'}) +_COMPARISON_KEYS = frozenset({'index', 'relation', 'applicability'}) _RELATIONS = frozenset( { 'unrelated', @@ -152,10 +140,10 @@ class CurationJudgeResult: _MUTATION_OUTCOMES = frozenset({'merge_evidence', 'open_conflict', 'revise_memory', 'supersede_memory'}) _CURATION_JUDGE_SYSTEM_PROMPT = ( - 'You are the memory curation judge. The user message is a curation_judge_input.v1 JSON envelope, and the ' + 'You are the memory curation judge. The user message is a curation_judge_input.v2 JSON envelope, and the ' 'accompanying instructions define the exact output contract you must follow. ' - 'When no combination satisfies its requirements, choose the reject_candidate form that matches the ' - 'candidate evidence.' + 'Report how the candidate relates to every listed comparison; the system derives the outcome from your ' + 'relations and from facts you cannot see.' ) @@ -334,53 +322,35 @@ def _is_enum(value: object, allowed: frozenset[str]) -> bool: return isinstance(value, str) and value in allowed -def _parse_uuid(value: object) -> uuid.UUID: - if not isinstance(value, str): - raise CurationJudgeError('judge_invalid_output') - try: - return uuid.UUID(value) - except (ValueError, AttributeError, TypeError) as error: - raise CurationJudgeError('judge_invalid_output') from error - - -def _validate_refs(value: object, allowed: set[str]) -> tuple[str, ...]: - if not isinstance(value, list) or any(not isinstance(item, str) for item in value): - raise CurationJudgeError('judge_invalid_output') - if len(value) > _MAX_EVIDENCE_REFS: +def _parse_index(value: object, count: int) -> int: + if type(value) is not int or not (1 <= value <= count): raise CurationJudgeError('judge_invalid_output') - if len(set(value)) != len(value): - raise CurationJudgeError('judge_invalid_output') - if any(item not in allowed for item in value): - raise CurationJudgeError('judge_reference_invalid') - return tuple(value) + return value def _validate_comparisons( value: object, - data: CurationJudgeInput, version_ids: tuple[uuid.UUID, ...], -) -> tuple[CurationJudgeComparisonV1, ...]: +) -> tuple[CurationJudgeComparison, ...]: if not isinstance(value, list): raise CurationJudgeError('judge_invalid_output') - parsed: list[tuple[uuid.UUID, str, object]] = [] + parsed: dict[int, CurationJudgeComparison] = {} for item in value: if not isinstance(item, dict) or set(item) != _COMPARISON_KEYS: raise CurationJudgeError('judge_invalid_output') - if not _is_enum(item['relation'], _RELATIONS): + if not _is_enum(item['relation'], _RELATIONS) or not _is_enum(item['applicability'], _APPLICABILITY): + raise CurationJudgeError('judge_invalid_output') + index = _parse_index(item['index'], len(version_ids)) + if index in parsed: raise CurationJudgeError('judge_invalid_output') - parsed.append((_parse_uuid(item['memory_version_id']), item['relation'], item['target_evidence_refs'])) + parsed[index] = CurationJudgeComparison(version_ids[index - 1], item['relation'], item['applicability']) - if tuple(entry[0] for entry in parsed) != version_ids: + if len(parsed) != len(version_ids): raise CurationJudgeError('judge_invalid_output') - comparisons: list[CurationJudgeComparisonV1] = [] - for version_id, relation, refs in parsed: - allowed = set(data.evidence.targets[version_id].refs) if version_id in data.evidence.targets else set() - comparisons.append(CurationJudgeComparisonV1(version_id, relation, _validate_refs(refs, allowed))) - - return tuple(comparisons) + return tuple(parsed[index] for index in sorted(parsed)) def _candidate_precedes(data: CurationJudgeInput, target_id: uuid.UUID | None) -> bool: @@ -411,7 +381,7 @@ def _deterministic_precedence(data: CurationJudgeInput, target_id: uuid.UUID | N return candidate_at != target_at -def _apply_evidence_policy(verdict: CurationJudgeVerdictV1, data: CurationJudgeInput) -> None: # noqa: C901 +def _apply_evidence_policy(verdict: CurationJudgeVerdict, data: CurationJudgeInput) -> None: # noqa: C901 key = (verdict.outcome, verdict.relation) if key not in _ALLOWED_COMBINATIONS: raise CurationJudgeError('judge_invalid_output') @@ -487,7 +457,7 @@ def _apply_evidence_policy(verdict: CurationJudgeVerdictV1, data: CurationJudgeI raise CurationJudgeError('judge_policy_denied') -def parse_curation_judge_verdict(raw: str, data: CurationJudgeInput) -> CurationJudgeVerdictV1: +def parse_curation_judge_verdict(raw: str, data: CurationJudgeInput) -> CurationJudgeVerdict: try: payload = json.loads(strip_json_fence(raw)) except (json.JSONDecodeError, TypeError, ValueError) as error: @@ -495,38 +465,30 @@ def parse_curation_judge_verdict(raw: str, data: CurationJudgeInput) -> Curation if not isinstance(payload, dict) or set(payload) != _TOP_KEYS: raise CurationJudgeError('judge_invalid_output') - if type(payload['schema_version']) is not int or payload['schema_version'] != 1: - raise CurationJudgeError('judge_invalid_output') - if not _is_enum(payload['applicability'], _APPLICABILITY): + if type(payload['schema_version']) is not int or payload['schema_version'] != _SCHEMA_VERSION: raise CurationJudgeError('judge_invalid_output') version_ids = tuple(entry.memory_version_id for entry in data.shortlist.entries) - if payload['target_memory_version_id'] is not None: - if _parse_uuid(payload['target_memory_version_id']) not in set(version_ids): - raise CurationJudgeError('judge_invalid_output') - - candidate_refs = _validate_refs(payload['candidate_evidence_refs'], set(data.evidence.candidate.refs)) - comparisons = _validate_comparisons(payload['comparisons'], data, version_ids) + comparisons = _validate_comparisons(payload['comparisons'], version_ids) reason = payload['reason'] if not isinstance(reason, str) or not (1 <= len(reason) <= 500) or SECRET_STRING_RE.search(reason): raise CurationJudgeError('judge_invalid_output') - applicability = payload['applicability'] facts = build_derivation_facts(data) relations = {item.memory_version_id: item.relation for item in comparisons} + applicability = {item.memory_version_id: item.applicability for item in comparisons} decision = derive_decision(facts, relations, applicability) if decision is None: raise CurationJudgeError('curation_infeasible') - verdict = CurationJudgeVerdictV1( - schema_version=1, + verdict = CurationJudgeVerdict( + schema_version=_SCHEMA_VERSION, outcome=decision.outcome, relation=decision.relation, target_memory_version_id=decision.target_memory_version_id, - candidate_evidence_refs=candidate_refs, comparisons=comparisons, - applicability=applicability, + applicability=decision.applicability, temporal_order=decision.temporal_order, reason_code=decision.reason_code, reason=reason, @@ -577,20 +539,17 @@ def build_curation_judge_prompt(data: CurationJudgeInput) -> str: }, 'content_hash': data.candidate.content_hash, 'evidence_tier': data.evidence.candidate.tier, - 'evidence_refs': list(data.evidence.candidate.refs), } comparisons = [] - for entry in data.shortlist.entries: + for index, entry in enumerate(data.shortlist.entries, start=1): target = data.evidence.targets.get(entry.memory_version_id) comparisons.append( { - 'memory_version_id': str(entry.memory_version_id), - 'current_transition_id': str(entry.current_transition_id), + 'index': index, 'visibility_scope': entry.visibility_scope, 'team_id': str(entry.team_id) if entry.team_id is not None else None, 'has_open_conflict': entry.has_open_conflict, 'evidence_tier': target.tier if target is not None else 'none', - 'evidence_refs': list(target.refs) if target is not None else [], 'claim': { 'title': _bounded(entry.title), 'body': _bounded(entry.body), @@ -600,7 +559,7 @@ def build_curation_judge_prompt(data: CurationJudgeInput) -> str: } ) envelope = { - 'schema': 'curation_judge_input.v1', + 'schema': 'curation_judge_input.v2', 'candidate': candidate_block, 'effective_scope': { 'visibility_scope': data.effective_scope.visibility_scope, @@ -693,7 +652,7 @@ def _attempt( trace_id=data.trace_id, prompt=prompt, system_prompt=_CURATION_JUDGE_SYSTEM_PROMPT, - response_kind='curation_decision_v1', + response_kind=_RESPONSE_KIND, attempt=data.attempt, ) ) diff --git a/apps/backend/engram/memory/curation_tests.py b/apps/backend/engram/memory/curation_tests.py index b275792a98..72fb3418a4 100644 --- a/apps/backend/engram/memory/curation_tests.py +++ b/apps/backend/engram/memory/curation_tests.py @@ -59,7 +59,7 @@ parse_curation_reason, resolve_curator_llm_judge_enabled, ) -from engram.memory.curation_judge import CurationJudgeComparisonV1, CurationJudgeVerdictV1 +from engram.memory.curation_judge import CurationJudgeComparison, CurationJudgeVerdict from engram.memory.curation_test_support import ( JudgeGatewayStub, create_curation_policy, @@ -2353,13 +2353,12 @@ def test_different_applicability_is_not_a_conflict(monkeypatch: pytest.MonkeyPat ) shortlist = orch.stub_shortlist(orch.shortlist_entry(memory)) evidence = orch.stub_evidence(candidate_tier='supported', target=target_version, target_tier='supported') - verdict = CurationJudgeVerdictV1( - schema_version=1, + verdict = CurationJudgeVerdict( + schema_version=2, outcome='publish_new', relation='compatible_distinct', target_memory_version_id=None, - candidate_evidence_refs=('cref-1',), - comparisons=(CurationJudgeComparisonV1(target_version.id, 'compatible_distinct', ('tref-1',)),), + comparisons=(CurationJudgeComparison(target_version.id, 'compatible_distinct', 'different'),), applicability='different', temporal_order='not_applicable', reason_code='distinct_claim', @@ -2624,13 +2623,12 @@ def test_stale_shortlist_target_transition_fences_verdict(monkeypatch: pytest.Mo assert candidate.status == CandidateStatus.PROPOSED -def _reject_verdict() -> CurationJudgeVerdictV1: - return CurationJudgeVerdictV1( - schema_version=1, +def _reject_verdict() -> CurationJudgeVerdict: + return CurationJudgeVerdict( + schema_version=2, outcome='reject_candidate', relation='unsupported', target_memory_version_id=None, - candidate_evidence_refs=(), comparisons=(), applicability='different', temporal_order='not_applicable', @@ -2720,17 +2718,16 @@ def test_model_redundant_rejection_retries_when_shortlist_target_advances( target=target_version, target_tier='supported', ) - verdict = CurationJudgeVerdictV1( - schema_version=1, + verdict = CurationJudgeVerdict( + schema_version=2, outcome='reject_candidate', relation='redundant', target_memory_version_id=target_version.id, - candidate_evidence_refs=('cref-1',), comparisons=( - CurationJudgeComparisonV1( + CurationJudgeComparison( memory_version_id=target_version.id, relation='redundant', - target_evidence_refs=('tref-1',), + applicability='same', ), ), applicability='same', @@ -2851,17 +2848,16 @@ def test_redundant_rejection_revalidates_target_before_settlement( target=target_version, target_tier='supported', ) - verdict = CurationJudgeVerdictV1( - schema_version=1, + verdict = CurationJudgeVerdict( + schema_version=2, outcome='reject_candidate', relation='redundant', target_memory_version_id=target_version.id, - candidate_evidence_refs=('cref-1',), comparisons=( - CurationJudgeComparisonV1( + CurationJudgeComparison( target_version.id, 'redundant', - ('tref-1',), + 'same', ), ), applicability='same', diff --git a/apps/backend/engram/memory/evals/corpus.py b/apps/backend/engram/memory/evals/corpus.py index 38623cee04..69cb66711b 100644 --- a/apps/backend/engram/memory/evals/corpus.py +++ b/apps/backend/engram/memory/evals/corpus.py @@ -135,37 +135,16 @@ def _input( } -def _verdict( - *, - outcome: str, - relation: str, - target: str | None, - candidate_refs: list[str], - comparisons: list[dict[str, object]], - applicability: str = 'same', - temporal_order: str = 'unordered', - reason_code: str = 'distinct_claim', -) -> dict[str, object]: +def _verdict(comparisons: list[dict[str, object]]) -> dict[str, object]: return { - 'schema_version': 1, - 'outcome': outcome, - 'relation': relation, - 'target_memory_version_id': target, - 'candidate_evidence_refs': candidate_refs, + 'schema_version': 2, 'comparisons': comparisons, - 'applicability': applicability, - 'temporal_order': temporal_order, - 'reason_code': reason_code, 'reason': _REASON, } -def _comparison(entry: dict[str, object], relation: str, refs: list[str]) -> dict[str, object]: - return { - 'memory_version_id': str(entry['memory_version_id']), - 'relation': relation, - 'target_evidence_refs': refs, - } +def _comparison(index: int, relation: str, applicability: str = 'same') -> dict[str, object]: + return {'index': index, 'relation': relation, 'applicability': applicability} def _case( @@ -390,16 +369,9 @@ def _publish_case( refs=[f'{case_id}-t1'], ) entries.append(entry) - comparisons.append(_comparison(entry, 'compatible_distinct', [])) + comparisons.append(_comparison(1, 'compatible_distinct')) case_input = _input(case_id, candidate, _scope(), _shortlist(case_id, entries)) - verdict = _verdict( - outcome='publish_new', - relation='compatible_distinct' if with_neighbor else 'unrelated', - target=None, - candidate_refs=[f'{case_id}-c1'], - comparisons=comparisons, - reason_code='distinct_claim', - ) + verdict = _verdict(comparisons) return _case( case_id, @@ -479,16 +451,7 @@ def _target_case( ) shortlist = _shortlist(case_id, [entry], complete=complete) case_input = _input(case_id, candidate, _scope(), shortlist) - verdict = _verdict( - outcome=outcome, - relation=relation, - target=str(entry['memory_version_id']), - candidate_refs=candidate_refs, - comparisons=[_comparison(entry, relation, target_refs)], - applicability=applicability, - temporal_order=temporal_order, - reason_code=reason_code, - ) + verdict = _verdict([_comparison(1, relation, applicability)]) return _case( case_id, @@ -616,15 +579,7 @@ def _unsupported_supersession_cases() -> list[dict[str, object]]: latest=_EARLIER, ) case_input = _input(case_id, candidate, _scope(), _shortlist(case_id, [entry])) - verdict = _verdict( - outcome='supersede_memory', - relation='candidate_supersedes', - target=str(entry['memory_version_id']), - candidate_refs=[], - comparisons=[_comparison(entry, 'candidate_supersedes', [f'{case_id}-t1'])], - temporal_order='candidate_newer', - reason_code='ordered_replacement', - ) + verdict = _verdict([_comparison(1, 'candidate_supersedes')]) return [ _case( @@ -668,7 +623,7 @@ def _ladder_entry( latest=latest, ) - return entry, _comparison(entry, relation, refs) + return entry, _comparison(index + 1, relation) def _ladder_case( @@ -680,11 +635,6 @@ def _ladder_case( candidate_latest: str | None, scope: dict[str, object], pairs: list[tuple[dict[str, object], dict[str, object]]], - model_outcome: str, - model_relation: str, - model_target: str | None, - model_temporal_order: str, - model_reason_code: str, derived_outcome: str, expected_targets: list[str], open_conflict_valid: bool = False, @@ -702,15 +652,7 @@ def _ladder_case( entries = [pair[0] for pair in pairs] comparisons = [pair[1] for pair in pairs] case_input = _input(case_id, candidate, scope, _shortlist(case_id, entries)) - verdict = _verdict( - outcome=model_outcome, - relation=model_relation, - target=model_target, - candidate_refs=candidate_refs, - comparisons=comparisons, - temporal_order=model_temporal_order, - reason_code=model_reason_code, - ) + verdict = _verdict(comparisons) return _case( case_id, @@ -757,11 +699,6 @@ def _rung_order_case() -> dict[str, object]: candidate_latest=_EQUAL, scope=_scope(), pairs=[redundant, equivalent], - model_outcome='reject_candidate', - model_relation='redundant', - model_target=str(redundant[0]['memory_version_id']), - model_temporal_order='not_applicable', - model_reason_code='redundant_claim', derived_outcome='merge_evidence', expected_targets=[str(equivalent[0]['memory_version_id'])], ) @@ -796,11 +733,6 @@ def _conflict_outranks_merge_case() -> dict[str, object]: candidate_latest=_EQUAL, scope=_scope(), pairs=[incompatible, equivalent], - model_outcome='merge_evidence', - model_relation='equivalent', - model_target=str(equivalent[0]['memory_version_id']), - model_temporal_order='unordered', - model_reason_code='equivalent_claim', derived_outcome='open_conflict', expected_targets=[str(incompatible[0]['memory_version_id'])], open_conflict_valid=True, @@ -838,11 +770,6 @@ def _cross_visibility_identity_case() -> dict[str, object]: candidate_latest=_EQUAL, scope=_scope(), pairs=[cross, neighbor], - model_outcome='merge_evidence', - model_relation='equivalent', - model_target=str(cross[0]['memory_version_id']), - model_temporal_order='unordered', - model_reason_code='equivalent_claim', derived_outcome='publish_new', expected_targets=[], out_of_scope_target=str(cross[0]['memory_version_id']), @@ -878,11 +805,6 @@ def _tie_breaks_on_shortlist_order_case() -> dict[str, object]: candidate_latest=_EQUAL, scope=_scope(), pairs=[first, second], - model_outcome='merge_evidence', - model_relation='equivalent', - model_target=str(second[0]['memory_version_id']), - model_temporal_order='unordered', - model_reason_code='equivalent_claim', derived_outcome='merge_evidence', expected_targets=[str(first[0]['memory_version_id'])], ) @@ -917,11 +839,6 @@ def _unsupported_duplicate_case() -> dict[str, object]: candidate_latest=_EQUAL, scope=_scope(), pairs=[unsupported, unrelated], - model_outcome='reject_candidate', - model_relation='redundant', - model_target=str(unsupported[0]['memory_version_id']), - model_temporal_order='not_applicable', - model_reason_code='redundant_claim', derived_outcome='publish_new', expected_targets=[], ) @@ -940,11 +857,11 @@ def _multi_target_ladder_cases() -> list[dict[str, object]]: def _fault_cases() -> list[dict[str, object]]: cases: list[dict[str, object]] = [] templates = [ - ('fault-json', '```json\n{invalid json without close'), - ('fault-schema', {'schema_version': 1, 'outcome': 'publish_new'}), - ('fault-target', 'invented_target'), - ('fault-evidence', 'invented_evidence'), - ('fault-comparisons', 'unmanifested_comparison'), + ('fault-json', 'malformed_json'), + ('fault-schema', 'legacy_schema'), + ('fault-index-out-of-range', 'index_out_of_range'), + ('fault-index-duplicate', 'duplicate_index'), + ('fault-comparisons', 'missing_comparison'), ] for index, (prefix, marker) in enumerate(templates): case_id = f'{prefix}-{index:03d}' @@ -968,41 +885,16 @@ def _fault_cases() -> list[dict[str, object]]: shortlist = _shortlist(case_id, [entry]) case_input = _input(case_id, candidate, _scope(), shortlist) fixture_verdict: object - if marker == '```json\n{invalid json without close': - fixture_verdict = marker - elif isinstance(marker, dict): - fixture_verdict = marker - elif marker == 'invented_target': - fixture_verdict = _verdict( - outcome='merge_evidence', - relation='equivalent', - target=str(_uid(f'{case_id}:phantom')), - candidate_refs=_refs(case_id, 'c', 2), - comparisons=[_comparison(entry, 'equivalent', [f'{case_id}-t1'])], - ) - elif marker == 'invented_evidence': - fixture_verdict = _verdict( - outcome='merge_evidence', - relation='equivalent', - target=str(entry['memory_version_id']), - candidate_refs=[f'{case_id}-phantom-ref'], - comparisons=[_comparison(entry, 'equivalent', [f'{case_id}-t1'])], - ) + if marker == 'malformed_json': + fixture_verdict = '```json\n{invalid json without close' + elif marker == 'legacy_schema': + fixture_verdict = {'schema_version': 1, 'outcome': 'publish_new'} + elif marker == 'index_out_of_range': + fixture_verdict = _verdict([_comparison(2, 'equivalent')]) + elif marker == 'duplicate_index': + fixture_verdict = _verdict([_comparison(1, 'equivalent'), _comparison(1, 'unrelated')]) else: - fixture_verdict = _verdict( - outcome='merge_evidence', - relation='equivalent', - target=str(entry['memory_version_id']), - candidate_refs=_refs(case_id, 'c', 2), - comparisons=[ - { - 'memory_version_id': str(_uid(f'{case_id}:phantom')), - 'relation': 'equivalent', - 'target_evidence_refs': [], - } - ], - reason_code='equivalent_claim', - ) + fixture_verdict = _verdict([]) cases.append( _case( case_id, diff --git a/apps/backend/engram/memory/evals/curation_v1/corpus.jsonl b/apps/backend/engram/memory/evals/curation_v1/corpus.jsonl index 026d74d8af..880a39ae33 100644 --- a/apps/backend/engram/memory/evals/curation_v1/corpus.jsonl +++ b/apps/backend/engram/memory/evals/curation_v1/corpus.jsonl @@ -28,99 +28,99 @@ {"allowed_outcomes": ["reject_candidate"], "author": "cp5-eval", "bucket": "deterministic_noise", "case_id": "noise-session-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": null, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "non_durable_session_scope", "input": {"candidate": {"body": "A transient scratch note tied to this session only.", "content_hash": "5dac35bc7332ada972d0003ed090772a23873380fa38c309801c15bb7f7df6c5", "evidence": [{"ref": "noise-session-001-c1"}], "evidence_refs": ["noise-session-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Scratch note"}, "candidate_id": "ce123597-ae9d-5b51-a3c2-aa26b5700e9a", "effective_scope": {"team_id": null, "visibility_scope": "session"}, "organization_id": "b944fce5-3a57-5ec7-beb6-6323ed6f562c", "project_id": "f5e9cb62-9ba5-5cbe-b303-93230f874bb0", "request_id": "noise-session-001-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "122e0ff0a7dde9057decae17f00397885a8bc5fd5c098b905080e7dfc6806bc3"}, "trace_id": "noise-session-001-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "reject_candidate", "scope_control": "in_scope", "source_hash": "67223f85499ec796a3fb83b0b3017523c18786269ff33b747a50c3d68b61ca80"} {"allowed_outcomes": ["reject_candidate"], "author": "cp5-eval", "bucket": "deterministic_noise", "case_id": "noise-unsafe-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": null, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "unsafe_after_redaction", "input": {"candidate": {"body": "Gateway calls authenticate with api key sk-abcdefghij0123456789 in the header.", "content_hash": "d775241be9cb800ec9aefc4c93dcb4078f7ed26b1774c5b9bc52a34dc26e3437", "evidence": [{"ref": "noise-unsafe-000-c1"}], "evidence_refs": ["noise-unsafe-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Gateway credential"}, "candidate_id": "2bbb571f-afad-53c8-b8cc-0937ee1cbd6c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5bb50267-e313-5a92-a535-6cc6fe0c4996", "project_id": "40edf646-138f-51d4-bd11-90b58d31cb99", "request_id": "noise-unsafe-000-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "9beb2aa55580347ccb3515ab30be32654572707829b5a9674cd746968e070dd5"}, "trace_id": "noise-unsafe-000-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "reject_candidate", "scope_control": "in_scope", "source_hash": "2d14606ad4f996816a9e002c46fe77a38a01a934df32f8d2d91abab1b435fecf"} {"allowed_outcomes": ["reject_candidate"], "author": "cp5-eval", "bucket": "deterministic_noise", "case_id": "noise-unsafe-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": null, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "unsafe_after_redaction", "input": {"candidate": {"body": "Gateway calls authenticate with api key sk-abcdefghij0123456789 in the header.", "content_hash": "02139dfc7783ed73e494276858f7373eead481484f9b15770f0f2438f19bf245", "evidence": [{"ref": "noise-unsafe-001-c1"}], "evidence_refs": ["noise-unsafe-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Gateway credential"}, "candidate_id": "fccfdd6b-8717-584e-9960-0ed8728f9799", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "c7416a3f-6369-53d9-a5af-cc3bafd750fb", "project_id": "476e99af-0439-56a6-8d68-4814fe345cf3", "request_id": "noise-unsafe-001-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "6342d173cd549cb1d74c4715449ec06cbf46b73ce20b9116f99ca435747bcb6f"}, "trace_id": "noise-unsafe-001-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "reject_candidate", "scope_control": "in_scope", "source_hash": "f5bba84040089c3ee8709bf12902fa70caef0bbbcf8351caaa89a29314e2f3a0"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-000-c1"], "comparisons": [{"memory_version_id": "69db1b33-f4ab-5850-a871-50ecde747f6b", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "a01e6e93d2ded89a3c60a2d7049b1f5a5ecffb175d35b2923361f0e07db134ef", "evidence": [{"ref": "publish-000-c1"}], "evidence_refs": ["publish-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "0cf48d50-aeb6-53ed-8018-f3a370dddd78", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "19370f04-76bc-5e46-b349-11ccc5fa683f", "project_id": "2a641eed-697f-52ec-b4d4-54e7c932571f", "request_id": "publish-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "9b8c0082f6aeaed710d4202ad5f26560e495036efb8ea23cc4d9087006227f6f", "current_transition_id": "bfc2d756-37bc-51db-83bd-2d5921972c48", "evidence_refs": ["publish-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "a635e2c4-beb4-5f5e-b572-fa33ba30fc93", "memory_version_id": "69db1b33-f4ab-5850-a871-50ecde747f6b", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "e58a009949b3ce4b55d81089bf599cbd6c4fa0dbc1735cbcd99d87c8d107a0c9"}, "trace_id": "publish-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "c33646f6177deb084e23c173ed93183b2c8eee411c06d1fc18db55e8b7566ee9"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-001-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "fae5434267db947b76ac5cc56800f39ec211bdf58ae00053bd5f6f037dc85ebf", "evidence": [{"ref": "publish-001-c1"}], "evidence_refs": ["publish-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "81d043d7-3bfe-5de4-af6f-12dc08e30362", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "277aa359-4be5-542e-a86c-f7d7a32933f6", "project_id": "83f00bff-768e-5342-a828-8ed8193e4ced", "request_id": "publish-001-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "4332cefa1279d4f9eb21b607309e3bd048f9ebc48f311cb55d6bf2e935f1e2ad"}, "trace_id": "publish-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "40a133e78a9ec08ce0fa0f282a26625f6565052f569a60681a3db7bd43be98f2"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-002-c1"], "comparisons": [{"memory_version_id": "08f9b1a4-de13-5550-8217-031bf24fc08d", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "96f32749bbd51e6711058be743cb45edd9541a39a05010e3bea471d75d76a6bc", "evidence": [{"ref": "publish-002-c1"}], "evidence_refs": ["publish-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "b66cfdc0-cf0d-5cd8-af67-1e7690ffc912", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "48869a7c-729b-5123-b782-9fb2ebd42d67", "project_id": "49e2b439-97f4-5721-9913-a9b3b6a6eb52", "request_id": "publish-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "3fdfa3738ba1569f54f5ed3f0f233796378a4fea1e9f122ead957d502fb2e963", "current_transition_id": "a8e4acfb-bd12-5299-a561-cc4075c7486d", "evidence_refs": ["publish-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "c3b165ab-3083-5f17-a36a-5dd1c1de6b22", "memory_version_id": "08f9b1a4-de13-5550-8217-031bf24fc08d", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "8f8c485c7d8d306c1de57c8b1132e94aede03f4c092844c3f0797d491bd6c1e6"}, "trace_id": "publish-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "c85c4272210b763199dccb9970cf77d478f35c49866137836ff03ab7d7af8b6d"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-003-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "b704f59f87bdeffe46d8011f6ee3f83212432e21e060775ab7d5547c17a5164b", "evidence": [{"ref": "publish-003-c1"}], "evidence_refs": ["publish-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "f514b7cb-99fb-55ab-84ea-213f95650f09", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "0969ac03-f6f8-5c63-8522-49e4b0836594", "project_id": "05ca8174-9e42-5e43-a7b3-1516ad35a1ee", "request_id": "publish-003-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "54c35232c8ec1b037d568ec8d29aaf8fae5210d196ba4ced27b1a0f0f026e6bb"}, "trace_id": "publish-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "4a945dfc1051217210f5da95cac19a14df767e1505d51bf457e02af7e2019f61"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-004-c1"], "comparisons": [{"memory_version_id": "c1bc7298-da8e-5fb1-92a9-92756e2d7027", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "9f34e5cd40798a193d4c792b0eff89806f9ac56aabe000d425b72777a6cf9946", "evidence": [{"ref": "publish-004-c1"}], "evidence_refs": ["publish-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "0412b450-1c39-5156-b514-c7c959047bb6", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "aa25182b-6413-51a1-a784-177554c79646", "project_id": "1551f9d8-65ee-5a32-90c8-de3564f0c8a7", "request_id": "publish-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "07311f087a894440d2cfffe171abedf3ede17b8c043843adb3d1ca225fa5616b", "current_transition_id": "804f22bd-6536-545e-bf74-4ffe6c9d79ae", "evidence_refs": ["publish-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "bde88c5a-e8d7-5d6a-8fb4-f9190528a620", "memory_version_id": "c1bc7298-da8e-5fb1-92a9-92756e2d7027", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "7e52a74efc4831415827d5a114383c862e86c53c6f7190f992187e03e481793a"}, "trace_id": "publish-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "f2ce0dc029bf54766967af20513b96271d60a532acd0c7f15fab83c67d6ad1d4"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-005-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "1385a0cda52b8a558300949be854280c79ba240ce0f5317d956dbc3c35fc8acf", "evidence": [{"ref": "publish-005-c1"}], "evidence_refs": ["publish-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "304d2429-4443-52ea-81b4-69a0f10633c9", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "05b40fc7-ee40-564f-b488-d00498e8e888", "project_id": "85016366-f152-5353-ad41-47e6a5943227", "request_id": "publish-005-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "d8106a5500d8bd32cdc5b6e462fa2b70947314814fad3c28c84f940c65fef4b4"}, "trace_id": "publish-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "b1050d98b100ba542b72865ced0dbddda0263ee12f55ec062b3ff380adc452f7"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-006-c1"], "comparisons": [{"memory_version_id": "c6521a10-4993-519d-aca7-c05413c6bcef", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "029ef39e13355d4ebebe4e4d26811f71be4e0e40ad15a27bf5531a57a1aa8388", "evidence": [{"ref": "publish-006-c1"}], "evidence_refs": ["publish-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "40490059-6239-514c-bd4a-2358f7d38df7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "dff71440-6022-55f9-b5d7-c6836d7ea3ca", "project_id": "48d7e9cc-b779-565d-ad0b-f9394af6f9dc", "request_id": "publish-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "4160b1ae08b4ac3298da807286e66d87486aa74115663d547726367f509db658", "current_transition_id": "3cecf8ec-34e7-519d-a6e3-4c5cbd77cdd2", "evidence_refs": ["publish-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "73c0505e-8f47-5dc7-b4f8-48ed579444c7", "memory_version_id": "c6521a10-4993-519d-aca7-c05413c6bcef", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "886766d617efde79081edbb07be84ec1f5fac7aac48a5a2adaad053a1f1bcb9d"}, "trace_id": "publish-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "04119d3924abfe757b7cc9110b1849d25a71d34a3eee0515a05ab3215595354e"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-007-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "7f820abb5883356726190b7ecd434af319ca13a3f2cac2dcccec520de5d5506b", "evidence": [{"ref": "publish-007-c1"}], "evidence_refs": ["publish-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "760d6ecf-f3cd-5fca-88f7-1826f9821c7b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "73bf9010-5a96-5823-8e30-1b3451f7e57d", "project_id": "e4835e9a-98ee-5da5-8783-9b240dcbf445", "request_id": "publish-007-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "afcbcfa52885177e5cc0de1736f1de3f4a773d5ffb00200b6d54c4a5ce07a122"}, "trace_id": "publish-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "2ea98b7359c00c10cd0d25e909c5c58c6e4d7592bb363ff19fcf88e063ec0d55"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-008-c1"], "comparisons": [{"memory_version_id": "ddcb7978-2f65-5c13-a779-8a06300d7a79", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "ec6aa1041089f55c26938597aa215e03c332cddcb58f129aaf9d6a4cf640032a", "evidence": [{"ref": "publish-008-c1"}], "evidence_refs": ["publish-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "d4b4fd62-b400-5c51-b68f-758d0e1710b0", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "eb6f3ac4-28bc-5f52-aa88-d3215aa1cf6a", "project_id": "71f89b97-e425-5d60-8c3f-80b15ceb8a76", "request_id": "publish-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "8a1cfc524cc99c9924171e4fcee64b732382cb2075399a3b5b2da06af877f895", "current_transition_id": "0f59a12c-3265-5ada-8e36-4af8f9db6d47", "evidence_refs": ["publish-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "4779a6d3-14bb-5e0e-8047-76d79741d85f", "memory_version_id": "ddcb7978-2f65-5c13-a779-8a06300d7a79", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "b09b488df60551e63e859bd06b5a267e0a0e21ac48ca84e988be21e8d10d13dd"}, "trace_id": "publish-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "4206abd17a789ad73d64035e868f6a04457ee844e50b6a92e8bea3fcb151fcd4"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-009-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "4f2f06073febb1f3db45db4a41790f6bfa59015301ba7092d77993fcbbc0102a", "evidence": [{"ref": "publish-009-c1"}], "evidence_refs": ["publish-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "ff12d918-5629-5a12-a10b-c4fe1b5165f5", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "76f03397-57f8-57d9-9d14-fd7a44ca426a", "project_id": "70cdbb12-d902-5310-80a0-aa354056972d", "request_id": "publish-009-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "4397802c334b5f9100497528720cc995687b89dc719e4fdb7f4d7f694f24f71c"}, "trace_id": "publish-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "ed938e97dab392e1e397a4d650ff4e14fa1f460224efac5ff774e8ae7fc8ef82"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-010-c1"], "comparisons": [{"memory_version_id": "30f09f23-4bff-587a-bf83-513b1774bfb5", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "d4a3ea50f2d7a46dbe89a0fe81852fc2ecf796ead8338ebadaf483e3ecda7b4c", "evidence": [{"ref": "publish-010-c1"}], "evidence_refs": ["publish-010-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "a8334d47-159a-5944-adc2-56b0d20bb12d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5995f7a3-a499-575b-814b-1fcf42d5d8ce", "project_id": "56de04ad-c19f-5aef-8c15-19acea3069f6", "request_id": "publish-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "584057440fd7027d334ffe7d453e11570e93e56dfc3d36d3d68d88abc7af0f63", "current_transition_id": "1472cab2-4c22-5566-9cf7-6efcb7deb7a8", "evidence_refs": ["publish-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "49eef664-6c72-5e7a-9334-522008a1e3b5", "memory_version_id": "30f09f23-4bff-587a-bf83-513b1774bfb5", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "4cb0df57eb84b8b1b7f3a26b6554bf7e3fe14a96d6b59465296a3fcce2633e0b"}, "trace_id": "publish-010-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "d8986c34a57910af8d5953257f427b342c973fbd487b01c1af6480c26d55cae9"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-011-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "434fa37264ff127f12176f02b2ce1637d03f06a54660dc6217755be0d0b88714", "evidence": [{"ref": "publish-011-c1"}], "evidence_refs": ["publish-011-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "b5b9be9d-c6ac-54c5-b532-5dedf6277dbb", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "b9a8b861-8235-541e-a8f6-bef60a618978", "project_id": "06d8e461-28a4-568a-9887-19f73e8525ec", "request_id": "publish-011-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "ab80c0f5fcf3f27756ce70e83fb86c8ba0f7a548b3179884594c5cd339fe8e3c"}, "trace_id": "publish-011-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "b01d2b46dcd3ffaf064b2f3303d8d6b89bdcda2c3472ef39ad2eee77248435cd"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-012-c1"], "comparisons": [{"memory_version_id": "9a56576b-6d0a-5bc5-8b4a-34434ba8eaa1", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "52eecea5f4a724b50fc870c027a3481251a04439030eb28a3e869695973cf473", "evidence": [{"ref": "publish-012-c1"}], "evidence_refs": ["publish-012-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "8659aafa-7a95-5ec2-ac6c-0fc11ef37268", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a4f632f5-493b-5a38-99cb-a8b80d61376b", "project_id": "760618db-4a8a-59e0-8b75-30d11d48679c", "request_id": "publish-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "2fae5ba9668b7cbf43e6324dcb31891ae7fc939bb5024101fcc566aefd046d35", "current_transition_id": "1ee55708-3a84-5e08-8718-acd4bbf33895", "evidence_refs": ["publish-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "61761569-a844-5fc8-a36c-0d5c301d63ab", "memory_version_id": "9a56576b-6d0a-5bc5-8b4a-34434ba8eaa1", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "79e44b981c28ccc79e8c94989de4b11a1bce6bf39107a9b8d0c4f92fee3ab4fb"}, "trace_id": "publish-012-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "31409aa5a87ca60511b05f18f1c08b94d0e5adb60531e353ed20ea6d0e2d613d"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "f8b1fea157901968e10436ff09c9a842d4ce0dba9ba6459442db1ae1a6d191bd", "evidence": [{"ref": "publish-013-c1"}], "evidence_refs": ["publish-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "2bcdab99-4ead-52be-8902-2594a8f34975", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "cd3a31ca-64ee-5a3b-bbaf-82e15903862d", "project_id": "42f321d9-3b52-5de1-b190-d12e25bd9924", "request_id": "publish-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "a983dd8e82d61d50cc74691e31834ef8d5a5e68a3ba37a9696c3bcaeccda14c6"}, "trace_id": "publish-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "e32f25ff66f96dc6d184f1c842318b1fac5ffac74236c0905abbfe29afff9a2d"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-014-c1"], "comparisons": [{"memory_version_id": "3e68068d-bfe6-50b0-95f9-eb2a3e56ac0e", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "0c692a20e43c7c5d8a96d0c8c465ad4774aa979c5308017718fd1a5247e92ced", "evidence": [{"ref": "publish-014-c1"}], "evidence_refs": ["publish-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "d9292235-4adc-5eb3-9392-f9fe83dd6729", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3f3069aa-591d-5bd7-a2da-11b698c42c59", "project_id": "78f128b5-3c77-5d09-a3d9-2b4a1c31b3ae", "request_id": "publish-014-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "e82fe57c3955d35b32f69a00a5442709e038bed8f81683c3072d3f027347faec", "current_transition_id": "e3a651f7-08a4-59ba-9cac-1cb381574830", "evidence_refs": ["publish-014-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "4f0dc4dc-74c6-5a19-9988-e2c896be6204", "memory_version_id": "3e68068d-bfe6-50b0-95f9-eb2a3e56ac0e", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "8677b13c08929923e433e5dd4b866e1ebd5b287fde6d8438414e5f682a1b8a43"}, "trace_id": "publish-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "ae9f6d1cab337bed237191abe19680bd69060a4ca93052906056f8a7de44e3d9"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-015", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-015-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "3f2fbbebbca332a6cf71b893d64ab8b17dad16a813dc0f488cb0ad2d06449a42", "evidence": [{"ref": "publish-015-c1"}], "evidence_refs": ["publish-015-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "9b708c6c-8822-5341-8c99-04584b218af8", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "16bb5fdd-cec9-50f6-a658-18a67c491a1d", "project_id": "44d80d0d-3493-5083-9145-58a6f4377b84", "request_id": "publish-015-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "31f8264f37f88d6c69aa509f424a50246de4584423b020f7ef8442b6fd62032e"}, "trace_id": "publish-015-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "15d87b0909e7098432182c6ff35214f13f0310af4399b4f8e6f07e7b78f8c7b7"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-016", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-016-c1"], "comparisons": [{"memory_version_id": "00c04ea4-b9f3-580e-b773-a9fedafa70fc", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "2c22972434c441723a91e9e65af9b097af5c34a193c637bb683501f51c8b1f10", "evidence": [{"ref": "publish-016-c1"}], "evidence_refs": ["publish-016-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "00ee96f1-dbbd-5afb-bf6c-55d8f6217d85", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a7a6a241-a9b9-53a5-b6a3-b8536aa80ac5", "project_id": "83b6f32b-bc28-5109-b968-0282299370b6", "request_id": "publish-016-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "52b4a0ff5948ce0478cb5e3a0d7e2be9b271ea3a22ebd2d3bba865fd51365ad6", "current_transition_id": "99133101-7801-5917-aae2-701a36f9f602", "evidence_refs": ["publish-016-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "5c9d9678-210a-5b95-a46e-75f5829ccde0", "memory_version_id": "00c04ea4-b9f3-580e-b773-a9fedafa70fc", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "55b50c3db7f22469a73f6f2d0073a60cf28c2fe5dd8c0f63930cab726d39d580"}, "trace_id": "publish-016-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "388378d4a63df35381c2f725f0d4b86a56f173db9edbbd3969943e7f5e21beb2"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-017", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-017-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "08ac1145776cc80d2efe34fbb9a53e62637e77bc863c872caac3b116fa15bfb9", "evidence": [{"ref": "publish-017-c1"}], "evidence_refs": ["publish-017-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "a5a035ae-5234-593e-b4ee-aeac91eb8820", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "df254962-09db-5dde-988b-f50bf971e789", "project_id": "dfcbf305-17cc-5aef-9679-67b97a4b57ce", "request_id": "publish-017-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "6b224da165cfb705a1af3d338f771dfb9aaf23f44c3290a6c45c5f868848a567"}, "trace_id": "publish-017-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "68058e94e1ae8ff4e1b3819c62c4ba78995e84baa78bcbbe41dee8b5de84e61e"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-018", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-018-c1"], "comparisons": [{"memory_version_id": "5c9f65e3-be07-5ae7-8749-76ad1c7774c0", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "d5da1d79f0579c272783259ebfc479542afe9041ff98602a368510e6dae2934b", "evidence": [{"ref": "publish-018-c1"}], "evidence_refs": ["publish-018-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "e9284461-9a7b-564e-8189-108009060cd2", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "22c4b143-c20d-54a7-b0ce-cddfed920b43", "project_id": "95fe0c17-6e95-5a51-95a2-585a403ddf03", "request_id": "publish-018-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "ca68efbf5576bc5d79ebe7b5477757e45aeb10385b5fdc5c8d756fced1aba9b7", "current_transition_id": "109ed698-a621-5760-8e01-55e60260f41b", "evidence_refs": ["publish-018-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "4db6e571-c53d-5fba-ac28-27239d12b913", "memory_version_id": "5c9f65e3-be07-5ae7-8749-76ad1c7774c0", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "630581c987142e18be05120eac9d85c851ccb480cd491c92cdbb4f3db97b1f6c"}, "trace_id": "publish-018-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "2d3850a8-4878-511e-b712-f465c9597a5e", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "a74130d2139609b9994b63237007ab20489d13ddb8025884469e8e3384f6ade0"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-019", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-019-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "15b8e986208d2eb36ba184355bd88e1702f7cd9a0b27428037e4a11f443b3863", "evidence": [{"ref": "publish-019-c1"}], "evidence_refs": ["publish-019-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "b8b2f3dd-14f9-56cb-843b-29fbbe3425e4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d29bff4c-4e42-5588-9cd5-c57dca95405f", "project_id": "a7aa3718-32bc-50b0-a865-c39e4bd36010", "request_id": "publish-019-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "d04060dda9845dc0907c5f6694734aa4b1cded81a9623521d9822506ab625791"}, "trace_id": "publish-019-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "0b9243d5-e9f7-5485-bb01-71a16f326941", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "ecf15b010d9cde506b881c0dfaed6ac18ad5f73a76b8a6181e58e80dd34bfa5d"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["52aef6c1-2e3d-5348-b278-97422d4731a5"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-000-c1"], "comparisons": [{"memory_version_id": "52aef6c1-2e3d-5348-b278-97422d4731a5", "relation": "equivalent", "target_evidence_refs": ["merge-000-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "52aef6c1-2e3d-5348-b278-97422d4731a5", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "0d7bf0dffc95a953e40b262bc11781e774acc9fdde0d2b723680fadf71da7a08", "evidence": [{"ref": "merge-000-c1"}], "evidence_refs": ["merge-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "96dbdfce-813e-5309-91f5-a6f91bc7380c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "375a5a94-ed43-5502-a180-83d4eed107d5", "project_id": "310f707b-960d-57d1-b18f-6bcb20549061", "request_id": "merge-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "de0275b1e611dee5f38a49f1b9759ad9e1091c874ec2473b484ae04059ade522", "current_transition_id": "48d001d2-11cf-5b3f-a8cb-74530ae5e794", "evidence_refs": ["merge-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "6204971c-18d6-5362-8f29-711205c9f9b4", "memory_version_id": "52aef6c1-2e3d-5348-b278-97422d4731a5", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "018a6bbbad8492ec2ae954a33c750fd0906b590990d2f4c4a801219d67183d33"}, "trace_id": "merge-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "9f9a00a7237111614f4ae4498fb66a01609c1af376ae9e1eb4fa516919a4105e"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["6c84d4cd-45e8-5a12-956a-0ca2da3ac960"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-001-c1"], "comparisons": [{"memory_version_id": "6c84d4cd-45e8-5a12-956a-0ca2da3ac960", "relation": "equivalent", "target_evidence_refs": ["merge-001-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "6c84d4cd-45e8-5a12-956a-0ca2da3ac960", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "133448e497a29fd66f08227ed826f09971c1279cd668ecf0c53278c61ac83f5b", "evidence": [{"ref": "merge-001-c1"}], "evidence_refs": ["merge-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "9124ab78-f1c4-5e3d-a9e8-ed9a9ae90491", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "68eec999-3072-5850-95e0-820222698251", "project_id": "1c0dc52c-365a-510a-a82c-f2c60f6775f0", "request_id": "merge-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b0ea1ffe5fdcf38bed1c38bb4d80caf4cd49d7de0df96ab4e99ff6a990bf0f07", "current_transition_id": "a4863930-fd87-596e-800d-440b6593bab2", "evidence_refs": ["merge-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "c9539723-10b0-50d3-89d8-730d3809dfb9", "memory_version_id": "6c84d4cd-45e8-5a12-956a-0ca2da3ac960", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "ed97ee5cc0f6efeee96a0fa5a84caf20b9c0838407f90240214e5a208f069185"}, "trace_id": "merge-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "c67f2bbbb5d63a1e455c372e54a9b9d860498872487f0d73d8dfed29b7ab2800"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["ab1469f5-4a6e-59f5-ad97-3b84266d7b24"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-002-c1"], "comparisons": [{"memory_version_id": "ab1469f5-4a6e-59f5-ad97-3b84266d7b24", "relation": "equivalent", "target_evidence_refs": ["merge-002-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "ab1469f5-4a6e-59f5-ad97-3b84266d7b24", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "74f2d836a149c21f8bdc8f2949f77b5765c57a1227dc2faec2202822a55d321b", "evidence": [{"ref": "merge-002-c1"}], "evidence_refs": ["merge-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a4a1bf98-5ced-5a98-a156-d695b4f49339", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "9db97fa4-2772-5cbe-8e25-dc44b5b406c1", "project_id": "84a98149-6694-5fda-b25b-7a3225f5ee6d", "request_id": "merge-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "37acc6e0519f73aeca2bc50d5c9e1d3fca4c15e2e4baec40553d0639a62b84bc", "current_transition_id": "d23ee5e0-b617-5461-a202-e94fcc3bdf36", "evidence_refs": ["merge-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "5f25dc05-c5d9-5d08-975a-ef663f0279f8", "memory_version_id": "ab1469f5-4a6e-59f5-ad97-3b84266d7b24", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "0664b327b76429f07c2e5e3ecea8b3db271cbc206c5530f04b6f3df6d4fdb78b"}, "trace_id": "merge-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "c11973645c920c84f3755906d7137dbe7c05034d8963aebaf2e0ccb8b896755f"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["30feccb7-f8e9-5c64-82c3-e9383d8193ea"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-003-c1"], "comparisons": [{"memory_version_id": "30feccb7-f8e9-5c64-82c3-e9383d8193ea", "relation": "equivalent", "target_evidence_refs": ["merge-003-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "30feccb7-f8e9-5c64-82c3-e9383d8193ea", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "0b9c14b829c0a41a37d69c6d0bbff479a83f75dae047cf5068fc988e0226c784", "evidence": [{"ref": "merge-003-c1"}], "evidence_refs": ["merge-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "9a37021e-2cd9-52d3-85b4-abbc39aa8d2e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "ce094a81-ee35-5970-9e2b-a972dc347d1f", "project_id": "dec3b976-39cb-5780-95a6-1e2ea428ff30", "request_id": "merge-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "d015dc319c09f3c98d9e6a4ed00e38bf3d83b51adbb73071b95d975386bc9f4a", "current_transition_id": "af64cbc6-d241-53c9-b897-49905ea52d6f", "evidence_refs": ["merge-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "b1518f74-8275-51c2-a32f-32a2916596d9", "memory_version_id": "30feccb7-f8e9-5c64-82c3-e9383d8193ea", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c8dd87a6123dba3dd2eb64b7d8098e7540b197506856bb332e692784efbb49e6"}, "trace_id": "merge-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "a42a221ef94d461e486423f8601b1aa573d08d1971958e18d73f4da26065445c"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["a962ff65-4079-5900-a0e1-7c2064fe3ce6"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-004-c1"], "comparisons": [{"memory_version_id": "a962ff65-4079-5900-a0e1-7c2064fe3ce6", "relation": "equivalent", "target_evidence_refs": ["merge-004-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "a962ff65-4079-5900-a0e1-7c2064fe3ce6", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "59dcc49ec42e111f01ad591402f1572972f9798a18658ffefe838b1667f32083", "evidence": [{"ref": "merge-004-c1"}], "evidence_refs": ["merge-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "c060f72f-f0f6-5cab-a143-3fae5f8f4257", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "476d5d0a-f3b4-52de-a4cc-19fe88f3348a", "project_id": "af66fe7d-0a4e-54f6-a0e0-61e5e224e6a9", "request_id": "merge-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "35019e5e27233183aee5ddfd9dd10d1896e34e574d153aaa226990db23252a1a", "current_transition_id": "41478ba3-d2eb-5a33-ab36-661a627b7208", "evidence_refs": ["merge-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "57d0982c-81ac-5d3e-9a67-c20a5deb6eb5", "memory_version_id": "a962ff65-4079-5900-a0e1-7c2064fe3ce6", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "65c1fb9b0b0ff795bddab58824cb24a6896ebfebfb6a597c1e7b229db7087cf6"}, "trace_id": "merge-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "bb61b5621ac853cf8c922c36a4a3be4f9475b130f289fcb6e60ea5ad9ffefd9b"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["bef95484-5052-5f17-8f9d-76e064c4011c"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-005-c1"], "comparisons": [{"memory_version_id": "bef95484-5052-5f17-8f9d-76e064c4011c", "relation": "equivalent", "target_evidence_refs": ["merge-005-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "bef95484-5052-5f17-8f9d-76e064c4011c", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "9c45e3ed1ace293b5d0ad3d2943d8f484606f4daaac1cf9012c0857461a49369", "evidence": [{"ref": "merge-005-c1"}], "evidence_refs": ["merge-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a32c20d7-3ded-59e6-b2a5-5eb5aed3ad21", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "7288b25f-554c-5f2b-8fc0-a2800574ceef", "project_id": "4b5dd200-524a-5037-8643-eb9b60e56b3a", "request_id": "merge-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "9f59a8516ba6f4f7bda1ac91ce931c9f9782d0c7fffffb29da1781850a2ffb4d", "current_transition_id": "bfe097a3-29d0-5359-98f7-761ffa251345", "evidence_refs": ["merge-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "b8665d34-5d79-52aa-9092-04a8d7520915", "memory_version_id": "bef95484-5052-5f17-8f9d-76e064c4011c", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "1f20efec65f40dbd5e865452b9d03472f0cf9d79a4d72813b41a77b7a63288c4"}, "trace_id": "merge-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "bcb735a9eced23b5cd3a24d6913323eebc0b539a4b525486342f5e492360db44"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["18c654d9-a30a-5ad8-980a-3b78bd287f26"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-006-c1"], "comparisons": [{"memory_version_id": "18c654d9-a30a-5ad8-980a-3b78bd287f26", "relation": "equivalent", "target_evidence_refs": ["merge-006-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "18c654d9-a30a-5ad8-980a-3b78bd287f26", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "6543e13a6fbef521eb91d903750de03bbb66e9be7c404753db44da2eb04e9e13", "evidence": [{"ref": "merge-006-c1"}], "evidence_refs": ["merge-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "ea8b97e5-549e-5b32-a54b-d098775005f6", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f19cf327-f5fc-5ef6-bbd4-4ff62238e493", "project_id": "53ce48e8-f19f-5c31-8708-24cfa26767a6", "request_id": "merge-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "7aa31386f54421ae0eadfa298f78a32b402bf78fcd58e2620353ff4d3006065e", "current_transition_id": "bff857f0-9698-56f4-a86e-a471634c8add", "evidence_refs": ["merge-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "9ea08d4e-3a63-5b7b-bda1-08a1d82ca62b", "memory_version_id": "18c654d9-a30a-5ad8-980a-3b78bd287f26", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "318906aa2256030a2ac051a727289ee4d0e206732c0714f468d20c697b770694"}, "trace_id": "merge-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "ed999dd55c1348104c870390d130c67e5dbf83ad250f35db0618e0bc599b7aa8"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["57fd5604-4555-5ddf-ad16-ac3b0b723839"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-007-c1"], "comparisons": [{"memory_version_id": "57fd5604-4555-5ddf-ad16-ac3b0b723839", "relation": "equivalent", "target_evidence_refs": ["merge-007-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "57fd5604-4555-5ddf-ad16-ac3b0b723839", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "9e3c21dc241d88eca532e62fdf757fa17c458b67a775222dcaa9b5138ff1291a", "evidence": [{"ref": "merge-007-c1"}], "evidence_refs": ["merge-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "aefa3570-9b47-5de1-9412-b739f2098d6b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "af5965d2-428b-5761-a003-cc7dd8776d01", "project_id": "4534616d-a17c-552e-b484-17c4c50355c9", "request_id": "merge-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "289803a23c309ec0ce2940e691e73377d6d52f2739d17ea19abf1664caaddb8a", "current_transition_id": "44123df6-7cad-59ab-8e81-de169890f97d", "evidence_refs": ["merge-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "c15273bd-c0fc-5912-ba2a-a2cdc052ef61", "memory_version_id": "57fd5604-4555-5ddf-ad16-ac3b0b723839", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "4472f0f300650173b631d94dc1edc3fcd3706c43d2ca638afa87ebca97443ae5"}, "trace_id": "merge-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "29edc60790e5fc5116b120f2c59066a57ced872608024ee8ac6dd378e3fa88a6"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["d3272cf4-97b6-51d1-86e3-5e8ceb7a4344"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-008-c1"], "comparisons": [{"memory_version_id": "d3272cf4-97b6-51d1-86e3-5e8ceb7a4344", "relation": "equivalent", "target_evidence_refs": ["merge-008-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "d3272cf4-97b6-51d1-86e3-5e8ceb7a4344", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7650eefe05764df7284b9c662590816b2e22002104986e4f292bb89e443fb308", "evidence": [{"ref": "merge-008-c1"}], "evidence_refs": ["merge-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "ca5724a9-9fa2-5b90-ac0b-5604e475653b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "7a216a65-1318-53d2-a90c-6bf5c58ed616", "project_id": "943d9ecb-a692-57f5-889f-95a938dbfd88", "request_id": "merge-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "4daea9c6cb8e149ac2234b7b73df202cd21b7457fe432c52c956043869b5538f", "current_transition_id": "57854abb-b0dd-5717-95dc-594cc11acbc1", "evidence_refs": ["merge-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "293c99cf-a0fb-5d99-ba96-0dfc0e4fdec6", "memory_version_id": "d3272cf4-97b6-51d1-86e3-5e8ceb7a4344", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "4d29e3119fe93661dd135deae62967171fc46e2e5d8263167727d5df6fb8f9d0"}, "trace_id": "merge-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "d6b87e526f4be8b918b487eb6ca1af21a39189229bec4037da6ea1394f21869f"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["fc8ad236-08f6-5383-9c80-35e4ac78e8cc"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-009-c1"], "comparisons": [{"memory_version_id": "fc8ad236-08f6-5383-9c80-35e4ac78e8cc", "relation": "equivalent", "target_evidence_refs": ["merge-009-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "fc8ad236-08f6-5383-9c80-35e4ac78e8cc", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ac22071a99ad7982875c329f2b0e21fc0669ef41d49e09791aee843e2feb97e5", "evidence": [{"ref": "merge-009-c1"}], "evidence_refs": ["merge-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "399cdbf7-47aa-53ab-98d4-652ba57fb598", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "1d557669-e61d-5502-a27b-707eb80a9db1", "project_id": "34fe22c4-d76a-5601-aa5c-016a70fa50bb", "request_id": "merge-009-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "087a3207680f79be28daa9f44e6efb46a836b4dd5821547eb6d6cb1c4879c647", "current_transition_id": "af9b2a95-027d-55b7-bcb3-e980c6575a81", "evidence_refs": ["merge-009-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "60e89121-5d9d-5f21-860c-87af59815de1", "memory_version_id": "fc8ad236-08f6-5383-9c80-35e4ac78e8cc", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "21d2429bfad8e85215fec529475dca70715d4eebd51da527d16e98d9b500c586"}, "trace_id": "merge-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "46f5ee227b780415b99f5301aee14c3cc4d9b249ccfc581c906eb89b35e4e602"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["d2742959-a498-5b7b-9933-1d0066b8998a"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-010-c1"], "comparisons": [{"memory_version_id": "d2742959-a498-5b7b-9933-1d0066b8998a", "relation": "equivalent", "target_evidence_refs": ["merge-010-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "d2742959-a498-5b7b-9933-1d0066b8998a", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "51f33b50f43d2a392b84c1ce129f5d453142444eca250eca58f9aa09e1015258", "evidence": [{"ref": "merge-010-c1"}], "evidence_refs": ["merge-010-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "e5914913-b237-5218-af9b-f21134f9643a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d663734c-f62d-5e51-8c25-99e9181b8fa0", "project_id": "de9f546c-7d7a-5942-8ae2-36c8a0bcf8e4", "request_id": "merge-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "fec8b088dd76e6a01c1a042c26941345f90427880310a26bdf9d4e03b345a2b5", "current_transition_id": "0bdfda4a-7745-5ef4-be53-47099641a66a", "evidence_refs": ["merge-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "6ea1d9f3-ffe8-5697-99f9-908a3126cffc", "memory_version_id": "d2742959-a498-5b7b-9933-1d0066b8998a", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "8639eba885a2ff069b5c05ec628b00c5d4a08f4b7645f802e81b8740ed314dd3"}, "trace_id": "merge-010-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "d96b6bf4d57a10f470258c43ad49c142c5397f69a87c31a671eac9660f5fc9c6"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["51f47e1f-7abf-5e51-ac8a-b2c31b360bea"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-011-c1"], "comparisons": [{"memory_version_id": "51f47e1f-7abf-5e51-ac8a-b2c31b360bea", "relation": "equivalent", "target_evidence_refs": ["merge-011-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "51f47e1f-7abf-5e51-ac8a-b2c31b360bea", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7b57925c60f0aea4cbadbe05c0dc6aed250c61938ca22fc37b318b77bf89b2dd", "evidence": [{"ref": "merge-011-c1"}], "evidence_refs": ["merge-011-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a3a092bd-3f16-5dad-9211-a80f2623815c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "47a602eb-4bb2-5623-b38a-aafb8498483b", "project_id": "0ef101ec-95f9-5a5b-9401-90e97bee4f30", "request_id": "merge-011-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "4d3493b2f08ccac9d7875ce0952bdf3723de5ab94f691c75c71a858d1ac96a50", "current_transition_id": "62768e7f-7a24-584d-a5c2-838c5c2537db", "evidence_refs": ["merge-011-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "abd339d8-0c04-51bd-b270-992b386ec012", "memory_version_id": "51f47e1f-7abf-5e51-ac8a-b2c31b360bea", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "6bf22f073ee642d38bb0464105428dda3fea5c1ba82794547467e07b581685b1"}, "trace_id": "merge-011-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "202bd8883d213f3427dbd3dea59c1a4750da8ec3c33fe630a9d6749959c1d954"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e64a49f8-e808-5723-9c86-c2af4865a01f"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-012-c1"], "comparisons": [{"memory_version_id": "e64a49f8-e808-5723-9c86-c2af4865a01f", "relation": "equivalent", "target_evidence_refs": ["merge-012-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "e64a49f8-e808-5723-9c86-c2af4865a01f", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7f8d4d9d54a54f4cd3b957863c60e4aa885d3c31cce5f75bd0842cf613f84bf8", "evidence": [{"ref": "merge-012-c1"}], "evidence_refs": ["merge-012-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "02ee54dc-cfc2-56b4-a3b9-7ea8a7bdfb4b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f2c0057d-70c9-5c77-bca5-cd9cb3234cae", "project_id": "51854dd9-ac79-5253-b071-0f5c740bd0af", "request_id": "merge-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "a5f47b9899a138518606b55ff657201694a855b62a3d40e7172681fec3628ab1", "current_transition_id": "6a9151f8-b363-5b9e-85a3-5762df815e37", "evidence_refs": ["merge-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "1bd9dabf-3a00-54b5-9a30-ee07fb4cff63", "memory_version_id": "e64a49f8-e808-5723-9c86-c2af4865a01f", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "8b83f7f6f5eae5feda410a86587ebcd9a3260595880a2d4adbf29628ab69c5ac"}, "trace_id": "merge-012-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "69abce7d995abd79a453618b457a7666a58468fbac0c9c7fff4919bac371bc39"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "9cd090db6f585513cd5929fa8589d16cff58b6f6adb36d65313c780513cd3731", "evidence": [{"ref": "merge-013-c1"}], "evidence_refs": ["merge-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "20fd5ecd-4897-5cda-8fb9-6bd4382d592f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5b9d4abe-0db8-50b9-a826-9d29ad4c3ff6", "project_id": "8e584f69-ffa7-5b14-ade3-3a4b95e151da", "request_id": "merge-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "b4f32f77f552c14afe7e6f64faf688b2f22e5b75c37e2b0e18c915613c35d551"}, "trace_id": "merge-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "4c84face-abb2-575c-b069-564ec7488d51", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "0ced0eb49ef2638b2aed0c32de735c71460d663079d66d9fdef0e2ccf53a2988"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-014-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "cd0811a84564442d3abe830af039877f9e94c35208c82a3ea7cab85fdbedf0e8", "evidence": [{"ref": "merge-014-c1"}], "evidence_refs": ["merge-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "35a47b4d-753a-5711-9132-c9ca7284c8b6", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "99f57b70-ce5b-590f-ba4b-989863cb46c4", "project_id": "c1f364c8-bce8-5326-9d2c-e8b66051b343", "request_id": "merge-014-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "13bdb70f22101ad59114af787d26008fc9ca5db5c6a0ed9f1e66a1f21b30288a"}, "trace_id": "merge-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "8b160bdc-df8b-500e-8cff-14b758cf7761", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "8799cd41ac5e5234b87bfee4089ef538a09018eeaeed4319c2f4baef14588b5f"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["9bf59a29-9ec8-526d-a7db-f3dfb6de7859"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-000-c1", "revise-000-c2"], "comparisons": [{"memory_version_id": "9bf59a29-9ec8-526d-a7db-f3dfb6de7859", "relation": "candidate_revises", "target_evidence_refs": ["revise-000-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "9bf59a29-9ec8-526d-a7db-f3dfb6de7859", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "9fda1dc6468eac8776cb4cfe9229dcca7126d3a7a09fa4a84969848f00ec069d", "evidence": [{"ref": "revise-000-c1"}, {"ref": "revise-000-c2"}], "evidence_refs": ["revise-000-c1", "revise-000-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "11a666bc-98e1-597d-bed5-6ffaddc399df", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "446c463a-baf5-52e6-833d-1f524eba0c89", "project_id": "4d9d7392-95cd-5b15-8789-2fa1ce2e1e95", "request_id": "revise-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "1e9cc1d34951ed86d7de7eec0b3bdf3d3074b59edaadc71d9c1c0e1429217556", "current_transition_id": "3a265a94-04c5-5119-936c-ea4bd89dcd2b", "evidence_refs": ["revise-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "bf86826e-c9b5-5751-b0ea-6f597bda3f5e", "memory_version_id": "9bf59a29-9ec8-526d-a7db-f3dfb6de7859", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b612e8e6adb2c13aa02dd1786c62d9cf32e3da3ae8539f3c330862c9259e0eb8"}, "trace_id": "revise-000-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "f50d1be5d1331403e5df45a974a5fc1878d1880199fbcc09640ff6e866221ac2"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["0190ff84-7b39-5932-9150-c4f758fc3083"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-001-c1", "revise-001-c2"], "comparisons": [{"memory_version_id": "0190ff84-7b39-5932-9150-c4f758fc3083", "relation": "candidate_revises", "target_evidence_refs": ["revise-001-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "0190ff84-7b39-5932-9150-c4f758fc3083", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "330325b034ad8883368cf944cadc98324458ae31cf1b5bf6a2a56d5aabcbf471", "evidence": [{"ref": "revise-001-c1"}, {"ref": "revise-001-c2"}], "evidence_refs": ["revise-001-c1", "revise-001-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "92169e97-2881-5a83-91b5-e47341fd95f5", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "91b10c7e-d9f7-5f6f-bd9a-1f3e28af80f3", "project_id": "3bbc5f39-ecf9-5b50-88a4-72685cc20393", "request_id": "revise-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "78ee147e58bf657e14bf3810f65a13e26c6717a76b61828b70471cf785ec64d1", "current_transition_id": "d512befb-988a-5012-8deb-2d2227881c67", "evidence_refs": ["revise-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "5aae5fe2-af47-59d8-a3fc-8faf90641337", "memory_version_id": "0190ff84-7b39-5932-9150-c4f758fc3083", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "3f23a0513a8430a1852812a684b9da4880038d2e0fd5b004ae07b5005be09dcd"}, "trace_id": "revise-001-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "ea4c4f04d7e8006dc20ae6fcb652cea4e5f6b9764b53fb2f4f953bea68e97f40"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["d854e4f9-6148-57c6-96a5-51a9483cb00a"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-002-c1", "revise-002-c2"], "comparisons": [{"memory_version_id": "d854e4f9-6148-57c6-96a5-51a9483cb00a", "relation": "candidate_revises", "target_evidence_refs": ["revise-002-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "d854e4f9-6148-57c6-96a5-51a9483cb00a", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7eb195d28a9156a09ef20c890c69dc713c30c8350f35b2a4e74c0837a9558ad3", "evidence": [{"ref": "revise-002-c1"}, {"ref": "revise-002-c2"}], "evidence_refs": ["revise-002-c1", "revise-002-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "4ab918fb-6275-5348-9d0b-f5b9c7758af2", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "320d3490-dad8-5e34-8af5-1eaca45117a7", "project_id": "262bf832-b046-5cfe-b422-199e046b65b6", "request_id": "revise-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "d9b7e35f172c4c4b29c2f4505962aedca32a5294003a34425229d98bd36520dd", "current_transition_id": "9ddce70f-6aaf-5b06-bd29-8142df3de9e8", "evidence_refs": ["revise-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "385f6d66-6ade-5ddc-a608-54017494c303", "memory_version_id": "d854e4f9-6148-57c6-96a5-51a9483cb00a", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "38c8892c73934e065210405521222ff4104cf5e4c8581a639662752a2e1a5592"}, "trace_id": "revise-002-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "c65b9656142526c64c101faa5ed12a22c3f5ab43b4708625018dc234a4b1815a"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-003-c1", "revise-003-c2"], "comparisons": [{"memory_version_id": "cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae", "relation": "candidate_revises", "target_evidence_refs": ["revise-003-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "8dc893b870f73f40fd5c15319a05b5a24406118c81b1174f8e48e44b40ffa719", "evidence": [{"ref": "revise-003-c1"}, {"ref": "revise-003-c2"}], "evidence_refs": ["revise-003-c1", "revise-003-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "c88d72c0-80b4-5a7f-b7be-9eacc61d4984", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "34111001-34df-5f3a-9f0b-7568b36ef3a1", "project_id": "27314df2-bd2d-5b3e-95c6-f4f2bab0b58b", "request_id": "revise-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "f41fad06d02bdd8b655c473af14ef6426f05e550c8a480574f96e31575f9a16f", "current_transition_id": "6c2b7e19-e74d-53c5-8c24-5125bf3ad16b", "evidence_refs": ["revise-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "3781a9ee-0164-5a0e-a438-626ab6ab4af2", "memory_version_id": "cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "dc36b1fc4569942474277475fc90afc90e346222cd8122967e928cb8112afc97"}, "trace_id": "revise-003-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "bd064efd8927a0c3522445bbca7750a66f6772ca7d602b24883c53e29f4d8d32"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["3b5fd2ec-fc0b-5997-9862-880407b11996"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-004-c1", "revise-004-c2"], "comparisons": [{"memory_version_id": "3b5fd2ec-fc0b-5997-9862-880407b11996", "relation": "candidate_revises", "target_evidence_refs": ["revise-004-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "3b5fd2ec-fc0b-5997-9862-880407b11996", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "6a9b9c512bc550900f58a6933f34d4c5a90163eaacb7ec133f4a699e9ad30fc9", "evidence": [{"ref": "revise-004-c1"}, {"ref": "revise-004-c2"}], "evidence_refs": ["revise-004-c1", "revise-004-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "65d60e7b-aedc-566d-a951-c8651ba0a36e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "4cd78fbe-a714-56d0-a018-6e5b97ef6bef", "project_id": "292e44e1-d9a3-5124-aa9d-47280539fbdd", "request_id": "revise-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "e664d93f0ef19c908be7039d5726e2d15cefc4a364d5718719607960e15c8837", "current_transition_id": "bc3ac89a-7eb7-5468-b32b-9f15033ed6fe", "evidence_refs": ["revise-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "c9c4f0d7-5d34-544b-8d24-3a56f708edf0", "memory_version_id": "3b5fd2ec-fc0b-5997-9862-880407b11996", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "f7f235c272736e326dd133c2413563c27f2f0a1a5df550cacecea3182a97c030"}, "trace_id": "revise-004-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "744a9e525f29ae726dc9f6c1e167c2e6b3261a622b280fddbee5f75477fc502b"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["8a6f6517-aa2e-58f1-8aed-c80b0492cb1e"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-005-c1", "revise-005-c2"], "comparisons": [{"memory_version_id": "8a6f6517-aa2e-58f1-8aed-c80b0492cb1e", "relation": "candidate_revises", "target_evidence_refs": ["revise-005-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "8a6f6517-aa2e-58f1-8aed-c80b0492cb1e", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "d7497982247a569a8b4163030840e912133ac41781dce4c4c0923a159bf92a31", "evidence": [{"ref": "revise-005-c1"}, {"ref": "revise-005-c2"}], "evidence_refs": ["revise-005-c1", "revise-005-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "7060cc5f-869b-5fb3-aaa2-988c68cd3f06", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "34b4b2fb-c0a2-5502-8f2a-fdd5b076476a", "project_id": "ab89683e-a942-5203-ae53-496053977fdc", "request_id": "revise-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "0e2178057b2fd7dd1bff7510aa14f5c40b6939c471991549a63d5b8e34ad65c8", "current_transition_id": "6654687f-fc02-54f3-b61f-a196f8f9190d", "evidence_refs": ["revise-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "35fc0eba-de9b-5301-82d7-5b863b05c829", "memory_version_id": "8a6f6517-aa2e-58f1-8aed-c80b0492cb1e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "7ee2efc58fb6253ab31e1220d388b552eb251e8dbbe2eafe4fce8039666b8cfd"}, "trace_id": "revise-005-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "34ef7f3657deb112dcd3c146f052ecd852e77e769f51f699a67f08899f5d97c6"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["42496031-4404-54ba-99fd-d4fcf7eb96b8"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-006-c1", "revise-006-c2"], "comparisons": [{"memory_version_id": "42496031-4404-54ba-99fd-d4fcf7eb96b8", "relation": "candidate_revises", "target_evidence_refs": ["revise-006-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "42496031-4404-54ba-99fd-d4fcf7eb96b8", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "56b75442f5533fff88593da057e7bbc915fbf429142f2e39c2ba5e95e7c7564c", "evidence": [{"ref": "revise-006-c1"}, {"ref": "revise-006-c2"}], "evidence_refs": ["revise-006-c1", "revise-006-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "d103bc5c-87ac-5c68-abf9-688ea9979cf8", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "0e29a8f1-1a24-5be7-ad67-96759985d028", "project_id": "02ef22fd-88a2-565f-b875-e765eee4429a", "request_id": "revise-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "19c750d97b478c462cae44cca1063ecc99c68ee1c2b55cdec44dba9c278f6bf0", "current_transition_id": "15e02252-672e-5fed-b8b7-f6ee98373315", "evidence_refs": ["revise-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "ec869445-4988-5e3e-8520-b625a3aea673", "memory_version_id": "42496031-4404-54ba-99fd-d4fcf7eb96b8", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "72eec696388cfd82e64e34904cdfaabb8ff8cac581435944fb6763a3b6f8fbd4"}, "trace_id": "revise-006-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "c7760460c7fa970e49b215fbfe89779d93c0a837db44cf29e9968f0b3d651788"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["ee377e46-340e-51dd-a13d-94efff79dc83"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-007-c1", "revise-007-c2"], "comparisons": [{"memory_version_id": "ee377e46-340e-51dd-a13d-94efff79dc83", "relation": "candidate_revises", "target_evidence_refs": ["revise-007-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "ee377e46-340e-51dd-a13d-94efff79dc83", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "b68d052f39ccc1c34fa0d38f7493ee11acc9a574742d0a4e8833dbdc33671084", "evidence": [{"ref": "revise-007-c1"}, {"ref": "revise-007-c2"}], "evidence_refs": ["revise-007-c1", "revise-007-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "c20012f1-8f85-5060-98ab-1bc8cd5d30ed", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "842f22cf-e67a-5286-b86a-5fa5a4f24999", "project_id": "88e0dc0b-fd28-57f7-a4cd-3d3ef19058cb", "request_id": "revise-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "518ba3b2c7a9971e46d548b99a4870e861b9e01b6bfc3f5ba75e3e30d2d6ddc7", "current_transition_id": "ef2941f8-8664-5291-9db1-147b724fe9c8", "evidence_refs": ["revise-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "713766ee-4335-58fe-a176-38d3673568d4", "memory_version_id": "ee377e46-340e-51dd-a13d-94efff79dc83", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b5f00be254f020050c960de1fdc922d029fd416bb706d935b758cfac728a8373"}, "trace_id": "revise-007-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "414f8013c68f9dcaea148eaedbda9daf45861362b0ee87cf6f80288f3b821507"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["af3a0290-54ba-531d-ab58-57c3c01b7f31"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-008-c1", "revise-008-c2"], "comparisons": [{"memory_version_id": "af3a0290-54ba-531d-ab58-57c3c01b7f31", "relation": "candidate_revises", "target_evidence_refs": ["revise-008-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "af3a0290-54ba-531d-ab58-57c3c01b7f31", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ea57d9bf59dec3cfbe0bb21dd0146f6a76fee726d70e3318b8f7776b889119ec", "evidence": [{"ref": "revise-008-c1"}, {"ref": "revise-008-c2"}], "evidence_refs": ["revise-008-c1", "revise-008-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "3c6ebd3a-1c36-5221-944a-e02715395d3c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "69041f49-8f2e-5cd2-b3c2-dfd2d65d324b", "project_id": "2c01cdba-2253-5268-aee3-7b75f9d7cedd", "request_id": "revise-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "98de0e980a0f2418231a2f580c677476abf6771135411f9b8496ec98e37a7c60", "current_transition_id": "59137489-f779-5b66-bb9a-fa988feaf3bb", "evidence_refs": ["revise-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "688515b2-15d3-5292-beda-b96c4726f927", "memory_version_id": "af3a0290-54ba-531d-ab58-57c3c01b7f31", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "95368fd1cbb3b12d8555964f7499c4db499dd5ad214b99b2b9fb391df949d811"}, "trace_id": "revise-008-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "f4c15236905494d2ac84d109751cb8e0cb3dd8ca76cc18a29def315ad321486c"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e8a8f3f6-1950-5d9d-a546-28a126c9b1b8"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-009-c1", "revise-009-c2"], "comparisons": [{"memory_version_id": "e8a8f3f6-1950-5d9d-a546-28a126c9b1b8", "relation": "candidate_revises", "target_evidence_refs": ["revise-009-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "e8a8f3f6-1950-5d9d-a546-28a126c9b1b8", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ab1bbea2af7e46bcd5b39bff1ed613098e4fc249b293cb40dd221f094fdb08e0", "evidence": [{"ref": "revise-009-c1"}, {"ref": "revise-009-c2"}], "evidence_refs": ["revise-009-c1", "revise-009-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "bfc40231-b1ec-58d4-80db-ba415fa7e00e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "546c9ded-9bf9-51ff-af1e-1c2719c175ad", "project_id": "e70e9f18-29ce-55be-91a6-295fb98cefc2", "request_id": "revise-009-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "aa59a49eb3f496edd8ea3b7a4e7368685cc14fd68ba3dbf07bdd0687626e9d1e", "current_transition_id": "a556fd00-bb73-5a02-a35e-c271f1ecc7b6", "evidence_refs": ["revise-009-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "84968d05-2dc6-5d91-af65-bd1b974827f2", "memory_version_id": "e8a8f3f6-1950-5d9d-a546-28a126c9b1b8", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "2629ee8b51f05ed9d6f66b7032ae26ff842c4d8365c6254f84b8dc8ebebe1268"}, "trace_id": "revise-009-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "9d4ca21f3579866e440eca555f0765cdf80dca1637840c6dedf1bf5e6d4e29ff"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["64034303-283a-54c3-b2f1-1907ad3cfd63"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-010-c1", "revise-010-c2"], "comparisons": [{"memory_version_id": "64034303-283a-54c3-b2f1-1907ad3cfd63", "relation": "candidate_revises", "target_evidence_refs": ["revise-010-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "64034303-283a-54c3-b2f1-1907ad3cfd63", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "be7dd29ffaa5f8e8254552077380436cba2af483abb079358a8913343144504f", "evidence": [{"ref": "revise-010-c1"}, {"ref": "revise-010-c2"}], "evidence_refs": ["revise-010-c1", "revise-010-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "45abaa70-675d-566a-8313-fd06ec0cb502", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "9f1ebeea-bf15-55c2-97ed-05d717d8482c", "project_id": "f8b48875-ad9d-55d5-aa05-f39f990c1938", "request_id": "revise-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "e1300afb7cec13c8b5de337a8cb137134c351b2cb9cf3dc351ec979e1c8af17d", "current_transition_id": "af724e7f-d295-5eb4-bc5b-f89a24043410", "evidence_refs": ["revise-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "6e0d30bd-195f-57ae-b3d3-af9b11bd3511", "memory_version_id": "64034303-283a-54c3-b2f1-1907ad3cfd63", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b0a738d0b30d85193f0de720def665f522f79fe585d7708f70f72b5e6edf86e7"}, "trace_id": "revise-010-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "40ea624c86ec3268117c46d972b8b6f97729eb2f8a36b5ca68ea9507eed05514"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["b80b0d0a-da6d-5673-b3df-13ff68669e57"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-011-c1", "revise-011-c2"], "comparisons": [{"memory_version_id": "b80b0d0a-da6d-5673-b3df-13ff68669e57", "relation": "candidate_revises", "target_evidence_refs": ["revise-011-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "b80b0d0a-da6d-5673-b3df-13ff68669e57", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ae9ee82bbac402fe8846c3c329e7af66eba527ca5bfed679f2797c80a91b18c2", "evidence": [{"ref": "revise-011-c1"}, {"ref": "revise-011-c2"}], "evidence_refs": ["revise-011-c1", "revise-011-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "045c0856-7cf2-5d60-8ec5-a346ddfbbf9a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "359cb240-9e6c-515d-8c0c-152ee4fb3cc7", "project_id": "94e9e061-f355-58cf-93f7-2e0ce6f58ae7", "request_id": "revise-011-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "fda6da9e224dbcea29fd88c6420fae7bdbf486d18873eb3f17f7f0db654da586", "current_transition_id": "916d2b70-83fd-5caf-ba18-57d37beb3cc0", "evidence_refs": ["revise-011-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "b2074458-4007-5e24-b5c0-f10e5f41d8fd", "memory_version_id": "b80b0d0a-da6d-5673-b3df-13ff68669e57", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "5585eb733c2d402102233f5cd7ba6e300fdd54aefa9e87d782622a76a1d6d288"}, "trace_id": "revise-011-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "5569b5748954164381cf88a29e801d26101d7a7f1e2c03102d8ad5a3f6b96add"} -{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["efdce29f-49e0-535e-b045-58b53e0b394e"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-012-c1", "revise-012-c2"], "comparisons": [{"memory_version_id": "efdce29f-49e0-535e-b045-58b53e0b394e", "relation": "candidate_revises", "target_evidence_refs": ["revise-012-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "efdce29f-49e0-535e-b045-58b53e0b394e", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "3665869760c204acabf750c61f8e46400d0913bc5bdf78f0395d90488493e6b9", "evidence": [{"ref": "revise-012-c1"}, {"ref": "revise-012-c2"}], "evidence_refs": ["revise-012-c1", "revise-012-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "4a7adf9e-cb76-5141-bbaf-de98f36269db", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "95cb1f73-58be-5148-8e90-0362d42babac", "project_id": "52d0a34a-de73-5625-9670-c01358246489", "request_id": "revise-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b0de8cfb2ee62730fd276862f53fe6045f4f634574542948406c992099c65842", "current_transition_id": "2d285f05-6fd6-5347-bb45-f4ec3c1b3768", "evidence_refs": ["revise-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "89b8e9f9-f981-516b-96dd-2da25120b6b0", "memory_version_id": "efdce29f-49e0-535e-b045-58b53e0b394e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "da12954212408fc8d15ac74be7d38e56c132b43c51e626a82d24f498232ca2d3"}, "trace_id": "revise-012-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "9104f2f0a7ad936115f808146809156856b5cefc7fe4c9cc214e7c8dd65c1db2"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "be5fcc48fba78726618bc51aef222c894af124e88f93f0fb70b1affb58f37673", "evidence": [{"ref": "revise-013-c1"}], "evidence_refs": ["revise-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "1c46ee6a-a83c-5fd4-98b9-599a72e204e9", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3c8ee91d-1678-5231-a989-e1ad122e8af2", "project_id": "3513396f-929f-5a9b-91d3-39f1f1a47589", "request_id": "revise-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "18345213ffcc6fcb597607a403338beb70e068eac62eddd9ee34fd7beccdfb71"}, "trace_id": "revise-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "c53305df-c4e7-5859-8ff8-8b29471fbd57", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "b12e4659f16e76cfce5795fae622d242bd402d0d72b364b6c19348655e0e842b"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-014-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "8699d7d07dca4b85ff43c4c07d63cfe0fb9da32b9c6c4e0ba5f36357b7bd3211", "evidence": [{"ref": "revise-014-c1"}], "evidence_refs": ["revise-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "3d5ab270-ec20-5275-aa17-925f21adc04f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "dab805d8-33e8-5113-bf82-52c7779b65e3", "project_id": "c28e4219-dd09-5fce-ba09-14afbc39711e", "request_id": "revise-014-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "13715ccf5a53f0ef635167b17c485628233fe7eba1925aff76e3bf5f1c2070e0"}, "trace_id": "revise-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "483ee6c9-9065-5a6a-805c-a1cf7c5c22f2", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "d4f38089ca738cb6e5c8c45e6b7cbee67946ae324043db5b1cf42f26eac0d68f"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["72467f8b-1ff5-5560-82e9-e81d5a3b30a4"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-000-c1", "supersede-000-c2"], "comparisons": [{"memory_version_id": "72467f8b-1ff5-5560-82e9-e81d5a3b30a4", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-000-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "72467f8b-1ff5-5560-82e9-e81d5a3b30a4", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "b5eba77707acf5b9256eb41a231ecee5d78c0b6c7be08cafb4e96febd0401392", "evidence": [{"ref": "supersede-000-c1"}, {"ref": "supersede-000-c2"}], "evidence_refs": ["supersede-000-c1", "supersede-000-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "fe312999-450f-54e0-a491-ca7c3fa00114", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "7d24756f-1fcc-5b88-9311-1e57d68c1ca3", "project_id": "88eb8faa-3e29-5328-bcdd-4f71932b2f18", "request_id": "supersede-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "3e7de15e2dfc24f0e5668540be55b547c245d21fcf58edf2170377cee5f6118f", "current_transition_id": "5dc09f59-d292-539c-a71c-0102d9391625", "evidence_refs": ["supersede-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "672c6913-464f-5050-a261-65544dcfe6dd", "memory_version_id": "72467f8b-1ff5-5560-82e9-e81d5a3b30a4", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "11e598aa411b53fa45571b37b8e79a9ddb2106b464fb72efa9156fbdfceff20a"}, "trace_id": "supersede-000-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "5d46d171e1d6465dc47b04dd4c40f354615da46f7718c45d9f4546ad6e9e178e"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["28d78b66-db76-514b-80e2-1656aeb26e96"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-001-c1", "supersede-001-c2"], "comparisons": [{"memory_version_id": "28d78b66-db76-514b-80e2-1656aeb26e96", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-001-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "28d78b66-db76-514b-80e2-1656aeb26e96", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "02e01241b05b8f8ab25228a5180ceeb6a8e82986d85b1e1ab756b7aab0acd56d", "evidence": [{"ref": "supersede-001-c1"}, {"ref": "supersede-001-c2"}], "evidence_refs": ["supersede-001-c1", "supersede-001-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "d160bd18-3843-5ca2-92d2-187662f41bad", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "e9e71597-f65a-5af5-bb4d-e2e705af9937", "project_id": "d2c29341-5cb4-5a5a-a405-7d99a80b3ac6", "request_id": "supersede-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "8f70890c438de7bb4d8875e67bad0307b0ebf0c0c15bb7bf0602123b5683d890", "current_transition_id": "83f3d5d6-2ec3-5eb9-8542-e669e469c9e5", "evidence_refs": ["supersede-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "551d9fb0-6534-5f9a-9258-9c07c81d092f", "memory_version_id": "28d78b66-db76-514b-80e2-1656aeb26e96", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "5ffae04164d09072c8a20b32ccd0b01081e5784ada883db9d2ea820d97964f15"}, "trace_id": "supersede-001-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "1d7abb94edd094ed1a4db1ce71e97a018c2fb092f526aa6e8b34bdfed744631a"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e0cb4f19-8ee6-5851-a60f-c157f618f2dc"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-002-c1", "supersede-002-c2"], "comparisons": [{"memory_version_id": "e0cb4f19-8ee6-5851-a60f-c157f618f2dc", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-002-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "e0cb4f19-8ee6-5851-a60f-c157f618f2dc", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "fd831162f68f51ada47478cffe6776f03febcd8a9aa0f8a4fa53e6d819a68447", "evidence": [{"ref": "supersede-002-c1"}, {"ref": "supersede-002-c2"}], "evidence_refs": ["supersede-002-c1", "supersede-002-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "07b3caad-65ec-5bc9-85f5-7cdd7e359410", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "25462b43-2ce9-53ca-aaa5-a44cdff85fe7", "project_id": "8faecd08-8a3c-5e28-88da-91157888b98f", "request_id": "supersede-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "75f1cc67a1dae2393411434acd7bdafeef4bef55cb2a6b3c900b878563d9fe54", "current_transition_id": "ff2c8681-aa57-5370-9ce1-422397d3430e", "evidence_refs": ["supersede-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "b3387ebc-7b0e-5ca6-acdd-19a50721fb83", "memory_version_id": "e0cb4f19-8ee6-5851-a60f-c157f618f2dc", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "2535b3f6920050017ae771d8cc4592f8ffa68e13aac107d630e1d4bf63405726"}, "trace_id": "supersede-002-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "3ca4f2d68fb55169b7f67429bfe346d8c936d5a97dd76e32f74cf527c5917875"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["f99a4aa2-01a6-55c0-9348-69bc26449e6c"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-003-c1", "supersede-003-c2"], "comparisons": [{"memory_version_id": "f99a4aa2-01a6-55c0-9348-69bc26449e6c", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-003-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "f99a4aa2-01a6-55c0-9348-69bc26449e6c", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ff525d14fcc28d56a9cd98f1ca9bb321fd157ad2b3051304bd0609033a937646", "evidence": [{"ref": "supersede-003-c1"}, {"ref": "supersede-003-c2"}], "evidence_refs": ["supersede-003-c1", "supersede-003-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "1fe0781c-69ae-590d-b6b2-3b8ad9c6d899", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3de6ae70-571f-5463-b42f-28be0a8e2584", "project_id": "a5d76ba0-8474-549b-9966-c09a935242b7", "request_id": "supersede-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "62c54ba96f0bff88187bda5e687a4db4d2815295437350b30f43e7c2e7ed8396", "current_transition_id": "08b32b0e-e251-5658-9e9a-19dcafea68ff", "evidence_refs": ["supersede-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "d8cc06e3-507b-56f4-ab0b-155ed04d4abf", "memory_version_id": "f99a4aa2-01a6-55c0-9348-69bc26449e6c", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c7d03da7b27b09dabf966098e1dd7566870af06e77ab7001ff8ee6f5f333d43c"}, "trace_id": "supersede-003-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "aa12eb8d8c8e6e21c947ad193bb191c3c2025bb14c78185bd53930a1fb3cda3d"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["95045a51-8b7b-5b2a-9ff5-12c491ca7712"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-004-c1", "supersede-004-c2"], "comparisons": [{"memory_version_id": "95045a51-8b7b-5b2a-9ff5-12c491ca7712", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-004-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "95045a51-8b7b-5b2a-9ff5-12c491ca7712", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "91421679f92745afc03d3eb027d5e4c8c9aa88bcdde058c880f432b314adecde", "evidence": [{"ref": "supersede-004-c1"}, {"ref": "supersede-004-c2"}], "evidence_refs": ["supersede-004-c1", "supersede-004-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "08b7cc10-bec4-53e4-a0f4-cf432a567819", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "87e8586a-a437-550d-9a76-01757e39a6cf", "project_id": "58aa0d06-4127-5fb1-b6f9-d44d57104a99", "request_id": "supersede-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "3088759a9c14f358de5dcda614562d6ead7a21018651de5cbeb1b6c60a11d6d6", "current_transition_id": "7a9b5d6c-3d70-52bf-a138-c89d4c30cecf", "evidence_refs": ["supersede-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "144623a6-cd25-54cb-a0a5-79d49afc0086", "memory_version_id": "95045a51-8b7b-5b2a-9ff5-12c491ca7712", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "16dd5d07704cbd0a0d14603d46bab72a162c6373a34c7878529e11f827b3175b"}, "trace_id": "supersede-004-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "09f4eba494deac131938ff1eebfd0b252f79eb716ebe17cc1e002179c142efd0"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e5d6dc64-d7a5-523c-b3b0-d87076a414e7"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-005-c1", "supersede-005-c2"], "comparisons": [{"memory_version_id": "e5d6dc64-d7a5-523c-b3b0-d87076a414e7", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-005-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "e5d6dc64-d7a5-523c-b3b0-d87076a414e7", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "600ea9693c79f9c32edfc801daa9b208a7b764d9a6344789afc925b04e5f447c", "evidence": [{"ref": "supersede-005-c1"}, {"ref": "supersede-005-c2"}], "evidence_refs": ["supersede-005-c1", "supersede-005-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a658e97b-cbf1-5c75-8bcc-592d1bd9c6bd", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5256a078-8097-52e2-ad65-ea6aab4bcc74", "project_id": "1a461268-2c47-5100-8992-a3f1b15181e8", "request_id": "supersede-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "cd38716ac1d2cb5633a70c5ec29ecc425cd1beb49e4253d4b04d3251330dc0b5", "current_transition_id": "0f429b3c-0660-5923-8ad2-542b2b9007fb", "evidence_refs": ["supersede-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "8a20d4fa-7eb9-5f13-885f-21d0f4ec9c7a", "memory_version_id": "e5d6dc64-d7a5-523c-b3b0-d87076a414e7", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "5cc4faa21cdddffc898829918a47ca7550f251d204bcba1c7a1b8903937898d1"}, "trace_id": "supersede-005-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "6275e4f38b8c5d8ed30821aa00645a69fd687bd1c7618f26efef656734223637"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["106531c7-e833-5b68-9427-0de76fe1a420"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-006-c1", "supersede-006-c2"], "comparisons": [{"memory_version_id": "106531c7-e833-5b68-9427-0de76fe1a420", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-006-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "106531c7-e833-5b68-9427-0de76fe1a420", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "8f5900227b14516609abd07ba5c27fda4f47d0f6c0e80ee413a1ac7e902ebeb1", "evidence": [{"ref": "supersede-006-c1"}, {"ref": "supersede-006-c2"}], "evidence_refs": ["supersede-006-c1", "supersede-006-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "df6b96c9-a2ac-5c59-b182-b2b714cbce3d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "36f5e766-4e47-5870-b6ce-fcfecc30a4ea", "project_id": "917d192c-ed16-5208-94d6-bc8985b95de5", "request_id": "supersede-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "310c6adf8aa56285c6459d973a68aa3d5f1c6baf2aacb59f8740def28f67d9ce", "current_transition_id": "e1d2d24e-cb15-5202-86ef-a83f7b631178", "evidence_refs": ["supersede-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "25572235-8b3d-56f8-98d8-8abc4cff2355", "memory_version_id": "106531c7-e833-5b68-9427-0de76fe1a420", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b59d839bf0c6a3df23064caba6d11a7c9502d7809fccba7801b7bce9f8f5e37c"}, "trace_id": "supersede-006-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "dfb579abe6df9f0c836fac9c2d6dec96bb3526a5b242d5945ca38e44190e1449"} -{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["073309d0-0b95-5337-b436-89023f49cb80"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-007-c1", "supersede-007-c2"], "comparisons": [{"memory_version_id": "073309d0-0b95-5337-b436-89023f49cb80", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-007-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "073309d0-0b95-5337-b436-89023f49cb80", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "323d93e23349fcfa45ea69b06d3424c5b4054351ba4b309d9cbd829365366d00", "evidence": [{"ref": "supersede-007-c1"}, {"ref": "supersede-007-c2"}], "evidence_refs": ["supersede-007-c1", "supersede-007-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "99502f4f-0146-5bb9-9dbf-d81ca5f5ba2e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "00099b9d-d5a6-58af-96dd-14bcf758bf8d", "project_id": "a11f57fe-b5bc-5241-9006-deaeefe54f6b", "request_id": "supersede-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "5fe826a04eedbfaf0742d1e5e6dede3ad0b409a47616ae7888f570ad0685795d", "current_transition_id": "011e7007-70c1-5442-9996-712a5511f913", "evidence_refs": ["supersede-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "031648a9-ba1e-5b85-bf52-ba3e31797fe2", "memory_version_id": "073309d0-0b95-5337-b436-89023f49cb80", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "13eb33aa65fb46c7becfff17635ebc3a580f8a35d3c2d11a2a73f646d36020da"}, "trace_id": "supersede-007-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "8318e84d25f82287de758c3c05b280b0dd1b9b298ee9dbf09d94797aad575d09"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-008-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "97e1d64c10ffaaa58d0b14fa98e75d964f34e2870f435c10b8cc972cb2f46bb2", "evidence": [{"ref": "supersede-008-c1"}], "evidence_refs": ["supersede-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "9c7720d7-6e75-5f0b-a85e-6e7f4975a19d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "108f9534-a578-57dc-a78b-efc1b213efea", "project_id": "0e0685b3-ed58-56ea-b789-debe41eb3bca", "request_id": "supersede-008-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "98345113c49a276d3fb4a98e5df313ad93f846964409e013c36b9c3cbba511bd"}, "trace_id": "supersede-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "6edfd709-f332-533b-982c-87e93b8af046", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "149756c95816bb5196c18a66905e5dd7e2b6640b8076c0178cf452d06627971e"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-009-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "6dd7aa520c2a8de50e0cfcbfb7379be79ab17b5381f9783b4e251efd8c6b1883", "evidence": [{"ref": "supersede-009-c1"}], "evidence_refs": ["supersede-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "0593478c-8abe-5751-bc7a-4e1088a16ab7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f11c5d07-c958-57e9-98e5-18d22ad8c48d", "project_id": "fee0ebc3-b6ec-594b-88c7-26aa684018ac", "request_id": "supersede-009-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "454fbe78289bbf21f361e795ca334b8c6616b08a15dce220cc885921ebb27761"}, "trace_id": "supersede-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "826e59c8-bfce-5ec8-ab18-ae6d0b6f5d1a", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "351bc0691add2dcfd9ceac9fa61efa9bac5c494deefa4c0c0c2350f0329a61da"} -{"allowed_outcomes": ["reject_candidate"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-unsupported-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": [], "comparisons": [{"memory_version_id": "57352460-af8d-5a25-8c1d-660968cd8ff7", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-unsupported-000-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "57352460-af8d-5a25-8c1d-660968cd8ff7", "temporal_order": "candidate_newer"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions moved to a managed cluster.", "content_hash": "55ab00a714376f608d568eb1785296660b31bd5e68730175011f648f3cfc7014", "evidence": [], "evidence_refs": [], "evidence_tier": "none", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "205042a6-c608-5baa-8116-14d997801502", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "c5b0c372-987b-5990-80d9-a380e1564f90", "project_id": "1fbeb8be-38de-5904-95f8-0ebdcb93fcda", "request_id": "supersede-unsupported-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "68d6853a073a1f3c24d470489f5356a0ac56efdf18affdee1fdf5443c557c622", "current_transition_id": "5d8d4af4-1a4e-5799-b341-fff1a67ba131", "evidence_refs": ["supersede-unsupported-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "b12c62f2-f2f0-5b19-ae8f-f19d5ae4bb60", "memory_version_id": "57352460-af8d-5a25-8c1d-660968cd8ff7", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "3fc810707ae0f93431c25ab40d49f76102cbe4d15fb8c1bf1e19775d498ca83d"}, "trace_id": "supersede-unsupported-000-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "reject_candidate", "scope_control": "in_scope", "source_hash": "d590c66c95d7b32e22de723937750820ff670e6ea56424fd0cd670951a7e2cd7"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["4329993f-ae60-562b-8604-c57137a4d2d3"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-000-c1"], "comparisons": [{"memory_version_id": "4329993f-ae60-562b-8604-c57137a4d2d3", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-000-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "4329993f-ae60-562b-8604-c57137a4d2d3", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "1713da2c8b8997efa367511042890f62fb6814bf13486d83f5274cdea00fb17f", "evidence": [{"ref": "conflict-000-c1"}], "evidence_refs": ["conflict-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "e1ad9182-c046-5dd5-9c6b-20537acfd01f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "b8e89232-1107-535e-9d72-2485d30b5138", "project_id": "c8337894-c9a5-546d-bda2-403ed747afd3", "request_id": "conflict-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "bd23c81dc8c349bcc7dedbdffcf1beaca5bbfab308af4e97acb24485b98b1a46", "current_transition_id": "6500a7a4-a7fc-5f6c-92bd-301b9050aecd", "evidence_refs": ["conflict-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "21c1715b-ab54-589b-9511-fc1074e9e6d9", "memory_version_id": "4329993f-ae60-562b-8604-c57137a4d2d3", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "e4095a49669c7b60ea43643870c617281ee975f8009dfc77b6b8ca82b331a440"}, "trace_id": "conflict-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "4a39946cf07ceec951ed1d942fafa5c503a171148267596c175f83187fc1c3c5"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["10838e63-4f35-53b1-aac8-a807ca6d4bad"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-001-c1"], "comparisons": [{"memory_version_id": "10838e63-4f35-53b1-aac8-a807ca6d4bad", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-001-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "10838e63-4f35-53b1-aac8-a807ca6d4bad", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "b74afe789d21fa1d27741b6e24344c00e589e795b1f9966f9afaf6802327c3d1", "evidence": [{"ref": "conflict-001-c1"}], "evidence_refs": ["conflict-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "19601669-cae0-58a8-b9d8-f55e625281c7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "06bb3d16-f2ae-5fd2-a3e1-94abb2b2c497", "project_id": "03acbd7f-8fa9-57d5-8657-7302782cb68b", "request_id": "conflict-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "096c2b4164ea547133622db846ab8f564c4f91bb3f46d9e76e99c82b1d784e1a", "current_transition_id": "0a56204a-29af-5513-90c9-f0e437972106", "evidence_refs": ["conflict-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "84269d19-4196-583a-a889-06c3ebce891f", "memory_version_id": "10838e63-4f35-53b1-aac8-a807ca6d4bad", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "a64378d42b10e23e6e4c99acc7a2e1044ee7fec9701c4a37c628bbfe0b0b29e3"}, "trace_id": "conflict-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "a488423c2c137835b23370596c0e5d818b39506588a7842c3c4376c70bc6522d"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["0f8c577b-6738-5af4-8390-c8cd9809d722"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-002-c1"], "comparisons": [{"memory_version_id": "0f8c577b-6738-5af4-8390-c8cd9809d722", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-002-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "0f8c577b-6738-5af4-8390-c8cd9809d722", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "681892a3bfdccf30fde3df4b0a4c936394803600643194fac3356bcf81346e60", "evidence": [{"ref": "conflict-002-c1"}], "evidence_refs": ["conflict-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "5ce07f91-8c70-5e38-bfd8-f3a754dc980c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "01aba6af-8844-5cde-8704-07d6ef28b0c8", "project_id": "71fd0939-8a72-527d-a22c-6ca706ccf6de", "request_id": "conflict-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "80978286a8e590f9602d8d06a69a52573b5fe23ae77b4e69aa01828846e00cc7", "current_transition_id": "0cef1588-7e23-516e-818f-0cfae412478a", "evidence_refs": ["conflict-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "765b686d-90ea-5d1c-98a4-c1c0c1da44c8", "memory_version_id": "0f8c577b-6738-5af4-8390-c8cd9809d722", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "1a38b8953b0cc67363ce19bdd3908a4d3b91c0f26bc7d74bc1f06b251f8184f9"}, "trace_id": "conflict-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "7822a2a9155a022537629f2eb08232cda1027a8deedf9ac84b33b0a6cccc956d"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["4f25f753-02dd-5463-882b-aa23803ab4ea"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-003-c1"], "comparisons": [{"memory_version_id": "4f25f753-02dd-5463-882b-aa23803ab4ea", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-003-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "4f25f753-02dd-5463-882b-aa23803ab4ea", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "a51e316fa5cefc8e19d124b1022afdd8d6a03dd4c58f2910d207b5a353f34008", "evidence": [{"ref": "conflict-003-c1"}], "evidence_refs": ["conflict-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "99a37d1a-abba-5f12-94c5-b65a73aa5b97", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "c182ad57-39b9-52f6-a540-070c74defeb0", "project_id": "2e61a039-63a0-5608-86b6-2f95eee14a7f", "request_id": "conflict-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b9b509d3b9270ab78af49834dad236f318e97767e4ab93333fe9725d3fbf7b8f", "current_transition_id": "9d7011ef-b65b-5076-b6e1-2ba47d1f74c9", "evidence_refs": ["conflict-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "529b07a8-69c3-5fe7-a6e9-e3ede429a7cf", "memory_version_id": "4f25f753-02dd-5463-882b-aa23803ab4ea", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "deea9c0f7fec70735730f9ed4b557a6bb671eb74cbc311a35fdc18a48d99447e"}, "trace_id": "conflict-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "f9492b3cc83aab39da889c399299ad572310de5e1f3804ec83022e325b30d3cf"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["8813f250-041a-5757-8126-9149bf03fd46"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-004-c1"], "comparisons": [{"memory_version_id": "8813f250-041a-5757-8126-9149bf03fd46", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-004-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "8813f250-041a-5757-8126-9149bf03fd46", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7944944b2ae3b1e81c329eeb30fb3c35c8c43ee5ff15f99263d8bc2ff8165361", "evidence": [{"ref": "conflict-004-c1"}], "evidence_refs": ["conflict-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "49bb5752-8df9-5d1c-bc74-656be0ca4a87", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "248d0eee-8d75-5282-bdb8-86000df60f50", "project_id": "63f58c5a-d811-5782-b3a6-3d461916a4d3", "request_id": "conflict-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "2f3940cbee56430d9644360d86df4d5f1ac8508a27fe67bb6b3163332b884e1a", "current_transition_id": "9c540dc4-63c1-5bf9-b260-7bfed5e9a4c6", "evidence_refs": ["conflict-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "fcf99d5c-fff9-537c-8b4f-b3937e3a6ab3", "memory_version_id": "8813f250-041a-5757-8126-9149bf03fd46", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "3835730b10368c76e25fa9a6d3a204e13374b46c274128e7a58f45283ac25df0"}, "trace_id": "conflict-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "fb125ba21e358a949f87da5e38324ca2f69dff629bfce16b4caef2946fdd503b"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["1335a7c1-7d58-5c6e-ab71-edf163a1c2fa"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-005-c1"], "comparisons": [{"memory_version_id": "1335a7c1-7d58-5c6e-ab71-edf163a1c2fa", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-005-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "1335a7c1-7d58-5c6e-ab71-edf163a1c2fa", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "024e4ba14e8fe0b97a10e3d971c8832548737dabebaee77ce287be4226aad6bc", "evidence": [{"ref": "conflict-005-c1"}], "evidence_refs": ["conflict-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "78ed36dd-850a-5140-9952-90fdddd84edf", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "49a43ba3-ed5f-507c-8e3f-50dffeee1eb2", "project_id": "0eb29973-d5b7-5167-a87b-343fde0e338d", "request_id": "conflict-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "4a2db22b25f74f8fefa889e3289cd9d0b0c1916fe8885cf84e5e80b085210def", "current_transition_id": "bf61a12f-51c2-5e0f-83ff-9b4e2bb79235", "evidence_refs": ["conflict-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "7440e00c-5b66-516c-85f0-3db8e73ed7f5", "memory_version_id": "1335a7c1-7d58-5c6e-ab71-edf163a1c2fa", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c97cce772bb6df9becb9ff8b9c7434bdaef7f00f43d2040f0824ead31dd7e1a9"}, "trace_id": "conflict-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "1cdecad0a23b176764cd8127ed150201b396eeec66a329f35b9227ff7952d2c7"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["a63d00db-2f04-595e-9dfd-b3822e61b65e"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-006-c1"], "comparisons": [{"memory_version_id": "a63d00db-2f04-595e-9dfd-b3822e61b65e", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-006-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "a63d00db-2f04-595e-9dfd-b3822e61b65e", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "c68da69e7180f005b112f686acb27f1b14da8d5389cd2c1c44e6942687b2a9b1", "evidence": [{"ref": "conflict-006-c1"}], "evidence_refs": ["conflict-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "472feb15-323d-5433-ae84-e8611c7bd6fb", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a138fe7b-f1bf-5b50-80d8-50fba20469f3", "project_id": "96b55477-6deb-5af6-a82a-84462a920abd", "request_id": "conflict-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "58f279d9694bce16f47eeac9e54bb63092b52407eaafb8ecb230592cfb863098", "current_transition_id": "273dc138-8484-50d1-bec9-3306daaebf3e", "evidence_refs": ["conflict-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "53b761ff-29d3-52b3-8548-8d8e9b798839", "memory_version_id": "a63d00db-2f04-595e-9dfd-b3822e61b65e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "4942a2615d65144c04dd95f97502c552e7fc2c25ae72feeaae97615987e15965"}, "trace_id": "conflict-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "a837f425c0455922c7702c842ea484a540172cdbc2517d64fca3714fbc9d520f"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["86e9f87b-5c07-5357-929c-b3a558571378"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-007-c1"], "comparisons": [{"memory_version_id": "86e9f87b-5c07-5357-929c-b3a558571378", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-007-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "86e9f87b-5c07-5357-929c-b3a558571378", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "eb054ae1bafa5b4a4e99410316df06f787202dd42d5d9e4cefd60068250ffbc3", "evidence": [{"ref": "conflict-007-c1"}], "evidence_refs": ["conflict-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "bc2629b3-7843-5e39-9401-3351afe11191", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "863a0c77-0f12-5bd6-ba32-42decc20e95f", "project_id": "48254914-cfe5-5e1a-bfeb-644464354bde", "request_id": "conflict-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "3143f9692cdbe17f5211234983ff5c1ef6551606f2266f34688d96fdc37a59df", "current_transition_id": "35cbe0bc-1b76-5a7d-ac5f-fa8b399d0d05", "evidence_refs": ["conflict-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "c11d2261-9ad2-5b84-9e16-a74e29a157b4", "memory_version_id": "86e9f87b-5c07-5357-929c-b3a558571378", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "1d069cc1ab4fda584a0ebd96881eae5df9ddec4cf2eedc75768a074d11f902ec"}, "trace_id": "conflict-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "d2719d6c31e217a162a125dbe259eefc139c923aac919d94f78087a9414b9929"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["920d5ab2-1210-5eb1-981b-785a4949362b"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-008-c1"], "comparisons": [{"memory_version_id": "920d5ab2-1210-5eb1-981b-785a4949362b", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-008-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "920d5ab2-1210-5eb1-981b-785a4949362b", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "98153f2b869bbb21c89675901334738ebaed0bec702b07d8b90caa74f8e43342", "evidence": [{"ref": "conflict-008-c1"}], "evidence_refs": ["conflict-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "82baa773-1530-5642-89e8-ddac7f196280", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "03d0f005-0508-5a2d-a606-d0aedb3abc3f", "project_id": "a5a45641-4b9d-5d02-a215-12c16509f209", "request_id": "conflict-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "f2aa8f82fa9fcc0971842fa2075804274dca2a00763574ead0e94cae993aacf7", "current_transition_id": "46eb0e9b-a5b2-51b7-bf03-d55e7afe168e", "evidence_refs": ["conflict-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "620c91f9-73ef-5382-b02e-a5a91a001472", "memory_version_id": "920d5ab2-1210-5eb1-981b-785a4949362b", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "d815bef98f378621a21e6f4821da1f02802f040a097a730eb08bcbe808d19148"}, "trace_id": "conflict-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "fe6b21bee54cb44b9e4ca7e9801e1e21f4293c85ab72e306153031fdb21953af"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["32a5b85c-6981-5b5d-a82c-027997e701c2"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-009-c1"], "comparisons": [{"memory_version_id": "32a5b85c-6981-5b5d-a82c-027997e701c2", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-009-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "32a5b85c-6981-5b5d-a82c-027997e701c2", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "e2480cdfc1fe399284f45084d41b8219a11a56beb681ba7e7c3c0cb31f9dc90c", "evidence": [{"ref": "conflict-009-c1"}], "evidence_refs": ["conflict-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "993cfc36-4603-520a-bf4b-0bf28a60863a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "258fd426-e2f1-5b9b-9418-5dda1b7911bc", "project_id": "907187ee-58bf-5ecb-9493-923b7ef44edb", "request_id": "conflict-009-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b1850104b2679432fe1edb730d93fe6fbf966a464c76d4ee63018c5f3ad70adb", "current_transition_id": "81c4c92b-95e1-56a9-866b-98a968f37f5b", "evidence_refs": ["conflict-009-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "8172910d-a4d6-5b05-85dd-9237cf5a1921", "memory_version_id": "32a5b85c-6981-5b5d-a82c-027997e701c2", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "bd0347b517cb3320834a790fb27b14541162a93f6927235d3eef1f1a4f028783"}, "trace_id": "conflict-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "fcdc52c6c7228d596b0ec4b9578bebd9d6791de6679ab21617d720416da0590f"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["4b547b1a-251d-5aef-be04-7dc81d3f2d10"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-010-c1"], "comparisons": [{"memory_version_id": "4b547b1a-251d-5aef-be04-7dc81d3f2d10", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-010-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "4b547b1a-251d-5aef-be04-7dc81d3f2d10", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "33ba357ffa73dbe55da44e85dfa6b4351d42e5f0c6eeb09a1f089a27a07a9ca1", "evidence": [{"ref": "conflict-010-c1"}], "evidence_refs": ["conflict-010-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "8f8b49be-bc8d-5ca5-9e21-8e52390f3068", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5f86040c-9804-51da-a97c-179e2a80b17c", "project_id": "909b04ec-ad2e-5e38-a7c0-bd7b82b864a7", "request_id": "conflict-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "7127114e2386e9f812e3998b90f42eea2b6d122a57d879f067b504d2dae4adc4", "current_transition_id": "ba9a925e-86c2-517b-9cb8-11840be22916", "evidence_refs": ["conflict-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "589d0c8b-9fd7-5d5b-8798-576e285ba42c", "memory_version_id": "4b547b1a-251d-5aef-be04-7dc81d3f2d10", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "cb9a43b468d5666c894de4051cbd80abafcea292b79c0106af346ed2e554081b"}, "trace_id": "conflict-010-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "331ff59bc85c1a41b8fe928e2086612c6d72d3d03f0c7f3c82aad2c76e9ff79a"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["94f6a23f-ba81-55cf-a54f-d0e381d0049e"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-011-c1"], "comparisons": [{"memory_version_id": "94f6a23f-ba81-55cf-a54f-d0e381d0049e", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-011-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "94f6a23f-ba81-55cf-a54f-d0e381d0049e", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "309f76c081824193d50c2385d370ae1a3e3c553dc6e4d343756811b8aaebd748", "evidence": [{"ref": "conflict-011-c1"}], "evidence_refs": ["conflict-011-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "44ba0014-1d8f-5e0e-9239-acac7c457299", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "19c0cb03-5ed4-58f2-b0d8-805f2540dcb9", "project_id": "53732461-2cac-5506-8628-e368831ff773", "request_id": "conflict-011-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "cb3d9ec7c2c7609c7b3505ea7e545019acbf5ba276458e1b96dac9bf317e0b23", "current_transition_id": "48b11d3d-e538-5e4e-b8f4-3c6eec0dacd7", "evidence_refs": ["conflict-011-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "ad6a4ea3-8025-56e3-90ae-48db6d11bbbb", "memory_version_id": "94f6a23f-ba81-55cf-a54f-d0e381d0049e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "a89854875ab7075bb52e83066bf1b42a6e81fe3fca9d7fb0c44fa1ae94c5a3e2"}, "trace_id": "conflict-011-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "4cac5865a12a108a1a58b422f650ead7d5d3bddcf324767b8146d7fd0e9e7df2"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e5093345-dc43-5d1f-9c1b-7178f8f35a6d"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-012-c1"], "comparisons": [{"memory_version_id": "e5093345-dc43-5d1f-9c1b-7178f8f35a6d", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-012-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "e5093345-dc43-5d1f-9c1b-7178f8f35a6d", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "f708e6ab5ae7fbdd2dc26a3107e1bdeaf9a6ce9c01703587e7752ffffa2bda05", "evidence": [{"ref": "conflict-012-c1"}], "evidence_refs": ["conflict-012-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "dd46f160-4f0a-5452-a860-05fccebd94cb", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "e85c5a28-6feb-5e4d-bc9d-15b6ae1ec4d7", "project_id": "3d47582d-67e0-5a11-8287-1b7b2a297e4c", "request_id": "conflict-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "8dc2151d237964cf4bab81eebd411f3a23fa0b815406d1dd7d2c3c1eaca1e89e", "current_transition_id": "acda7d04-e7f1-53a0-94aa-447fb0da318f", "evidence_refs": ["conflict-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "612bca9b-a387-5897-8d20-450a7dbfc8e5", "memory_version_id": "e5093345-dc43-5d1f-9c1b-7178f8f35a6d", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c9f21b6131adec89fadc2a91dc591d31b5721f3c77e8ec9b701c6d5e7e236bea"}, "trace_id": "conflict-012-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "00e155236a193289176545685f60204f69b6ce84e4f5c262074cac98f1b29fa5"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "6b293be68a73de014462f5e0a8f50caf5f93a41ef5df44cfb158dea2ff041f84", "evidence": [{"ref": "conflict-013-c1"}], "evidence_refs": ["conflict-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "dd00d2dc-37f3-5345-8e6a-2605f88d1ae7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f4ca3cf5-847a-5eef-8f31-9349c4f898f8", "project_id": "01e34e57-f8d7-5c76-bac0-7d20c1b1e438", "request_id": "conflict-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "0a1ed49cd5f2382d050172cd82b11543db9c89cb7617467394757046d700aeda"}, "trace_id": "conflict-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "279d886a-f12a-578f-82e7-541205b34209", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "cbe4b01a31aea8c6568bb40fb5f92b3c3a75e14c18deb596e5e0a505cba85cb8"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-014-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "e05feb3fa819fde5b5b1adc079f7718c3d303866ea52e4b9c1b3673ec0346684", "evidence": [{"ref": "conflict-014-c1"}], "evidence_refs": ["conflict-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "5d766f9f-0502-5c32-8582-95bdea74c491", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3cae444c-326e-5283-97b5-663deb33458e", "project_id": "b92449cb-35d0-5d11-a3bf-47929df77e19", "request_id": "conflict-014-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "59f8ecc781ab93eee5a5afbfb6d7427a53c5e7a6d07d3c05f9e8b65a867e385c"}, "trace_id": "conflict-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "8cbd68ef-684e-5761-b3a0-58316768885f", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "f896c452215d4f0355822bdbfe2207b66f80b0f83c025a5a759dce46be09f9dd"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-000-c1"], "comparisons": [{"memory_version_id": "e91a6939-a557-5480-bbf1-10f22674c5b9", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "1367a2750be3d99e0f8995b31736a079c2694a3317e67e9a35140e53bd5dff16", "evidence": [{"ref": "lookalike-000-c1"}], "evidence_refs": ["lookalike-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "6917262f-f2d6-53c5-9e98-c67d8909e63d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3ab04b50-e37c-54f0-bf71-e8f3b56116d4", "project_id": "b1923dcb-e666-5ada-937d-137cb4f4ad7b", "request_id": "lookalike-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "7fca56481183b64cdcf31bca2bf7e431613c0eff7f5ac382748082b7de7a7e07", "current_transition_id": "f9307695-afc5-5463-80dd-905d5a7c5a78", "evidence_refs": ["lookalike-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "0622e4e3-fb4b-575a-8463-d67d17c23eb2", "memory_version_id": "e91a6939-a557-5480-bbf1-10f22674c5b9", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "dac243a67b9fdff971dda6a516e9d60bbf2583af8e4f0a746da700eed236b79a"}, "trace_id": "lookalike-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "fc5123fcb2237f56fcbacf0d29b5cb7a496647526e6f75471ff105710aa847dd"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-001-c1"], "comparisons": [{"memory_version_id": "0c03bbdc-9174-5742-b06b-7a780c871079", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "2c3fbc306afc4561651875bf4462c6b233d6813c1c9f4fbc70df6b16506f2a15", "evidence": [{"ref": "lookalike-001-c1"}], "evidence_refs": ["lookalike-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "840b209c-b15e-5912-99cd-0eff418f5319", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "12d3ad14-1d78-5e17-a0ef-5a0e36e628c0", "project_id": "3e9b0fc6-94e1-5b8e-8230-5e5fcf586fb2", "request_id": "lookalike-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "8b038918743b50f3ca6c9415b9b1b5b7174242acbefc07df0d49af8d8c7620b6", "current_transition_id": "18ae0371-6929-554e-a4ac-8574e80fdd87", "evidence_refs": ["lookalike-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "7015a95b-75c9-5639-addb-29449eda2d8e", "memory_version_id": "0c03bbdc-9174-5742-b06b-7a780c871079", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "f5a854b8e8de79deec0ca2bbd8880937f6b3057c56b6e3ba38a9b6a2582620a5"}, "trace_id": "lookalike-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "e8e74bec9ac96e3f7f247b0f98c8068f82622a82fc6a56270e07ff6349ad67da"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-002-c1"], "comparisons": [{"memory_version_id": "a557776a-f88f-5f8c-a368-9de46d908000", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "2c4e57c864e7b94709f87ef08b0cc1ca73a8b8d170c396495442ec69de9ebcf2", "evidence": [{"ref": "lookalike-002-c1"}], "evidence_refs": ["lookalike-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "9cb9ed81-f065-56a3-a71f-09daaff4102c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "b928deee-d3a7-5c3b-81b0-855c0e0e7142", "project_id": "836ad529-e13a-5004-a5da-da0413b1102f", "request_id": "lookalike-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "93573dcc44a68f22562d85f98949ad8c5bb6bb94ac767dff751ef6ae19bf5640", "current_transition_id": "a80d4652-8643-5282-9ed7-b0a5ad8e7f52", "evidence_refs": ["lookalike-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "a469dda5-3236-5834-9ace-5ccde2ca5919", "memory_version_id": "a557776a-f88f-5f8c-a368-9de46d908000", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "26587b63b33ef496435ed26af187e65f8a6813788ca07551ce93d37d0700e425"}, "trace_id": "lookalike-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "13d09eaaeebed6017674bb4106005dc4707ac12630bc92876d0dbc280eea0545"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-003-c1"], "comparisons": [{"memory_version_id": "2888273c-7563-5b80-a5ee-de8ec92bcee5", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "86a098076c00aeccdbe28493e97a6c02c4f19c0231921e264ff065290967234a", "evidence": [{"ref": "lookalike-003-c1"}], "evidence_refs": ["lookalike-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "77b5a1f3-c5bf-56fd-bdae-0bff09b59825", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "070d38bd-b03d-59ac-ba42-8fb0f9674f6b", "project_id": "fcead736-9315-5793-b0f6-8e7acb1f5468", "request_id": "lookalike-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "8f3180ca7d9c1c145a10580feb7494ad915aadc1904e59814de2773503101c8a", "current_transition_id": "2fe2af9b-d034-5230-9e7c-108d2ab4b2a3", "evidence_refs": ["lookalike-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "5750867b-2b8e-5cc7-b714-c13a65373a06", "memory_version_id": "2888273c-7563-5b80-a5ee-de8ec92bcee5", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "46c8c6a0054d53e676fa6f21d6f9f4d830ac6d4f86c7bf0930b865054a1dd104"}, "trace_id": "lookalike-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "8967faa2eb68105cb968b0d6eccf6ed936bca9baa95a4bcdf6a92686d4bae7fd"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-004-c1"], "comparisons": [{"memory_version_id": "0e60c3b4-641d-55fa-bd85-9f44963a9a1f", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "96e5cbf4ce2f8e36de1b507f37fd3ece29f686eff808836407f4d0cffcf30e21", "evidence": [{"ref": "lookalike-004-c1"}], "evidence_refs": ["lookalike-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "988358f1-279b-51c1-a88e-1f80209eeea5", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "78877a86-647c-59ed-ae9d-dc1684cf8100", "project_id": "0947155f-7383-5a55-8e19-fe587cda7538", "request_id": "lookalike-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "571b9e35e6f839aaa98f2993f39863c26fe009fe962c2f9ed4755b44c3052a76", "current_transition_id": "d48deceb-65a5-574b-88b1-acabe14cc8fd", "evidence_refs": ["lookalike-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "e3a042ce-7057-54ce-bbe0-79de8fffc4ee", "memory_version_id": "0e60c3b4-641d-55fa-bd85-9f44963a9a1f", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "aa2c1bf970030a2cb99f373a74ac645098b4d5d4355efd7c780cc3712d543432"}, "trace_id": "lookalike-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "a4b1c896ab750bdc7b4e241a01496d18f9f13adec291647f9dfd3363c865894a"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-005-c1"], "comparisons": [{"memory_version_id": "912f436d-f159-5c38-9f24-862239ced3e9", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "47dea039e3f05a2351d0a80bb0e3f8770383f5e818848de5d35aad340b9d1332", "evidence": [{"ref": "lookalike-005-c1"}], "evidence_refs": ["lookalike-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "bac970bd-7dfb-5b4a-a0a1-dc0bc99e4f0a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d76ea923-0d26-5a74-85f4-44a83d3ce310", "project_id": "6d7b400c-2ee6-55ae-bb8c-54dc6cb297d6", "request_id": "lookalike-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "e1102d82775bf2248ddd245dc2c31069ace0a654677a9b8651330ac6a3a98da1", "current_transition_id": "f0ac5631-2483-5f49-81bf-87adf6ef3645", "evidence_refs": ["lookalike-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "1e1fb652-6877-5f57-821a-3680dbd79247", "memory_version_id": "912f436d-f159-5c38-9f24-862239ced3e9", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "28a52a363bd50e30c044b6059a6ff00627c2237947c6309d26542f413eace1d4"}, "trace_id": "lookalike-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "25fc6a71295ad9632cf2628b877d85877f6a03e935a8816899fd237d713db8bd"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-006-c1"], "comparisons": [{"memory_version_id": "2a260865-20ef-508c-9cb4-e60b38deddf7", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "fd8a0a706162b07081775a95b251e92e0c1e9842df08cacc1347092cde6394e5", "evidence": [{"ref": "lookalike-006-c1"}], "evidence_refs": ["lookalike-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "6aebff02-ac1e-5abf-805c-09d757b76d28", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "15811233-2ad3-5142-bc67-42a6ce852ed8", "project_id": "0294ca3f-2925-5e6f-9fea-48629ec67414", "request_id": "lookalike-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "1f5f6dcd1c02983fa2af97802c9f1a088ee911ddfdfd06c7ca55c592281d413e", "current_transition_id": "8f020f32-91d5-5ebe-b0bb-7efce8fde725", "evidence_refs": ["lookalike-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "60ddc028-fb4c-5e1b-8650-684e9d211e70", "memory_version_id": "2a260865-20ef-508c-9cb4-e60b38deddf7", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "aecba42a0251ac11d5ca34f7935ffd69c4e9ea043702eb1811a5a55f63164442"}, "trace_id": "lookalike-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "ceeaa5baa107c1c995a31496f6fbebb4f4ec33db8f2194d89a2f0e98b8ea8972"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-007-c1"], "comparisons": [{"memory_version_id": "aae65ad5-b0c4-54c9-8934-802442c3333a", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "eae6187a47b504f3b16b59ec7b15bad55e584b598a43c2c7f863c1c3c1bd2e5a", "evidence": [{"ref": "lookalike-007-c1"}], "evidence_refs": ["lookalike-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "f0fb9908-47a4-5381-95ed-eea9ce4284fc", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "974b0e18-f61d-56f9-a8ea-e49f2b499f0f", "project_id": "555bec74-a328-5e1b-9d35-634d0219aede", "request_id": "lookalike-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "fe9a7a7f5e71cf3c0b0a7e09d76f433e02d0d6fc82593cbe2a1fe565837c17b1", "current_transition_id": "c7f24ac6-4eb3-580e-81e9-a5fc5244572a", "evidence_refs": ["lookalike-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "5ff4acf2-9b96-5543-b86d-28cf2888144f", "memory_version_id": "aae65ad5-b0c4-54c9-8934-802442c3333a", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "0847755ea12df3266862480448a1be5642557ab5d3d3ee566f978d8b2ce71bf1"}, "trace_id": "lookalike-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "2542b757df103699695063aba39c22b11ae46107abc3a35e8993b28b1e7d4c1c"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-008-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "6a20e2d5860606e9080927f6866c39e2b064b608d4b85fc7bb7ff6b2285f2ff8", "evidence": [{"ref": "lookalike-008-c1"}], "evidence_refs": ["lookalike-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "854eaf17-6ac0-5733-bc47-9de6cb1f79da", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "72d16d92-5cb7-5fae-ac4d-e9bd7fc5f4cd", "project_id": "e7996a01-6a88-5490-9c73-50054e73c842", "request_id": "lookalike-008-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "6f10abc59eed1b8e3af1df1c14bd988f937e488996e821518a1b45ec2c1f22ab"}, "trace_id": "lookalike-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "84297c32-08ab-5698-b1b7-94754a4568b6", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "b7cde787baacc3a8681a338dc0084b9ea784f08e9626ef0155bda19f13345037"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-009-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "acad3809ae78034228ba5576826d92ad5d86b7855dfeba4f3319ada104b9daa3", "evidence": [{"ref": "lookalike-009-c1"}], "evidence_refs": ["lookalike-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "f3b84e25-b48c-5f45-866b-c528552a0b3f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "05e916d0-c0fb-5bd8-be57-3b18f60c70bb", "project_id": "30903f25-6177-50ee-ad27-37c5e17878f6", "request_id": "lookalike-009-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "d0ed2300e71dda43effcf9ec280460761ae06ca47bea1b42191154bbac82c64f"}, "trace_id": "lookalike-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "bdf1bb4f-d6a5-5dee-8757-233fdd1e2a14", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "1e695dce72ed504b90d39ec989f65a089afbc387d51514f8631dfcd65df5e732"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-rung-order-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["ebf5742b-60dd-5338-a584-4b67ca8c3db3"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-rung-order-000-c1"], "comparisons": [{"memory_version_id": "3c49c914-7ebe-5c4e-84d7-bc11a68df64e", "relation": "redundant", "target_evidence_refs": ["ladder-rung-order-000-t01"]}, {"memory_version_id": "ebf5742b-60dd-5338-a584-4b67ca8c3db3", "relation": "equivalent", "target_evidence_refs": ["ladder-rung-order-000-t11"]}], "outcome": "reject_candidate", "reason": "deterministic curation eval fixture verdict", "reason_code": "redundant_claim", "relation": "redundant", "schema_version": 1, "target_memory_version_id": "3c49c914-7ebe-5c4e-84d7-bc11a68df64e", "temporal_order": "not_applicable"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The curation shortlist ranks candidates by cosine distance over cached embeddings.", "content_hash": "1add5e59a3e099819b3317a2c10eee6b617471777e71ad18efb24f3b31bd1d98", "evidence": [{"ref": "ladder-rung-order-000-c1"}], "evidence_refs": ["ladder-rung-order-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Shortlist ranking rule"}, "candidate_id": "0044b407-076d-5f9f-a8ea-0ae575ab19e7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a54ccb8a-1c65-533e-8c24-4f4c25153242", "project_id": "354e1140-c797-548d-a603-7033275316a0", "request_id": "ladder-rung-order-000-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The curation shortlist ranks candidates by cosine distance.", "body_hash": "bc53a9c3c4527533a61bd9208cef98e0589a807a5a72cd114180302159b523a2", "current_transition_id": "aaf91838-9ac1-5510-95ee-a8f102cacf9c", "evidence_refs": ["ladder-rung-order-000-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "528c2984-5df4-5f5c-8203-a88245de92a9", "memory_version_id": "3c49c914-7ebe-5c4e-84d7-bc11a68df64e", "team_id": null, "title": "Shortlist ranking rule", "visibility_scope": "project"}, {"body": "Curation shortlist entries are ordered by cosine distance over cached embeddings.", "body_hash": "effdd437b8d2c97e4fb45cf3adea753cd0b28c84eb25871d9d3cd7079e47dc3f", "current_transition_id": "034fba76-6d59-542c-936d-5eb9f64d7367", "evidence_refs": ["ladder-rung-order-000-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "853c0eff-703c-5af1-a1a4-8a9279e60006", "memory_version_id": "ebf5742b-60dd-5338-a584-4b67ca8c3db3", "team_id": null, "title": "Shortlist ordering", "visibility_scope": "project"}], "manifest_hash": "28e0ec3881edf33420c3f51775a65481883dc2c5173e68f106ac11040a0d43dd"}, "trace_id": "ladder-rung-order-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "7e90efdfeb51b8015739066d335c0448cfb7000b98bacc9b894e004f3ce9e1f1"} -{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-conflict-first-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["dd319f2c-e2cc-562d-baf8-90dcd5da9490"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-conflict-first-001-c1"], "comparisons": [{"memory_version_id": "dd319f2c-e2cc-562d-baf8-90dcd5da9490", "relation": "mutually_incompatible", "target_evidence_refs": ["ladder-conflict-first-001-t01"]}, {"memory_version_id": "cd06f654-ebbb-510c-a89b-3109031bbf06", "relation": "equivalent", "target_evidence_refs": ["ladder-conflict-first-001-t11"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "cd06f654-ebbb-510c-a89b-3109031bbf06", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking the work.", "content_hash": "5b77039ed8ab33f326dd4ae11ff2a2a8fd8b7d92445532bc9a5d219680c21776", "evidence": [{"ref": "ladder-conflict-first-001-c1"}], "evidence_refs": ["ladder-conflict-first-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retry budget for ingestion"}, "candidate_id": "27fa302b-44d7-51eb-9cd5-1978be9c03d9", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3e3372f9-ffe8-50c9-a772-9ca71dff032d", "project_id": "81384ecc-9fdb-5b4d-af90-980d3e8fe2a4", "request_id": "ladder-conflict-first-001-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "Ingestion retries cap at twenty attempts before parking the work.", "body_hash": "79170cac6c407dcbd81702ea24d8611b6b78e77dea3525cfadf0d7bdc80fb7e1", "current_transition_id": "f935fd0b-ab85-5a7d-b317-83503b5d93c5", "evidence_refs": ["ladder-conflict-first-001-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "45ba1c6f-f5c8-5ccc-af16-28fe67a3da04", "memory_version_id": "dd319f2c-e2cc-562d-baf8-90dcd5da9490", "team_id": null, "title": "Retry budget for ingestion", "visibility_scope": "project"}, {"body": "Ingestion retries cap at five attempts before the work item is parked.", "body_hash": "98ba614be1c49cf370d02838eb1d90acaadb1129a24740f7d36410b49900f4d5", "current_transition_id": "ded6165c-c2bb-5f19-947c-e0a1b44ce234", "evidence_refs": ["ladder-conflict-first-001-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "90067366-40b9-5478-bf9d-7d1eb4a3b76e", "memory_version_id": "cd06f654-ebbb-510c-a89b-3109031bbf06", "team_id": null, "title": "Ingestion retry cap", "visibility_scope": "project"}], "manifest_hash": "1e27d408ecd57b8c8d0fc42da6bf821e124b6ba2ff417319c27ccb56c90f52c9"}, "trace_id": "ladder-conflict-first-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "a01372bce0cb6d05a48b8dd8f556fb3034a6b560baa268ee45ec9b170a8a0f2f"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-cross-visibility-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-cross-visibility-002-c1"], "comparisons": [{"memory_version_id": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "relation": "equivalent", "target_evidence_refs": ["ladder-cross-visibility-002-t01"]}, {"memory_version_id": "17857d7a-0938-50b1-a9bc-d2a8444c2172", "relation": "compatible_distinct", "target_evidence_refs": ["ladder-cross-visibility-002-t11"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "temporal_order": "unordered"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The daily digest is delivered at 09:00 UTC to every project member.", "content_hash": "5908cf26e0938eab8e18c68762b32216dd39b89d3987c6e626cedeca631e63f8", "evidence": [{"ref": "ladder-cross-visibility-002-c1"}], "evidence_refs": ["ladder-cross-visibility-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Digest delivery window"}, "candidate_id": "5d3f0061-6856-5362-8614-2155be3353d4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d6a9ac2b-a5ac-51ab-84b1-cf31aca0f5b0", "project_id": "3187938c-78ad-5aed-95a4-b4fe9f4e6e6e", "request_id": "ladder-cross-visibility-002-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The daily digest goes out at 09:00 UTC to all project members.", "body_hash": "c62008cee74dc0776c7756be9ea91d09efb86bf43bebacad7c81ada5a06b6d51", "current_transition_id": "281c2c68-04c5-5d30-ab7a-63bd38f29daf", "evidence_refs": ["ladder-cross-visibility-002-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "70ca1a9d-b941-59f3-b622-510a57efdee7", "memory_version_id": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "team_id": "50b2e746-ece3-58c8-ace7-bc8d161e848e", "title": "Digest delivery window", "visibility_scope": "team"}, {"body": "Digest emails are retained for thirty days before archival.", "body_hash": "aa3fafa696643fbcb0574d5fc6eca59dc4f4ca9f4068af9693c298062c158fdc", "current_transition_id": "ce7f5896-6fed-5cb2-9479-735dddbb618b", "evidence_refs": ["ladder-cross-visibility-002-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "2fd07082-e330-59fc-b622-01c2aab8b36e", "memory_version_id": "17857d7a-0938-50b1-a9bc-d2a8444c2172", "team_id": null, "title": "Digest retention", "visibility_scope": "project"}], "manifest_hash": "76d9c023740cadde6723567e9c6403b311f96591c215031cc7d8c33db7308e8e"}, "trace_id": "ladder-cross-visibility-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "6506f6a4c91e2e25168e4ebd353c4e4a0c057f07aab60b97357ab73ce152cd65"} -{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-tie-order-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["707d308d-30af-5cad-9293-4b25f7f32c9b"], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-tie-order-003-c1"], "comparisons": [{"memory_version_id": "707d308d-30af-5cad-9293-4b25f7f32c9b", "relation": "equivalent", "target_evidence_refs": ["ladder-tie-order-003-t01"]}, {"memory_version_id": "4d69934b-0c40-5788-8bb0-e7ec5700e2bc", "relation": "equivalent", "target_evidence_refs": ["ladder-tie-order-003-t11"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "4d69934b-0c40-5788-8bb0-e7ec5700e2bc", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Embedding cache keys hash the normalized body together with the model id.", "content_hash": "ab5bd0b05fca3e3c27c4eb1d424dead403f71443c307a8e46818ef0296d45998", "evidence": [{"ref": "ladder-tie-order-003-c1"}], "evidence_refs": ["ladder-tie-order-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Embedding cache key"}, "candidate_id": "feed5c0c-c500-5502-8e1d-cf5835f0437f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "e54ab9c1-d429-5e0b-b99b-1c7fee5de1b0", "project_id": "b2e1a0ed-9776-5d26-baaf-dbcff63d782f", "request_id": "ladder-tie-order-003-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The embedding cache key hashes the normalized body with the model id.", "body_hash": "ef5b127e001ddb52a4fb4d6987bfb526eb19d8f97d85b21e4208ece6fb3a1d0e", "current_transition_id": "32587092-9f3c-5da5-8fa1-1c1f3075fb2d", "evidence_refs": ["ladder-tie-order-003-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "ce3e9fb9-0df7-58e8-849c-b5302393ff37", "memory_version_id": "707d308d-30af-5cad-9293-4b25f7f32c9b", "team_id": null, "title": "Embedding cache key", "visibility_scope": "project"}, {"body": "Embedding cache entries are keyed by normalized body and model id.", "body_hash": "1150ae33844311c51c4b4177be24cf20f75b6f356ae3004f5efec8baada7a202", "current_transition_id": "02745dec-5fd0-58f6-aa1a-8b319ede7273", "evidence_refs": ["ladder-tie-order-003-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "e9f73ef4-2485-5dab-aeff-cf7968875fc1", "memory_version_id": "4d69934b-0c40-5788-8bb0-e7ec5700e2bc", "team_id": null, "title": "Embedding cache identity", "visibility_scope": "project"}], "manifest_hash": "f2c516738d48dc72d6d7f02fb440728e6e5a022fe42510305fef4e4856684a99"}, "trace_id": "ladder-tie-order-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "810b2fd598b51c7a919d6309e732d68c1f0db1c49a5594e3adad99c2b9bc6cc7"} -{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-unsupported-duplicate-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-unsupported-duplicate-004-c1"], "comparisons": [{"memory_version_id": "e90b3458-ba6e-5c62-b121-84e39bf86771", "relation": "redundant", "target_evidence_refs": []}, {"memory_version_id": "2b8f6e82-0b09-596b-bf18-a160845d8d24", "relation": "unrelated", "target_evidence_refs": ["ladder-unsupported-duplicate-004-t11"]}], "outcome": "reject_candidate", "reason": "deterministic curation eval fixture verdict", "reason_code": "redundant_claim", "relation": "redundant", "schema_version": 1, "target_memory_version_id": "e90b3458-ba6e-5c62-b121-84e39bf86771", "temporal_order": "not_applicable"}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The celery outbox flushes pending rows every five seconds.", "content_hash": "068de7bd255b47158e42e4397950a11e17bbc1ad19edef0367c3922917e6eb0f", "evidence": [{"ref": "ladder-unsupported-duplicate-004-c1"}], "evidence_refs": ["ladder-unsupported-duplicate-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Outbox flush interval"}, "candidate_id": "83174b73-fab3-5975-95c2-5fe3eb21c024", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "57bd77be-7bff-56a7-b379-c6147d2fb4ae", "project_id": "9d1b1c13-3797-514a-ab44-39bac21c21ab", "request_id": "ladder-unsupported-duplicate-004-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The outbox flushes pending rows every five seconds.", "body_hash": "de875b2dd736a8442cfdeab57be5771faaf1f3ea6b45cffd500082e2469b7c04", "current_transition_id": "2d79061c-abc0-54dc-9dec-c439ed46c5a2", "evidence_refs": [], "evidence_tier": "none", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "7b590375-e48e-58cb-a61b-0f7a7c58cd57", "memory_version_id": "e90b3458-ba6e-5c62-b121-84e39bf86771", "team_id": null, "title": "Outbox flush interval", "visibility_scope": "project"}, {"body": "The outbox table is vacuumed nightly to bound index growth.", "body_hash": "31896f0e63934aa1db865ee066bf6342779e5cfbe080dcf13465f0354ddc3009", "current_transition_id": "236213af-7350-5975-855f-3d344957666e", "evidence_refs": ["ladder-unsupported-duplicate-004-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "0e797c0c-a773-5660-b9a7-bf4ec8eb6a48", "memory_version_id": "2b8f6e82-0b09-596b-bf18-a160845d8d24", "team_id": null, "title": "Outbox table growth", "visibility_scope": "project"}], "manifest_hash": "94a62ffc7b95d04c6697889f2283cc6f92d97a0fbf41a8a5eae01759533d0147"}, "trace_id": "ladder-unsupported-duplicate-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "c9575aa9d565cb6b05abf392c65dcf60a493718722e52b3e7f54e22444188c58"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "a01e6e93d2ded89a3c60a2d7049b1f5a5ecffb175d35b2923361f0e07db134ef", "evidence": [{"ref": "publish-000-c1"}], "evidence_refs": ["publish-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "0cf48d50-aeb6-53ed-8018-f3a370dddd78", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "19370f04-76bc-5e46-b349-11ccc5fa683f", "project_id": "2a641eed-697f-52ec-b4d4-54e7c932571f", "request_id": "publish-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "9b8c0082f6aeaed710d4202ad5f26560e495036efb8ea23cc4d9087006227f6f", "current_transition_id": "bfc2d756-37bc-51db-83bd-2d5921972c48", "evidence_refs": ["publish-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "a635e2c4-beb4-5f5e-b572-fa33ba30fc93", "memory_version_id": "69db1b33-f4ab-5850-a871-50ecde747f6b", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "e58a009949b3ce4b55d81089bf599cbd6c4fa0dbc1735cbcd99d87c8d107a0c9"}, "trace_id": "publish-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "c33646f6177deb084e23c173ed93183b2c8eee411c06d1fc18db55e8b7566ee9"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "fae5434267db947b76ac5cc56800f39ec211bdf58ae00053bd5f6f037dc85ebf", "evidence": [{"ref": "publish-001-c1"}], "evidence_refs": ["publish-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "81d043d7-3bfe-5de4-af6f-12dc08e30362", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "277aa359-4be5-542e-a86c-f7d7a32933f6", "project_id": "83f00bff-768e-5342-a828-8ed8193e4ced", "request_id": "publish-001-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "4332cefa1279d4f9eb21b607309e3bd048f9ebc48f311cb55d6bf2e935f1e2ad"}, "trace_id": "publish-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "40a133e78a9ec08ce0fa0f282a26625f6565052f569a60681a3db7bd43be98f2"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "96f32749bbd51e6711058be743cb45edd9541a39a05010e3bea471d75d76a6bc", "evidence": [{"ref": "publish-002-c1"}], "evidence_refs": ["publish-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "b66cfdc0-cf0d-5cd8-af67-1e7690ffc912", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "48869a7c-729b-5123-b782-9fb2ebd42d67", "project_id": "49e2b439-97f4-5721-9913-a9b3b6a6eb52", "request_id": "publish-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "3fdfa3738ba1569f54f5ed3f0f233796378a4fea1e9f122ead957d502fb2e963", "current_transition_id": "a8e4acfb-bd12-5299-a561-cc4075c7486d", "evidence_refs": ["publish-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "c3b165ab-3083-5f17-a36a-5dd1c1de6b22", "memory_version_id": "08f9b1a4-de13-5550-8217-031bf24fc08d", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "8f8c485c7d8d306c1de57c8b1132e94aede03f4c092844c3f0797d491bd6c1e6"}, "trace_id": "publish-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "c85c4272210b763199dccb9970cf77d478f35c49866137836ff03ab7d7af8b6d"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "b704f59f87bdeffe46d8011f6ee3f83212432e21e060775ab7d5547c17a5164b", "evidence": [{"ref": "publish-003-c1"}], "evidence_refs": ["publish-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "f514b7cb-99fb-55ab-84ea-213f95650f09", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "0969ac03-f6f8-5c63-8522-49e4b0836594", "project_id": "05ca8174-9e42-5e43-a7b3-1516ad35a1ee", "request_id": "publish-003-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "54c35232c8ec1b037d568ec8d29aaf8fae5210d196ba4ced27b1a0f0f026e6bb"}, "trace_id": "publish-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "4a945dfc1051217210f5da95cac19a14df767e1505d51bf457e02af7e2019f61"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "9f34e5cd40798a193d4c792b0eff89806f9ac56aabe000d425b72777a6cf9946", "evidence": [{"ref": "publish-004-c1"}], "evidence_refs": ["publish-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "0412b450-1c39-5156-b514-c7c959047bb6", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "aa25182b-6413-51a1-a784-177554c79646", "project_id": "1551f9d8-65ee-5a32-90c8-de3564f0c8a7", "request_id": "publish-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "07311f087a894440d2cfffe171abedf3ede17b8c043843adb3d1ca225fa5616b", "current_transition_id": "804f22bd-6536-545e-bf74-4ffe6c9d79ae", "evidence_refs": ["publish-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "bde88c5a-e8d7-5d6a-8fb4-f9190528a620", "memory_version_id": "c1bc7298-da8e-5fb1-92a9-92756e2d7027", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "7e52a74efc4831415827d5a114383c862e86c53c6f7190f992187e03e481793a"}, "trace_id": "publish-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "f2ce0dc029bf54766967af20513b96271d60a532acd0c7f15fab83c67d6ad1d4"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "1385a0cda52b8a558300949be854280c79ba240ce0f5317d956dbc3c35fc8acf", "evidence": [{"ref": "publish-005-c1"}], "evidence_refs": ["publish-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "304d2429-4443-52ea-81b4-69a0f10633c9", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "05b40fc7-ee40-564f-b488-d00498e8e888", "project_id": "85016366-f152-5353-ad41-47e6a5943227", "request_id": "publish-005-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "d8106a5500d8bd32cdc5b6e462fa2b70947314814fad3c28c84f940c65fef4b4"}, "trace_id": "publish-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "b1050d98b100ba542b72865ced0dbddda0263ee12f55ec062b3ff380adc452f7"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "029ef39e13355d4ebebe4e4d26811f71be4e0e40ad15a27bf5531a57a1aa8388", "evidence": [{"ref": "publish-006-c1"}], "evidence_refs": ["publish-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "40490059-6239-514c-bd4a-2358f7d38df7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "dff71440-6022-55f9-b5d7-c6836d7ea3ca", "project_id": "48d7e9cc-b779-565d-ad0b-f9394af6f9dc", "request_id": "publish-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "4160b1ae08b4ac3298da807286e66d87486aa74115663d547726367f509db658", "current_transition_id": "3cecf8ec-34e7-519d-a6e3-4c5cbd77cdd2", "evidence_refs": ["publish-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "73c0505e-8f47-5dc7-b4f8-48ed579444c7", "memory_version_id": "c6521a10-4993-519d-aca7-c05413c6bcef", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "886766d617efde79081edbb07be84ec1f5fac7aac48a5a2adaad053a1f1bcb9d"}, "trace_id": "publish-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "04119d3924abfe757b7cc9110b1849d25a71d34a3eee0515a05ab3215595354e"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "7f820abb5883356726190b7ecd434af319ca13a3f2cac2dcccec520de5d5506b", "evidence": [{"ref": "publish-007-c1"}], "evidence_refs": ["publish-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "760d6ecf-f3cd-5fca-88f7-1826f9821c7b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "73bf9010-5a96-5823-8e30-1b3451f7e57d", "project_id": "e4835e9a-98ee-5da5-8783-9b240dcbf445", "request_id": "publish-007-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "afcbcfa52885177e5cc0de1736f1de3f4a773d5ffb00200b6d54c4a5ce07a122"}, "trace_id": "publish-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "2ea98b7359c00c10cd0d25e909c5c58c6e4d7592bb363ff19fcf88e063ec0d55"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "ec6aa1041089f55c26938597aa215e03c332cddcb58f129aaf9d6a4cf640032a", "evidence": [{"ref": "publish-008-c1"}], "evidence_refs": ["publish-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "d4b4fd62-b400-5c51-b68f-758d0e1710b0", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "eb6f3ac4-28bc-5f52-aa88-d3215aa1cf6a", "project_id": "71f89b97-e425-5d60-8c3f-80b15ceb8a76", "request_id": "publish-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "8a1cfc524cc99c9924171e4fcee64b732382cb2075399a3b5b2da06af877f895", "current_transition_id": "0f59a12c-3265-5ada-8e36-4af8f9db6d47", "evidence_refs": ["publish-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "4779a6d3-14bb-5e0e-8047-76d79741d85f", "memory_version_id": "ddcb7978-2f65-5c13-a779-8a06300d7a79", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "b09b488df60551e63e859bd06b5a267e0a0e21ac48ca84e988be21e8d10d13dd"}, "trace_id": "publish-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "4206abd17a789ad73d64035e868f6a04457ee844e50b6a92e8bea3fcb151fcd4"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "4f2f06073febb1f3db45db4a41790f6bfa59015301ba7092d77993fcbbc0102a", "evidence": [{"ref": "publish-009-c1"}], "evidence_refs": ["publish-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "ff12d918-5629-5a12-a10b-c4fe1b5165f5", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "76f03397-57f8-57d9-9d14-fd7a44ca426a", "project_id": "70cdbb12-d902-5310-80a0-aa354056972d", "request_id": "publish-009-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "4397802c334b5f9100497528720cc995687b89dc719e4fdb7f4d7f694f24f71c"}, "trace_id": "publish-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "ed938e97dab392e1e397a4d650ff4e14fa1f460224efac5ff774e8ae7fc8ef82"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "d4a3ea50f2d7a46dbe89a0fe81852fc2ecf796ead8338ebadaf483e3ecda7b4c", "evidence": [{"ref": "publish-010-c1"}], "evidence_refs": ["publish-010-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "a8334d47-159a-5944-adc2-56b0d20bb12d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5995f7a3-a499-575b-814b-1fcf42d5d8ce", "project_id": "56de04ad-c19f-5aef-8c15-19acea3069f6", "request_id": "publish-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "584057440fd7027d334ffe7d453e11570e93e56dfc3d36d3d68d88abc7af0f63", "current_transition_id": "1472cab2-4c22-5566-9cf7-6efcb7deb7a8", "evidence_refs": ["publish-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "49eef664-6c72-5e7a-9334-522008a1e3b5", "memory_version_id": "30f09f23-4bff-587a-bf83-513b1774bfb5", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "4cb0df57eb84b8b1b7f3a26b6554bf7e3fe14a96d6b59465296a3fcce2633e0b"}, "trace_id": "publish-010-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "d8986c34a57910af8d5953257f427b342c973fbd487b01c1af6480c26d55cae9"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "434fa37264ff127f12176f02b2ce1637d03f06a54660dc6217755be0d0b88714", "evidence": [{"ref": "publish-011-c1"}], "evidence_refs": ["publish-011-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "b5b9be9d-c6ac-54c5-b532-5dedf6277dbb", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "b9a8b861-8235-541e-a8f6-bef60a618978", "project_id": "06d8e461-28a4-568a-9887-19f73e8525ec", "request_id": "publish-011-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "ab80c0f5fcf3f27756ce70e83fb86c8ba0f7a548b3179884594c5cd339fe8e3c"}, "trace_id": "publish-011-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "b01d2b46dcd3ffaf064b2f3303d8d6b89bdcda2c3472ef39ad2eee77248435cd"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "52eecea5f4a724b50fc870c027a3481251a04439030eb28a3e869695973cf473", "evidence": [{"ref": "publish-012-c1"}], "evidence_refs": ["publish-012-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "8659aafa-7a95-5ec2-ac6c-0fc11ef37268", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a4f632f5-493b-5a38-99cb-a8b80d61376b", "project_id": "760618db-4a8a-59e0-8b75-30d11d48679c", "request_id": "publish-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "2fae5ba9668b7cbf43e6324dcb31891ae7fc939bb5024101fcc566aefd046d35", "current_transition_id": "1ee55708-3a84-5e08-8718-acd4bbf33895", "evidence_refs": ["publish-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "61761569-a844-5fc8-a36c-0d5c301d63ab", "memory_version_id": "9a56576b-6d0a-5bc5-8b4a-34434ba8eaa1", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "79e44b981c28ccc79e8c94989de4b11a1bce6bf39107a9b8d0c4f92fee3ab4fb"}, "trace_id": "publish-012-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "31409aa5a87ca60511b05f18f1c08b94d0e5adb60531e353ed20ea6d0e2d613d"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "f8b1fea157901968e10436ff09c9a842d4ce0dba9ba6459442db1ae1a6d191bd", "evidence": [{"ref": "publish-013-c1"}], "evidence_refs": ["publish-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "2bcdab99-4ead-52be-8902-2594a8f34975", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "cd3a31ca-64ee-5a3b-bbaf-82e15903862d", "project_id": "42f321d9-3b52-5de1-b190-d12e25bd9924", "request_id": "publish-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "a983dd8e82d61d50cc74691e31834ef8d5a5e68a3ba37a9696c3bcaeccda14c6"}, "trace_id": "publish-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "e32f25ff66f96dc6d184f1c842318b1fac5ffac74236c0905abbfe29afff9a2d"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "0c692a20e43c7c5d8a96d0c8c465ad4774aa979c5308017718fd1a5247e92ced", "evidence": [{"ref": "publish-014-c1"}], "evidence_refs": ["publish-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "d9292235-4adc-5eb3-9392-f9fe83dd6729", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3f3069aa-591d-5bd7-a2da-11b698c42c59", "project_id": "78f128b5-3c77-5d09-a3d9-2b4a1c31b3ae", "request_id": "publish-014-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "e82fe57c3955d35b32f69a00a5442709e038bed8f81683c3072d3f027347faec", "current_transition_id": "e3a651f7-08a4-59ba-9cac-1cb381574830", "evidence_refs": ["publish-014-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "4f0dc4dc-74c6-5a19-9988-e2c896be6204", "memory_version_id": "3e68068d-bfe6-50b0-95f9-eb2a3e56ac0e", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "8677b13c08929923e433e5dd4b866e1ebd5b287fde6d8438414e5f682a1b8a43"}, "trace_id": "publish-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "ae9f6d1cab337bed237191abe19680bd69060a4ca93052906056f8a7de44e3d9"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-015", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "3f2fbbebbca332a6cf71b893d64ab8b17dad16a813dc0f488cb0ad2d06449a42", "evidence": [{"ref": "publish-015-c1"}], "evidence_refs": ["publish-015-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "9b708c6c-8822-5341-8c99-04584b218af8", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "16bb5fdd-cec9-50f6-a658-18a67c491a1d", "project_id": "44d80d0d-3493-5083-9145-58a6f4377b84", "request_id": "publish-015-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "31f8264f37f88d6c69aa509f424a50246de4584423b020f7ef8442b6fd62032e"}, "trace_id": "publish-015-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "15d87b0909e7098432182c6ff35214f13f0310af4399b4f8e6f07e7b78f8c7b7"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-016", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "2c22972434c441723a91e9e65af9b097af5c34a193c637bb683501f51c8b1f10", "evidence": [{"ref": "publish-016-c1"}], "evidence_refs": ["publish-016-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "00ee96f1-dbbd-5afb-bf6c-55d8f6217d85", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a7a6a241-a9b9-53a5-b6a3-b8536aa80ac5", "project_id": "83b6f32b-bc28-5109-b968-0282299370b6", "request_id": "publish-016-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "52b4a0ff5948ce0478cb5e3a0d7e2be9b271ea3a22ebd2d3bba865fd51365ad6", "current_transition_id": "99133101-7801-5917-aae2-701a36f9f602", "evidence_refs": ["publish-016-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "5c9d9678-210a-5b95-a46e-75f5829ccde0", "memory_version_id": "00c04ea4-b9f3-580e-b773-a9fedafa70fc", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "55b50c3db7f22469a73f6f2d0073a60cf28c2fe5dd8c0f63930cab726d39d580"}, "trace_id": "publish-016-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "388378d4a63df35381c2f725f0d4b86a56f173db9edbbd3969943e7f5e21beb2"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-017", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "08ac1145776cc80d2efe34fbb9a53e62637e77bc863c872caac3b116fa15bfb9", "evidence": [{"ref": "publish-017-c1"}], "evidence_refs": ["publish-017-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "a5a035ae-5234-593e-b4ee-aeac91eb8820", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "df254962-09db-5dde-988b-f50bf971e789", "project_id": "dfcbf305-17cc-5aef-9679-67b97a4b57ce", "request_id": "publish-017-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "6b224da165cfb705a1af3d338f771dfb9aaf23f44c3290a6c45c5f868848a567"}, "trace_id": "publish-017-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "68058e94e1ae8ff4e1b3819c62c4ba78995e84baa78bcbbe41dee8b5de84e61e"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-018", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "d5da1d79f0579c272783259ebfc479542afe9041ff98602a368510e6dae2934b", "evidence": [{"ref": "publish-018-c1"}], "evidence_refs": ["publish-018-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "e9284461-9a7b-564e-8189-108009060cd2", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "22c4b143-c20d-54a7-b0ce-cddfed920b43", "project_id": "95fe0c17-6e95-5a51-95a2-585a403ddf03", "request_id": "publish-018-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "ca68efbf5576bc5d79ebe7b5477757e45aeb10385b5fdc5c8d756fced1aba9b7", "current_transition_id": "109ed698-a621-5760-8e01-55e60260f41b", "evidence_refs": ["publish-018-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "4db6e571-c53d-5fba-ac28-27239d12b913", "memory_version_id": "5c9f65e3-be07-5ae7-8749-76ad1c7774c0", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "630581c987142e18be05120eac9d85c851ccb480cd491c92cdbb4f3db97b1f6c"}, "trace_id": "publish-018-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "2d3850a8-4878-511e-b712-f465c9597a5e", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "a74130d2139609b9994b63237007ab20489d13ddb8025884469e8e3384f6ade0"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "compatible_new", "case_id": "publish-019", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "15b8e986208d2eb36ba184355bd88e1702f7cd9a0b27428037e4a11f443b3863", "evidence": [{"ref": "publish-019-c1"}], "evidence_refs": ["publish-019-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "b8b2f3dd-14f9-56cb-843b-29fbbe3425e4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d29bff4c-4e42-5588-9cd5-c57dca95405f", "project_id": "a7aa3718-32bc-50b0-a865-c39e4bd36010", "request_id": "publish-019-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "d04060dda9845dc0907c5f6694734aa4b1cded81a9623521d9822506ab625791"}, "trace_id": "publish-019-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "0b9243d5-e9f7-5485-bb01-71a16f326941", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "ecf15b010d9cde506b881c0dfaed6ac18ad5f73a76b8a6181e58e80dd34bfa5d"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["52aef6c1-2e3d-5348-b278-97422d4731a5"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "0d7bf0dffc95a953e40b262bc11781e774acc9fdde0d2b723680fadf71da7a08", "evidence": [{"ref": "merge-000-c1"}], "evidence_refs": ["merge-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "96dbdfce-813e-5309-91f5-a6f91bc7380c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "375a5a94-ed43-5502-a180-83d4eed107d5", "project_id": "310f707b-960d-57d1-b18f-6bcb20549061", "request_id": "merge-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "de0275b1e611dee5f38a49f1b9759ad9e1091c874ec2473b484ae04059ade522", "current_transition_id": "48d001d2-11cf-5b3f-a8cb-74530ae5e794", "evidence_refs": ["merge-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "6204971c-18d6-5362-8f29-711205c9f9b4", "memory_version_id": "52aef6c1-2e3d-5348-b278-97422d4731a5", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "018a6bbbad8492ec2ae954a33c750fd0906b590990d2f4c4a801219d67183d33"}, "trace_id": "merge-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "9f9a00a7237111614f4ae4498fb66a01609c1af376ae9e1eb4fa516919a4105e"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["6c84d4cd-45e8-5a12-956a-0ca2da3ac960"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "133448e497a29fd66f08227ed826f09971c1279cd668ecf0c53278c61ac83f5b", "evidence": [{"ref": "merge-001-c1"}], "evidence_refs": ["merge-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "9124ab78-f1c4-5e3d-a9e8-ed9a9ae90491", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "68eec999-3072-5850-95e0-820222698251", "project_id": "1c0dc52c-365a-510a-a82c-f2c60f6775f0", "request_id": "merge-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b0ea1ffe5fdcf38bed1c38bb4d80caf4cd49d7de0df96ab4e99ff6a990bf0f07", "current_transition_id": "a4863930-fd87-596e-800d-440b6593bab2", "evidence_refs": ["merge-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "c9539723-10b0-50d3-89d8-730d3809dfb9", "memory_version_id": "6c84d4cd-45e8-5a12-956a-0ca2da3ac960", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "ed97ee5cc0f6efeee96a0fa5a84caf20b9c0838407f90240214e5a208f069185"}, "trace_id": "merge-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "c67f2bbbb5d63a1e455c372e54a9b9d860498872487f0d73d8dfed29b7ab2800"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["ab1469f5-4a6e-59f5-ad97-3b84266d7b24"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "74f2d836a149c21f8bdc8f2949f77b5765c57a1227dc2faec2202822a55d321b", "evidence": [{"ref": "merge-002-c1"}], "evidence_refs": ["merge-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a4a1bf98-5ced-5a98-a156-d695b4f49339", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "9db97fa4-2772-5cbe-8e25-dc44b5b406c1", "project_id": "84a98149-6694-5fda-b25b-7a3225f5ee6d", "request_id": "merge-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "37acc6e0519f73aeca2bc50d5c9e1d3fca4c15e2e4baec40553d0639a62b84bc", "current_transition_id": "d23ee5e0-b617-5461-a202-e94fcc3bdf36", "evidence_refs": ["merge-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "5f25dc05-c5d9-5d08-975a-ef663f0279f8", "memory_version_id": "ab1469f5-4a6e-59f5-ad97-3b84266d7b24", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "0664b327b76429f07c2e5e3ecea8b3db271cbc206c5530f04b6f3df6d4fdb78b"}, "trace_id": "merge-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "c11973645c920c84f3755906d7137dbe7c05034d8963aebaf2e0ccb8b896755f"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["30feccb7-f8e9-5c64-82c3-e9383d8193ea"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "0b9c14b829c0a41a37d69c6d0bbff479a83f75dae047cf5068fc988e0226c784", "evidence": [{"ref": "merge-003-c1"}], "evidence_refs": ["merge-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "9a37021e-2cd9-52d3-85b4-abbc39aa8d2e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "ce094a81-ee35-5970-9e2b-a972dc347d1f", "project_id": "dec3b976-39cb-5780-95a6-1e2ea428ff30", "request_id": "merge-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "d015dc319c09f3c98d9e6a4ed00e38bf3d83b51adbb73071b95d975386bc9f4a", "current_transition_id": "af64cbc6-d241-53c9-b897-49905ea52d6f", "evidence_refs": ["merge-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "b1518f74-8275-51c2-a32f-32a2916596d9", "memory_version_id": "30feccb7-f8e9-5c64-82c3-e9383d8193ea", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c8dd87a6123dba3dd2eb64b7d8098e7540b197506856bb332e692784efbb49e6"}, "trace_id": "merge-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "a42a221ef94d461e486423f8601b1aa573d08d1971958e18d73f4da26065445c"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["a962ff65-4079-5900-a0e1-7c2064fe3ce6"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "59dcc49ec42e111f01ad591402f1572972f9798a18658ffefe838b1667f32083", "evidence": [{"ref": "merge-004-c1"}], "evidence_refs": ["merge-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "c060f72f-f0f6-5cab-a143-3fae5f8f4257", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "476d5d0a-f3b4-52de-a4cc-19fe88f3348a", "project_id": "af66fe7d-0a4e-54f6-a0e0-61e5e224e6a9", "request_id": "merge-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "35019e5e27233183aee5ddfd9dd10d1896e34e574d153aaa226990db23252a1a", "current_transition_id": "41478ba3-d2eb-5a33-ab36-661a627b7208", "evidence_refs": ["merge-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "57d0982c-81ac-5d3e-9a67-c20a5deb6eb5", "memory_version_id": "a962ff65-4079-5900-a0e1-7c2064fe3ce6", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "65c1fb9b0b0ff795bddab58824cb24a6896ebfebfb6a597c1e7b229db7087cf6"}, "trace_id": "merge-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "bb61b5621ac853cf8c922c36a4a3be4f9475b130f289fcb6e60ea5ad9ffefd9b"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["bef95484-5052-5f17-8f9d-76e064c4011c"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "9c45e3ed1ace293b5d0ad3d2943d8f484606f4daaac1cf9012c0857461a49369", "evidence": [{"ref": "merge-005-c1"}], "evidence_refs": ["merge-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a32c20d7-3ded-59e6-b2a5-5eb5aed3ad21", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "7288b25f-554c-5f2b-8fc0-a2800574ceef", "project_id": "4b5dd200-524a-5037-8643-eb9b60e56b3a", "request_id": "merge-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "9f59a8516ba6f4f7bda1ac91ce931c9f9782d0c7fffffb29da1781850a2ffb4d", "current_transition_id": "bfe097a3-29d0-5359-98f7-761ffa251345", "evidence_refs": ["merge-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "b8665d34-5d79-52aa-9092-04a8d7520915", "memory_version_id": "bef95484-5052-5f17-8f9d-76e064c4011c", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "1f20efec65f40dbd5e865452b9d03472f0cf9d79a4d72813b41a77b7a63288c4"}, "trace_id": "merge-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "bcb735a9eced23b5cd3a24d6913323eebc0b539a4b525486342f5e492360db44"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["18c654d9-a30a-5ad8-980a-3b78bd287f26"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "6543e13a6fbef521eb91d903750de03bbb66e9be7c404753db44da2eb04e9e13", "evidence": [{"ref": "merge-006-c1"}], "evidence_refs": ["merge-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "ea8b97e5-549e-5b32-a54b-d098775005f6", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f19cf327-f5fc-5ef6-bbd4-4ff62238e493", "project_id": "53ce48e8-f19f-5c31-8708-24cfa26767a6", "request_id": "merge-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "7aa31386f54421ae0eadfa298f78a32b402bf78fcd58e2620353ff4d3006065e", "current_transition_id": "bff857f0-9698-56f4-a86e-a471634c8add", "evidence_refs": ["merge-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "9ea08d4e-3a63-5b7b-bda1-08a1d82ca62b", "memory_version_id": "18c654d9-a30a-5ad8-980a-3b78bd287f26", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "318906aa2256030a2ac051a727289ee4d0e206732c0714f468d20c697b770694"}, "trace_id": "merge-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "ed999dd55c1348104c870390d130c67e5dbf83ad250f35db0618e0bc599b7aa8"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["57fd5604-4555-5ddf-ad16-ac3b0b723839"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "9e3c21dc241d88eca532e62fdf757fa17c458b67a775222dcaa9b5138ff1291a", "evidence": [{"ref": "merge-007-c1"}], "evidence_refs": ["merge-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "aefa3570-9b47-5de1-9412-b739f2098d6b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "af5965d2-428b-5761-a003-cc7dd8776d01", "project_id": "4534616d-a17c-552e-b484-17c4c50355c9", "request_id": "merge-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "289803a23c309ec0ce2940e691e73377d6d52f2739d17ea19abf1664caaddb8a", "current_transition_id": "44123df6-7cad-59ab-8e81-de169890f97d", "evidence_refs": ["merge-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "c15273bd-c0fc-5912-ba2a-a2cdc052ef61", "memory_version_id": "57fd5604-4555-5ddf-ad16-ac3b0b723839", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "4472f0f300650173b631d94dc1edc3fcd3706c43d2ca638afa87ebca97443ae5"}, "trace_id": "merge-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "29edc60790e5fc5116b120f2c59066a57ced872608024ee8ac6dd378e3fa88a6"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["d3272cf4-97b6-51d1-86e3-5e8ceb7a4344"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7650eefe05764df7284b9c662590816b2e22002104986e4f292bb89e443fb308", "evidence": [{"ref": "merge-008-c1"}], "evidence_refs": ["merge-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "ca5724a9-9fa2-5b90-ac0b-5604e475653b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "7a216a65-1318-53d2-a90c-6bf5c58ed616", "project_id": "943d9ecb-a692-57f5-889f-95a938dbfd88", "request_id": "merge-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "4daea9c6cb8e149ac2234b7b73df202cd21b7457fe432c52c956043869b5538f", "current_transition_id": "57854abb-b0dd-5717-95dc-594cc11acbc1", "evidence_refs": ["merge-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "293c99cf-a0fb-5d99-ba96-0dfc0e4fdec6", "memory_version_id": "d3272cf4-97b6-51d1-86e3-5e8ceb7a4344", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "4d29e3119fe93661dd135deae62967171fc46e2e5d8263167727d5df6fb8f9d0"}, "trace_id": "merge-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "d6b87e526f4be8b918b487eb6ca1af21a39189229bec4037da6ea1394f21869f"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["fc8ad236-08f6-5383-9c80-35e4ac78e8cc"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ac22071a99ad7982875c329f2b0e21fc0669ef41d49e09791aee843e2feb97e5", "evidence": [{"ref": "merge-009-c1"}], "evidence_refs": ["merge-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "399cdbf7-47aa-53ab-98d4-652ba57fb598", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "1d557669-e61d-5502-a27b-707eb80a9db1", "project_id": "34fe22c4-d76a-5601-aa5c-016a70fa50bb", "request_id": "merge-009-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "087a3207680f79be28daa9f44e6efb46a836b4dd5821547eb6d6cb1c4879c647", "current_transition_id": "af9b2a95-027d-55b7-bcb3-e980c6575a81", "evidence_refs": ["merge-009-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "60e89121-5d9d-5f21-860c-87af59815de1", "memory_version_id": "fc8ad236-08f6-5383-9c80-35e4ac78e8cc", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "21d2429bfad8e85215fec529475dca70715d4eebd51da527d16e98d9b500c586"}, "trace_id": "merge-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "46f5ee227b780415b99f5301aee14c3cc4d9b249ccfc581c906eb89b35e4e602"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["d2742959-a498-5b7b-9933-1d0066b8998a"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "51f33b50f43d2a392b84c1ce129f5d453142444eca250eca58f9aa09e1015258", "evidence": [{"ref": "merge-010-c1"}], "evidence_refs": ["merge-010-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "e5914913-b237-5218-af9b-f21134f9643a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d663734c-f62d-5e51-8c25-99e9181b8fa0", "project_id": "de9f546c-7d7a-5942-8ae2-36c8a0bcf8e4", "request_id": "merge-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "fec8b088dd76e6a01c1a042c26941345f90427880310a26bdf9d4e03b345a2b5", "current_transition_id": "0bdfda4a-7745-5ef4-be53-47099641a66a", "evidence_refs": ["merge-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "6ea1d9f3-ffe8-5697-99f9-908a3126cffc", "memory_version_id": "d2742959-a498-5b7b-9933-1d0066b8998a", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "8639eba885a2ff069b5c05ec628b00c5d4a08f4b7645f802e81b8740ed314dd3"}, "trace_id": "merge-010-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "d96b6bf4d57a10f470258c43ad49c142c5397f69a87c31a671eac9660f5fc9c6"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["51f47e1f-7abf-5e51-ac8a-b2c31b360bea"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7b57925c60f0aea4cbadbe05c0dc6aed250c61938ca22fc37b318b77bf89b2dd", "evidence": [{"ref": "merge-011-c1"}], "evidence_refs": ["merge-011-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a3a092bd-3f16-5dad-9211-a80f2623815c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "47a602eb-4bb2-5623-b38a-aafb8498483b", "project_id": "0ef101ec-95f9-5a5b-9401-90e97bee4f30", "request_id": "merge-011-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "4d3493b2f08ccac9d7875ce0952bdf3723de5ab94f691c75c71a858d1ac96a50", "current_transition_id": "62768e7f-7a24-584d-a5c2-838c5c2537db", "evidence_refs": ["merge-011-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "abd339d8-0c04-51bd-b270-992b386ec012", "memory_version_id": "51f47e1f-7abf-5e51-ac8a-b2c31b360bea", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "6bf22f073ee642d38bb0464105428dda3fea5c1ba82794547467e07b581685b1"}, "trace_id": "merge-011-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "202bd8883d213f3427dbd3dea59c1a4750da8ec3c33fe630a9d6749959c1d954"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e64a49f8-e808-5723-9c86-c2af4865a01f"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7f8d4d9d54a54f4cd3b957863c60e4aa885d3c31cce5f75bd0842cf613f84bf8", "evidence": [{"ref": "merge-012-c1"}], "evidence_refs": ["merge-012-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "02ee54dc-cfc2-56b4-a3b9-7ea8a7bdfb4b", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f2c0057d-70c9-5c77-bca5-cd9cb3234cae", "project_id": "51854dd9-ac79-5253-b071-0f5c740bd0af", "request_id": "merge-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "a5f47b9899a138518606b55ff657201694a855b62a3d40e7172681fec3628ab1", "current_transition_id": "6a9151f8-b363-5b9e-85a3-5762df815e37", "evidence_refs": ["merge-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "1bd9dabf-3a00-54b5-9a30-ee07fb4cff63", "memory_version_id": "e64a49f8-e808-5723-9c86-c2af4865a01f", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "8b83f7f6f5eae5feda410a86587ebcd9a3260595880a2d4adbf29628ab69c5ac"}, "trace_id": "merge-012-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "69abce7d995abd79a453618b457a7666a58468fbac0c9c7fff4919bac371bc39"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "9cd090db6f585513cd5929fa8589d16cff58b6f6adb36d65313c780513cd3731", "evidence": [{"ref": "merge-013-c1"}], "evidence_refs": ["merge-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "20fd5ecd-4897-5cda-8fb9-6bd4382d592f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5b9d4abe-0db8-50b9-a826-9d29ad4c3ff6", "project_id": "8e584f69-ffa7-5b14-ade3-3a4b95e151da", "request_id": "merge-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "b4f32f77f552c14afe7e6f64faf688b2f22e5b75c37e2b0e18c915613c35d551"}, "trace_id": "merge-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "4c84face-abb2-575c-b069-564ec7488d51", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "0ced0eb49ef2638b2aed0c32de735c71460d663079d66d9fdef0e2ccf53a2988"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "equivalent_merge", "case_id": "merge-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "cd0811a84564442d3abe830af039877f9e94c35208c82a3ea7cab85fdbedf0e8", "evidence": [{"ref": "merge-014-c1"}], "evidence_refs": ["merge-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "35a47b4d-753a-5711-9132-c9ca7284c8b6", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "99f57b70-ce5b-590f-ba4b-989863cb46c4", "project_id": "c1f364c8-bce8-5326-9d2c-e8b66051b343", "request_id": "merge-014-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "13bdb70f22101ad59114af787d26008fc9ca5db5c6a0ed9f1e66a1f21b30288a"}, "trace_id": "merge-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "8b160bdc-df8b-500e-8cff-14b758cf7761", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "8799cd41ac5e5234b87bfee4089ef538a09018eeaeed4319c2f4baef14588b5f"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["9bf59a29-9ec8-526d-a7db-f3dfb6de7859"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "9fda1dc6468eac8776cb4cfe9229dcca7126d3a7a09fa4a84969848f00ec069d", "evidence": [{"ref": "revise-000-c1"}, {"ref": "revise-000-c2"}], "evidence_refs": ["revise-000-c1", "revise-000-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "11a666bc-98e1-597d-bed5-6ffaddc399df", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "446c463a-baf5-52e6-833d-1f524eba0c89", "project_id": "4d9d7392-95cd-5b15-8789-2fa1ce2e1e95", "request_id": "revise-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "1e9cc1d34951ed86d7de7eec0b3bdf3d3074b59edaadc71d9c1c0e1429217556", "current_transition_id": "3a265a94-04c5-5119-936c-ea4bd89dcd2b", "evidence_refs": ["revise-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "bf86826e-c9b5-5751-b0ea-6f597bda3f5e", "memory_version_id": "9bf59a29-9ec8-526d-a7db-f3dfb6de7859", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b612e8e6adb2c13aa02dd1786c62d9cf32e3da3ae8539f3c330862c9259e0eb8"}, "trace_id": "revise-000-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "f50d1be5d1331403e5df45a974a5fc1878d1880199fbcc09640ff6e866221ac2"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["0190ff84-7b39-5932-9150-c4f758fc3083"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "330325b034ad8883368cf944cadc98324458ae31cf1b5bf6a2a56d5aabcbf471", "evidence": [{"ref": "revise-001-c1"}, {"ref": "revise-001-c2"}], "evidence_refs": ["revise-001-c1", "revise-001-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "92169e97-2881-5a83-91b5-e47341fd95f5", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "91b10c7e-d9f7-5f6f-bd9a-1f3e28af80f3", "project_id": "3bbc5f39-ecf9-5b50-88a4-72685cc20393", "request_id": "revise-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "78ee147e58bf657e14bf3810f65a13e26c6717a76b61828b70471cf785ec64d1", "current_transition_id": "d512befb-988a-5012-8deb-2d2227881c67", "evidence_refs": ["revise-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "5aae5fe2-af47-59d8-a3fc-8faf90641337", "memory_version_id": "0190ff84-7b39-5932-9150-c4f758fc3083", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "3f23a0513a8430a1852812a684b9da4880038d2e0fd5b004ae07b5005be09dcd"}, "trace_id": "revise-001-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "ea4c4f04d7e8006dc20ae6fcb652cea4e5f6b9764b53fb2f4f953bea68e97f40"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["d854e4f9-6148-57c6-96a5-51a9483cb00a"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7eb195d28a9156a09ef20c890c69dc713c30c8350f35b2a4e74c0837a9558ad3", "evidence": [{"ref": "revise-002-c1"}, {"ref": "revise-002-c2"}], "evidence_refs": ["revise-002-c1", "revise-002-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "4ab918fb-6275-5348-9d0b-f5b9c7758af2", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "320d3490-dad8-5e34-8af5-1eaca45117a7", "project_id": "262bf832-b046-5cfe-b422-199e046b65b6", "request_id": "revise-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "d9b7e35f172c4c4b29c2f4505962aedca32a5294003a34425229d98bd36520dd", "current_transition_id": "9ddce70f-6aaf-5b06-bd29-8142df3de9e8", "evidence_refs": ["revise-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "385f6d66-6ade-5ddc-a608-54017494c303", "memory_version_id": "d854e4f9-6148-57c6-96a5-51a9483cb00a", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "38c8892c73934e065210405521222ff4104cf5e4c8581a639662752a2e1a5592"}, "trace_id": "revise-002-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "c65b9656142526c64c101faa5ed12a22c3f5ab43b4708625018dc234a4b1815a"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "8dc893b870f73f40fd5c15319a05b5a24406118c81b1174f8e48e44b40ffa719", "evidence": [{"ref": "revise-003-c1"}, {"ref": "revise-003-c2"}], "evidence_refs": ["revise-003-c1", "revise-003-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "c88d72c0-80b4-5a7f-b7be-9eacc61d4984", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "34111001-34df-5f3a-9f0b-7568b36ef3a1", "project_id": "27314df2-bd2d-5b3e-95c6-f4f2bab0b58b", "request_id": "revise-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "f41fad06d02bdd8b655c473af14ef6426f05e550c8a480574f96e31575f9a16f", "current_transition_id": "6c2b7e19-e74d-53c5-8c24-5125bf3ad16b", "evidence_refs": ["revise-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "3781a9ee-0164-5a0e-a438-626ab6ab4af2", "memory_version_id": "cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "dc36b1fc4569942474277475fc90afc90e346222cd8122967e928cb8112afc97"}, "trace_id": "revise-003-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "bd064efd8927a0c3522445bbca7750a66f6772ca7d602b24883c53e29f4d8d32"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["3b5fd2ec-fc0b-5997-9862-880407b11996"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "6a9b9c512bc550900f58a6933f34d4c5a90163eaacb7ec133f4a699e9ad30fc9", "evidence": [{"ref": "revise-004-c1"}, {"ref": "revise-004-c2"}], "evidence_refs": ["revise-004-c1", "revise-004-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "65d60e7b-aedc-566d-a951-c8651ba0a36e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "4cd78fbe-a714-56d0-a018-6e5b97ef6bef", "project_id": "292e44e1-d9a3-5124-aa9d-47280539fbdd", "request_id": "revise-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "e664d93f0ef19c908be7039d5726e2d15cefc4a364d5718719607960e15c8837", "current_transition_id": "bc3ac89a-7eb7-5468-b32b-9f15033ed6fe", "evidence_refs": ["revise-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "c9c4f0d7-5d34-544b-8d24-3a56f708edf0", "memory_version_id": "3b5fd2ec-fc0b-5997-9862-880407b11996", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "f7f235c272736e326dd133c2413563c27f2f0a1a5df550cacecea3182a97c030"}, "trace_id": "revise-004-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "744a9e525f29ae726dc9f6c1e167c2e6b3261a622b280fddbee5f75477fc502b"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["8a6f6517-aa2e-58f1-8aed-c80b0492cb1e"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "d7497982247a569a8b4163030840e912133ac41781dce4c4c0923a159bf92a31", "evidence": [{"ref": "revise-005-c1"}, {"ref": "revise-005-c2"}], "evidence_refs": ["revise-005-c1", "revise-005-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "7060cc5f-869b-5fb3-aaa2-988c68cd3f06", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "34b4b2fb-c0a2-5502-8f2a-fdd5b076476a", "project_id": "ab89683e-a942-5203-ae53-496053977fdc", "request_id": "revise-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "0e2178057b2fd7dd1bff7510aa14f5c40b6939c471991549a63d5b8e34ad65c8", "current_transition_id": "6654687f-fc02-54f3-b61f-a196f8f9190d", "evidence_refs": ["revise-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "35fc0eba-de9b-5301-82d7-5b863b05c829", "memory_version_id": "8a6f6517-aa2e-58f1-8aed-c80b0492cb1e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "7ee2efc58fb6253ab31e1220d388b552eb251e8dbbe2eafe4fce8039666b8cfd"}, "trace_id": "revise-005-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "34ef7f3657deb112dcd3c146f052ecd852e77e769f51f699a67f08899f5d97c6"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["42496031-4404-54ba-99fd-d4fcf7eb96b8"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "56b75442f5533fff88593da057e7bbc915fbf429142f2e39c2ba5e95e7c7564c", "evidence": [{"ref": "revise-006-c1"}, {"ref": "revise-006-c2"}], "evidence_refs": ["revise-006-c1", "revise-006-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "d103bc5c-87ac-5c68-abf9-688ea9979cf8", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "0e29a8f1-1a24-5be7-ad67-96759985d028", "project_id": "02ef22fd-88a2-565f-b875-e765eee4429a", "request_id": "revise-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "19c750d97b478c462cae44cca1063ecc99c68ee1c2b55cdec44dba9c278f6bf0", "current_transition_id": "15e02252-672e-5fed-b8b7-f6ee98373315", "evidence_refs": ["revise-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "ec869445-4988-5e3e-8520-b625a3aea673", "memory_version_id": "42496031-4404-54ba-99fd-d4fcf7eb96b8", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "72eec696388cfd82e64e34904cdfaabb8ff8cac581435944fb6763a3b6f8fbd4"}, "trace_id": "revise-006-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "c7760460c7fa970e49b215fbfe89779d93c0a837db44cf29e9968f0b3d651788"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["ee377e46-340e-51dd-a13d-94efff79dc83"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "b68d052f39ccc1c34fa0d38f7493ee11acc9a574742d0a4e8833dbdc33671084", "evidence": [{"ref": "revise-007-c1"}, {"ref": "revise-007-c2"}], "evidence_refs": ["revise-007-c1", "revise-007-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "c20012f1-8f85-5060-98ab-1bc8cd5d30ed", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "842f22cf-e67a-5286-b86a-5fa5a4f24999", "project_id": "88e0dc0b-fd28-57f7-a4cd-3d3ef19058cb", "request_id": "revise-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "518ba3b2c7a9971e46d548b99a4870e861b9e01b6bfc3f5ba75e3e30d2d6ddc7", "current_transition_id": "ef2941f8-8664-5291-9db1-147b724fe9c8", "evidence_refs": ["revise-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "713766ee-4335-58fe-a176-38d3673568d4", "memory_version_id": "ee377e46-340e-51dd-a13d-94efff79dc83", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b5f00be254f020050c960de1fdc922d029fd416bb706d935b758cfac728a8373"}, "trace_id": "revise-007-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "414f8013c68f9dcaea148eaedbda9daf45861362b0ee87cf6f80288f3b821507"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["af3a0290-54ba-531d-ab58-57c3c01b7f31"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ea57d9bf59dec3cfbe0bb21dd0146f6a76fee726d70e3318b8f7776b889119ec", "evidence": [{"ref": "revise-008-c1"}, {"ref": "revise-008-c2"}], "evidence_refs": ["revise-008-c1", "revise-008-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "3c6ebd3a-1c36-5221-944a-e02715395d3c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "69041f49-8f2e-5cd2-b3c2-dfd2d65d324b", "project_id": "2c01cdba-2253-5268-aee3-7b75f9d7cedd", "request_id": "revise-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "98de0e980a0f2418231a2f580c677476abf6771135411f9b8496ec98e37a7c60", "current_transition_id": "59137489-f779-5b66-bb9a-fa988feaf3bb", "evidence_refs": ["revise-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "688515b2-15d3-5292-beda-b96c4726f927", "memory_version_id": "af3a0290-54ba-531d-ab58-57c3c01b7f31", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "95368fd1cbb3b12d8555964f7499c4db499dd5ad214b99b2b9fb391df949d811"}, "trace_id": "revise-008-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "f4c15236905494d2ac84d109751cb8e0cb3dd8ca76cc18a29def315ad321486c"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e8a8f3f6-1950-5d9d-a546-28a126c9b1b8"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ab1bbea2af7e46bcd5b39bff1ed613098e4fc249b293cb40dd221f094fdb08e0", "evidence": [{"ref": "revise-009-c1"}, {"ref": "revise-009-c2"}], "evidence_refs": ["revise-009-c1", "revise-009-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "bfc40231-b1ec-58d4-80db-ba415fa7e00e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "546c9ded-9bf9-51ff-af1e-1c2719c175ad", "project_id": "e70e9f18-29ce-55be-91a6-295fb98cefc2", "request_id": "revise-009-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "aa59a49eb3f496edd8ea3b7a4e7368685cc14fd68ba3dbf07bdd0687626e9d1e", "current_transition_id": "a556fd00-bb73-5a02-a35e-c271f1ecc7b6", "evidence_refs": ["revise-009-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "84968d05-2dc6-5d91-af65-bd1b974827f2", "memory_version_id": "e8a8f3f6-1950-5d9d-a546-28a126c9b1b8", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "2629ee8b51f05ed9d6f66b7032ae26ff842c4d8365c6254f84b8dc8ebebe1268"}, "trace_id": "revise-009-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "9d4ca21f3579866e440eca555f0765cdf80dca1637840c6dedf1bf5e6d4e29ff"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["64034303-283a-54c3-b2f1-1907ad3cfd63"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "be7dd29ffaa5f8e8254552077380436cba2af483abb079358a8913343144504f", "evidence": [{"ref": "revise-010-c1"}, {"ref": "revise-010-c2"}], "evidence_refs": ["revise-010-c1", "revise-010-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "45abaa70-675d-566a-8313-fd06ec0cb502", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "9f1ebeea-bf15-55c2-97ed-05d717d8482c", "project_id": "f8b48875-ad9d-55d5-aa05-f39f990c1938", "request_id": "revise-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "e1300afb7cec13c8b5de337a8cb137134c351b2cb9cf3dc351ec979e1c8af17d", "current_transition_id": "af724e7f-d295-5eb4-bc5b-f89a24043410", "evidence_refs": ["revise-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "6e0d30bd-195f-57ae-b3d3-af9b11bd3511", "memory_version_id": "64034303-283a-54c3-b2f1-1907ad3cfd63", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b0a738d0b30d85193f0de720def665f522f79fe585d7708f70f72b5e6edf86e7"}, "trace_id": "revise-010-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "40ea624c86ec3268117c46d972b8b6f97729eb2f8a36b5ca68ea9507eed05514"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["b80b0d0a-da6d-5673-b3df-13ff68669e57"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ae9ee82bbac402fe8846c3c329e7af66eba527ca5bfed679f2797c80a91b18c2", "evidence": [{"ref": "revise-011-c1"}, {"ref": "revise-011-c2"}], "evidence_refs": ["revise-011-c1", "revise-011-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "045c0856-7cf2-5d60-8ec5-a346ddfbbf9a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "359cb240-9e6c-515d-8c0c-152ee4fb3cc7", "project_id": "94e9e061-f355-58cf-93f7-2e0ce6f58ae7", "request_id": "revise-011-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "fda6da9e224dbcea29fd88c6420fae7bdbf486d18873eb3f17f7f0db654da586", "current_transition_id": "916d2b70-83fd-5caf-ba18-57d37beb3cc0", "evidence_refs": ["revise-011-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "b2074458-4007-5e24-b5c0-f10e5f41d8fd", "memory_version_id": "b80b0d0a-da6d-5673-b3df-13ff68669e57", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "5585eb733c2d402102233f5cd7ba6e300fdd54aefa9e87d782622a76a1d6d288"}, "trace_id": "revise-011-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "5569b5748954164381cf88a29e801d26101d7a7f1e2c03102d8ad5a3f6b96add"} +{"allowed_outcomes": ["revise_memory"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["efdce29f-49e0-535e-b045-58b53e0b394e"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "3665869760c204acabf750c61f8e46400d0913bc5bdf78f0395d90488493e6b9", "evidence": [{"ref": "revise-012-c1"}, {"ref": "revise-012-c2"}], "evidence_refs": ["revise-012-c1", "revise-012-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "4a7adf9e-cb76-5141-bbaf-de98f36269db", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "95cb1f73-58be-5148-8e90-0362d42babac", "project_id": "52d0a34a-de73-5625-9670-c01358246489", "request_id": "revise-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b0de8cfb2ee62730fd276862f53fe6045f4f634574542948406c992099c65842", "current_transition_id": "2d285f05-6fd6-5347-bb45-f4ec3c1b3768", "evidence_refs": ["revise-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "89b8e9f9-f981-516b-96dd-2da25120b6b0", "memory_version_id": "efdce29f-49e0-535e-b045-58b53e0b394e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "da12954212408fc8d15ac74be7d38e56c132b43c51e626a82d24f498232ca2d3"}, "trace_id": "revise-012-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "revise_memory", "scope_control": "in_scope", "source_hash": "9104f2f0a7ad936115f808146809156856b5cefc7fe4c9cc214e7c8dd65c1db2"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "be5fcc48fba78726618bc51aef222c894af124e88f93f0fb70b1affb58f37673", "evidence": [{"ref": "revise-013-c1"}], "evidence_refs": ["revise-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "1c46ee6a-a83c-5fd4-98b9-599a72e204e9", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3c8ee91d-1678-5231-a989-e1ad122e8af2", "project_id": "3513396f-929f-5a9b-91d3-39f1f1a47589", "request_id": "revise-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "18345213ffcc6fcb597607a403338beb70e068eac62eddd9ee34fd7beccdfb71"}, "trace_id": "revise-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "c53305df-c4e7-5859-8ff8-8b29471fbd57", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "b12e4659f16e76cfce5795fae622d242bd402d0d72b364b6c19348655e0e842b"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "revision", "case_id": "revise-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "8699d7d07dca4b85ff43c4c07d63cfe0fb9da32b9c6c4e0ba5f36357b7bd3211", "evidence": [{"ref": "revise-014-c1"}], "evidence_refs": ["revise-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "3d5ab270-ec20-5275-aa17-925f21adc04f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "dab805d8-33e8-5113-bf82-52c7779b65e3", "project_id": "c28e4219-dd09-5fce-ba09-14afbc39711e", "request_id": "revise-014-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "13715ccf5a53f0ef635167b17c485628233fe7eba1925aff76e3bf5f1c2070e0"}, "trace_id": "revise-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "483ee6c9-9065-5a6a-805c-a1cf7c5c22f2", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "d4f38089ca738cb6e5c8c45e6b7cbee67946ae324043db5b1cf42f26eac0d68f"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["72467f8b-1ff5-5560-82e9-e81d5a3b30a4"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "b5eba77707acf5b9256eb41a231ecee5d78c0b6c7be08cafb4e96febd0401392", "evidence": [{"ref": "supersede-000-c1"}, {"ref": "supersede-000-c2"}], "evidence_refs": ["supersede-000-c1", "supersede-000-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "fe312999-450f-54e0-a491-ca7c3fa00114", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "7d24756f-1fcc-5b88-9311-1e57d68c1ca3", "project_id": "88eb8faa-3e29-5328-bcdd-4f71932b2f18", "request_id": "supersede-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "3e7de15e2dfc24f0e5668540be55b547c245d21fcf58edf2170377cee5f6118f", "current_transition_id": "5dc09f59-d292-539c-a71c-0102d9391625", "evidence_refs": ["supersede-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "672c6913-464f-5050-a261-65544dcfe6dd", "memory_version_id": "72467f8b-1ff5-5560-82e9-e81d5a3b30a4", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "11e598aa411b53fa45571b37b8e79a9ddb2106b464fb72efa9156fbdfceff20a"}, "trace_id": "supersede-000-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "5d46d171e1d6465dc47b04dd4c40f354615da46f7718c45d9f4546ad6e9e178e"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["28d78b66-db76-514b-80e2-1656aeb26e96"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "02e01241b05b8f8ab25228a5180ceeb6a8e82986d85b1e1ab756b7aab0acd56d", "evidence": [{"ref": "supersede-001-c1"}, {"ref": "supersede-001-c2"}], "evidence_refs": ["supersede-001-c1", "supersede-001-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "d160bd18-3843-5ca2-92d2-187662f41bad", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "e9e71597-f65a-5af5-bb4d-e2e705af9937", "project_id": "d2c29341-5cb4-5a5a-a405-7d99a80b3ac6", "request_id": "supersede-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "8f70890c438de7bb4d8875e67bad0307b0ebf0c0c15bb7bf0602123b5683d890", "current_transition_id": "83f3d5d6-2ec3-5eb9-8542-e669e469c9e5", "evidence_refs": ["supersede-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "551d9fb0-6534-5f9a-9258-9c07c81d092f", "memory_version_id": "28d78b66-db76-514b-80e2-1656aeb26e96", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "5ffae04164d09072c8a20b32ccd0b01081e5784ada883db9d2ea820d97964f15"}, "trace_id": "supersede-001-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "1d7abb94edd094ed1a4db1ce71e97a018c2fb092f526aa6e8b34bdfed744631a"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e0cb4f19-8ee6-5851-a60f-c157f618f2dc"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "fd831162f68f51ada47478cffe6776f03febcd8a9aa0f8a4fa53e6d819a68447", "evidence": [{"ref": "supersede-002-c1"}, {"ref": "supersede-002-c2"}], "evidence_refs": ["supersede-002-c1", "supersede-002-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "07b3caad-65ec-5bc9-85f5-7cdd7e359410", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "25462b43-2ce9-53ca-aaa5-a44cdff85fe7", "project_id": "8faecd08-8a3c-5e28-88da-91157888b98f", "request_id": "supersede-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "75f1cc67a1dae2393411434acd7bdafeef4bef55cb2a6b3c900b878563d9fe54", "current_transition_id": "ff2c8681-aa57-5370-9ce1-422397d3430e", "evidence_refs": ["supersede-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "b3387ebc-7b0e-5ca6-acdd-19a50721fb83", "memory_version_id": "e0cb4f19-8ee6-5851-a60f-c157f618f2dc", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "2535b3f6920050017ae771d8cc4592f8ffa68e13aac107d630e1d4bf63405726"}, "trace_id": "supersede-002-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "3ca4f2d68fb55169b7f67429bfe346d8c936d5a97dd76e32f74cf527c5917875"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["f99a4aa2-01a6-55c0-9348-69bc26449e6c"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "ff525d14fcc28d56a9cd98f1ca9bb321fd157ad2b3051304bd0609033a937646", "evidence": [{"ref": "supersede-003-c1"}, {"ref": "supersede-003-c2"}], "evidence_refs": ["supersede-003-c1", "supersede-003-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "1fe0781c-69ae-590d-b6b2-3b8ad9c6d899", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3de6ae70-571f-5463-b42f-28be0a8e2584", "project_id": "a5d76ba0-8474-549b-9966-c09a935242b7", "request_id": "supersede-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "62c54ba96f0bff88187bda5e687a4db4d2815295437350b30f43e7c2e7ed8396", "current_transition_id": "08b32b0e-e251-5658-9e9a-19dcafea68ff", "evidence_refs": ["supersede-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "d8cc06e3-507b-56f4-ab0b-155ed04d4abf", "memory_version_id": "f99a4aa2-01a6-55c0-9348-69bc26449e6c", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c7d03da7b27b09dabf966098e1dd7566870af06e77ab7001ff8ee6f5f333d43c"}, "trace_id": "supersede-003-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "aa12eb8d8c8e6e21c947ad193bb191c3c2025bb14c78185bd53930a1fb3cda3d"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["95045a51-8b7b-5b2a-9ff5-12c491ca7712"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "91421679f92745afc03d3eb027d5e4c8c9aa88bcdde058c880f432b314adecde", "evidence": [{"ref": "supersede-004-c1"}, {"ref": "supersede-004-c2"}], "evidence_refs": ["supersede-004-c1", "supersede-004-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "08b7cc10-bec4-53e4-a0f4-cf432a567819", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "87e8586a-a437-550d-9a76-01757e39a6cf", "project_id": "58aa0d06-4127-5fb1-b6f9-d44d57104a99", "request_id": "supersede-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "3088759a9c14f358de5dcda614562d6ead7a21018651de5cbeb1b6c60a11d6d6", "current_transition_id": "7a9b5d6c-3d70-52bf-a138-c89d4c30cecf", "evidence_refs": ["supersede-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "144623a6-cd25-54cb-a0a5-79d49afc0086", "memory_version_id": "95045a51-8b7b-5b2a-9ff5-12c491ca7712", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "16dd5d07704cbd0a0d14603d46bab72a162c6373a34c7878529e11f827b3175b"}, "trace_id": "supersede-004-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "09f4eba494deac131938ff1eebfd0b252f79eb716ebe17cc1e002179c142efd0"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e5d6dc64-d7a5-523c-b3b0-d87076a414e7"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "600ea9693c79f9c32edfc801daa9b208a7b764d9a6344789afc925b04e5f447c", "evidence": [{"ref": "supersede-005-c1"}, {"ref": "supersede-005-c2"}], "evidence_refs": ["supersede-005-c1", "supersede-005-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "a658e97b-cbf1-5c75-8bcc-592d1bd9c6bd", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5256a078-8097-52e2-ad65-ea6aab4bcc74", "project_id": "1a461268-2c47-5100-8992-a3f1b15181e8", "request_id": "supersede-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "cd38716ac1d2cb5633a70c5ec29ecc425cd1beb49e4253d4b04d3251330dc0b5", "current_transition_id": "0f429b3c-0660-5923-8ad2-542b2b9007fb", "evidence_refs": ["supersede-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "8a20d4fa-7eb9-5f13-885f-21d0f4ec9c7a", "memory_version_id": "e5d6dc64-d7a5-523c-b3b0-d87076a414e7", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "5cc4faa21cdddffc898829918a47ca7550f251d204bcba1c7a1b8903937898d1"}, "trace_id": "supersede-005-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "6275e4f38b8c5d8ed30821aa00645a69fd687bd1c7618f26efef656734223637"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["106531c7-e833-5b68-9427-0de76fe1a420"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "8f5900227b14516609abd07ba5c27fda4f47d0f6c0e80ee413a1ac7e902ebeb1", "evidence": [{"ref": "supersede-006-c1"}, {"ref": "supersede-006-c2"}], "evidence_refs": ["supersede-006-c1", "supersede-006-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "df6b96c9-a2ac-5c59-b182-b2b714cbce3d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "36f5e766-4e47-5870-b6ce-fcfecc30a4ea", "project_id": "917d192c-ed16-5208-94d6-bc8985b95de5", "request_id": "supersede-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "310c6adf8aa56285c6459d973a68aa3d5f1c6baf2aacb59f8740def28f67d9ce", "current_transition_id": "e1d2d24e-cb15-5202-86ef-a83f7b631178", "evidence_refs": ["supersede-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "25572235-8b3d-56f8-98d8-8abc4cff2355", "memory_version_id": "106531c7-e833-5b68-9427-0de76fe1a420", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "b59d839bf0c6a3df23064caba6d11a7c9502d7809fccba7801b7bce9f8f5e37c"}, "trace_id": "supersede-006-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "dfb579abe6df9f0c836fac9c2d6dec96bb3526a5b242d5945ca38e44190e1449"} +{"allowed_outcomes": ["supersede_memory"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["073309d0-0b95-5337-b436-89023f49cb80"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "open_conflict", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "323d93e23349fcfa45ea69b06d3424c5b4054351ba4b309d9cbd829365366d00", "evidence": [{"ref": "supersede-007-c1"}, {"ref": "supersede-007-c2"}], "evidence_refs": ["supersede-007-c1", "supersede-007-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "99502f4f-0146-5bb9-9dbf-d81ca5f5ba2e", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "00099b9d-d5a6-58af-96dd-14bcf758bf8d", "project_id": "a11f57fe-b5bc-5241-9006-deaeefe54f6b", "request_id": "supersede-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "5fe826a04eedbfaf0742d1e5e6dede3ad0b409a47616ae7888f570ad0685795d", "current_transition_id": "011e7007-70c1-5442-9996-712a5511f913", "evidence_refs": ["supersede-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "031648a9-ba1e-5b85-bf52-ba3e31797fe2", "memory_version_id": "073309d0-0b95-5337-b436-89023f49cb80", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "13eb33aa65fb46c7becfff17635ebc3a580f8a35d3c2d11a2a73f646d36020da"}, "trace_id": "supersede-007-trace"}, "min_evidence_tier": "corroborated", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "supersede_memory", "scope_control": "in_scope", "source_hash": "8318e84d25f82287de758c3c05b280b0dd1b9b298ee9dbf09d94797aad575d09"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "97e1d64c10ffaaa58d0b14fa98e75d964f34e2870f435c10b8cc972cb2f46bb2", "evidence": [{"ref": "supersede-008-c1"}], "evidence_refs": ["supersede-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "9c7720d7-6e75-5f0b-a85e-6e7f4975a19d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "108f9534-a578-57dc-a78b-efc1b213efea", "project_id": "0e0685b3-ed58-56ea-b789-debe41eb3bca", "request_id": "supersede-008-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "98345113c49a276d3fb4a98e5df313ad93f846964409e013c36b9c3cbba511bd"}, "trace_id": "supersede-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "6edfd709-f332-533b-982c-87e93b8af046", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "149756c95816bb5196c18a66905e5dd7e2b6640b8076c0178cf452d06627971e"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "6dd7aa520c2a8de50e0cfcbfb7379be79ab17b5381f9783b4e251efd8c6b1883", "evidence": [{"ref": "supersede-009-c1"}], "evidence_refs": ["supersede-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "0593478c-8abe-5751-bc7a-4e1088a16ab7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f11c5d07-c958-57e9-98e5-18d22ad8c48d", "project_id": "fee0ebc3-b6ec-594b-88c7-26aa684018ac", "request_id": "supersede-009-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "454fbe78289bbf21f361e795ca334b8c6616b08a15dce220cc885921ebb27761"}, "trace_id": "supersede-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "826e59c8-bfce-5ec8-ab18-ae6d0b6f5d1a", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "351bc0691add2dcfd9ceac9fa61efa9bac5c494deefa4c0c0c2350f0329a61da"} +{"allowed_outcomes": ["reject_candidate"], "author": "cp5-eval", "bucket": "safe_supersession", "case_id": "supersede-unsupported-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions moved to a managed cluster.", "content_hash": "55ab00a714376f608d568eb1785296660b31bd5e68730175011f648f3cfc7014", "evidence": [], "evidence_refs": [], "evidence_tier": "none", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "205042a6-c608-5baa-8116-14d997801502", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "c5b0c372-987b-5990-80d9-a380e1564f90", "project_id": "1fbeb8be-38de-5904-95f8-0ebdcb93fcda", "request_id": "supersede-unsupported-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "68d6853a073a1f3c24d470489f5356a0ac56efdf18affdee1fdf5443c557c622", "current_transition_id": "5d8d4af4-1a4e-5799-b341-fff1a67ba131", "evidence_refs": ["supersede-unsupported-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "b12c62f2-f2f0-5b19-ae8f-f19d5ae4bb60", "memory_version_id": "57352460-af8d-5a25-8c1d-660968cd8ff7", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "3fc810707ae0f93431c25ab40d49f76102cbe4d15fb8c1bf1e19775d498ca83d"}, "trace_id": "supersede-unsupported-000-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "reject_candidate", "scope_control": "in_scope", "source_hash": "d590c66c95d7b32e22de723937750820ff670e6ea56424fd0cd670951a7e2cd7"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["4329993f-ae60-562b-8604-c57137a4d2d3"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "1713da2c8b8997efa367511042890f62fb6814bf13486d83f5274cdea00fb17f", "evidence": [{"ref": "conflict-000-c1"}], "evidence_refs": ["conflict-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "e1ad9182-c046-5dd5-9c6b-20537acfd01f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "b8e89232-1107-535e-9d72-2485d30b5138", "project_id": "c8337894-c9a5-546d-bda2-403ed747afd3", "request_id": "conflict-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "bd23c81dc8c349bcc7dedbdffcf1beaca5bbfab308af4e97acb24485b98b1a46", "current_transition_id": "6500a7a4-a7fc-5f6c-92bd-301b9050aecd", "evidence_refs": ["conflict-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "21c1715b-ab54-589b-9511-fc1074e9e6d9", "memory_version_id": "4329993f-ae60-562b-8604-c57137a4d2d3", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "e4095a49669c7b60ea43643870c617281ee975f8009dfc77b6b8ca82b331a440"}, "trace_id": "conflict-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "4a39946cf07ceec951ed1d942fafa5c503a171148267596c175f83187fc1c3c5"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["10838e63-4f35-53b1-aac8-a807ca6d4bad"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "b74afe789d21fa1d27741b6e24344c00e589e795b1f9966f9afaf6802327c3d1", "evidence": [{"ref": "conflict-001-c1"}], "evidence_refs": ["conflict-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "19601669-cae0-58a8-b9d8-f55e625281c7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "06bb3d16-f2ae-5fd2-a3e1-94abb2b2c497", "project_id": "03acbd7f-8fa9-57d5-8657-7302782cb68b", "request_id": "conflict-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "096c2b4164ea547133622db846ab8f564c4f91bb3f46d9e76e99c82b1d784e1a", "current_transition_id": "0a56204a-29af-5513-90c9-f0e437972106", "evidence_refs": ["conflict-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "84269d19-4196-583a-a889-06c3ebce891f", "memory_version_id": "10838e63-4f35-53b1-aac8-a807ca6d4bad", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "a64378d42b10e23e6e4c99acc7a2e1044ee7fec9701c4a37c628bbfe0b0b29e3"}, "trace_id": "conflict-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "a488423c2c137835b23370596c0e5d818b39506588a7842c3c4376c70bc6522d"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["0f8c577b-6738-5af4-8390-c8cd9809d722"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "681892a3bfdccf30fde3df4b0a4c936394803600643194fac3356bcf81346e60", "evidence": [{"ref": "conflict-002-c1"}], "evidence_refs": ["conflict-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "5ce07f91-8c70-5e38-bfd8-f3a754dc980c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "01aba6af-8844-5cde-8704-07d6ef28b0c8", "project_id": "71fd0939-8a72-527d-a22c-6ca706ccf6de", "request_id": "conflict-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "80978286a8e590f9602d8d06a69a52573b5fe23ae77b4e69aa01828846e00cc7", "current_transition_id": "0cef1588-7e23-516e-818f-0cfae412478a", "evidence_refs": ["conflict-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "765b686d-90ea-5d1c-98a4-c1c0c1da44c8", "memory_version_id": "0f8c577b-6738-5af4-8390-c8cd9809d722", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "1a38b8953b0cc67363ce19bdd3908a4d3b91c0f26bc7d74bc1f06b251f8184f9"}, "trace_id": "conflict-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "7822a2a9155a022537629f2eb08232cda1027a8deedf9ac84b33b0a6cccc956d"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["4f25f753-02dd-5463-882b-aa23803ab4ea"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "a51e316fa5cefc8e19d124b1022afdd8d6a03dd4c58f2910d207b5a353f34008", "evidence": [{"ref": "conflict-003-c1"}], "evidence_refs": ["conflict-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "99a37d1a-abba-5f12-94c5-b65a73aa5b97", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "c182ad57-39b9-52f6-a540-070c74defeb0", "project_id": "2e61a039-63a0-5608-86b6-2f95eee14a7f", "request_id": "conflict-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b9b509d3b9270ab78af49834dad236f318e97767e4ab93333fe9725d3fbf7b8f", "current_transition_id": "9d7011ef-b65b-5076-b6e1-2ba47d1f74c9", "evidence_refs": ["conflict-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "529b07a8-69c3-5fe7-a6e9-e3ede429a7cf", "memory_version_id": "4f25f753-02dd-5463-882b-aa23803ab4ea", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "deea9c0f7fec70735730f9ed4b557a6bb671eb74cbc311a35fdc18a48d99447e"}, "trace_id": "conflict-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "f9492b3cc83aab39da889c399299ad572310de5e1f3804ec83022e325b30d3cf"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["8813f250-041a-5757-8126-9149bf03fd46"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "7944944b2ae3b1e81c329eeb30fb3c35c8c43ee5ff15f99263d8bc2ff8165361", "evidence": [{"ref": "conflict-004-c1"}], "evidence_refs": ["conflict-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "49bb5752-8df9-5d1c-bc74-656be0ca4a87", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "248d0eee-8d75-5282-bdb8-86000df60f50", "project_id": "63f58c5a-d811-5782-b3a6-3d461916a4d3", "request_id": "conflict-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "2f3940cbee56430d9644360d86df4d5f1ac8508a27fe67bb6b3163332b884e1a", "current_transition_id": "9c540dc4-63c1-5bf9-b260-7bfed5e9a4c6", "evidence_refs": ["conflict-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "fcf99d5c-fff9-537c-8b4f-b3937e3a6ab3", "memory_version_id": "8813f250-041a-5757-8126-9149bf03fd46", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "3835730b10368c76e25fa9a6d3a204e13374b46c274128e7a58f45283ac25df0"}, "trace_id": "conflict-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "fb125ba21e358a949f87da5e38324ca2f69dff629bfce16b4caef2946fdd503b"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["1335a7c1-7d58-5c6e-ab71-edf163a1c2fa"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "024e4ba14e8fe0b97a10e3d971c8832548737dabebaee77ce287be4226aad6bc", "evidence": [{"ref": "conflict-005-c1"}], "evidence_refs": ["conflict-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "78ed36dd-850a-5140-9952-90fdddd84edf", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "49a43ba3-ed5f-507c-8e3f-50dffeee1eb2", "project_id": "0eb29973-d5b7-5167-a87b-343fde0e338d", "request_id": "conflict-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "4a2db22b25f74f8fefa889e3289cd9d0b0c1916fe8885cf84e5e80b085210def", "current_transition_id": "bf61a12f-51c2-5e0f-83ff-9b4e2bb79235", "evidence_refs": ["conflict-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "7440e00c-5b66-516c-85f0-3db8e73ed7f5", "memory_version_id": "1335a7c1-7d58-5c6e-ab71-edf163a1c2fa", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c97cce772bb6df9becb9ff8b9c7434bdaef7f00f43d2040f0824ead31dd7e1a9"}, "trace_id": "conflict-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "1cdecad0a23b176764cd8127ed150201b396eeec66a329f35b9227ff7952d2c7"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["a63d00db-2f04-595e-9dfd-b3822e61b65e"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "c68da69e7180f005b112f686acb27f1b14da8d5389cd2c1c44e6942687b2a9b1", "evidence": [{"ref": "conflict-006-c1"}], "evidence_refs": ["conflict-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "472feb15-323d-5433-ae84-e8611c7bd6fb", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a138fe7b-f1bf-5b50-80d8-50fba20469f3", "project_id": "96b55477-6deb-5af6-a82a-84462a920abd", "request_id": "conflict-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "58f279d9694bce16f47eeac9e54bb63092b52407eaafb8ecb230592cfb863098", "current_transition_id": "273dc138-8484-50d1-bec9-3306daaebf3e", "evidence_refs": ["conflict-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "53b761ff-29d3-52b3-8548-8d8e9b798839", "memory_version_id": "a63d00db-2f04-595e-9dfd-b3822e61b65e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "4942a2615d65144c04dd95f97502c552e7fc2c25ae72feeaae97615987e15965"}, "trace_id": "conflict-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "a837f425c0455922c7702c842ea484a540172cdbc2517d64fca3714fbc9d520f"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["86e9f87b-5c07-5357-929c-b3a558571378"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "eb054ae1bafa5b4a4e99410316df06f787202dd42d5d9e4cefd60068250ffbc3", "evidence": [{"ref": "conflict-007-c1"}], "evidence_refs": ["conflict-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "bc2629b3-7843-5e39-9401-3351afe11191", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "863a0c77-0f12-5bd6-ba32-42decc20e95f", "project_id": "48254914-cfe5-5e1a-bfeb-644464354bde", "request_id": "conflict-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "3143f9692cdbe17f5211234983ff5c1ef6551606f2266f34688d96fdc37a59df", "current_transition_id": "35cbe0bc-1b76-5a7d-ac5f-fa8b399d0d05", "evidence_refs": ["conflict-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "c11d2261-9ad2-5b84-9e16-a74e29a157b4", "memory_version_id": "86e9f87b-5c07-5357-929c-b3a558571378", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "1d069cc1ab4fda584a0ebd96881eae5df9ddec4cf2eedc75768a074d11f902ec"}, "trace_id": "conflict-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "d2719d6c31e217a162a125dbe259eefc139c923aac919d94f78087a9414b9929"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["920d5ab2-1210-5eb1-981b-785a4949362b"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "98153f2b869bbb21c89675901334738ebaed0bec702b07d8b90caa74f8e43342", "evidence": [{"ref": "conflict-008-c1"}], "evidence_refs": ["conflict-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "82baa773-1530-5642-89e8-ddac7f196280", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "03d0f005-0508-5a2d-a606-d0aedb3abc3f", "project_id": "a5a45641-4b9d-5d02-a215-12c16509f209", "request_id": "conflict-008-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "f2aa8f82fa9fcc0971842fa2075804274dca2a00763574ead0e94cae993aacf7", "current_transition_id": "46eb0e9b-a5b2-51b7-bf03-d55e7afe168e", "evidence_refs": ["conflict-008-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "620c91f9-73ef-5382-b02e-a5a91a001472", "memory_version_id": "920d5ab2-1210-5eb1-981b-785a4949362b", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "d815bef98f378621a21e6f4821da1f02802f040a097a730eb08bcbe808d19148"}, "trace_id": "conflict-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "fe6b21bee54cb44b9e4ca7e9801e1e21f4293c85ab72e306153031fdb21953af"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["32a5b85c-6981-5b5d-a82c-027997e701c2"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "e2480cdfc1fe399284f45084d41b8219a11a56beb681ba7e7c3c0cb31f9dc90c", "evidence": [{"ref": "conflict-009-c1"}], "evidence_refs": ["conflict-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "993cfc36-4603-520a-bf4b-0bf28a60863a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "258fd426-e2f1-5b9b-9418-5dda1b7911bc", "project_id": "907187ee-58bf-5ecb-9493-923b7ef44edb", "request_id": "conflict-009-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "b1850104b2679432fe1edb730d93fe6fbf966a464c76d4ee63018c5f3ad70adb", "current_transition_id": "81c4c92b-95e1-56a9-866b-98a968f37f5b", "evidence_refs": ["conflict-009-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "8172910d-a4d6-5b05-85dd-9237cf5a1921", "memory_version_id": "32a5b85c-6981-5b5d-a82c-027997e701c2", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "bd0347b517cb3320834a790fb27b14541162a93f6927235d3eef1f1a4f028783"}, "trace_id": "conflict-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "fcdc52c6c7228d596b0ec4b9578bebd9d6791de6679ab21617d720416da0590f"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-010", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["4b547b1a-251d-5aef-be04-7dc81d3f2d10"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "33ba357ffa73dbe55da44e85dfa6b4351d42e5f0c6eeb09a1f089a27a07a9ca1", "evidence": [{"ref": "conflict-010-c1"}], "evidence_refs": ["conflict-010-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "8f8b49be-bc8d-5ca5-9e21-8e52390f3068", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "5f86040c-9804-51da-a97c-179e2a80b17c", "project_id": "909b04ec-ad2e-5e38-a7c0-bd7b82b864a7", "request_id": "conflict-010-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "7127114e2386e9f812e3998b90f42eea2b6d122a57d879f067b504d2dae4adc4", "current_transition_id": "ba9a925e-86c2-517b-9cb8-11840be22916", "evidence_refs": ["conflict-010-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "589d0c8b-9fd7-5d5b-8798-576e285ba42c", "memory_version_id": "4b547b1a-251d-5aef-be04-7dc81d3f2d10", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "cb9a43b468d5666c894de4051cbd80abafcea292b79c0106af346ed2e554081b"}, "trace_id": "conflict-010-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "331ff59bc85c1a41b8fe928e2086612c6d72d3d03f0c7f3c82aad2c76e9ff79a"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-011", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["94f6a23f-ba81-55cf-a54f-d0e381d0049e"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "309f76c081824193d50c2385d370ae1a3e3c553dc6e4d343756811b8aaebd748", "evidence": [{"ref": "conflict-011-c1"}], "evidence_refs": ["conflict-011-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "44ba0014-1d8f-5e0e-9239-acac7c457299", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "19c0cb03-5ed4-58f2-b0d8-805f2540dcb9", "project_id": "53732461-2cac-5506-8628-e368831ff773", "request_id": "conflict-011-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "cb3d9ec7c2c7609c7b3505ea7e545019acbf5ba276458e1b96dac9bf317e0b23", "current_transition_id": "48b11d3d-e538-5e4e-b8f4-3c6eec0dacd7", "evidence_refs": ["conflict-011-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "ad6a4ea3-8025-56e3-90ae-48db6d11bbbb", "memory_version_id": "94f6a23f-ba81-55cf-a54f-d0e381d0049e", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "a89854875ab7075bb52e83066bf1b42a6e81fe3fca9d7fb0c44fa1ae94c5a3e2"}, "trace_id": "conflict-011-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "4cac5865a12a108a1a58b422f650ead7d5d3bddcf324767b8146d7fd0e9e7df2"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-012", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["e5093345-dc43-5d1f-9c1b-7178f8f35a6d"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "The primary datastore for sessions is Postgres with pgvector.", "content_hash": "f708e6ab5ae7fbdd2dc26a3107e1bdeaf9a6ce9c01703587e7752ffffa2bda05", "evidence": [{"ref": "conflict-012-c1"}], "evidence_refs": ["conflict-012-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Primary datastore choice"}, "candidate_id": "dd46f160-4f0a-5452-a860-05fccebd94cb", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "e85c5a28-6feb-5e4d-bc9d-15b6ae1ec4d7", "project_id": "3d47582d-67e0-5a11-8287-1b7b2a297e4c", "request_id": "conflict-012-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "The primary datastore for sessions is Postgres.", "body_hash": "8dc2151d237964cf4bab81eebd411f3a23fa0b815406d1dd7d2c3c1eaca1e89e", "current_transition_id": "acda7d04-e7f1-53a0-94aa-447fb0da318f", "evidence_refs": ["conflict-012-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "612bca9b-a387-5897-8d20-450a7dbfc8e5", "memory_version_id": "e5093345-dc43-5d1f-9c1b-7178f8f35a6d", "team_id": null, "title": "Primary datastore choice", "visibility_scope": "project"}], "manifest_hash": "c9f21b6131adec89fadc2a91dc591d31b5721f3c77e8ec9b701c6d5e7e236bea"}, "trace_id": "conflict-012-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "00e155236a193289176545685f60204f69b6ce84e4f5c262074cac98f1b29fa5"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-013", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "6b293be68a73de014462f5e0a8f50caf5f93a41ef5df44cfb158dea2ff041f84", "evidence": [{"ref": "conflict-013-c1"}], "evidence_refs": ["conflict-013-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "dd00d2dc-37f3-5345-8e6a-2605f88d1ae7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "f4ca3cf5-847a-5eef-8f31-9349c4f898f8", "project_id": "01e34e57-f8d7-5c76-bac0-7d20c1b1e438", "request_id": "conflict-013-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "0a1ed49cd5f2382d050172cd82b11543db9c89cb7617467394757046d700aeda"}, "trace_id": "conflict-013-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "279d886a-f12a-578f-82e7-541205b34209", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "cbe4b01a31aea8c6568bb40fb5f92b3c3a75e14c18deb596e5e0a505cba85cb8"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "genuine_conflict", "case_id": "conflict-014", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "e05feb3fa819fde5b5b1adc079f7718c3d303866ea52e4b9c1b3673ec0346684", "evidence": [{"ref": "conflict-014-c1"}], "evidence_refs": ["conflict-014-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "5d766f9f-0502-5c32-8582-95bdea74c491", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3cae444c-326e-5283-97b5-663deb33458e", "project_id": "b92449cb-35d0-5d11-a3bf-47929df77e19", "request_id": "conflict-014-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "59f8ecc781ab93eee5a5afbfb6d7427a53c5e7a6d07d3c05f9e8b65a867e385c"}, "trace_id": "conflict-014-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "8cbd68ef-684e-5761-b3a0-58316768885f", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "f896c452215d4f0355822bdbfe2207b66f80b0f83c025a5a759dce46be09f9dd"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "1367a2750be3d99e0f8995b31736a079c2694a3317e67e9a35140e53bd5dff16", "evidence": [{"ref": "lookalike-000-c1"}], "evidence_refs": ["lookalike-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "6917262f-f2d6-53c5-9e98-c67d8909e63d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3ab04b50-e37c-54f0-bf71-e8f3b56116d4", "project_id": "b1923dcb-e666-5ada-937d-137cb4f4ad7b", "request_id": "lookalike-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "7fca56481183b64cdcf31bca2bf7e431613c0eff7f5ac382748082b7de7a7e07", "current_transition_id": "f9307695-afc5-5463-80dd-905d5a7c5a78", "evidence_refs": ["lookalike-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "0622e4e3-fb4b-575a-8463-d67d17c23eb2", "memory_version_id": "e91a6939-a557-5480-bbf1-10f22674c5b9", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "dac243a67b9fdff971dda6a516e9d60bbf2583af8e4f0a746da700eed236b79a"}, "trace_id": "lookalike-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "fc5123fcb2237f56fcbacf0d29b5cb7a496647526e6f75471ff105710aa847dd"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "2c3fbc306afc4561651875bf4462c6b233d6813c1c9f4fbc70df6b16506f2a15", "evidence": [{"ref": "lookalike-001-c1"}], "evidence_refs": ["lookalike-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "840b209c-b15e-5912-99cd-0eff418f5319", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "12d3ad14-1d78-5e17-a0ef-5a0e36e628c0", "project_id": "3e9b0fc6-94e1-5b8e-8230-5e5fcf586fb2", "request_id": "lookalike-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "8b038918743b50f3ca6c9415b9b1b5b7174242acbefc07df0d49af8d8c7620b6", "current_transition_id": "18ae0371-6929-554e-a4ac-8574e80fdd87", "evidence_refs": ["lookalike-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "7015a95b-75c9-5639-addb-29449eda2d8e", "memory_version_id": "0c03bbdc-9174-5742-b06b-7a780c871079", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "f5a854b8e8de79deec0ca2bbd8880937f6b3057c56b6e3ba38a9b6a2582620a5"}, "trace_id": "lookalike-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "e8e74bec9ac96e3f7f247b0f98c8068f82622a82fc6a56270e07ff6349ad67da"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "2c4e57c864e7b94709f87ef08b0cc1ca73a8b8d170c396495442ec69de9ebcf2", "evidence": [{"ref": "lookalike-002-c1"}], "evidence_refs": ["lookalike-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "9cb9ed81-f065-56a3-a71f-09daaff4102c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "b928deee-d3a7-5c3b-81b0-855c0e0e7142", "project_id": "836ad529-e13a-5004-a5da-da0413b1102f", "request_id": "lookalike-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "93573dcc44a68f22562d85f98949ad8c5bb6bb94ac767dff751ef6ae19bf5640", "current_transition_id": "a80d4652-8643-5282-9ed7-b0a5ad8e7f52", "evidence_refs": ["lookalike-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "a469dda5-3236-5834-9ace-5ccde2ca5919", "memory_version_id": "a557776a-f88f-5f8c-a368-9de46d908000", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "26587b63b33ef496435ed26af187e65f8a6813788ca07551ce93d37d0700e425"}, "trace_id": "lookalike-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "13d09eaaeebed6017674bb4106005dc4707ac12630bc92876d0dbc280eea0545"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "86a098076c00aeccdbe28493e97a6c02c4f19c0231921e264ff065290967234a", "evidence": [{"ref": "lookalike-003-c1"}], "evidence_refs": ["lookalike-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "77b5a1f3-c5bf-56fd-bdae-0bff09b59825", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "070d38bd-b03d-59ac-ba42-8fb0f9674f6b", "project_id": "fcead736-9315-5793-b0f6-8e7acb1f5468", "request_id": "lookalike-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "8f3180ca7d9c1c145a10580feb7494ad915aadc1904e59814de2773503101c8a", "current_transition_id": "2fe2af9b-d034-5230-9e7c-108d2ab4b2a3", "evidence_refs": ["lookalike-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "5750867b-2b8e-5cc7-b714-c13a65373a06", "memory_version_id": "2888273c-7563-5b80-a5ee-de8ec92bcee5", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "46c8c6a0054d53e676fa6f21d6f9f4d830ac6d4f86c7bf0930b865054a1dd104"}, "trace_id": "lookalike-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "8967faa2eb68105cb968b0d6eccf6ed936bca9baa95a4bcdf6a92686d4bae7fd"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "96e5cbf4ce2f8e36de1b507f37fd3ece29f686eff808836407f4d0cffcf30e21", "evidence": [{"ref": "lookalike-004-c1"}], "evidence_refs": ["lookalike-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "988358f1-279b-51c1-a88e-1f80209eeea5", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "78877a86-647c-59ed-ae9d-dc1684cf8100", "project_id": "0947155f-7383-5a55-8e19-fe587cda7538", "request_id": "lookalike-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "571b9e35e6f839aaa98f2993f39863c26fe009fe962c2f9ed4755b44c3052a76", "current_transition_id": "d48deceb-65a5-574b-88b1-acabe14cc8fd", "evidence_refs": ["lookalike-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "e3a042ce-7057-54ce-bbe0-79de8fffc4ee", "memory_version_id": "0e60c3b4-641d-55fa-bd85-9f44963a9a1f", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "aa2c1bf970030a2cb99f373a74ac645098b4d5d4355efd7c780cc3712d543432"}, "trace_id": "lookalike-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "a4b1c896ab750bdc7b4e241a01496d18f9f13adec291647f9dfd3363c865894a"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-005", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "47dea039e3f05a2351d0a80bb0e3f8770383f5e818848de5d35aad340b9d1332", "evidence": [{"ref": "lookalike-005-c1"}], "evidence_refs": ["lookalike-005-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "bac970bd-7dfb-5b4a-a0a1-dc0bc99e4f0a", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d76ea923-0d26-5a74-85f4-44a83d3ce310", "project_id": "6d7b400c-2ee6-55ae-bb8c-54dc6cb297d6", "request_id": "lookalike-005-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "e1102d82775bf2248ddd245dc2c31069ace0a654677a9b8651330ac6a3a98da1", "current_transition_id": "f0ac5631-2483-5f49-81bf-87adf6ef3645", "evidence_refs": ["lookalike-005-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "1e1fb652-6877-5f57-821a-3680dbd79247", "memory_version_id": "912f436d-f159-5c38-9f24-862239ced3e9", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "28a52a363bd50e30c044b6059a6ff00627c2237947c6309d26542f413eace1d4"}, "trace_id": "lookalike-005-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "25fc6a71295ad9632cf2628b877d85877f6a03e935a8816899fd237d713db8bd"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-006", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "fd8a0a706162b07081775a95b251e92e0c1e9842df08cacc1347092cde6394e5", "evidence": [{"ref": "lookalike-006-c1"}], "evidence_refs": ["lookalike-006-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "6aebff02-ac1e-5abf-805c-09d757b76d28", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "15811233-2ad3-5142-bc67-42a6ce852ed8", "project_id": "0294ca3f-2925-5e6f-9fea-48629ec67414", "request_id": "lookalike-006-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "1f5f6dcd1c02983fa2af97802c9f1a088ee911ddfdfd06c7ca55c592281d413e", "current_transition_id": "8f020f32-91d5-5ebe-b0bb-7efce8fde725", "evidence_refs": ["lookalike-006-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "60ddc028-fb4c-5e1b-8650-684e9d211e70", "memory_version_id": "2a260865-20ef-508c-9cb4-e60b38deddf7", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "aecba42a0251ac11d5ca34f7935ffd69c4e9ea043702eb1811a5a55f63164442"}, "trace_id": "lookalike-006-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "ceeaa5baa107c1c995a31496f6fbebb4f4ec33db8f2194d89a2f0e98b8ea8972"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-007", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "eae6187a47b504f3b16b59ec7b15bad55e584b598a43c2c7f863c1c3c1bd2e5a", "evidence": [{"ref": "lookalike-007-c1"}], "evidence_refs": ["lookalike-007-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "f0fb9908-47a4-5381-95ed-eea9ce4284fc", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "974b0e18-f61d-56f9-a8ea-e49f2b499f0f", "project_id": "555bec74-a328-5e1b-9d35-634d0219aede", "request_id": "lookalike-007-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Ingestion timeouts abort a request after thirty seconds.", "body_hash": "fe9a7a7f5e71cf3c0b0a7e09d76f433e02d0d6fc82593cbe2a1fe565837c17b1", "current_transition_id": "c7f24ac6-4eb3-580e-81e9-a5fc5244572a", "evidence_refs": ["lookalike-007-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": null, "memory_id": "5ff4acf2-9b96-5543-b86d-28cf2888144f", "memory_version_id": "aae65ad5-b0c4-54c9-8934-802442c3333a", "team_id": null, "title": "Ingestion timeout budget", "visibility_scope": "project"}], "manifest_hash": "0847755ea12df3266862480448a1be5642557ab5d3d3ee566f978d8b2ce71bf1"}, "trace_id": "lookalike-007-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "2542b757df103699695063aba39c22b11ae46107abc3a35e8993b28b1e7d4c1c"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-008", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "6a20e2d5860606e9080927f6866c39e2b064b608d4b85fc7bb7ff6b2285f2ff8", "evidence": [{"ref": "lookalike-008-c1"}], "evidence_refs": ["lookalike-008-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "854eaf17-6ac0-5733-bc47-9de6cb1f79da", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "72d16d92-5cb7-5fae-ac4d-e9bd7fc5f4cd", "project_id": "e7996a01-6a88-5490-9c73-50054e73c842", "request_id": "lookalike-008-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "6f10abc59eed1b8e3af1df1c14bd988f937e488996e821518a1b45ec2c1f22ab"}, "trace_id": "lookalike-008-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "84297c32-08ab-5698-b1b7-94754a4568b6", "primary_outcome": "publish_new", "scope_control": "cross_project", "source_hash": "b7cde787baacc3a8681a338dc0084b9ea784f08e9626ef0155bda19f13345037"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "lookalike_non_conflict", "case_id": "lookalike-009", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["open_conflict", "merge_evidence", "revise_memory", "supersede_memory"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking work.", "content_hash": "acad3809ae78034228ba5576826d92ad5d86b7855dfeba4f3319ada104b9daa3", "evidence": [{"ref": "lookalike-009-c1"}], "evidence_refs": ["lookalike-009-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": null, "observation_type": "memory", "redaction_codes": [], "title": "Ingestion retry budget"}, "candidate_id": "f3b84e25-b48c-5f45-866b-c528552a0b3f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "05e916d0-c0fb-5bd8-be57-3b18f60c70bb", "project_id": "30903f25-6177-50ee-ad27-37c5e17878f6", "request_id": "lookalike-009-request", "shortlist": {"authorized_corpus_count": 0, "comparison_complete": true, "entries": [], "manifest_hash": "d0ed2300e71dda43effcf9ec280460761ae06ca47bea1b42191154bbac82c64f"}, "trace_id": "lookalike-009-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "bdf1bb4f-d6a5-5dee-8757-233fdd1e2a14", "primary_outcome": "publish_new", "scope_control": "cross_team", "source_hash": "1e695dce72ed504b90d39ec989f65a089afbc387d51514f8631dfcd65df5e732"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-rung-order-000", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["ebf5742b-60dd-5338-a584-4b67ca8c3db3"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "redundant"}, {"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The curation shortlist ranks candidates by cosine distance over cached embeddings.", "content_hash": "1add5e59a3e099819b3317a2c10eee6b617471777e71ad18efb24f3b31bd1d98", "evidence": [{"ref": "ladder-rung-order-000-c1"}], "evidence_refs": ["ladder-rung-order-000-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Shortlist ranking rule"}, "candidate_id": "0044b407-076d-5f9f-a8ea-0ae575ab19e7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "a54ccb8a-1c65-533e-8c24-4f4c25153242", "project_id": "354e1140-c797-548d-a603-7033275316a0", "request_id": "ladder-rung-order-000-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The curation shortlist ranks candidates by cosine distance.", "body_hash": "bc53a9c3c4527533a61bd9208cef98e0589a807a5a72cd114180302159b523a2", "current_transition_id": "aaf91838-9ac1-5510-95ee-a8f102cacf9c", "evidence_refs": ["ladder-rung-order-000-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "528c2984-5df4-5f5c-8203-a88245de92a9", "memory_version_id": "3c49c914-7ebe-5c4e-84d7-bc11a68df64e", "team_id": null, "title": "Shortlist ranking rule", "visibility_scope": "project"}, {"body": "Curation shortlist entries are ordered by cosine distance over cached embeddings.", "body_hash": "effdd437b8d2c97e4fb45cf3adea753cd0b28c84eb25871d9d3cd7079e47dc3f", "current_transition_id": "034fba76-6d59-542c-936d-5eb9f64d7367", "evidence_refs": ["ladder-rung-order-000-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "853c0eff-703c-5af1-a1a4-8a9279e60006", "memory_version_id": "ebf5742b-60dd-5338-a584-4b67ca8c3db3", "team_id": null, "title": "Shortlist ordering", "visibility_scope": "project"}], "manifest_hash": "28e0ec3881edf33420c3f51775a65481883dc2c5173e68f106ac11040a0d43dd"}, "trace_id": "ladder-rung-order-000-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "7e90efdfeb51b8015739066d335c0448cfb7000b98bacc9b894e004f3ce9e1f1"} +{"allowed_outcomes": ["open_conflict"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-conflict-first-001", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["dd319f2c-e2cc-562d-baf8-90dcd5da9490"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}, {"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate"], "gate": "semantic", "input": {"candidate": {"body": "Ingestion retries cap at five attempts before parking the work.", "content_hash": "5b77039ed8ab33f326dd4ae11ff2a2a8fd8b7d92445532bc9a5d219680c21776", "evidence": [{"ref": "ladder-conflict-first-001-c1"}], "evidence_refs": ["ladder-conflict-first-001-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retry budget for ingestion"}, "candidate_id": "27fa302b-44d7-51eb-9cd5-1978be9c03d9", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "3e3372f9-ffe8-50c9-a772-9ca71dff032d", "project_id": "81384ecc-9fdb-5b4d-af90-980d3e8fe2a4", "request_id": "ladder-conflict-first-001-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "Ingestion retries cap at twenty attempts before parking the work.", "body_hash": "79170cac6c407dcbd81702ea24d8611b6b78e77dea3525cfadf0d7bdc80fb7e1", "current_transition_id": "f935fd0b-ab85-5a7d-b317-83503b5d93c5", "evidence_refs": ["ladder-conflict-first-001-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "45ba1c6f-f5c8-5ccc-af16-28fe67a3da04", "memory_version_id": "dd319f2c-e2cc-562d-baf8-90dcd5da9490", "team_id": null, "title": "Retry budget for ingestion", "visibility_scope": "project"}, {"body": "Ingestion retries cap at five attempts before the work item is parked.", "body_hash": "98ba614be1c49cf370d02838eb1d90acaadb1129a24740f7d36410b49900f4d5", "current_transition_id": "ded6165c-c2bb-5f19-947c-e0a1b44ce234", "evidence_refs": ["ladder-conflict-first-001-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "90067366-40b9-5478-bf9d-7d1eb4a3b76e", "memory_version_id": "cd06f654-ebbb-510c-a89b-3109031bbf06", "team_id": null, "title": "Ingestion retry cap", "visibility_scope": "project"}], "manifest_hash": "1e27d408ecd57b8c8d0fc42da6bf821e124b6ba2ff417319c27ccb56c90f52c9"}, "trace_id": "ladder-conflict-first-001-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": true, "out_of_scope_target": null, "primary_outcome": "open_conflict", "scope_control": "in_scope", "source_hash": "a01372bce0cb6d05a48b8dd8f556fb3034a6b560baa268ee45ec9b170a8a0f2f"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-cross-visibility-002", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}, {"applicability": "same", "index": 2, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The daily digest is delivered at 09:00 UTC to every project member.", "content_hash": "5908cf26e0938eab8e18c68762b32216dd39b89d3987c6e626cedeca631e63f8", "evidence": [{"ref": "ladder-cross-visibility-002-c1"}], "evidence_refs": ["ladder-cross-visibility-002-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Digest delivery window"}, "candidate_id": "5d3f0061-6856-5362-8614-2155be3353d4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "d6a9ac2b-a5ac-51ab-84b1-cf31aca0f5b0", "project_id": "3187938c-78ad-5aed-95a4-b4fe9f4e6e6e", "request_id": "ladder-cross-visibility-002-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The daily digest goes out at 09:00 UTC to all project members.", "body_hash": "c62008cee74dc0776c7756be9ea91d09efb86bf43bebacad7c81ada5a06b6d51", "current_transition_id": "281c2c68-04c5-5d30-ab7a-63bd38f29daf", "evidence_refs": ["ladder-cross-visibility-002-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "70ca1a9d-b941-59f3-b622-510a57efdee7", "memory_version_id": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "team_id": "50b2e746-ece3-58c8-ace7-bc8d161e848e", "title": "Digest delivery window", "visibility_scope": "team"}, {"body": "Digest emails are retained for thirty days before archival.", "body_hash": "aa3fafa696643fbcb0574d5fc6eca59dc4f4ca9f4068af9693c298062c158fdc", "current_transition_id": "ce7f5896-6fed-5cb2-9479-735dddbb618b", "evidence_refs": ["ladder-cross-visibility-002-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "2fd07082-e330-59fc-b622-01c2aab8b36e", "memory_version_id": "17857d7a-0938-50b1-a9bc-d2a8444c2172", "team_id": null, "title": "Digest retention", "visibility_scope": "project"}], "manifest_hash": "76d9c023740cadde6723567e9c6403b311f96591c215031cc7d8c33db7308e8e"}, "trace_id": "ladder-cross-visibility-002-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "6506f6a4c91e2e25168e4ebd353c4e4a0c057f07aab60b97357ab73ce152cd65"} +{"allowed_outcomes": ["merge_evidence"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-tie-order-003", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": ["707d308d-30af-5cad-9293-4b25f7f32c9b"], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}, {"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Embedding cache keys hash the normalized body together with the model id.", "content_hash": "ab5bd0b05fca3e3c27c4eb1d424dead403f71443c307a8e46818ef0296d45998", "evidence": [{"ref": "ladder-tie-order-003-c1"}], "evidence_refs": ["ladder-tie-order-003-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Embedding cache key"}, "candidate_id": "feed5c0c-c500-5502-8e1d-cf5835f0437f", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "e54ab9c1-d429-5e0b-b99b-1c7fee5de1b0", "project_id": "b2e1a0ed-9776-5d26-baaf-dbcff63d782f", "request_id": "ladder-tie-order-003-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The embedding cache key hashes the normalized body with the model id.", "body_hash": "ef5b127e001ddb52a4fb4d6987bfb526eb19d8f97d85b21e4208ece6fb3a1d0e", "current_transition_id": "32587092-9f3c-5da5-8fa1-1c1f3075fb2d", "evidence_refs": ["ladder-tie-order-003-t01"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "ce3e9fb9-0df7-58e8-849c-b5302393ff37", "memory_version_id": "707d308d-30af-5cad-9293-4b25f7f32c9b", "team_id": null, "title": "Embedding cache key", "visibility_scope": "project"}, {"body": "Embedding cache entries are keyed by normalized body and model id.", "body_hash": "1150ae33844311c51c4b4177be24cf20f75b6f356ae3004f5efec8baada7a202", "current_transition_id": "02745dec-5fd0-58f6-aa1a-8b319ede7273", "evidence_refs": ["ladder-tie-order-003-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "e9f73ef4-2485-5dab-aeff-cf7968875fc1", "memory_version_id": "4d69934b-0c40-5788-8bb0-e7ec5700e2bc", "team_id": null, "title": "Embedding cache identity", "visibility_scope": "project"}], "manifest_hash": "f2c516738d48dc72d6d7f02fb440728e6e5a022fe42510305fef4e4856684a99"}, "trace_id": "ladder-tie-order-003-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "merge_evidence", "scope_control": "in_scope", "source_hash": "810b2fd598b51c7a919d6309e732d68c1f0db1c49a5594e3adad99c2b9bc6cc7"} +{"allowed_outcomes": ["publish_new"], "author": "cp5-eval", "bucket": "multi_target_ladder", "case_id": "ladder-unsupported-duplicate-004", "contract_version": "curation_v1", "expected_fault": null, "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "redundant"}, {"applicability": "same", "index": 2, "relation": "unrelated"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "The celery outbox flushes pending rows every five seconds.", "content_hash": "068de7bd255b47158e42e4397950a11e17bbc1ad19edef0367c3922917e6eb0f", "evidence": [{"ref": "ladder-unsupported-duplicate-004-c1"}], "evidence_refs": ["ladder-unsupported-duplicate-004-c1"], "evidence_tier": "supported", "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Outbox flush interval"}, "candidate_id": "83174b73-fab3-5975-95c2-5fe3eb21c024", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "57bd77be-7bff-56a7-b379-c6147d2fb4ae", "project_id": "9d1b1c13-3797-514a-ab44-39bac21c21ab", "request_id": "ladder-unsupported-duplicate-004-request", "shortlist": {"authorized_corpus_count": 2, "comparison_complete": true, "entries": [{"body": "The outbox flushes pending rows every five seconds.", "body_hash": "de875b2dd736a8442cfdeab57be5771faaf1f3ea6b45cffd500082e2469b7c04", "current_transition_id": "2d79061c-abc0-54dc-9dec-c439ed46c5a2", "evidence_refs": [], "evidence_tier": "none", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "7b590375-e48e-58cb-a61b-0f7a7c58cd57", "memory_version_id": "e90b3458-ba6e-5c62-b121-84e39bf86771", "team_id": null, "title": "Outbox flush interval", "visibility_scope": "project"}, {"body": "The outbox table is vacuumed nightly to bound index growth.", "body_hash": "31896f0e63934aa1db865ee066bf6342779e5cfbe080dcf13465f0354ddc3009", "current_transition_id": "236213af-7350-5975-855f-3d344957666e", "evidence_refs": ["ladder-unsupported-duplicate-004-t11"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-05T00:00:00+00:00", "memory_id": "0e797c0c-a773-5660-b9a7-bf4ec8eb6a48", "memory_version_id": "2b8f6e82-0b09-596b-bf18-a160845d8d24", "team_id": null, "title": "Outbox table growth", "visibility_scope": "project"}], "manifest_hash": "94a62ffc7b95d04c6697889f2283cc6f92d97a0fbf41a8a5eae01759533d0147"}, "trace_id": "ladder-unsupported-duplicate-004-trace"}, "min_evidence_tier": "supported", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "publish_new", "scope_control": "in_scope", "source_hash": "c9575aa9d565cb6b05abf392c65dcf60a493718722e52b3e7f54e22444188c58"} {"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-json-000", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": "```json\n{invalid json without close", "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "24afe09c29600e1370f4a21771c5b05f7d3e7052094e6c3263f5ec68994857c4", "evidence": [{"ref": "fault-json-000-c1"}, {"ref": "fault-json-000-c2"}], "evidence_refs": ["fault-json-000-c1", "fault-json-000-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "1775ab57-6dbd-5bdd-89ec-9eb22453f2b7", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "ad0dd432-0404-5d2d-b8d4-e7459d3ea682", "project_id": "855c5c95-d38b-5094-8941-113950424dce", "request_id": "fault-json-000-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "953f7f7d5d69cf73494ebfbd1340518511ec744cb9553b4018386ff9bf4c2763", "current_transition_id": "915037cb-cc59-5f0d-853c-0257620680c8", "evidence_refs": ["fault-json-000-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "1a297045-8584-5b64-89ed-a680397da80f", "memory_version_id": "e11414f8-988a-5062-9c0d-0b0dbdc19180", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "7548112f1051f50f779cad3f3547abaedf2b1dc90a0d04a02ddb11531b808748"}, "trace_id": "fault-json-000-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "f68d7b6236668ce1756f82d1c95b077d4dc5a069d372b27c74eca3d415517c02"} {"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-schema-001", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"outcome": "publish_new", "schema_version": 1}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "35ec1e28281e551c4b6964d111864deea5a6688d988af7bafe29947a5d6d5db3", "evidence": [{"ref": "fault-schema-001-c1"}, {"ref": "fault-schema-001-c2"}], "evidence_refs": ["fault-schema-001-c1", "fault-schema-001-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "e8ca2b20-ef85-5956-8d1f-cd82a5ae6dec", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "752b014e-7836-5068-b547-dbfb58ae798c", "project_id": "0fcdca31-6344-5a3c-b04b-9a3931fdf2d0", "request_id": "fault-schema-001-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "b042cf06b8535ef5fb4da33d255051fbb153f7a375460abf5a92cc5311cc1d2a", "current_transition_id": "3305b7f7-c48d-5c5a-badf-a5e1e29819dd", "evidence_refs": ["fault-schema-001-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "178821ee-3cb1-5dfe-a6b7-f95770c3ef05", "memory_version_id": "85a09720-8a5f-54c2-a148-54ad618dee37", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "223a9eaa9bb41b3a64e933aec9fa4848a5a48776182a68737b41bb25834264cf"}, "trace_id": "fault-schema-001-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "ff302184396b6199af11d133887fb53e70506390a6987c2cfdc59ab464295b04"} -{"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-target-002", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["fault-target-002-c1", "fault-target-002-c2"], "comparisons": [{"memory_version_id": "ee426ede-2a34-50d1-b509-efcea5a3b043", "relation": "equivalent", "target_evidence_refs": ["fault-target-002-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "e62f7a52-48f6-59d5-bbfc-56d1691801b8", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "d108548a101231f27f89a7070d9100d83923dcf2e05a25735cc8426f758cbd85", "evidence": [{"ref": "fault-target-002-c1"}, {"ref": "fault-target-002-c2"}], "evidence_refs": ["fault-target-002-c1", "fault-target-002-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "b993c066-a47c-50fc-9ad7-240bbe5a05e4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "db067b89-d964-5d4e-adae-55257be2fe3d", "project_id": "8ca47f1e-ec38-5af4-bd91-e830ab491db6", "request_id": "fault-target-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "92f43577d7e9cdb3fc81e7a044c626a9625552cdc254647ec25051255ed62da2", "current_transition_id": "e8bcbf16-97ff-54f6-b12e-ed64189aba2e", "evidence_refs": ["fault-target-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "7aa1a5d4-eec4-5a0d-8b56-692409bac91a", "memory_version_id": "ee426ede-2a34-50d1-b509-efcea5a3b043", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "302fd34e29898352396039894b0cb2efa70a28cee7211a2a9c6ac74c1250dfb5"}, "trace_id": "fault-target-002-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "7a8f0ca5e14a7cb72e6af6e9bd504c97e39fab73b4939abdd3f36d2959fe8975"} -{"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-evidence-003", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["fault-evidence-003-phantom-ref"], "comparisons": [{"memory_version_id": "f806cfe7-531f-599a-96f1-22bb84b8f294", "relation": "equivalent", "target_evidence_refs": ["fault-evidence-003-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "f806cfe7-531f-599a-96f1-22bb84b8f294", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "8eb0176f6871e5beeedd163afd77c52faf7ecc7732602b8b57e4e00784d1369f", "evidence": [{"ref": "fault-evidence-003-c1"}, {"ref": "fault-evidence-003-c2"}], "evidence_refs": ["fault-evidence-003-c1", "fault-evidence-003-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "4e6edd96-3877-5977-99a5-3a578298886c", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "9a9bfec6-96a5-5e9f-974a-d43395668ca7", "project_id": "c6dfd64f-ca9c-5b1f-9251-07474ee84e54", "request_id": "fault-evidence-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "f1748cfa3f7a8d221e044e198098a1dc7e7e787252200d5ac056bd29238d0d87", "current_transition_id": "fae238d3-7041-52a4-a1a2-c0870329b6fe", "evidence_refs": ["fault-evidence-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "8557074b-1873-571c-a695-82ddd046e308", "memory_version_id": "f806cfe7-531f-599a-96f1-22bb84b8f294", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "96fd29e536470da019e5fb3d8ae6c698b468242b0c780cdcf74e50f74690de20"}, "trace_id": "fault-evidence-003-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "27a54818e198847ba5df866c1dc8350d1ab64fcc2e676b7245db21b7a6879e96"} -{"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-comparisons-004", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"applicability": "same", "candidate_evidence_refs": ["fault-comparisons-004-c1", "fault-comparisons-004-c2"], "comparisons": [{"memory_version_id": "beb5af20-a66f-5ccf-a199-0fe873aab063", "relation": "equivalent", "target_evidence_refs": []}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "d0fcd6a1-9cc3-51ed-9128-a202d17f2f0a", "temporal_order": "unordered"}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "c090c8425d8d6fa17c93e45aaef5bea64ec265a33cf732723836e877232098d9", "evidence": [{"ref": "fault-comparisons-004-c1"}, {"ref": "fault-comparisons-004-c2"}], "evidence_refs": ["fault-comparisons-004-c1", "fault-comparisons-004-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "d6085ebb-aee0-51de-8390-28bc07ae56c4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "91c32328-9ea7-5257-a3be-fb0d63897b81", "project_id": "293f01f0-90d9-53a8-ae08-0acafb5af4f3", "request_id": "fault-comparisons-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "de0287993b84aba8b1b8e47f660b4849f844366b2ca0fc3fdd8c30ed3051d037", "current_transition_id": "1ee343bb-c6ab-5b52-8a9a-9018d831376f", "evidence_refs": ["fault-comparisons-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "10e047ab-ae1a-52cc-b17a-721f74612e44", "memory_version_id": "d0fcd6a1-9cc3-51ed-9128-a202d17f2f0a", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "360d57b04c01ad2a1ed0cac1aff9e125da2b3b1d07a4d66960d0149ad462fa47"}, "trace_id": "fault-comparisons-004-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "298b9a209fa97b7988afa68d77cc827fed50c635e127a140b7db3615fa324513"} +{"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-index-out-of-range-002", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "eaa8aba0da7ce9ba09fe73726fd599191aae8ca662788f90512a43650eec8ac8", "evidence": [{"ref": "fault-index-out-of-range-002-c1"}, {"ref": "fault-index-out-of-range-002-c2"}], "evidence_refs": ["fault-index-out-of-range-002-c1", "fault-index-out-of-range-002-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "9bce7891-4bc4-57a9-a517-7ecfb13eac4d", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "836fbccd-4c9a-55c8-ac08-51d8556c0bdb", "project_id": "b2a5e636-8c20-5476-8928-a895618a97ca", "request_id": "fault-index-out-of-range-002-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "be7774299311ac68ea0d7c883597439c9a16e9b5dada8f1d85faa7e568ce6291", "current_transition_id": "195aaa8c-3d7b-5aec-a83f-dbb6f7540ff3", "evidence_refs": ["fault-index-out-of-range-002-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "0f5ae43d-74ae-5130-81d1-e6103ab5d31c", "memory_version_id": "e7463159-51db-5edd-84f2-57c4d4beda55", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "03da22f914c83dcf063363ecd194d0cbe7a802a3805dec724835f68d65b073bc"}, "trace_id": "fault-index-out-of-range-002-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "62aa52d9f56a4c68767f51aea43694a82c8edf186d110ca3611e499221a1114f"} +{"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-index-duplicate-003", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}, {"applicability": "same", "index": 1, "relation": "unrelated"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "52d2dc5b3cad1612b6010b6c9eb1634dda6647f6b7e42d2d29d46f49502389f1", "evidence": [{"ref": "fault-index-duplicate-003-c1"}, {"ref": "fault-index-duplicate-003-c2"}], "evidence_refs": ["fault-index-duplicate-003-c1", "fault-index-duplicate-003-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "2f5c4a4d-2c3a-5e9b-939c-94c1e6957004", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "8d64ef19-1447-5df1-b575-be9a5fdd27a0", "project_id": "cfc4223f-1246-5943-adbf-8795e8c718ab", "request_id": "fault-index-duplicate-003-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "88b62ea2e6bdd0721961228c14ca1a2893419627f6230173d4d41ef3c27cc893", "current_transition_id": "605061f3-434d-56d0-b051-ab96e2d0d5d3", "evidence_refs": ["fault-index-duplicate-003-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "ce7e01f2-7f09-5707-b112-a757c97d4b6e", "memory_version_id": "59406b89-e6b4-55ca-a7e7-085b4d930ccb", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "25e4a143ddf2f7e4b270f3b4057377189c7e1ca9132207017bb2c71ee39b4229"}, "trace_id": "fault-index-duplicate-003-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "4487998ad884fcd35034508ced993784d904957924247db624ec5f51dda2d2ae"} +{"allowed_outcomes": [], "author": "cp5-eval", "bucket": "provider_fault", "case_id": "fault-comparisons-004", "contract_version": "curation_v1", "expected_fault": "no_semantic_decision", "expected_targets": [], "fixture_verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}, "forbidden_outcomes": ["publish_new", "merge_evidence", "revise_memory", "supersede_memory", "reject_candidate", "open_conflict"], "gate": "semantic", "input": {"candidate": {"body": "Audit logs are retained for ninety days before archival.", "content_hash": "c090c8425d8d6fa17c93e45aaef5bea64ec265a33cf732723836e877232098d9", "evidence": [{"ref": "fault-comparisons-004-c1"}, {"ref": "fault-comparisons-004-c2"}], "evidence_refs": ["fault-comparisons-004-c1", "fault-comparisons-004-c2"], "evidence_tier": "corroborated", "kind": "decision", "latest_evidence_at": "2026-07-10T00:00:00+00:00", "observation_type": "memory", "redaction_codes": [], "title": "Retention window"}, "candidate_id": "d6085ebb-aee0-51de-8390-28bc07ae56c4", "effective_scope": {"team_id": null, "visibility_scope": "project"}, "organization_id": "91c32328-9ea7-5257-a3be-fb0d63897b81", "project_id": "293f01f0-90d9-53a8-ae08-0acafb5af4f3", "request_id": "fault-comparisons-004-request", "shortlist": {"authorized_corpus_count": 1, "comparison_complete": true, "entries": [{"body": "Audit logs are retained for sixty days.", "body_hash": "de0287993b84aba8b1b8e47f660b4849f844366b2ca0fc3fdd8c30ed3051d037", "current_transition_id": "1ee343bb-c6ab-5b52-8a9a-9018d831376f", "evidence_refs": ["fault-comparisons-004-t1"], "evidence_tier": "supported", "has_open_conflict": false, "kind": "decision", "latest_evidence_at": "2026-07-01T00:00:00+00:00", "memory_id": "10e047ab-ae1a-52cc-b17a-721f74612e44", "memory_version_id": "d0fcd6a1-9cc3-51ed-9128-a202d17f2f0a", "team_id": null, "title": "Retention window", "visibility_scope": "project"}], "manifest_hash": "360d57b04c01ad2a1ed0cac1aff9e125da2b3b1d07a4d66960d0149ad462fa47"}, "trace_id": "fault-comparisons-004-trace"}, "min_evidence_tier": "none", "open_conflict_valid": false, "out_of_scope_target": null, "primary_outcome": "no_decision", "scope_control": "in_scope", "source_hash": "298b9a209fa97b7988afa68d77cc827fed50c635e127a140b7db3615fa324513"} diff --git a/apps/backend/engram/memory/evals/curation_v1/selected-policy-responses.jsonl b/apps/backend/engram/memory/evals/curation_v1/selected-policy-responses.jsonl index eff28e47c5..510416b402 100644 --- a/apps/backend/engram/memory/evals/curation_v1/selected-policy-responses.jsonl +++ b/apps/backend/engram/memory/evals/curation_v1/selected-policy-responses.jsonl @@ -1,91 +1,91 @@ -{"case_id": "publish-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-000-c1"], "comparisons": [{"memory_version_id": "69db1b33-f4ab-5850-a871-50ecde747f6b", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-001-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-002-c1"], "comparisons": [{"memory_version_id": "08f9b1a4-de13-5550-8217-031bf24fc08d", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-003-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-004-c1"], "comparisons": [{"memory_version_id": "c1bc7298-da8e-5fb1-92a9-92756e2d7027", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-005", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-005-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-006", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-006-c1"], "comparisons": [{"memory_version_id": "c6521a10-4993-519d-aca7-c05413c6bcef", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-007", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-007-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-008", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-008-c1"], "comparisons": [{"memory_version_id": "ddcb7978-2f65-5c13-a779-8a06300d7a79", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-009", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-009-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-010", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-010-c1"], "comparisons": [{"memory_version_id": "30f09f23-4bff-587a-bf83-513b1774bfb5", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-011", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-011-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-012", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-012-c1"], "comparisons": [{"memory_version_id": "9a56576b-6d0a-5bc5-8b4a-34434ba8eaa1", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-013", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-014", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-014-c1"], "comparisons": [{"memory_version_id": "3e68068d-bfe6-50b0-95f9-eb2a3e56ac0e", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-015", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-015-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-016", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-016-c1"], "comparisons": [{"memory_version_id": "00c04ea4-b9f3-580e-b773-a9fedafa70fc", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-017", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-017-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-018", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-018-c1"], "comparisons": [{"memory_version_id": "5c9f65e3-be07-5ae7-8749-76ad1c7774c0", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "publish-019", "verdict": {"applicability": "same", "candidate_evidence_refs": ["publish-019-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "merge-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-000-c1"], "comparisons": [{"memory_version_id": "52aef6c1-2e3d-5348-b278-97422d4731a5", "relation": "equivalent", "target_evidence_refs": ["merge-000-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "52aef6c1-2e3d-5348-b278-97422d4731a5", "temporal_order": "unordered"}} -{"case_id": "merge-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-001-c1"], "comparisons": [{"memory_version_id": "6c84d4cd-45e8-5a12-956a-0ca2da3ac960", "relation": "equivalent", "target_evidence_refs": ["merge-001-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "6c84d4cd-45e8-5a12-956a-0ca2da3ac960", "temporal_order": "unordered"}} -{"case_id": "merge-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-002-c1"], "comparisons": [{"memory_version_id": "ab1469f5-4a6e-59f5-ad97-3b84266d7b24", "relation": "equivalent", "target_evidence_refs": ["merge-002-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "ab1469f5-4a6e-59f5-ad97-3b84266d7b24", "temporal_order": "unordered"}} -{"case_id": "merge-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-003-c1"], "comparisons": [{"memory_version_id": "30feccb7-f8e9-5c64-82c3-e9383d8193ea", "relation": "equivalent", "target_evidence_refs": ["merge-003-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "30feccb7-f8e9-5c64-82c3-e9383d8193ea", "temporal_order": "unordered"}} -{"case_id": "merge-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-004-c1"], "comparisons": [{"memory_version_id": "a962ff65-4079-5900-a0e1-7c2064fe3ce6", "relation": "equivalent", "target_evidence_refs": ["merge-004-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "a962ff65-4079-5900-a0e1-7c2064fe3ce6", "temporal_order": "unordered"}} -{"case_id": "merge-005", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-005-c1"], "comparisons": [{"memory_version_id": "bef95484-5052-5f17-8f9d-76e064c4011c", "relation": "equivalent", "target_evidence_refs": ["merge-005-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "bef95484-5052-5f17-8f9d-76e064c4011c", "temporal_order": "unordered"}} -{"case_id": "merge-006", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-006-c1"], "comparisons": [{"memory_version_id": "18c654d9-a30a-5ad8-980a-3b78bd287f26", "relation": "equivalent", "target_evidence_refs": ["merge-006-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "18c654d9-a30a-5ad8-980a-3b78bd287f26", "temporal_order": "unordered"}} -{"case_id": "merge-007", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-007-c1"], "comparisons": [{"memory_version_id": "57fd5604-4555-5ddf-ad16-ac3b0b723839", "relation": "equivalent", "target_evidence_refs": ["merge-007-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "57fd5604-4555-5ddf-ad16-ac3b0b723839", "temporal_order": "unordered"}} -{"case_id": "merge-008", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-008-c1"], "comparisons": [{"memory_version_id": "d3272cf4-97b6-51d1-86e3-5e8ceb7a4344", "relation": "equivalent", "target_evidence_refs": ["merge-008-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "d3272cf4-97b6-51d1-86e3-5e8ceb7a4344", "temporal_order": "unordered"}} -{"case_id": "merge-009", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-009-c1"], "comparisons": [{"memory_version_id": "fc8ad236-08f6-5383-9c80-35e4ac78e8cc", "relation": "equivalent", "target_evidence_refs": ["merge-009-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "fc8ad236-08f6-5383-9c80-35e4ac78e8cc", "temporal_order": "unordered"}} -{"case_id": "merge-010", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-010-c1"], "comparisons": [{"memory_version_id": "d2742959-a498-5b7b-9933-1d0066b8998a", "relation": "equivalent", "target_evidence_refs": ["merge-010-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "d2742959-a498-5b7b-9933-1d0066b8998a", "temporal_order": "unordered"}} -{"case_id": "merge-011", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-011-c1"], "comparisons": [{"memory_version_id": "51f47e1f-7abf-5e51-ac8a-b2c31b360bea", "relation": "equivalent", "target_evidence_refs": ["merge-011-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "51f47e1f-7abf-5e51-ac8a-b2c31b360bea", "temporal_order": "unordered"}} -{"case_id": "merge-012", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-012-c1"], "comparisons": [{"memory_version_id": "e64a49f8-e808-5723-9c86-c2af4865a01f", "relation": "equivalent", "target_evidence_refs": ["merge-012-t1"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "e64a49f8-e808-5723-9c86-c2af4865a01f", "temporal_order": "unordered"}} -{"case_id": "merge-013", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "merge-014", "verdict": {"applicability": "same", "candidate_evidence_refs": ["merge-014-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "revise-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-000-c1", "revise-000-c2"], "comparisons": [{"memory_version_id": "9bf59a29-9ec8-526d-a7db-f3dfb6de7859", "relation": "candidate_revises", "target_evidence_refs": ["revise-000-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "9bf59a29-9ec8-526d-a7db-f3dfb6de7859", "temporal_order": "candidate_newer"}} -{"case_id": "revise-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-001-c1", "revise-001-c2"], "comparisons": [{"memory_version_id": "0190ff84-7b39-5932-9150-c4f758fc3083", "relation": "candidate_revises", "target_evidence_refs": ["revise-001-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "0190ff84-7b39-5932-9150-c4f758fc3083", "temporal_order": "candidate_newer"}} -{"case_id": "revise-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-002-c1", "revise-002-c2"], "comparisons": [{"memory_version_id": "d854e4f9-6148-57c6-96a5-51a9483cb00a", "relation": "candidate_revises", "target_evidence_refs": ["revise-002-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "d854e4f9-6148-57c6-96a5-51a9483cb00a", "temporal_order": "candidate_newer"}} -{"case_id": "revise-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-003-c1", "revise-003-c2"], "comparisons": [{"memory_version_id": "cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae", "relation": "candidate_revises", "target_evidence_refs": ["revise-003-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "cfc7f1a9-fb6d-5d56-9d1b-fbd5aa7a27ae", "temporal_order": "candidate_newer"}} -{"case_id": "revise-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-004-c1", "revise-004-c2"], "comparisons": [{"memory_version_id": "3b5fd2ec-fc0b-5997-9862-880407b11996", "relation": "candidate_revises", "target_evidence_refs": ["revise-004-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "3b5fd2ec-fc0b-5997-9862-880407b11996", "temporal_order": "candidate_newer"}} -{"case_id": "revise-005", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-005-c1", "revise-005-c2"], "comparisons": [{"memory_version_id": "8a6f6517-aa2e-58f1-8aed-c80b0492cb1e", "relation": "candidate_revises", "target_evidence_refs": ["revise-005-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "8a6f6517-aa2e-58f1-8aed-c80b0492cb1e", "temporal_order": "candidate_newer"}} -{"case_id": "revise-006", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-006-c1", "revise-006-c2"], "comparisons": [{"memory_version_id": "42496031-4404-54ba-99fd-d4fcf7eb96b8", "relation": "candidate_revises", "target_evidence_refs": ["revise-006-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "42496031-4404-54ba-99fd-d4fcf7eb96b8", "temporal_order": "candidate_newer"}} -{"case_id": "revise-007", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-007-c1", "revise-007-c2"], "comparisons": [{"memory_version_id": "ee377e46-340e-51dd-a13d-94efff79dc83", "relation": "candidate_revises", "target_evidence_refs": ["revise-007-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "ee377e46-340e-51dd-a13d-94efff79dc83", "temporal_order": "candidate_newer"}} -{"case_id": "revise-008", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-008-c1", "revise-008-c2"], "comparisons": [{"memory_version_id": "af3a0290-54ba-531d-ab58-57c3c01b7f31", "relation": "candidate_revises", "target_evidence_refs": ["revise-008-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "af3a0290-54ba-531d-ab58-57c3c01b7f31", "temporal_order": "candidate_newer"}} -{"case_id": "revise-009", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-009-c1", "revise-009-c2"], "comparisons": [{"memory_version_id": "e8a8f3f6-1950-5d9d-a546-28a126c9b1b8", "relation": "candidate_revises", "target_evidence_refs": ["revise-009-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "e8a8f3f6-1950-5d9d-a546-28a126c9b1b8", "temporal_order": "candidate_newer"}} -{"case_id": "revise-010", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-010-c1", "revise-010-c2"], "comparisons": [{"memory_version_id": "64034303-283a-54c3-b2f1-1907ad3cfd63", "relation": "candidate_revises", "target_evidence_refs": ["revise-010-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "64034303-283a-54c3-b2f1-1907ad3cfd63", "temporal_order": "candidate_newer"}} -{"case_id": "revise-011", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-011-c1", "revise-011-c2"], "comparisons": [{"memory_version_id": "b80b0d0a-da6d-5673-b3df-13ff68669e57", "relation": "candidate_revises", "target_evidence_refs": ["revise-011-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "b80b0d0a-da6d-5673-b3df-13ff68669e57", "temporal_order": "candidate_newer"}} -{"case_id": "revise-012", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-012-c1", "revise-012-c2"], "comparisons": [{"memory_version_id": "efdce29f-49e0-535e-b045-58b53e0b394e", "relation": "candidate_revises", "target_evidence_refs": ["revise-012-t1"]}], "outcome": "revise_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_subject_revision", "relation": "candidate_revises", "schema_version": 1, "target_memory_version_id": "efdce29f-49e0-535e-b045-58b53e0b394e", "temporal_order": "candidate_newer"}} -{"case_id": "revise-013", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "revise-014", "verdict": {"applicability": "same", "candidate_evidence_refs": ["revise-014-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "supersede-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-000-c1", "supersede-000-c2"], "comparisons": [{"memory_version_id": "72467f8b-1ff5-5560-82e9-e81d5a3b30a4", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-000-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "72467f8b-1ff5-5560-82e9-e81d5a3b30a4", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-001-c1", "supersede-001-c2"], "comparisons": [{"memory_version_id": "28d78b66-db76-514b-80e2-1656aeb26e96", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-001-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "28d78b66-db76-514b-80e2-1656aeb26e96", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-002-c1", "supersede-002-c2"], "comparisons": [{"memory_version_id": "e0cb4f19-8ee6-5851-a60f-c157f618f2dc", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-002-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "e0cb4f19-8ee6-5851-a60f-c157f618f2dc", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-003-c1", "supersede-003-c2"], "comparisons": [{"memory_version_id": "f99a4aa2-01a6-55c0-9348-69bc26449e6c", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-003-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "f99a4aa2-01a6-55c0-9348-69bc26449e6c", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-004-c1", "supersede-004-c2"], "comparisons": [{"memory_version_id": "95045a51-8b7b-5b2a-9ff5-12c491ca7712", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-004-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "95045a51-8b7b-5b2a-9ff5-12c491ca7712", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-005", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-005-c1", "supersede-005-c2"], "comparisons": [{"memory_version_id": "e5d6dc64-d7a5-523c-b3b0-d87076a414e7", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-005-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "e5d6dc64-d7a5-523c-b3b0-d87076a414e7", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-006", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-006-c1", "supersede-006-c2"], "comparisons": [{"memory_version_id": "106531c7-e833-5b68-9427-0de76fe1a420", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-006-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "106531c7-e833-5b68-9427-0de76fe1a420", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-007", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-007-c1", "supersede-007-c2"], "comparisons": [{"memory_version_id": "073309d0-0b95-5337-b436-89023f49cb80", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-007-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "073309d0-0b95-5337-b436-89023f49cb80", "temporal_order": "candidate_newer"}} -{"case_id": "supersede-008", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-008-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "supersede-009", "verdict": {"applicability": "same", "candidate_evidence_refs": ["supersede-009-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "supersede-unsupported-000", "verdict": {"applicability": "same", "candidate_evidence_refs": [], "comparisons": [{"memory_version_id": "57352460-af8d-5a25-8c1d-660968cd8ff7", "relation": "candidate_supersedes", "target_evidence_refs": ["supersede-unsupported-000-t1"]}], "outcome": "supersede_memory", "reason": "deterministic curation eval fixture verdict", "reason_code": "ordered_replacement", "relation": "candidate_supersedes", "schema_version": 1, "target_memory_version_id": "57352460-af8d-5a25-8c1d-660968cd8ff7", "temporal_order": "candidate_newer"}} -{"case_id": "conflict-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-000-c1"], "comparisons": [{"memory_version_id": "4329993f-ae60-562b-8604-c57137a4d2d3", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-000-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "4329993f-ae60-562b-8604-c57137a4d2d3", "temporal_order": "unordered"}} -{"case_id": "conflict-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-001-c1"], "comparisons": [{"memory_version_id": "10838e63-4f35-53b1-aac8-a807ca6d4bad", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-001-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "10838e63-4f35-53b1-aac8-a807ca6d4bad", "temporal_order": "unordered"}} -{"case_id": "conflict-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-002-c1"], "comparisons": [{"memory_version_id": "0f8c577b-6738-5af4-8390-c8cd9809d722", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-002-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "0f8c577b-6738-5af4-8390-c8cd9809d722", "temporal_order": "unordered"}} -{"case_id": "conflict-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-003-c1"], "comparisons": [{"memory_version_id": "4f25f753-02dd-5463-882b-aa23803ab4ea", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-003-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "4f25f753-02dd-5463-882b-aa23803ab4ea", "temporal_order": "unordered"}} -{"case_id": "conflict-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-004-c1"], "comparisons": [{"memory_version_id": "8813f250-041a-5757-8126-9149bf03fd46", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-004-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "8813f250-041a-5757-8126-9149bf03fd46", "temporal_order": "unordered"}} -{"case_id": "conflict-005", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-005-c1"], "comparisons": [{"memory_version_id": "1335a7c1-7d58-5c6e-ab71-edf163a1c2fa", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-005-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "1335a7c1-7d58-5c6e-ab71-edf163a1c2fa", "temporal_order": "unordered"}} -{"case_id": "conflict-006", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-006-c1"], "comparisons": [{"memory_version_id": "a63d00db-2f04-595e-9dfd-b3822e61b65e", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-006-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "a63d00db-2f04-595e-9dfd-b3822e61b65e", "temporal_order": "unordered"}} -{"case_id": "conflict-007", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-007-c1"], "comparisons": [{"memory_version_id": "86e9f87b-5c07-5357-929c-b3a558571378", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-007-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "86e9f87b-5c07-5357-929c-b3a558571378", "temporal_order": "unordered"}} -{"case_id": "conflict-008", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-008-c1"], "comparisons": [{"memory_version_id": "920d5ab2-1210-5eb1-981b-785a4949362b", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-008-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "920d5ab2-1210-5eb1-981b-785a4949362b", "temporal_order": "unordered"}} -{"case_id": "conflict-009", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-009-c1"], "comparisons": [{"memory_version_id": "32a5b85c-6981-5b5d-a82c-027997e701c2", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-009-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "32a5b85c-6981-5b5d-a82c-027997e701c2", "temporal_order": "unordered"}} -{"case_id": "conflict-010", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-010-c1"], "comparisons": [{"memory_version_id": "4b547b1a-251d-5aef-be04-7dc81d3f2d10", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-010-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "4b547b1a-251d-5aef-be04-7dc81d3f2d10", "temporal_order": "unordered"}} -{"case_id": "conflict-011", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-011-c1"], "comparisons": [{"memory_version_id": "94f6a23f-ba81-55cf-a54f-d0e381d0049e", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-011-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "94f6a23f-ba81-55cf-a54f-d0e381d0049e", "temporal_order": "unordered"}} -{"case_id": "conflict-012", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-012-c1"], "comparisons": [{"memory_version_id": "e5093345-dc43-5d1f-9c1b-7178f8f35a6d", "relation": "mutually_incompatible", "target_evidence_refs": ["conflict-012-t1"]}], "outcome": "open_conflict", "reason": "deterministic curation eval fixture verdict", "reason_code": "same_scope_contradiction", "relation": "mutually_incompatible", "schema_version": 1, "target_memory_version_id": "e5093345-dc43-5d1f-9c1b-7178f8f35a6d", "temporal_order": "unordered"}} -{"case_id": "conflict-013", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-013-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "conflict-014", "verdict": {"applicability": "same", "candidate_evidence_refs": ["conflict-014-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-000-c1"], "comparisons": [{"memory_version_id": "e91a6939-a557-5480-bbf1-10f22674c5b9", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-001-c1"], "comparisons": [{"memory_version_id": "0c03bbdc-9174-5742-b06b-7a780c871079", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-002-c1"], "comparisons": [{"memory_version_id": "a557776a-f88f-5f8c-a368-9de46d908000", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-003-c1"], "comparisons": [{"memory_version_id": "2888273c-7563-5b80-a5ee-de8ec92bcee5", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-004-c1"], "comparisons": [{"memory_version_id": "0e60c3b4-641d-55fa-bd85-9f44963a9a1f", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-005", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-005-c1"], "comparisons": [{"memory_version_id": "912f436d-f159-5c38-9f24-862239ced3e9", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-006", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-006-c1"], "comparisons": [{"memory_version_id": "2a260865-20ef-508c-9cb4-e60b38deddf7", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-007", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-007-c1"], "comparisons": [{"memory_version_id": "aae65ad5-b0c4-54c9-8934-802442c3333a", "relation": "compatible_distinct", "target_evidence_refs": []}], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "compatible_distinct", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-008", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-008-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "lookalike-009", "verdict": {"applicability": "same", "candidate_evidence_refs": ["lookalike-009-c1"], "comparisons": [], "outcome": "publish_new", "reason": "deterministic curation eval fixture verdict", "reason_code": "distinct_claim", "relation": "unrelated", "schema_version": 1, "target_memory_version_id": null, "temporal_order": "unordered"}} -{"case_id": "ladder-rung-order-000", "verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-rung-order-000-c1"], "comparisons": [{"memory_version_id": "3c49c914-7ebe-5c4e-84d7-bc11a68df64e", "relation": "redundant", "target_evidence_refs": ["ladder-rung-order-000-t01"]}, {"memory_version_id": "ebf5742b-60dd-5338-a584-4b67ca8c3db3", "relation": "equivalent", "target_evidence_refs": ["ladder-rung-order-000-t11"]}], "outcome": "reject_candidate", "reason": "deterministic curation eval fixture verdict", "reason_code": "redundant_claim", "relation": "redundant", "schema_version": 1, "target_memory_version_id": "3c49c914-7ebe-5c4e-84d7-bc11a68df64e", "temporal_order": "not_applicable"}} -{"case_id": "ladder-conflict-first-001", "verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-conflict-first-001-c1"], "comparisons": [{"memory_version_id": "dd319f2c-e2cc-562d-baf8-90dcd5da9490", "relation": "mutually_incompatible", "target_evidence_refs": ["ladder-conflict-first-001-t01"]}, {"memory_version_id": "cd06f654-ebbb-510c-a89b-3109031bbf06", "relation": "equivalent", "target_evidence_refs": ["ladder-conflict-first-001-t11"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "cd06f654-ebbb-510c-a89b-3109031bbf06", "temporal_order": "unordered"}} -{"case_id": "ladder-cross-visibility-002", "verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-cross-visibility-002-c1"], "comparisons": [{"memory_version_id": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "relation": "equivalent", "target_evidence_refs": ["ladder-cross-visibility-002-t01"]}, {"memory_version_id": "17857d7a-0938-50b1-a9bc-d2a8444c2172", "relation": "compatible_distinct", "target_evidence_refs": ["ladder-cross-visibility-002-t11"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "86fefaa8-7d61-565e-af0f-23f38ec815f0", "temporal_order": "unordered"}} -{"case_id": "ladder-tie-order-003", "verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-tie-order-003-c1"], "comparisons": [{"memory_version_id": "707d308d-30af-5cad-9293-4b25f7f32c9b", "relation": "equivalent", "target_evidence_refs": ["ladder-tie-order-003-t01"]}, {"memory_version_id": "4d69934b-0c40-5788-8bb0-e7ec5700e2bc", "relation": "equivalent", "target_evidence_refs": ["ladder-tie-order-003-t11"]}], "outcome": "merge_evidence", "reason": "deterministic curation eval fixture verdict", "reason_code": "equivalent_claim", "relation": "equivalent", "schema_version": 1, "target_memory_version_id": "4d69934b-0c40-5788-8bb0-e7ec5700e2bc", "temporal_order": "unordered"}} -{"case_id": "ladder-unsupported-duplicate-004", "verdict": {"applicability": "same", "candidate_evidence_refs": ["ladder-unsupported-duplicate-004-c1"], "comparisons": [{"memory_version_id": "e90b3458-ba6e-5c62-b121-84e39bf86771", "relation": "redundant", "target_evidence_refs": []}, {"memory_version_id": "2b8f6e82-0b09-596b-bf18-a160845d8d24", "relation": "unrelated", "target_evidence_refs": ["ladder-unsupported-duplicate-004-t11"]}], "outcome": "reject_candidate", "reason": "deterministic curation eval fixture verdict", "reason_code": "redundant_claim", "relation": "redundant", "schema_version": 1, "target_memory_version_id": "e90b3458-ba6e-5c62-b121-84e39bf86771", "temporal_order": "not_applicable"}} +{"case_id": "publish-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-001", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-003", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-005", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-006", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-007", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-008", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-009", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-010", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-011", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-012", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-013", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-014", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-015", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-016", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-017", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-018", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "publish-019", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-001", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-003", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-005", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-006", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-007", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-008", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-009", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-010", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-011", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-012", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-013", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "merge-014", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-001", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-003", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-005", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-006", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-007", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-008", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-009", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-010", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-011", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-012", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_revises"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-013", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "revise-014", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-001", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-003", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-005", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-006", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-007", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-008", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-009", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "supersede-unsupported-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "candidate_supersedes"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-001", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-003", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-005", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-006", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-007", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-008", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-009", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-010", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-011", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-012", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-013", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "conflict-014", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-001", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-003", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-005", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-006", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-007", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-008", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "lookalike-009", "verdict": {"comparisons": [], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "ladder-rung-order-000", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "redundant"}, {"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "ladder-conflict-first-001", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "mutually_incompatible"}, {"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "ladder-cross-visibility-002", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}, {"applicability": "same", "index": 2, "relation": "compatible_distinct"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "ladder-tie-order-003", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "equivalent"}, {"applicability": "same", "index": 2, "relation": "equivalent"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} +{"case_id": "ladder-unsupported-duplicate-004", "verdict": {"comparisons": [{"applicability": "same", "index": 1, "relation": "redundant"}, {"applicability": "same", "index": 2, "relation": "unrelated"}], "reason": "deterministic curation eval fixture verdict", "schema_version": 2}} diff --git a/apps/backend/engram/memory/evals/scorer_tests.py b/apps/backend/engram/memory/evals/scorer_tests.py index f25cca0fe0..6b5c9b14b6 100644 --- a/apps/backend/engram/memory/evals/scorer_tests.py +++ b/apps/backend/engram/memory/evals/scorer_tests.py @@ -106,23 +106,9 @@ def test_bad_provider_forbidden_transition_fails_gate(f_cases: list[dict[str, ob target = next( case for case in f_cases if case['bucket'] == 'equivalent_merge' and case['scope_control'] == 'in_scope' ) - entry = target['input']['shortlist']['entries'][0] responses[str(target['case_id'])] = { - 'schema_version': 1, - 'outcome': 'open_conflict', - 'relation': 'mutually_incompatible', - 'target_memory_version_id': entry['memory_version_id'], - 'candidate_evidence_refs': list(target['input']['candidate']['evidence_refs']), - 'comparisons': [ - { - 'memory_version_id': entry['memory_version_id'], - 'relation': 'mutually_incompatible', - 'target_evidence_refs': list(entry['evidence_refs']), - } - ], - 'applicability': 'same', - 'temporal_order': 'unordered', - 'reason_code': 'same_scope_contradiction', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}], 'reason': 'injected incompatible verdict', } diff --git a/apps/backend/engram/memory/propose_e2e_tests.py b/apps/backend/engram/memory/propose_e2e_tests.py index 83e0f08e15..a91e489e6b 100644 --- a/apps/backend/engram/memory/propose_e2e_tests.py +++ b/apps/backend/engram/memory/propose_e2e_tests.py @@ -29,8 +29,8 @@ from engram.memory.curation_judge import ( ClaimEvidence, CurationEvidenceContext, - CurationJudgeComparisonV1, - CurationJudgeVerdictV1, + CurationJudgeComparison, + CurationJudgeVerdict, ) from engram.memory.memory_propose_service import ProposeMemory, ProposeMemoryInput from engram.model_policy.models import ModelPolicy, ProviderCallRecord, ProviderSecret @@ -211,13 +211,12 @@ def test_agent_proposal_reject_redundant_settles_rejected(monkeypatch: pytest.Mo body='The production deploy pipeline requires a manual approval step before release.', ) shortlist = orch.stub_shortlist(orch.shortlist_entry(target)) - verdict = CurationJudgeVerdictV1( - schema_version=1, + verdict = CurationJudgeVerdict( + schema_version=2, outcome='reject_candidate', relation='redundant', target_memory_version_id=target_version.id, - candidate_evidence_refs=('cref-1',), - comparisons=(CurationJudgeComparisonV1(target_version.id, 'redundant', ('tref-1',)),), + comparisons=(CurationJudgeComparison(target_version.id, 'redundant', 'same'),), applicability='same', temporal_order='not_applicable', reason_code='redundant_claim', @@ -302,21 +301,8 @@ def test_agent_proposal_cross_visibility_conflict_claim_never_mutates_the_target ) conflict_payload = { - 'schema_version': 1, - 'outcome': 'open_conflict', - 'relation': 'mutually_incompatible', - 'target_memory_version_id': str(target_version.id), - 'candidate_evidence_refs': ['cref-1'], - 'comparisons': [ - { - 'memory_version_id': str(target_version.id), - 'relation': 'mutually_incompatible', - 'target_evidence_refs': ['tref-1'], - } - ], - 'applicability': 'same', - 'temporal_order': 'unordered', - 'reason_code': 'same_scope_contradiction', + 'schema_version': 2, + 'comparisons': [{'index': 1, 'relation': 'mutually_incompatible', 'applicability': 'same'}], 'reason': 'rule-ignoring cross-visibility conflict', } orch.enable_rollout(monkeypatch) diff --git a/apps/backend/engram/model_policy/model_policy_tests.py b/apps/backend/engram/model_policy/model_policy_tests.py index eea61776e8..628d26c705 100644 --- a/apps/backend/engram/model_policy/model_policy_tests.py +++ b/apps/backend/engram/model_policy/model_policy_tests.py @@ -2742,7 +2742,7 @@ def test_model_policy_list_includes_health_fields_and_avoids_per_policy_queries( @pytest.mark.django_db -def test_fake_provider_curation_decision_v1_emits_deterministic_strict_json() -> None: +def test_fake_provider_curation_decision_v2_emits_deterministic_strict_json() -> None: organization, team, project, _owner, _api_key = create_project_scope() secret = ProviderSecret.objects.create( organization=organization, @@ -2779,10 +2779,7 @@ def test_fake_provider_curation_decision_v1_emits_deterministic_strict_json() -> 'evidence_refs': ['candidate-ref-1', 'candidate-ref-2'], 'claim': {'title': 'candidate', 'body': 'bounded body'}, }, - 'comparisons': [ - {'memory_version_id': str(uuid.uuid4()), 'evidence_refs': ['target-ref-1']}, - {'memory_version_id': str(uuid.uuid4()), 'evidence_refs': ['target-ref-2']}, - ], + 'comparisons': [{'index': 1}, {'index': 2}], } data = ProviderCallInput( organization_id=organization.id, @@ -2792,7 +2789,7 @@ def test_fake_provider_curation_decision_v1_emits_deterministic_strict_json() -> request_id='curation-decision-fake-1', trace_id='curation-decision-fake-1', prompt=json.dumps(envelope, sort_keys=True), - response_kind='curation_decision_v1', + response_kind='curation_decision_v2', ) first = FakeProviderGateway().call(data) @@ -2800,32 +2797,9 @@ def test_fake_provider_curation_decision_v1_emits_deterministic_strict_json() -> payload = json.loads(first.generated_body) assert first.generated_body == replay.generated_body - assert set(payload) == { - 'schema_version', - 'outcome', - 'relation', - 'target_memory_version_id', - 'candidate_evidence_refs', - 'comparisons', - 'applicability', - 'temporal_order', - 'reason_code', - 'reason', - } - assert payload['schema_version'] == 1 - assert payload['outcome'] in { - 'publish_new', - 'merge_evidence', - 'revise_memory', - 'supersede_memory', - 'reject_candidate', - 'open_conflict', - } - assert payload['candidate_evidence_refs'] == envelope['candidate']['evidence_refs'] - assert [item['memory_version_id'] for item in payload['comparisons']] == [ - item['memory_version_id'] for item in envelope['comparisons'] - ] - assert [item['target_evidence_refs'] for item in payload['comparisons']] == [ - item['evidence_refs'] for item in envelope['comparisons'] - ] + assert set(payload) == {'schema_version', 'comparisons', 'reason'} + assert payload['schema_version'] == 2 + assert [item['index'] for item in payload['comparisons']] == [item['index'] for item in envelope['comparisons']] + assert {item['relation'] for item in payload['comparisons']} == {'unrelated'} + assert {item['applicability'] for item in payload['comparisons']} == {'different'} assert ProviderCallRecord.objects.filter(request_id='curation-decision-fake-1').count() == 2 diff --git a/apps/backend/engram/model_policy/openai_request_shape.py b/apps/backend/engram/model_policy/openai_request_shape.py index f96155334f..803720b155 100644 --- a/apps/backend/engram/model_policy/openai_request_shape.py +++ b/apps/backend/engram/model_policy/openai_request_shape.py @@ -15,7 +15,7 @@ # medium 832). Raising it is a per-policy metadata edit. REASONING_EFFORT_BY_RESPONSE_KIND: dict[str, str] = { 'candidates': 'minimal', - 'curation_decision_v1': 'minimal', + 'curation_decision_v2': 'minimal', 'curation_judgment': 'minimal', 'distill_extract.v1': 'minimal', 'distill_reduce.v2': 'minimal', diff --git a/apps/backend/engram/model_policy/openai_request_shape_tests.py b/apps/backend/engram/model_policy/openai_request_shape_tests.py index 3a94e255c6..888bc4c49a 100644 --- a/apps/backend/engram/model_policy/openai_request_shape_tests.py +++ b/apps/backend/engram/model_policy/openai_request_shape_tests.py @@ -76,7 +76,7 @@ def test_gpt5_metadata_matches_the_proven_wire_shape() -> None: def test_reasoning_effort_covers_every_production_response_kind() -> None: expected_kinds = { 'candidates', - 'curation_decision_v1', + 'curation_decision_v2', 'curation_judgment', 'distill_extract.v1', 'distill_reduce.v2', diff --git a/apps/backend/engram/model_policy/real_provider_tests.py b/apps/backend/engram/model_policy/real_provider_tests.py index 4e5a1c9100..82636d6614 100644 --- a/apps/backend/engram/model_policy/real_provider_tests.py +++ b/apps/backend/engram/model_policy/real_provider_tests.py @@ -1041,7 +1041,7 @@ def test_openai_gateway_disables_thinking_but_omits_json_mode_for_deepseek_candi def test_deepseek_thinking_override_enables_for_curation_decision() -> None: - assert deepseek_thinking_override('deepseek', 'curation', 'curation_decision_v1') == { + assert deepseek_thinking_override('deepseek', 'curation', 'curation_decision_v2') == { 'thinking': {'type': 'enabled'}, } @@ -1052,7 +1052,7 @@ def test_deepseek_thinking_override_disables_for_other_deepseek_curation_kinds() def test_deepseek_thinking_override_empty_for_other_providers_and_tasks() -> None: - assert deepseek_thinking_override('openai', 'curation', 'curation_decision_v1') == {} + assert deepseek_thinking_override('openai', 'curation', 'curation_decision_v2') == {} assert deepseek_thinking_override('deepseek', 'generation', 'candidates') == {} @@ -1084,7 +1084,7 @@ def test_openai_gateway_enables_thinking_for_deepseek_curation_decision_only() - request_id='ds-decision-1', trace_id='ds-decision-1', prompt='prompt text', - response_kind='curation_decision_v1', + response_kind='curation_decision_v2', ), ) candidates_gateway.call( @@ -2091,7 +2091,7 @@ def test_openai_gateway_call_success_creates_single_recorded_record_no_error_rec @pytest.mark.django_db -def test_openai_gateway_curation_decision_v1_uses_json_mode_and_fixed_budget() -> None: +def test_openai_gateway_curation_decision_v2_uses_json_mode_and_fixed_budget() -> None: organization, _team, project, _owner, _api_key = create_project_scope() policy = make_real_policy(organization, project, task_type='curation') body = { @@ -2128,7 +2128,7 @@ def test_openai_gateway_curation_decision_v1_uses_json_mode_and_fixed_budget() - request_id='curation-decision-openai-1', trace_id='curation-decision-openai-1', prompt='bounded judge envelope', - response_kind='curation_decision_v1', + response_kind='curation_decision_v2', ), ) @@ -2139,7 +2139,7 @@ def test_openai_gateway_curation_decision_v1_uses_json_mode_and_fixed_budget() - @pytest.mark.django_db -def test_anthropic_gateway_curation_decision_v1_forces_closed_dedicated_tool() -> None: +def test_anthropic_gateway_curation_decision_v2_forces_closed_dedicated_tool() -> None: organization, _team, project, _owner, _api_key = create_project_scope() policy = make_real_policy( organization, @@ -2180,7 +2180,7 @@ def test_anthropic_gateway_curation_decision_v1_forces_closed_dedicated_tool() - request_id='curation-decision-anthropic-1', trace_id='curation-decision-anthropic-1', prompt='bounded judge envelope', - response_kind='curation_decision_v1', + response_kind='curation_decision_v2', ), ) @@ -2189,28 +2189,12 @@ def test_anthropic_gateway_curation_decision_v1_forces_closed_dedicated_tool() - assert sent_body['max_tokens'] == 16384 assert sent_body['tool_choice'] == {'type': 'tool', 'name': 'emit_curation_decision'} schema = tool['input_schema'] - expected_keys = { - 'schema_version', - 'outcome', - 'relation', - 'target_memory_version_id', - 'candidate_evidence_refs', - 'comparisons', - 'applicability', - 'temporal_order', - 'reason_code', - 'reason', - } + expected_keys = {'schema_version', 'comparisons', 'reason'} assert schema['additionalProperties'] is False assert set(schema['required']) == expected_keys - assert schema['properties']['candidate_evidence_refs']['maxItems'] == 16 assert schema['properties']['comparisons']['maxItems'] == 12 comparison_schema = schema['properties']['comparisons']['items'] assert comparison_schema['additionalProperties'] is False - assert set(comparison_schema['required']) == { - 'memory_version_id', - 'relation', - 'target_evidence_refs', - } - assert comparison_schema['properties']['target_evidence_refs']['maxItems'] == 16 + assert set(comparison_schema['required']) == {'index', 'relation', 'applicability'} + assert comparison_schema['properties']['index']['minimum'] == 1 assert json.loads(result.generated_body) == response['content'][0]['input'] diff --git a/apps/backend/engram/model_policy/services.py b/apps/backend/engram/model_policy/services.py index 93ab833092..43b64dc933 100644 --- a/apps/backend/engram/model_policy/services.py +++ b/apps/backend/engram/model_policy/services.py @@ -1174,35 +1174,17 @@ def generated_curation_decision_payload(prompt: str) -> str: envelope = json.loads(prompt) except (json.JSONDecodeError, TypeError): envelope = {} - candidate = envelope.get('candidate') if isinstance(envelope, dict) else {} - candidate_refs = candidate.get('evidence_refs') if isinstance(candidate, dict) else [] - if not isinstance(candidate_refs, list): - candidate_refs = [] raw_comparisons = envelope.get('comparisons') if isinstance(envelope, dict) else [] - comparisons = [] - for item in raw_comparisons if isinstance(raw_comparisons, list) else []: - if not isinstance(item, dict): - continue - target_refs = item.get('evidence_refs') - comparisons.append( - { - 'memory_version_id': item.get('memory_version_id'), - 'relation': 'unrelated', - 'target_evidence_refs': target_refs if isinstance(target_refs, list) else [], - } - ) + comparisons = [ + {'index': item.get('index'), 'relation': 'unrelated', 'applicability': 'different'} + for item in (raw_comparisons if isinstance(raw_comparisons, list) else []) + if isinstance(item, dict) + ] return json.dumps( { - 'schema_version': 1, - 'outcome': 'publish_new', - 'relation': 'unrelated', - 'target_memory_version_id': None, - 'candidate_evidence_refs': candidate_refs, + 'schema_version': 2, 'comparisons': comparisons, - 'applicability': 'same', - 'temporal_order': 'not_applicable', - 'reason_code': 'distinct_claim', 'reason': 'fake provider curation decision', } ) @@ -1218,7 +1200,7 @@ def fake_generated_content(data: ProviderCallInput, prompt: str) -> tuple[str, s return title, generated_distill_extract_payload(prompt) if data.response_kind == 'distill_reduce.v2': return title, generated_distill_reduce_payload(prompt) - if data.response_kind == 'curation_decision_v1': + if data.response_kind == 'curation_decision_v2': return title, generated_curation_decision_payload(prompt) return title, body @@ -1239,7 +1221,7 @@ def default_base_url(provider: str) -> str: def deepseek_thinking_override(provider: str, task_type: str, response_kind: str) -> dict[str, object]: - if provider == 'deepseek' and response_kind == 'curation_decision_v1': + if provider == 'deepseek' and response_kind == 'curation_decision_v2': return {'thinking': {'type': 'enabled'}} if provider == 'deepseek' and task_type in ('curation', 'digest'): @@ -1249,7 +1231,7 @@ def deepseek_thinking_override(provider: str, task_type: str, response_kind: str _STRUCTURED_RESPONSE_KINDS = frozenset( - {'candidates', 'curation_judgment', 'distill_extract.v1', 'distill_reduce.v2', 'curation_decision_v1'} + {'candidates', 'curation_judgment', 'distill_extract.v1', 'distill_reduce.v2', 'curation_decision_v2'} ) _JSON_OBJECT_DEFAULT_BY_PROVIDER = {'openai': True, 'deepseek': False} @@ -1276,17 +1258,9 @@ def openai_json_mode_override(response_kind: str, policy: ModelPolicy) -> dict[s 'curation_judgment': 1024, 'distill_extract.v1': 8192, 'distill_reduce.v2': 8192, - 'curation_decision_v1': 16384, + 'curation_decision_v2': 16384, } -_FIXED_MAX_TOKEN_KINDS = frozenset({'distill_extract.v1', 'distill_reduce.v2', 'curation_decision_v1'}) -_CURATION_DECISION_OUTCOMES = ( - 'publish_new', - 'merge_evidence', - 'revise_memory', - 'supersede_memory', - 'reject_candidate', - 'open_conflict', -) +_FIXED_MAX_TOKEN_KINDS = frozenset({'distill_extract.v1', 'distill_reduce.v2', 'curation_decision_v2'}) _CURATION_DECISION_RELATIONS = ( 'unrelated', 'compatible_distinct', @@ -1297,70 +1271,26 @@ def openai_json_mode_override(response_kind: str, policy: ModelPolicy) -> dict[s 'unsupported', 'mutually_incompatible', ) -_CURATION_DECISION_REASON_CODES = ( - 'distinct_claim', - 'equivalent_claim', - 'same_subject_revision', - 'ordered_replacement', - 'redundant_claim', - 'unsupported_claim', - 'same_scope_contradiction', -) -_CURATION_DECISION_TEMPORAL_ORDERS = ('candidate_newer', 'target_newer', 'unordered', 'not_applicable') _CURATION_DECISION_SCHEMA_INSTRUCTIONS = ( 'Return exactly one JSON object and nothing else: no prose, no markdown code fences. ' 'The object must contain exactly these keys and no additional properties (recursively): ' - 'schema_version (integer, always 1); ' - f'outcome (one of: {", ".join(_CURATION_DECISION_OUTCOMES)}); ' - f'relation (one of: {", ".join(_CURATION_DECISION_RELATIONS)}); ' - 'target_memory_version_id (a shortlist memory_version_id string, or null); ' - 'candidate_evidence_refs (array of provided evidence reference tokens, unique, at most 16); ' - 'comparisons (array with exactly one object per shortlist entry, in the given order; each object has ' - 'memory_version_id, relation, and target_evidence_refs); ' - 'applicability (one of: same, different); ' - f'temporal_order (one of: {", ".join(_CURATION_DECISION_TEMPORAL_ORDERS)}); ' - f'reason_code (one of: {", ".join(_CURATION_DECISION_REASON_CODES)}); ' + 'schema_version (integer, always 2); ' + 'comparisons (array with exactly one object per input comparisons entry); ' 'reason (a short redacted explanation, at most 500 characters). ' - 'Only reference memory_version_id values and evidence tokens present in the input. ' - 'A non-null target_memory_version_id must be one of the shortlist entries, and its comparison relation ' - 'must equal the top-level relation.' - ' Allowed outcome and relation combinations (any other combination is invalid): ' - 'publish_new with relation unrelated or compatible_distinct, target_memory_version_id null, ' - 'candidate evidence tier supported or corroborated and comparison_complete true; ' - 'merge_evidence with relation equivalent, a non-null target and both candidate and target evidence tiers ' - 'supported or corroborated; ' - 'revise_memory with relation candidate_revises, a non-null target, candidate evidence tier corroborated, ' - 'target evidence tier supported or corroborated and temporal_order candidate_newer used only when the ' - 'candidate evidence is clearly newer, which the system verifies; ' - 'supersede_memory with relation candidate_supersedes, a non-null target, candidate evidence tier ' - 'corroborated, target evidence tier supported or corroborated, temporal_order candidate_newer used only ' - 'when the candidate evidence is clearly newer, which the system verifies, and comparison_complete true; ' - 'reject_candidate with relation redundant, a non-null target and target evidence tier supported or ' - 'corroborated; ' - 'reject_candidate with relation unsupported, target null and the candidate having no supporting evidence, ' - 'evidence tier none; ' - 'open_conflict with relation mutually_incompatible, a non-null target, temporal_order unordered, both ' - 'candidate and target evidence tiers supported or corroborated, non-empty evidence refs on both sides, ' - 'comparison_complete true and applicability same. ' - 'The top-level relation describes the selected target; with a null target use unrelated, ' - 'compatible_distinct or unsupported. ' - 'merge_evidence, revise_memory and supersede_memory additionally require applicability same. ' - 'When comparison_complete is true, every shortlist comparison is unrelated or compatible_distinct and the ' - 'candidate evidence tier is supported or corroborated, choose publish_new with target null. ' - 'Cross-visibility rule: the shortlist may include targets at a wider visibility than the candidate ' - '(for a team candidate, project-global targets have a different team_id). Never select such a ' - 'cross-visibility target as target_memory_version_id for merge_evidence, revise_memory, ' - 'supersede_memory, or open_conflict. When any target at any visibility is redundant with the candidate, ' - 'choose outcome=reject_candidate, relation=redundant against that target instead of publishing a duplicate. ' - 'When a same-visibility target (same team_id as the candidate) carries a mutating identity relation ' - '(equivalent, candidate_revises, candidate_supersedes, mutually_incompatible), act on that ' - 'same-visibility target with its normal targeted outcome. ' - 'Only when no target is redundant and no same-visibility target carries a mutating identity relation, ' - 'fall back to outcome=publish_new, relation=compatible_distinct, reason_code=distinct_claim, ' - 'target_memory_version_id=null, and report the honest per-target relation (including ' - 'mutually_incompatible against a cross-visibility target) only inside the comparisons array. ' - 'When no combination satisfies its requirements, choose the reject_candidate form that matches the ' - 'candidate evidence.' + 'Each comparisons entry must contain exactly these keys and no additional properties: ' + 'index (the integer index of the input comparison it answers; use every input index exactly once, ' + 'order does not matter); ' + f'relation (one of: {", ".join(_CURATION_DECISION_RELATIONS)}); ' + 'applicability (same when that entry and the candidate constrain the same subject in the same situation, ' + 'otherwise different). ' + 'Relation meanings, always read as the candidate relative to that one entry: unrelated when the claims ' + 'share no subject; compatible_distinct when they share a subject but state different facts that can both ' + 'hold; equivalent when they state the same fact; candidate_revises when the candidate restates the same ' + 'subject with an updated detail; candidate_supersedes when the candidate replaces the entry outright; ' + 'redundant when the entry already carries everything the candidate says; mutually_incompatible when both ' + 'cannot be true at once; unsupported when the candidate carries no durable claim at all. ' + 'Do not choose an outcome and do not rank the entries: the system derives the outcome from these ' + 'relations and from facts you cannot see.' ) @@ -1397,7 +1327,7 @@ def openai_json_mode_override(response_kind: str, policy: ModelPolicy) -> dict[s def curation_schema_prompt_prefix(response_kind: str) -> str: - if response_kind == 'curation_decision_v1': + if response_kind == 'curation_decision_v2': return _CURATION_DECISION_SCHEMA_INSTRUCTIONS if response_kind == 'distill_extract.v1': @@ -1524,23 +1454,14 @@ def curation_schema_prompt_prefix(response_kind: str) -> str: 'additionalProperties': False, }, }, - 'curation_decision_v1': { + 'curation_decision_v2': { 'name': 'emit_curation_decision', - 'description': 'Return the strict curation decision verdict.', + 'description': 'Return the strict curation comparison relations.', 'input_schema': { 'type': 'object', 'additionalProperties': False, 'properties': { - 'schema_version': {'type': 'integer', 'enum': [1]}, - 'outcome': {'type': 'string', 'enum': list(_CURATION_DECISION_OUTCOMES)}, - 'relation': {'type': 'string', 'enum': list(_CURATION_DECISION_RELATIONS)}, - 'target_memory_version_id': {'type': ['string', 'null']}, - 'candidate_evidence_refs': { - 'type': 'array', - 'items': {'type': 'string'}, - 'maxItems': 16, - 'uniqueItems': True, - }, + 'schema_version': {'type': 'integer', 'enum': [2]}, 'comparisons': { 'type': 'array', 'maxItems': 12, @@ -1548,33 +1469,18 @@ def curation_schema_prompt_prefix(response_kind: str) -> str: 'type': 'object', 'additionalProperties': False, 'properties': { - 'memory_version_id': {'type': 'string'}, + 'index': {'type': 'integer', 'minimum': 1}, 'relation': {'type': 'string', 'enum': list(_CURATION_DECISION_RELATIONS)}, - 'target_evidence_refs': { - 'type': 'array', - 'items': {'type': 'string'}, - 'maxItems': 16, - 'uniqueItems': True, - }, + 'applicability': {'type': 'string', 'enum': ['same', 'different']}, }, - 'required': ['memory_version_id', 'relation', 'target_evidence_refs'], + 'required': ['index', 'relation', 'applicability'], }, }, - 'applicability': {'type': 'string', 'enum': ['same', 'different']}, - 'temporal_order': {'type': 'string', 'enum': list(_CURATION_DECISION_TEMPORAL_ORDERS)}, - 'reason_code': {'type': 'string', 'enum': list(_CURATION_DECISION_REASON_CODES)}, 'reason': {'type': 'string', 'maxLength': 500}, }, 'required': [ 'schema_version', - 'outcome', - 'relation', - 'target_memory_version_id', - 'candidate_evidence_refs', 'comparisons', - 'applicability', - 'temporal_order', - 'reason_code', 'reason', ], }, diff --git a/apps/backend/engram/model_policy/services_tests.py b/apps/backend/engram/model_policy/services_tests.py index bbed17a661..eca61db6b0 100644 --- a/apps/backend/engram/model_policy/services_tests.py +++ b/apps/backend/engram/model_policy/services_tests.py @@ -400,8 +400,8 @@ def test_openai_curation_decision_prompt_carries_verdict_schema_instructions() - policy=policy, request_id='curation-schema-1', trace_id='curation-schema-1', - prompt='{"schema":"curation_judge_input.v1"}', - response_kind='curation_decision_v1', + prompt='{"schema":"curation_judge_input.v2"}', + response_kind='curation_decision_v2', ), ) @@ -409,10 +409,10 @@ def test_openai_curation_decision_prompt_carries_verdict_schema_instructions() - user_message = sent['messages'][-1]['content'] assert 'exactly one JSON object' in user_message - assert 'candidate_evidence_refs' in user_message - assert 'supersede_memory' in user_message - assert 'temporal_order' in user_message - assert user_message.rstrip().endswith('{"schema":"curation_judge_input.v1"}') + assert 'index (the integer index of the input comparison' in user_message + assert 'applicability' in user_message + assert 'the system derives the outcome' in user_message + assert user_message.rstrip().endswith('{"schema":"curation_judge_input.v2"}') @pytest.mark.django_db @@ -514,134 +514,54 @@ def test_distill_reduce_schema_prefix_states_parser_enforced_rules() -> None: assert curation_schema_prompt_prefix('distill_reduce.v1') == '' -def test_curation_decision_prefix_lists_every_mutating_identity_relation() -> None: - from engram.memory.curation_derivation import _IDENTITY_RELATIONS +def test_curation_decision_prefix_documents_every_relation_the_parser_accepts() -> None: + from engram.memory.curation_judge import _RELATIONS - instructions = curation_schema_prompt_prefix('curation_decision_v1') - marker = 'carries a mutating identity relation (' - start = instructions.index(marker) + len(marker) - end = instructions.index(')', start) - listed = {relation.strip() for relation in instructions[start:end].split(',')} + instructions = curation_schema_prompt_prefix('curation_decision_v2') + enumeration = instructions.split('relation (one of: ', 1)[1].split(')', 1)[0] + listed = {relation.strip() for relation in enumeration.split(',')} - assert listed == set(_IDENTITY_RELATIONS) - {'redundant'} + assert listed == set(_RELATIONS) + for relation in _RELATIONS: + assert f'{relation} when' in instructions -def test_curation_decision_prefix_routes_cross_visibility_redundant_to_rejection() -> None: - instructions = curation_schema_prompt_prefix('curation_decision_v1') +def test_curation_decision_prefix_never_names_an_outcome() -> None: + instructions = curation_schema_prompt_prefix('curation_decision_v2') - assert 'redundant with the candidate, choose outcome=reject_candidate' in instructions - condition, separator, fallback = instructions.partition('fall back to') - assert separator == 'fall back to' - assert 'no target is redundant' in condition - assert 'redundant' not in fallback.split('comparisons array', 1)[0] + for outcome, _relation in _ALLOWED_COMBINATIONS: + assert outcome not in instructions -def test_curation_decision_schema_prefix_states_allowed_combination_table() -> None: - instructions = curation_schema_prompt_prefix('curation_decision_v1') +def test_curation_decision_schema_prefix_is_the_frozen_v2_contract() -> None: + instructions = curation_schema_prompt_prefix('curation_decision_v2') assert instructions == ( 'Return exactly one JSON object and nothing else: no prose, no markdown code fences. ' 'The object must contain exactly these keys and no additional properties (recursively): ' - 'schema_version (integer, always 1); ' - 'outcome (one of: publish_new, merge_evidence, revise_memory, supersede_memory, reject_candidate, ' - 'open_conflict); ' + 'schema_version (integer, always 2); ' + 'comparisons (array with exactly one object per input comparisons entry); ' + 'reason (a short redacted explanation, at most 500 characters). ' + 'Each comparisons entry must contain exactly these keys and no additional properties: ' + 'index (the integer index of the input comparison it answers; use every input index exactly once, ' + 'order does not matter); ' 'relation (one of: unrelated, compatible_distinct, equivalent, candidate_revises, candidate_supersedes, ' 'redundant, unsupported, mutually_incompatible); ' - 'target_memory_version_id (a shortlist memory_version_id string, or null); ' - 'candidate_evidence_refs (array of provided evidence reference tokens, unique, at most 16); ' - 'comparisons (array with exactly one object per shortlist entry, in the given order; each object has ' - 'memory_version_id, relation, and target_evidence_refs); ' - 'applicability (one of: same, different); ' - 'temporal_order (one of: candidate_newer, target_newer, unordered, not_applicable); ' - 'reason_code (one of: distinct_claim, equivalent_claim, same_subject_revision, ordered_replacement, ' - 'redundant_claim, unsupported_claim, same_scope_contradiction); ' - 'reason (a short redacted explanation, at most 500 characters). ' - 'Only reference memory_version_id values and evidence tokens present in the input. ' - 'A non-null target_memory_version_id must be one of the shortlist entries, and its comparison relation ' - 'must equal the top-level relation.' - ' Allowed outcome and relation combinations (any other combination is invalid): ' - 'publish_new with relation unrelated or compatible_distinct, target_memory_version_id null, ' - 'candidate evidence tier supported or corroborated and comparison_complete true; ' - 'merge_evidence with relation equivalent, a non-null target and both candidate and target evidence tiers ' - 'supported or corroborated; ' - 'revise_memory with relation candidate_revises, a non-null target, candidate evidence tier corroborated, ' - 'target evidence tier supported or corroborated and temporal_order candidate_newer used only when the ' - 'candidate evidence is clearly newer, which the system verifies; ' - 'supersede_memory with relation candidate_supersedes, a non-null target, candidate evidence tier ' - 'corroborated, target evidence tier supported or corroborated, temporal_order candidate_newer used only ' - 'when the candidate evidence is clearly newer, which the system verifies, and comparison_complete true; ' - 'reject_candidate with relation redundant, a non-null target and target evidence tier supported or ' - 'corroborated; ' - 'reject_candidate with relation unsupported, target null and the candidate having no supporting evidence, ' - 'evidence tier none; ' - 'open_conflict with relation mutually_incompatible, a non-null target, temporal_order unordered, both ' - 'candidate and target evidence tiers supported or corroborated, non-empty evidence refs on both sides, ' - 'comparison_complete true and applicability same. ' - 'The top-level relation describes the selected target; with a null target use unrelated, ' - 'compatible_distinct or unsupported. ' - 'merge_evidence, revise_memory and supersede_memory additionally require applicability same. ' - 'When comparison_complete is true, every shortlist comparison is unrelated or compatible_distinct and the ' - 'candidate evidence tier is supported or corroborated, choose publish_new with target null. ' - 'Cross-visibility rule: the shortlist may include targets at a wider visibility than the candidate ' - '(for a team candidate, project-global targets have a different team_id). Never select such a ' - 'cross-visibility target as target_memory_version_id for merge_evidence, revise_memory, ' - 'supersede_memory, or open_conflict. When any target at any visibility is redundant with the candidate, ' - 'choose outcome=reject_candidate, relation=redundant against that target instead of publishing a duplicate. ' - 'When a same-visibility target (same team_id as the candidate) carries a mutating identity relation ' - '(equivalent, candidate_revises, candidate_supersedes, mutually_incompatible), act on that ' - 'same-visibility target with its normal targeted outcome. ' - 'Only when no target is redundant and no same-visibility target carries a mutating identity relation, ' - 'fall back to outcome=publish_new, relation=compatible_distinct, reason_code=distinct_claim, ' - 'target_memory_version_id=null, and report the honest per-target relation (including ' - 'mutually_incompatible against a cross-visibility target) only inside the comparisons array. ' - 'When no combination satisfies its requirements, choose the reject_candidate form that matches the ' - 'candidate evidence.' + 'applicability (same when that entry and the candidate constrain the same subject in the same situation, ' + 'otherwise different). ' + 'Relation meanings, always read as the candidate relative to that one entry: unrelated when the claims ' + 'share no subject; compatible_distinct when they share a subject but state different facts that can both ' + 'hold; equivalent when they state the same fact; candidate_revises when the candidate restates the same ' + 'subject with an updated detail; candidate_supersedes when the candidate replaces the entry outright; ' + 'redundant when the entry already carries everything the candidate says; mutually_incompatible when both ' + 'cannot be true at once; unsupported when the candidate carries no durable claim at all. ' + 'Do not choose an outcome and do not rank the entries: the system derives the outcome from these ' + 'relations and from facts you cannot see.' ) def test_resolve_max_tokens_curation_decision_uses_reasoning_budget() -> None: - assert resolve_max_tokens(ModelPolicy(), 'curation_decision_v1') == 16384 - - -def test_curation_decision_instructions_align_with_allowed_combinations() -> None: - instructions = curation_schema_prompt_prefix('curation_decision_v1') - marker = 'combinations (any other combination is invalid): ' - - assert marker in instructions - - enumeration = instructions.split(marker, 1)[1].split('. The top-level relation describes', 1)[0] - clauses = [clause.strip() for clause in enumeration.split(';')] - gate_tokens = { - ('publish_new', 'unrelated'): ('supported or corroborated', 'comparison_complete true'), - ('publish_new', 'compatible_distinct'): ('supported or corroborated', 'comparison_complete true'), - ('merge_evidence', 'equivalent'): ('candidate and target evidence tiers supported or corroborated',), - ('revise_memory', 'candidate_revises'): ( - 'candidate evidence tier corroborated', - 'target evidence tier supported or corroborated', - 'candidate_newer', - ), - ('supersede_memory', 'candidate_supersedes'): ( - 'candidate evidence tier corroborated', - 'target evidence tier supported or corroborated', - 'comparison_complete true', - ), - ('reject_candidate', 'redundant'): ('target evidence tier supported or corroborated',), - ('reject_candidate', 'unsupported'): ('no supporting evidence', 'evidence tier none'), - ('open_conflict', 'mutually_incompatible'): ( - 'supported or corroborated', - 'evidence refs on both sides', - 'comparison_complete true', - 'applicability same', - ), - } - for outcome, relation in _ALLOWED_COMBINATIONS: - matches = [clause for clause in clauses if outcome in clause and relation in clause] - - assert matches, (outcome, relation) - - clause = matches[0] - for token in gate_tokens[(outcome, relation)]: - assert token in clause, (outcome, relation, token) + assert resolve_max_tokens(ModelPolicy(), 'curation_decision_v2') == 16384 @pytest.mark.django_db @@ -1059,7 +979,7 @@ def test_resolve_max_tokens_reduce_override_is_scoped() -> None: assert resolve_max_tokens(policy, 'distill_reduce.v2') == 5000 assert resolve_max_tokens(ModelPolicy(provider='deepseek', metadata={}), 'distill_reduce.v2') == 8192 assert resolve_max_tokens(policy, 'distill_extract.v1') == 8192 - assert resolve_max_tokens(policy, 'curation_decision_v1') == 16384 + assert resolve_max_tokens(policy, 'curation_decision_v2') == 16384 def test_provider_completion_clamp_defaults_and_override() -> None: @@ -1212,7 +1132,7 @@ def _call_with_kind( def test_resolve_model_without_override_returns_policy_model() -> None: policy = ModelPolicy(model='deepseek-v4-pro', metadata=_OVERRIDE_METADATA) - assert services.resolve_model(policy, 'curation_decision_v1') == 'deepseek-v4-pro' + assert services.resolve_model(policy, 'curation_decision_v2') == 'deepseek-v4-pro' def test_resolve_model_applies_response_kind_override() -> None: @@ -1343,7 +1263,7 @@ def test_resolve_reasoning_effort_is_scoped_to_response_kind() -> None: unshaped_policy = ModelPolicy(provider='deepseek', metadata={}) assert services.resolve_reasoning_effort(policy, 'distill_extract.v1', completion_cap=8192) == 'minimal' - assert services.resolve_reasoning_effort(policy, 'curation_decision_v1', completion_cap=16384) == '' + assert services.resolve_reasoning_effort(policy, 'curation_decision_v2', completion_cap=16384) == '' assert services.resolve_reasoning_effort(unshaped_policy, 'distill_extract.v1', completion_cap=8192) == '' @@ -1388,11 +1308,11 @@ def test_request_shape_sends_reasoning_effort_only_for_configured_kind() -> None organization, _team, project, _owner, _api_key = create_project_scope() policy = make_real_policy(organization, project, metadata=_GPT5_REQUEST_SHAPE) - _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v1') + _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v2') sent = json.loads(opener.requests[0].data.decode()) assert 'reasoning_effort' not in sent - assert sent['max_completion_tokens'] == effective_completion_cap(policy, 'curation_decision_v1') + assert sent['max_completion_tokens'] == effective_completion_cap(policy, 'curation_decision_v2') # --------------------------------------------------------------------------- @@ -1439,7 +1359,7 @@ def test_request_shape_is_resolvable_per_response_kind() -> None: model='gpt-4o-mini', metadata={ 'model_overrides': { - 'curation_decision_v1': { + 'curation_decision_v2': { 'model': 'gpt-5-nano', 'request_shape': { 'completion_tokens_param': 'max_completion_tokens', @@ -1451,9 +1371,9 @@ def test_request_shape_is_resolvable_per_response_kind() -> None: }, ) - assert services.resolve_completion_tokens_param(policy, 'curation_decision_v1') == 'max_completion_tokens' - assert services.resolve_temperature(policy, 'curation_decision_v1') is None - assert services.resolve_reasoning_effort(policy, 'curation_decision_v1', completion_cap=16384) == 'medium' + assert services.resolve_completion_tokens_param(policy, 'curation_decision_v2') == 'max_completion_tokens' + assert services.resolve_temperature(policy, 'curation_decision_v2') is None + assert services.resolve_reasoning_effort(policy, 'curation_decision_v2', completion_cap=16384) == 'medium' assert services.resolve_completion_tokens_param(policy, 'candidates') == 'max_tokens' assert services.resolve_temperature(policy, 'candidates') == 0.2 assert services.resolve_reasoning_effort(policy, 'candidates', completion_cap=8192) == '' @@ -1467,7 +1387,7 @@ def test_mixed_model_policy_shapes_each_kind_for_its_own_model() -> None: project, metadata={ 'model_overrides': { - 'curation_decision_v1': { + 'curation_decision_v2': { 'model': 'gpt-5-nano', 'request_shape': { 'completion_tokens_param': 'max_completion_tokens', @@ -1481,13 +1401,13 @@ def test_mixed_model_policy_shapes_each_kind_for_its_own_model() -> None: policy.model = 'gpt-4o-mini' policy.save(update_fields=['model']) - _reasoning, reasoning_opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v1') + _reasoning, reasoning_opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v2') _classic, classic_opener = _call_with_kind(policy, _openai_chat_body('Title\nBody'), 'single') reasoning_sent = json.loads(reasoning_opener.requests[0].data.decode()) classic_sent = json.loads(classic_opener.requests[0].data.decode()) assert reasoning_sent['model'] == 'gpt-5-nano' - assert reasoning_sent['max_completion_tokens'] == effective_completion_cap(policy, 'curation_decision_v1') + assert reasoning_sent['max_completion_tokens'] == effective_completion_cap(policy, 'curation_decision_v2') assert 'max_tokens' not in reasoning_sent assert 'temperature' not in reasoning_sent assert reasoning_sent['reasoning_effort'] == 'medium' @@ -1565,7 +1485,7 @@ def test_gateway_requests_the_configured_tier_and_widens_the_socket(monkeypatch: organization, _team, project, _owner, _api_key = create_project_scope() policy = make_real_policy(organization, project, metadata=_FLEX_SERVICE_TIER_METADATA) - _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v1', attempt=0) + _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v2', attempt=0) assert json.loads(opener.requests[0].data.decode())['service_tier'] == 'flex' assert opener.timeouts == [600] @@ -1577,7 +1497,7 @@ def test_gateway_drops_the_queued_tier_once_the_attempt_budget_is_spent(monkeypa organization, _team, project, _owner, _api_key = create_project_scope() policy = make_real_policy(organization, project, metadata=_FLEX_SERVICE_TIER_METADATA) - _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v1', attempt=2) + _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v2', attempt=2) assert 'service_tier' not in json.loads(opener.requests[0].data.decode()) assert opener.timeouts == [60] @@ -1589,7 +1509,7 @@ def test_gateway_without_tier_metadata_keeps_the_standard_socket(monkeypatch: py organization, _team, project, _owner, _api_key = create_project_scope() policy = make_real_policy(organization, project) - _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v1', attempt=0) + _record, opener = _call_with_kind(policy, _openai_chat_body('{}'), 'curation_decision_v2', attempt=0) assert 'service_tier' not in json.loads(opener.requests[0].data.decode()) assert opener.timeouts == [60] diff --git a/scripts/mock_anthropic_server.py b/scripts/mock_anthropic_server.py index b1c34fcb55..fbc0170407 100644 --- a/scripts/mock_anthropic_server.py +++ b/scripts/mock_anthropic_server.py @@ -42,35 +42,23 @@ def curation_decision_content(prompt: str) -> str: envelope = {} if not isinstance(envelope, dict): envelope = {} - candidate = envelope.get('candidate') - candidate_refs = candidate.get('evidence_refs') if isinstance(candidate, dict) else [] - if not isinstance(candidate_refs, list): - candidate_refs = [] raw_comparisons = envelope.get('comparisons') comparisons = [] for item in raw_comparisons if isinstance(raw_comparisons, list) else []: if not isinstance(item, dict): continue - target_refs = item.get('evidence_refs') comparisons.append( { - 'memory_version_id': item.get('memory_version_id'), + 'index': item.get('index'), 'relation': 'unrelated', - 'target_evidence_refs': target_refs if isinstance(target_refs, list) else [], + 'applicability': 'different', }, ) return json.dumps( { - 'schema_version': 1, - 'outcome': 'publish_new', - 'relation': 'unrelated', - 'target_memory_version_id': None, - 'candidate_evidence_refs': candidate_refs, + 'schema_version': 2, 'comparisons': comparisons, - 'applicability': 'same', - 'temporal_order': 'not_applicable', - 'reason_code': 'distinct_claim', 'reason': 'mock provider curation decision', }, ) @@ -78,7 +66,7 @@ def curation_decision_content(prompt: str) -> str: def generation_content(system_prompt: str, prompt: str) -> str: digest_suffix = hashlib.sha256(prompt.encode()).hexdigest()[:10] - if 'curation_judge_input.v1' in prompt: + if 'curation_judge_input.v2' in prompt: return curation_decision_content(prompt) if 'distill_extract.v1' in system_prompt: observation_ids = list(dict.fromkeys(_OBSERVATION_ID.findall(prompt))) diff --git a/scripts/mock_anthropic_server_tests.py b/scripts/mock_anthropic_server_tests.py index 06c9187808..19612f874a 100644 --- a/scripts/mock_anthropic_server_tests.py +++ b/scripts/mock_anthropic_server_tests.py @@ -53,12 +53,11 @@ def test_generation_content_emits_exact_distill_reduce_v2_source_refs() -> None: assert all(isinstance(source_ref, int) for source_ref in memory['source_refs']) -def test_generation_content_emits_curation_decision_v1_for_empty_shortlist() -> None: - candidate_ref = 'a' * 32 - schema_prefix = 'Return exactly one JSON object and nothing else following curation_decision_v1.' +def test_generation_content_emits_curation_decision_v2_for_empty_shortlist() -> None: + schema_prefix = 'Return exactly one JSON object and nothing else following curation_decision_v2.' envelope = { - 'schema': 'curation_judge_input.v1', - 'candidate': {'evidence_refs': [candidate_ref]}, + 'schema': 'curation_judge_input.v2', + 'candidate': {'evidence_tier': 'supported'}, 'comparisons': [], } prompt = f'{schema_prefix}\n\n{json.dumps(envelope, sort_keys=True, separators=(",", ":"))}' @@ -67,46 +66,22 @@ def test_generation_content_emits_curation_decision_v1_for_empty_shortlist() -> assert raw == curation_decision_content(prompt) payload = json.loads(raw) - assert set(payload) == { - 'schema_version', - 'outcome', - 'relation', - 'target_memory_version_id', - 'candidate_evidence_refs', - 'comparisons', - 'applicability', - 'temporal_order', - 'reason_code', - 'reason', - } - assert payload['schema_version'] == 1 - assert payload['outcome'] == 'publish_new' - assert payload['relation'] == 'unrelated' - assert payload['target_memory_version_id'] is None - assert payload['candidate_evidence_refs'] == [candidate_ref] + assert set(payload) == {'schema_version', 'comparisons', 'reason'} + assert payload['schema_version'] == 2 assert payload['comparisons'] == [] - assert payload['applicability'] == 'same' - assert payload['temporal_order'] == 'not_applicable' - assert payload['reason_code'] == 'distinct_claim' assert 1 <= len(payload['reason']) <= 500 -def test_curation_decision_content_echoes_shortlist_comparisons_in_order() -> None: - version_a = '11111111-1111-4111-8111-111111111111' - version_b = '22222222-2222-4222-8222-222222222222' +def test_curation_decision_content_echoes_shortlist_comparison_indices() -> None: envelope = { - 'schema': 'curation_judge_input.v1', - 'candidate': {'evidence_refs': ['ref-c']}, - 'comparisons': [ - {'memory_version_id': version_a, 'evidence_refs': ['ref-a']}, - {'memory_version_id': version_b, 'evidence_refs': []}, - ], + 'schema': 'curation_judge_input.v2', + 'candidate': {'evidence_tier': 'supported'}, + 'comparisons': [{'index': 1}, {'index': 2}], } prompt = json.dumps(envelope) payload = json.loads(curation_decision_content(prompt)) - assert [c['memory_version_id'] for c in payload['comparisons']] == [version_a, version_b] - assert all(c['relation'] == 'unrelated' for c in payload['comparisons']) - assert payload['comparisons'][0]['target_evidence_refs'] == ['ref-a'] - assert payload['comparisons'][1]['target_evidence_refs'] == [] + assert [comparison['index'] for comparison in payload['comparisons']] == [1, 2] + assert all(comparison['relation'] == 'unrelated' for comparison in payload['comparisons']) + assert all(comparison['applicability'] == 'different' for comparison in payload['comparisons']) From 983e598f2db68b528186c735e27250ce0eb66d5c Mon Sep 17 00:00:00 2001 From: Filipp Balakin Date: Thu, 30 Jul 2026 13:07:23 +0300 Subject: [PATCH 3/3] refactor: drop the now-unreachable judge_reference_invalid fallback branch --- apps/backend/engram/memory/curation_judge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/engram/memory/curation_judge.py b/apps/backend/engram/memory/curation_judge.py index 2c3c0becac..5d8669f42d 100644 --- a/apps/backend/engram/memory/curation_judge.py +++ b/apps/backend/engram/memory/curation_judge.py @@ -579,7 +579,7 @@ def build_curation_judge_prompt(data: CurationJudgeInput) -> str: def _fallback_eligible(error: CurationJudgeError | ModelPolicyError) -> bool: if isinstance(error, CurationJudgeError): - return error.code in {'judge_invalid_output', 'judge_reference_invalid'} + return error.code == 'judge_invalid_output' status = error.http_status if status is None: