Skip to content

MIP-0083 tasks

Ordered delivery of MIP-0083, one PR per row. §n are the MIP's. The schemas come first (§5.12); rows 1–8 are v0: two providers (IFS and GFS), stations, the scorer, a local lake, MLflow and the cycle, filed as marola-dev/marola-app#63–#70 (the superseded text's issues, rewritten; #71 closed). Rows 1, 2 and 3 then 4, 5 and 6 can run in parallel. Rows 9–21 are filed when v0 is done. Every code row is marola-app's experiment module unless it says otherwise.

# slug delivers tests (must exist before the PR) depends on
1 schemas §5.12: every schema, with §5.14's run_init, available_at, fetched_at and content_sha with derives Schema, its JSON Schema and DuckLake DDL checked in; kyo-schema, kyo-schema-json and kyo-config added after a jar check; marola-app#72's verify renamed experiment, its Besom infra removed SchemaSpec –
2 registry-protocol GroundTruth (from #72), sampling-points.json, providers.json with the two v0 rows, #72's nine candidates as v0's sampling points, protocol.json (90 d, 4 h, leads to 360 h, scorecard days, K = 16, min_n) GroundTruthSpec, SamplingRegistrySpec, ProtocolSpec 1
3 score-monoid §5.2 and §5.5: the ScoreCell monoid with the OWB metrics (bias, RMSE, fair CRPS, spread, debiased ensemble-mean RMSE, spread-skill, error correlation), Matcher, Scorer, §5.14's paired intersection, model and issued skill, and the day-block bootstrap ScoreMonoidSpec, MatcherSpec, FairnessSpec (scoring cases) 1
4 open-meteo-route §4.4: the open_meteo route, driven by providers.json; IFS and GFS wind and temperature with single-run backfill; Async.foreach, Meter.initRateLimiter and Retry (§5.13); §5.14's run pinning and content hash; first live fixtures ForecastClientSpec, FairnessSpec (fetch cases) 2
5 station-observations §4.5: MetarClient (aviationweather.gov, IEM archive), InmetClient, the Niño-3.4 reader ObservationClientSpec 2
6 lake-samples §5.6's tables behind SampleStore, on a local DuckLake directory (duckdb_jdbc), Scope-owned connection, Stream-paged reads; the B2 OodsStore implementation follows MIP-0075 task 5 LakeSamplesSpec 1
7 cycle-mlflow cycle, rescore, export on RunLedger; the MLflow experiment of §5.6 on B2; just experiment-cycle and just experiment-rescore CycleSpec, ExportSpec 3, 4, 5, 6
8 scheduled-workflow §5.9 experiment.yml; v0 is done when 7 days of unattended cycles show in MLflow; it writes the local lake to the Actions cache until the B2 lake lands actionlint; §7's live checks 7, the owner's B2 key
9 station-screen the screen command moving a candidate to qualified or rejected under #723's frozen thresholds ScreenSpec on a fixture year 2, 5, #723
10 scorecard-page marola-site — marola-site#99 as an OWB-style scorecard (days 1/3/5/7/10/15, 12Z ranking, climatology floor) against §5.12's Scorecard schema that issue's site_check.js case and screenshots 7
11 provider-rows §4.4: providers.json rows for WeatherNext 2, AIFS, AIGFS, ICON, IFS ENS and GEFS, each with a recorded fixture; no Scala change ProtocolSpec on the new rows 4
12 marine-observations §4.10: PNBOIA buoys (BNDO download or GTS), SIMCOSTA if reachable; buoys as buoy sampling points MarineObservationSpec 5
13 upper-air §4.10: Florianópolis and Porto Alegre radiosondes, 850 hPa vector-wind RMSE at upper_air points UpperAirSpec 5, 11
14 navy-warnings §4.10: archive CHM METAREA V warnings every cycle, parse pt and en, verify force ≥ 7 against buoys and stations NavyWarningSpec 6, 12
15 merge-precip §4.10: MERGE daily precipitation (BDC STAC), the 2000–2025 SEEPS climatology, 24 h SEEPS MergePrecipSpec 3, 6
16 marola-analog §5.11: the analog library (IFS single runs from 2024-03-14 with the IEM METAR archive), the marola_analog route AnalogSpec 3, 4, 7
17 wn3-outreach a person — the WeatherNext 3 Data Request Form as UFRJ and UFSC (§4.3), the answer recorded in the MIP – –
18 bndo-request a person — the BNDO request form for PNBOIA history and terms (§4.10), recorded in the MIP – –
19 weathernext3-route §4.3: the weathernext3_bigquery route its client spec on a recorded fixture 4, 17
20 monan-route §4.10: the monan route once INPE publishes output its client spec on a recorded fixture 4, INPE
21 grid-scores marola-ml, only if the owner decides to — WeatherBench-X on a South crop against each model's analysis (§4.10's "cannot" made possible) its own MIP 8
22 mip-implemented marola — MIP-0083 flipped to Implemented with every PR mip_graph.py --check 1–16