Fix the sky before calling anything a member
The target is a one-degree ICRS cone centred at right ascension 132.85 degrees and declination 11.81 degrees, with G below 18.5. source-recipes.json contains the complete ADQL, explicitly querying gaiadr3.gaia_source and ordering by source_id. The cone contains foreground, background and cluster stars. Position inside it is not membership.
The fixed response contains 7494 rows. Preserve source_id as a string so a floating-point conversion cannot lose its final digits. Positions use degrees, parallax milliarcseconds and proper motions milliarcseconds per year. Gaia pmra already includes the declination cosine. The reference epoch 2016.0 belongs to astrometry, not a single observation date for all mean magnitudes.
Gaia’s dedicated data-license page is distinct from a webpage image footer. The package provides named acquisition steps, not rehosted Gaia rows, individual-source derivatives or real-source scatter. Local outputs remain subject to source terms, and every selection can be traced to the response actually received.
Reading: Gaia DR3 documentation and archive · Official Gaia data license
Run all five commands
Download the complete ZIP, extract it and enter cluster-populations-local-science. Prepare the exact requirements.txt versions in an environment you manage. Verify package integrity, obtain inputs, produce import files, execute the analysis, then independently check component identities, light and distance. The commands write inputs, local-modelsets and results in separate directories.
python verify_package.py
python fetch_inputs.py --out inputs
python prepare_modelsets.py --inputs inputs --out local-modelsets
python reproduce.py --inputs inputs --out results
python validate.py --inputs inputs --results resultsThe first command verifies members against a hash list; it does not validate every scientific claim. fetch_inputs uses fixed source entry points and POST recipes. prepare_modelsets parses complete original tables and independently derives the 98 public nodes from the author ISOA CSV. reproduce calculates selections, comparisons and independent checks. validate rereads original rows and saved components to check identities, geometry and band light.
For an existing original-input cache, replace acquisition with the command below and repeat --cache for additional directories. This is an offline cached-body replay, not fresh HTTP acquisition. Every cached input must still match its direct-body or complete numerical-table identity.
python fetch_inputs.py --out inputs --cache /path/to/original-cacheReading: PARSEC/CMD3.8 official input help and phase labels · MIST official isochrone interface and user documentation · Reyes et al. (2024), a precise M67 isochrone; native ISOA data
Make the selection reproducible
Quality cuts require finite key astrometry and three-band magnitudes, positive astrometric errors, at least nine visibility periods, G flux signal-to-noise above 50 and BP/RP above 10 each. They retain 7371 rows. There is no colour-based cleaning toward a preferred theoretical sequence.
The main cut uses a proper-motion circle of radius 0.7 around approximately minus 11 and minus 2.9 milliarcseconds per year, and raw parallax 1.15 plus or minus 0.12 milliarcseconds. It retains 1064 rows. A separately stated sensitivity selection uses the correlated three-dimensional error matrix with declared intrinsic widths and retains 1243. These are conditional candidate sets, not two known-pure membership catalogues.
The main set retains 34 points with RUWE above 1.4. Of 474 candidates with radial velocities, 13 outside 20.4–47.6 km/s are flagged but retained. Binaries can affect astrometry and velocity. Removing them before claiming a narrow single-star sequence would select away part of the question. No global parallax zero-point correction or unbiased inverse-parallax distance is claimed.
Reading: Gaia DR3 documentation and archive
A temporary URL is not a model identity
CMD and MIST create temporary result pointers. A recorded POST recipe fixes version, composition, ages, passbands and extinction after those pointers expire. The PARSEC request actually returns twelve log-age nodes from 8.6 through 9.7. Its requested upper endpoint 9.8 is not a thirteenth returned node.
MIST receives an explicit list of the same twelve nodes. The script reads the ZIP central directory, requests only exact compressed photometry-member ranges, requires HTTP 206 with matching Content-Range and body lengths, and verifies decompressed length and CRC. An ignored range stops the process; it does not trigger a whole-library fallback. The theory member is unnecessary.
Raw-body hashes and numerical-table hashes are separate. Dates, random filenames and ZIP packaging can change; all original columns and rows must still match the declared float64 numerical-byte digest exactly. There is no rounding tolerance. Version, passband, node or numeric changes fail visibly and require a reviewed input revision.
Select parsec-native12.json or mist-native12.json from local-modelsets in the Lab. The file stays in browser memory with no upload or remote job. Verification enables the age selector and changes the label to EDR3. The public 3.95 Gyr DR2 model remains a separate input and is not overlaid on the real DR3 scatter.
Reading: PARSEC/CMD3.8 official input help and phase labels · MIST official isochrone interface and user documentation · Reyes et al. (2024), a precise M67 isochrone; native ISOA data
Read the failures alongside the result
results/summary.json contains aggregates. selected-gaia-local-only.csv and real-gaia-local-only.png are produced locally. Colour and G coordinate scales of 0.05 and 0.2 magnitudes define a descriptive distance, not measurement errors. Age and distance boundary minima retain explicit flags rather than becoming age intervals.
Three further failures stay visible: withheld native-age interpolation; public ISOA continuous photometry beyond its exploratory gate, leading to discrete default nodes; and the original seed 20261104 Plummer sample outside its 99.9% DKW band. That last sample has 200000 points. Its original random inputs were retained, and independent same-input integration and geometry agree. A new seed does not replace the failure.
A separately predeclared cohort uses two generator families with sixteen seeds each and 128 cumulative-distribution checks, with a stated family confidence bound. It provides context, not a retroactive pass. A zero exit means the workflow calculated and preserved these outcomes correctly, not that every scientific gate passed.
The workflow processes original observations and native tables. It does not rerun stellar evolution, regenerate the protected Engine or refit the eight giants’ spectra. Keeping computed, omitted and refused steps together makes the next possible investigation precise.