{"revision":{"id":"prv_5fhsp2s7pu","problem_id":"prb_kie70k6m0k","revision_number":1,"statement_md":"# Build a clean ExpansionRx nine-endpoint baseline\n\nImplement and execute a small, reproducible RDKit-descriptor + LightGBM baseline on the **released** ExpansionRx split: `train` (5,326 rows) and `test` (2,282 rows). These labels are public; this is retrospective evaluation, not a blind competition entry. The reference `source_manifest` pins the releases and attribution, `data_card` defines endpoint units, and `tutorial` contains the upstream notebook and evaluation code.\n\nUse only `train` labels for fitting, feature preprocessing, model selection and early stopping. Use no external labels, pretrained representations or leaderboard tuning. Freeze one recipe and record its seed before scoring `test`. Train one model per endpoint on available training measurements. Follow the tutorial's descriptor/LightGBM approach; make any change needed for reproducibility explicit. Add a training-median predictor as a comparator. Preserve the original split and every test identifier; report duplicate IDs, canonical-isomeric-SMILES overlap and invalid molecules, including a documented fallback prediction when necessary. Do not silently drop difficult cases or relabel a public test as hidden.\n\nUse the nine named endpoints in `document_schema`. For modeled targets use LogD unchanged and log10(x+1) for the other endpoints (the tutorial's unit offsets are permissible if exactly inverted). Return predictions in the source units. For scoring use LogD unchanged and log10(max(x,0)+1) otherwise, as in the bound evaluator. Report observed-label counts, point MAE and RAE = sum(abs(pred-true))/sum(abs(true-mean(true))) for each endpoint, and the unweighted mean of the nine RAEs. Report null with a reason for undefined denominators; never coerce them to zero. Distinguish point estimates from the upstream bootstrap-mean implementation. Compute fixed-seed 1,000-resample intervals as additional evidence, reporting exactly what interval is used. Include the median baseline under the same evaluation. A good score is not a condition of acceptance.\n\nSubmit `document` JSON matching `document_schema`; `predictions` CSV with exactly all 2,282 test IDs, SMILES and all nine source endpoint columns; and a `reproducibility` ZIP containing runnable source, a pinned environment, a one-command rerun, run logs, split/data audit, and a concise report. Commands must use the bound input files without silently fetching changing data. Re-running evaluation on the submitted predictions must reproduce reported point metrics to 1e-8. Document library/platform-dependent training variation separately.\n\nThe machine check validates report structure only. Human review checks the actual run, units, complete predictions, train/test separation, source fidelity and reproducibility. This is a complete baseline task, not merely a proposed method. `raw` is provided only for documenting censoring and provenance; do not train on it because it includes held-out molecules. Inspect source_manifest and retain its CC-BY-4.0 attribution. After starting an Attempt, record working findings and end it with a summary.\n","context_md":null,"benchmark":null,"verifier_contract_id":"vct_d2ijt2rjs7","verifier_input_bindings":[{"key":"data_card","content_hash":"sha256:cb8a82b1414ab82bce1a50822d916327a414ea51e5cb129a01c855621e3d33d8","size_bytes":4388,"media_type":"text/markdown","filename":"data_card.md"},{"key":"document_schema","content_hash":"sha256:4c07e4b7d235ca8ab95c6c4f86a50b976e909e1a089154cdb5af2a69c8731b54","size_bytes":4063,"media_type":"application/json","filename":"document_schema.json"},{"key":"raw","content_hash":"sha256:f674ec74cca1146bc386f832a32d4b8d921d3c312f92cb436cc005901c724a3c","size_bytes":686791,"media_type":"text/csv","filename":"raw.csv"},{"key":"source_manifest","content_hash":"sha256:58474070f5fe97abb3e689ca03fcc16303c93b721c6e63c9727daa9239b46487","size_bytes":5247,"media_type":"application/json","filename":"source_manifest.json"},{"key":"test","content_hash":"sha256:e21c0ef19795317216287e924e00ca3ef9388b7032a7fa4c7f27e2580372c85e","size_bytes":221291,"media_type":"text/csv","filename":"test.csv"},{"key":"train","content_hash":"sha256:c5214ad8c8a4d7d4d09082fcce24fe16c97a980a1e0873b91b8c8e474b79f6e4","size_bytes":464076,"media_type":"text/csv","filename":"train.csv"},{"key":"tutorial","content_hash":"sha256:da03b18ebc4e031f87123c483980ea03eaa8f72f2d3f3c1cded368befd3a42b7","size_bytes":142711,"media_type":"application/zip","filename":"tutorial.zip"}],"skill_refs":[],"changelog_md":null,"created_by_user_id":"usr_lk2ek7qqq2","created_at":"2026-10-14T17:12:11Z","sealing":null}}