PR Source Pages — Index¶
Ten pull requests ingested as first-class source pages. Each page is a faithful extract of the PR body (showboat documentation) plus file-change tables and cross-references.
PR Pages¶
| PR | Title (truncated) | Merged | Category | Summary |
|---|---|---|---|---|
| PR-372 | require forecast.residual_mode + gate forecast on run_dir | 2026-05-05 | feature | Makes residual_mode mandatory on ForecastConfig; adds validate_residual_mode gate that fails fast with actionable messages before any feature compute. |
| PR-369 | forecast multiple season_years per init_date | 2026-05-05 | feature | Path restructure ({init_date}/ → {season_year}/{init_date}/) and long-range climo stub enabling multi-year outlooks from a single init_date. |
| PR-363 | unbreak Streamlit dashboard startup | 2026-05-05 | fix | Three independent dashboard bugs: wrong .parent count, deleted WASDE free function, missing data/ path prefix. |
| PR-361 | USE MAPIE Conformalise — multi-mode CalibrationResult | 2026-05-02 | feature | Introduces CalibrationResult, four residual_mode values, mode-keyed sidecar parquets under conformal/, and polymorphic apply_conformal. Removes ~150 lines of interleaved calibration logic. |
| PR-360 | BRAZIL SOY (reference-data discriminated union) | 2026-05-02 | feature | Replaces evaluation.wasde_path with reference_data: list[ReferenceYieldSpec]; adds CONAB loaders and configs/brazil_soybean.yaml; fixes silent factor-67 unit bug. |
| PR-353 | rewrite domain model into canonical v2 structure | 2026-04-29 | docs | Rewrites DOMAIN_MODEL.md into 9-section DOMAIN_MODEL2.md; adds gen_linkml_schema.py auto-generating a 42-class / 21-enum LinkML schema from the Python codebase. |
| PR-345 | S3 path support across predict stage + CLI | 2026-04-29 | fix | Three-layer fix: drop Path(AnyPath(...)) wrappers; wrap pl.scan_parquet arg with str(); introduce AnyPathParam click ParamType. Reduces predict-stage debug loop from ~50 min to ~30 sec. |
| PR-340 | Dashboard: window-aware metrics, configurable truth source | 2026-04-28 | dashboard | Adds "NASS actual (all counties)" and "WASDE Harvest-time Forecast" columns; renames "Model MAE" to "Treefera MAE"; adds Subset/Full vintage tabs with generic per-commodity growing-season anchors. |
| PR-339 | 9-phase restructure to match SYNTHESIS | 2026-04-29 | refactor | Structural refactor of 22,968-line package: flattens inner src/, deletes tfds//steps//forecast/, breaks import cycle, builds canonical subpackage tree. Manifest-gated: outputs byte-for-byte identical before and after. |
| PR-331 | Populate weather_correction_bu_ac and add P90 bands | 2026-04-27 | fix | Fixes always-null weather_correction_bu_ac (structural identity: detrended × scale) and missing lower_90/upper_90 in wheat/cotton/soybean configs. Net +6/-41 lines. |
By category¶
feature — PR-372, PR-369, PR-361, PR-360
fix — PR-363, PR-345, PR-331
refactor — PR-339
docs — PR-353
dashboard — PR-340
Documentary value notes¶
- PR-369 (forecast multiple season_years): longest and most architecturally rich showboat — covers path restructure, climo stub design, imputer generalisation, season-DOY weight schedule, empirical proof of trend-only behaviour. Top documentary PR by line count.
- PR-361 (CalibrationResult): comprehensive architecture tour with live demo on real corn data; four residual modes with worked examples and non-monotonicity explanation.
- PR-360 (Brazil soy): three-commit development narrative including the bugs found in each round; full
stage5_metrics.txtbefore/after; recipe for adding a fourth reference source. - PR-339 (9-phase restructure): manifest-gate methodology, cycle-break mechanics (PEP-562), phase-by-phase commit table, byte-for-byte sha256 proof.