Repository navigation
scientific(analysis): keep future-only CWC census metadata out of historical artifacts #593
Description
Scientific / temporal finding
longitudinal_cwc_v1 excluded rows with AvailableTime > knowledge_cutoff from numerical CWC fitting but still emitted excluded_after_cutoff_count in the digest-bound artifact. Adding evidence that did not exist at an earlier cutoff therefore changed the historical artifact digest and terminal result even though the cutoff-visible scientific population and slopes were identical.
The surviving Analysis Run vehicle #416 defines the stronger leakage-safe invariant: future-unavailable evidence must not enter the historical scientific census, duplicate/domain admission, counts, artifacts, or terminal scientific result. The exclusion counter violated that invariant and disclosed later corpus existence into an earlier replay.
Required / implemented repair
- preserve the raw
MAX_EVIDENCE_UNITSoperational admission bound before cutoff filtering; - preserve per-row
AvailableTime, snapshot provenance, cutoff-visible duplicate refusal, and CWC arithmetic ownership inpsychometric_core; - prove that adding a future-unavailable row with a distinct identity does not change the historical artifact or terminal result;
- prove the same for a future-unavailable row reusing a visible identity (scientific(analysis): preserve evidence identity in longitudinal CWC composition #592 interaction);
- remove future-only census metadata from the digest-bound public artifact rather than emitting a false zero;
- retain
row_countandcluster_countas cutoff-visible scientific counts; - keep scientific: establish longitudinal CWC recovery acceptance evidence #501 recovery denominators/Monte Carlo evidence outside this runtime artifact; retrospective acceptance tooling may measure attempted/excluded conditions without changing a historical production result;
- do not hide the change with source rewriting, tuple deduplication, or a compatibility field whose value depends on post-cutoff evidence.
Ordinary-forward lineage
- scientific(analysis): preserve evidence identity in longitudinal CWC composition #592 supplemental RED
bb8cb21ac40fc9f1a2d86612e8cbaaac5ccecb67first required full historical invariance for a future-unavailable duplicate and exposed that the public exclusion count still changed the result. 6b07a4eafa3c009e36299aeca6e87a5b45201d56corrected identity-admission order but intentionally did not yet remove the leaking artifact field.- scientific(analysis): keep future-only CWC census metadata out of historical artifacts #593 RED
35a8f082b87c0f4e9fdd6e41f6f5fee4cd3f601badds an independent future-unavailable distinct evidence row and requires exact artifact/terminal invariance. - causal repair
28509b74a7949fcfc8b40f479b7cbabdc76b89d1removesexcluded_after_cutoff_countfrom the public artifact and simplifies cutoff admission to return only the visibleClusteredScorepopulation while retaining the raw size limit. - test migrations
f1230ef23c51865aee6143d3cc7b1e4cb0db3240and4befe868eaf0d2384358c8fffc59432c96f1874breplace exclusion-count assertions with historical-output invariance and visible-count validation. - ADR currentization
98daaa73422f65fd8be9dfdb9e0cd0df50192617and doctoringac894bdc49ad622ecbe0c105cfb775299c2e6941record the temporal/projection decision.
This is a temporal leakage/projection repair, not a new estimator. #501 continues to own true-parameter recovery acceptance. Keep this issue open until the complete delta and exact-head evidence survive the #416 consolidation vehicle or a verified successor.
Activity
chore(longitudinal): preserve analysis profile shared surfaces
chore(longitudinal): restack CWC evidence contracts on analysis profile
fix(longitudinal): restore surviving #416 tree after restack