feat(analysis): bind template-copy identity refusals to an analysis-run profile - #416
feat(analysis): bind template-copy identity refusals to an analysis-run profile#416seonghobae wants to merge 45 commits into
Conversation
…un profile GAP-004 leftover / ADR 0058. Bind existing copy_identity refusals (refuse_copy_as_source_identity, refuse_copy_as_transition) to cutoff-safe copy_identity_v1. identity_recovery_rate stays library-side. Distinct from simulation method-effect census (#415). Not GPU, not MCMC, and not topic birth/split/merge.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…profile GAP-004 leftover / ADR 0066. Bind existing location_membership refusals (refuse_location_as_entity_identity, refuse_location_as_language_channel) to cutoff-safe location_membership_v1. identity_recovery_rate stays library-side. Distinct from membership-posterior ICC (#398), copied-text (#427), citation-edge (#426), and corpus-background (#422). Not GPU, not MCMC, and not topic birth/split/merge.
…ofile GAP-004 leftover / ADR 0069. Bind existing MembershipTargetKind and refuse_collapsed_target to cutoff-safe membership_target_v1. Language, episode, template, department, and opportunity-pool targets are not entities; identity_recovery_rate stays library-side.
…rofile GAP-004 leftover / ADR 0072. Bind existing EventWindow and refuse_membership_outside_episode to cutoff-safe episode_membership_v1 (tepp.episode_membership.v1). Mixed contained/escaped census, AvailableTime cutoff exclusion, and MAX_EVIDENCE_UNITS fail closed. identity_recovery_rate stays library-side. Distinct from relation-absence, outcome-order, membership-target, location-membership, and copy-identity.
GAP-004 leftover / ADR 0073. Bind existing EvidenceStatus, refuse_inferred_as_observed, and refuse_inferred_as_transition to cutoff-safe inferred_status_v1. Mixed observed/inferred corpora emit a digest-bound census. identity_recovery_rate stays library-side. Fixes #472.
Use the review-reproduced oversized compact artifact as RED evidence. Enforce the same MAX_EVIDENCE_UNITS invariant at artifact deserialization/serialization that execution already enforces, and add regression coverage for both directions.
Document the artifact-count invariant and exact-head landing procedure, and collapse the duplicated documentation map into one canonical index so the new doctoring entry cannot diverge between copies.
|
Fold complete on exact head
Local |
Preserve #416 copy-identity, inferred-status, location-membership, episode-membership, and subevent-containment source/tests with #434 membership-target profile evidence. Shared Cargo/lib/lock/docs surfaces are unioned; neither side is discarded. Per-profile ADR numbers remain implementation lineage pending #437. # Conflicts: # CHANGELOG.md # DOCUMENTATION.md # crates/analysis_engine/Cargo.toml # crates/analysis_engine/src/lib.rs # docs/TRACEABILITY.md # docs/adr/README.md
|
Additional fold: #434 Local |
Consolidation status
landing_vehicle_candidate— Validation / Analysis Run simple-refusal/census landing vehicle tracked by #435. It is not a new bounded context. Folded profiles preserve domain refusal semantics and focused tests here; per-profile ADR numbers remain implementation lineage pending #437 repository-wide ADR normalization.Fold lineage already preserved here: #473
inferred_status_v1, #430location_membership_v1, #461episode_membership_v1, #478subevent_containment_v1, and #434membership_target_v1. Those closed children are lineage into this Draft branch, not protected-main delivery.Cross-profile contract repairs on the current head
Protected-main
AnalysisResultSummary.validation_statusis a provider-authored validation status, not a domain inference claim. Existing RED/repair lineage separates domaininference_statusfrom terminalvalidation_status == "validated"and normalizes RFC 3339 cutoff identity through typedKnowledgeCutoff::instant()comparisons for folded profiles.Generic RED
ffee655404716bf8d33c898a3c1a87a543abe701and repair0b7155cc238defb1e55129ff3000658f04b343cfenforce the landing-vehicle leakage invariant: applyAvailableTime <= knowledge_cutoffbefore duplicate-identity admission. Future-unavailable evidence cannot change identity conflicts, counts, membership totals, or terminal state at an earlier historical cutoff; duplicate IDs among evidence actually available at the cutoff still fail closed. Current branch headaa730c63563eb4a33048d822b581036c8487bd47is six fast-forward commits beyond that repair and retains it in ancestry.#487 adds another scientific repair that must survive the fold: observed Allen relation classes are data, not run prerequisites. Its RED
a2892b6ad4f632882f63da39eed2d4706ddf9213and repaira64020152300232cb3214a66b45d97225b6d2b5brequire sparse covered-only or contradiction-only censuses to report truthful zero class counts. Fresh docs-to-code repair on child heade07b2ff9f78ef456ff911b8643710af20921fe54also changes ADR 0079 from prematureAcceptedbranch authority toProposedimplementation lineage and removes its stale mixed-four-class eligibility claim. The eventual fold must inherit that corrected ADR semantics, not the predecessor wording.Profiles preserved on this head
copy_identity_v1: copy versus source identity/transition refusal, typed cutoff equality, bounded digest artifact.inferred_status_v1: observed versus inferred remain distinct; inferred is neither observed evidence nor transition.location_membership_v1: location remains distinct from entity identity and language channel; inspect remains recovery-metric-free.episode_membership_v1: membership windows are checked against episode intervals with cutoff-safe admission;identity_recovery_ratestays library-side.subevent_containment_v1: child intervals cannot escape parent intervals; TRACEABILITY excludes bothcontainment_recovery_rateandidentity_recovery_ratefrom inspect.membership_target_v1: language/episode/template/department/opportunity-pool target kinds stay distinct from entity/project.Current fold children
#458
outcome_order_v1at08165e3b3c929b4ae77396689549f72723ff8ff5, #460relation_absence_v1atdfab4eab5ff733731e565a9348072b8dab2e4912, #482role_contradiction_v1at506dbae236a4484301b704b6c6a05b20faf0fe69, #483retrospective_edge_v1at847d96f913bb261803ac0bd751ad7e4f51324cee, #484summarizes_edge_v1at9a1be78b5342ff65e3cf2aac1e9331c68943f246, #485support_edge_v1atf71591864efc2beff336ced7ef35d5a013305c36, and #487prediction_contradiction_v1ate07b2ff9f78ef456ff911b8643710af20921fe54remain conflict-resolving fold children.#484, #485, and #487 change the same shared Analysis Run integration surface as this vehicle (
Cargo.lock,analysis_engineCargo/lib,DOCUMENTATION.md, TRACEABILITY and ADR index). They remain non-destructively retargeted here; their unique source/tests/doctoring stay intact until a real conflict-resolving fold verifies inheritance. Merely closing children or landing them independently is not consolidation.DDD boundary
The Analysis Run application/Validation boundary owns request admission, cutoff-safe temporal composition, digest-bound result projection and claim refusals. Source-specific rule crates keep domain vocabulary. Folding proceeds through shared admission/artifact invariants plus profile-specific adapters, not a flat model enum or a technical god-module.
Verification / merge gate
Current exact branch head is
aa730c63563eb4a33048d822b581036c8487bd47; PR-description edits do not change source identity. The generic cutoff-before-identity repair at0b7155cc238defb1e55129ff3000658f04b343cfremains inherited, not the current head. Child-head workflow results do not transfer. This vehicle must reacquire exact-surviving-head required CI/security/documentation evidence and qualifying independent review after each real source fold. It remains Draft until the selected fold scope and current DDD/docs are coherent. No self-approval, coverage exclusion, fail-open security change, force push, destructive rebase, routine admin bypass, or predecessor-head evidence transfer.