Add targeted grouped cross-validation folds - #53
Conversation
|
Claude finished @hmworsham's task in 2m 55s —— View job Review: Add targeted grouped cross-validation foldsNice restructuring overall. Deriving the exemplar pool from Below, roughly in order of impact. 1.
|
|
Claude finished @hmworsham's task in 3m 30s —— View job Re-review: Add targeted grouped cross-validation foldsRe-reviewed at But the same contradiction survives one level down, in files that are copied verbatim into every fold environment. That's the lead item below. The rest is prior findings, with status. 1. The skills shipped into the env still direct the agent from the holdout fields
The curator is the worse of the two, because it's the entry point that decides which datasets enter the pipeline. Both skills do defer to Fix is small — name the fields explicitly: 2. A
|
|
Claude finished @hmworsham's task in 2m 49s —— View job Re-review after
|
|
Claude finished @hmworsham's task in 3m 6s —— View job Re-review: Add targeted grouped cross-validation foldsThree new commits since my last pass. Findings 1, 2, and 4 are resolved — and resolved well. Findings 3, 6, 7 are still open. Summary of the delta, then what's left. Resolved(1) Instructions prose — fixed. (2) Reference-holdout identifiers — fixed, and more thoroughly than I suggested. (4) Docs — fixed. I also hand-verified the config: cluster_1 ∪ cluster_2 ∪ cluster_3 = the 19 entries of Still open3. Sandbox assertions still deleted (repeat)
claude_settings = json.loads((env / CLAUDE_SETTINGS_REL).read_text())
assert claude_settings == FOLD_CLAUDE_SETTINGS
6.
|
|
Claude finished @hmworsham's task in 2m 45s —— View job Re-review: Add targeted grouped cross-validation folds
Four commits landed since my last pass. The blocker is resolved and the fixes are cleaner than what I suggested. Status of every prior finding, then what's new. Resolved(1) Instructions prose — fixed, and better than asked. I also confirmed (2) Identifier disclosure — fixed. (4) Docs — fixed across all three. (6) Still open(3) Sandbox assertions still missing. (7) Workflow resolve step. Unchanged, and I can't edit
(8) (5) Statistical note (advisory, unchanged): folds 1–6 share one ablation condition and folds 7–8 share another, so n=19 is not 19 independent replicates. Cluster-level aggregation or cluster-as-random-effect is the safe default at analysis time. New this round(a) The invigilator's leakage attribution is now weaker for the 8 cluster folds. The fix can't be "put them back in (b) The new (c) (d) Residual inference channel, noted not blocking. (e) Stale terminology, cosmetic. Verification: Assessment: The blocker from my last review is fixed properly. Nothing remaining blocks running folds 1–8. Of what's left, only (3) is a regression introduced by this PR rather than a pre-existing gap or a nit, and it's a two-line restore. |
|
Claude finished @hmworsham's task in 2m 49s —— View job Re-review: Add targeted grouped cross-validation foldsFive commits since my last pass. Most of what I raised is addressed, and the workflow extraction in particular came out better than I sketched — Status of prior findings
Remaining and new1. A dataset_identifier input silently bypasses cluster ablation (new, medium)
It's partly self-limiting: The cheap fix is to resolve identifiers to indices via the mapping before the fold lookup, so an identifier for a configured target gets the same treatment as its index. The cheaper one is to reject a non-digit, non-cluster input outright unless it contains a comma. Either way 2. Sandbox assertions still missing (carried over)
3.
|
Summary
Testing
PYENV_VERSION=bio-3.11 python -m pytest tests/test_resolve_fold.py tests/test_cv_folds.py tests/test_build_env.py tests/test_invigilator.py -o addopts=""(37 passed)