Repository navigation
Description
Scientific finding
Draft #506 now constrains the Rubin activation decision by immutable generator/analysis/evidence authority, source snapshot identity + SHA-256, cutoff, exact validated observation/draw-count points, design envelope, and indicator kind. That closes class-level design generalization, but the positive algorithm still does not bind the activation receipt to the concrete complete-data draw matrix used by the current run.
The private approved-pairing path therefore cannot distinguish two runtime inputs that have the same snapshot, cutoff, observation count, draw count, indicator kind, and approved class-level receipt but different draw values. That violates #505's RED target: an arbitrary caller-constructed matrix must remain distinguishable from the concrete generator output receiving activation authority.
This is not a defect in psychometric_core Rubin arithmetic. Qbar/Ubar/B/T remains reusable numerical truth there. The defect is Validation Evidence / Projection provenance in analysis_engine.
Required repair
Bind RubinProjectionActivationReceiptV1 to the canonical SHA-256 of the exact complete-data draw payload (or an equivalently immutable canonical generated-draw artifact). The activation decision must receive the independently computed runtime draw-payload digest and require exact equality with the receipt before the private approved-pairing path can return Eligible.
Minimum fail-closed behavior:
- malformed or noncanonical draw-payload digest is rejected;
- receipt digest != runtime digest is rejected even when snapshot/cutoff/counts/envelope/indicator all match;
- an exact digest preserves the existing private positive algorithmic branch;
- the digest participates in canonical receipt JSON and receipt SHA-256;
- production
PRODUCTION_APPROVED_PAIRINGSremains empty until scientific: establish Rubin loading-uncertainty recovery and coverage evidence #503/test(science): add Rubin loading recovery and coverage acceptance evidence #504 evidence is independently promoted; - no draw arithmetic is copied into
analysis_engine, no LLM judge is introduced, and no mutable locator becomes scientific authority.
This digest prevents payload substitution/replay after receipt creation; by itself it is not proof that an arbitrary caller actually executed the approved generator. If the trusted generator boundary cannot issue the receipt or an immutable generated-draw artifact, generator-execution attestation remains a separate follow-on owner gap rather than something to overclaim here.
RED target
Using the private test-only approved pairing, keep snapshot ID/SHA-256, cutoff, 48 observations, 8 draws, ALR indicator, generator/analysis/evidence identities and design envelope identical. Change only the runtime complete-data draw-payload SHA-256. The exact digest must be Eligible; the substituted digest must be Rejected.
Ownership / fold
Repair in Draft #506, keep ADR 0034 Proposed, and preserve this delta through the eventual ordinary non-force fold into #416. Shared TRACEABILITY/ADR index/product-gap/CHANGELOG current-state authority remains #435's single-writer lane. Do not simple-close this issue until the exact-head repair is verified and inherited by the surviving Analysis Run vehicle.
Activity
seonghobae commentedon Sep 14, 2026
Repair is now on Draft #506 exact head
15fdd2c4d8808f29246bc9d0acd074190ce2bb32. REDdb8e7b484007be535260a7b16458a8718b0f0eb3was followed by draw-bound source/public compositionee93a01f4e9718bb6d7e8088288de250718ff0d6+5c9e40e638b3c7279261fa7bf047068e41b85775, integration propagation through07d2cab97e69aa2e2d7f630a1cbaf983b4534ff3, Draft-v1 schema coherence8e940e574817b35f986f64b41ad393538016f245, and research/ADR updatesf2d32a7b37d11215d52d84b2aa48752a279513e6→15fdd2c4d8808f29246bc9d0acd074190ce2bb32. Public activation now requires canonical receipt/runtimecomplete_data_draws_sha256equality before the private class-level authority decision. This issue stays open: exact-head hosted Rust/docs/security evidence has not yet completed, #416 has not yet inherited the delta, and canonical runtime draw serialization/trusted-generator attestation remains a follow-on owner gap rather than being overclaimed as solved.