test(cat): require Rust-owned item information and next-item selection - #721
seonghobae wants to merge 1 commit into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent address Exact bounded implementation handoff for Draft #721 / issue #629. Before any write, refetch source head Exact CI run Implement minimum GREEN only:
This slice changes ownership, not the scientific estimand. |
|
@opencode-agent address Reacquire the bounded source-writer lease for Draft #721 / issue #629 only if a final refetch still shows source head Fresh compare is diverged: this branch has exactly one unique fail-first test path and is 17 protected-main commits behind, merge base The valid RED from CI
Fixed-form greedy assembly remains the later #629 slice. Do not widen into ATA hostile-control #718, exact ATA optimization, dependencies/workflows/version/release, hosted state or canonical #604 docs. Keep Draft; final current-head review/Ready/merge returns to the maintainer loop. |
|
@opencode-agent address Fresh replacement implementation lease for issue #629 / Draft #721 after protected-main movement invalidated the prior exact-base handoff. Immediately before writing refetch source head, live protected Implement only the first #629 ownership slice already defined by #721: reuse existing Rust scoring/bank-information primitives where the estimand matches; add thin package-owned Rust/PyO3 Preserve MIRT/latent-space/bifactor predictor semantics, discrimination interpretation, theta/person handling, population-mean Do not widen into fixed-form ATA assembly/hostile-control work, exact ATA optimization, dependencies/workflows/version/release, hosted state or canonical #604 docs. Stop writing on any source/base/lease movement. |
|
@opencode-agent address Fresh current-main replacement/reconciliation implementation lease for Draft #721 / issue #629. Immediately before writing refetch exact source head Fresh compare is Reconcile protected main non-destructively first. If a 28-commit-old one-test branch makes direct integration unnecessarily conflict-prone, create exactly one clean-lineage replacement from current main carrying the same fail-first tests/RED lineage, make it the sole current #629 implementation line and close #721 with precise supersession lineage; never keep both writers active. Implement only this first #629 ownership slice:
Stop writing immediately if source/base/lease state moves. |
|
Superseded by clean-lineage Draft #735 after protected |
First fail-first ownership slice for #629
Protected
mainat branch creation and final pre-PR refetch:640de7dd39d944749b92b1a88bafa8e1787a0847.CAT ability MLE/EAP/SE is now Rust-owned on protected main via #709, so the sequencing blocker recorded in #629 is cleared. Fresh protected-main
python/fast_mlsirm/test_design.pystill computes public item information through Python model probabilities plusa²P(1-P), then copies/masks those values and performs the consequential next-itemargmaxin Python.This Draft adds only the smallest intentional ownership REDs:
item_information()must obtain the numerical information vector from a package-owned Rust/PyO3 entrypoint; andselect_cat_item()must obtain the administered-item exclusion/ranking decision from a package-owned Rust/PyO3 entrypoint rather than performing the final argmax in Python.The tests replace the proposed compiled-core entrypoints with unmistakable sentinel results and require one call plus exact sentinel transport. Current protected main is expected to fail by making zero calls. Setup/import/fixture failure is not valid RED.
Minimum GREEN after exact RED proof
mlsirm_core::scoring::bank_information_device/ CAT scoring primitives where they exactly match the current estimand; do not duplicate probability/information formulas.xiconvention when no person is supplied, administered-item exclusion, deterministic tie behavior and no-candidate error semantics.Fixed-form greedy assembly remains the second #629 slice after this first ownership boundary stabilizes. Do not widen this PR into
ata.pyhostile-control work (#718/#683), a new exact ATA optimizer, dependencies/workflows/version/release, hosted state, or canonical #604 docs. Keep Draft through RED→GREEN. Advances #629.