lctriage: triage of light-curve anomaly rankings with measured completeness and reliability (formerly Atlas Robuste)
Abstract
lctriage (released as "Atlas Robuste" in version 1.0) is a reproducible pipeline for extracting features from photometric time series, ranking targets by atypicality, and measuring whether that ranking can be trusted. This version accompanies the paper Persistence, Not Consensus: Measured Triage of Unsupervised Anomaly Rankings of TESS Light Curves and the Research Note Two long-period low-mass eclipsing binaries recovered from Gaia DR3 spectroscopic orbits and TESS eclipses at the predicted conjunctions. Version 1.1.0 supersedes every anomaly score, coefficient and table produced with version 1.0. Four defects of 1.0 changed numerical output: (1) the anomaly score depended on the row order of the input table and on the platform, because ties were ranked by array position; (2) the parametric-stability coefficient measured disagreement between detectors rather than stability; (3) the noise and persistence coefficients compared an isolation-forest rank with a consensus rank; (4) the published catalogue mixed two detection passes. Ranks are now tie-aware (mid-ranks), every coefficient is consistent, and the catalogue is built from one tagged run. The feature registry and its seal (sha256:0e6f8e37eb14f7bd64bf057477a22f8b) are unchanged: matrices extracted under protocol 1.3.0 remain valid, and the feature columns of catalogue release 1.3.0 are byte-identical to those of release 2.0.0. Architecture (unchanged). Three decoupled stages with typed outcome ledgers: acquisition, standardisation, extraction; the third touches no network. The Parquet schema is derived from a declarative feature registry; registry metadata are hashed into a protocol seal that gates execution; the extraction ledger records a configuration digest and the seal for every target; every target receives a typed outcome. Each run emits a provenance manifest recording the software version and its Zenodo DOIs, dependency versions, configuration digest, target-list hash and registry seal. New in 1.1.0. A frozen multi-sector analysis plan with dated deviations (ANALYSIS_PLAN_multisector.md); test–retest of a ranking on the same stars in two sectors; held-out injections with an exactly replayable injection plan; preprocessing baselines (masking; masking and per-orbit detrending); contamination diagnostics harvested from the raw products; sector completeness by typed cause; pixel-level difference imaging of single events; a detached-binary eclipse model and fitter (agrees with batman to 2×10−5); the Gaia DR3 SB1 orbit × TESS eclipse search, per sector and as a resumable survey of the TESS footprint with automatic catalogue checks, batch vetting and batch fits; a reproduction guide (REPRODUCE.md) giving the command sequence of every experiment without any machine-specific path. 156 automated tests pass on the archived release; a synthetic end-to-end check needs no TESS data. All code, tests and documentation are in English. Application. TESS two-minute targets of sectors 1 (12 905 retained of 12 999), 2 (13 172 of 13 210) and 13 (4 969 of 5 568), with typed causes for every exclusion. The resulting catalogue (release 2.0.0, doi:10.5281/zenodo.22960778) and the experiment outputs are deposited separately and linked below. Requires Python ≥ 3.11 (tested on 3.12 and 3.13). MIT licence. Distributed through Zenodo only; cite the version DOI of the release used.