Refine project documentation and track metric files

Close gaps found in a review of the documentation:
- Track data/metrics/ and data/metric_sources.json in git so the data
  checker passes on a fresh clone (finding 23; decision logged)
- State the Alaska and Hawaii coverage gap in the README limitations and
  extend finding 12
- File findings 24-26: the data-sources doc lacks gridMET and several
  pipeline commands; wettest/driest month are computed twice; solar GHI
  is written by the extreme-temperature apply step
- Add the stale "fallback values" note to filter 2's tasks

Tidy the document system:
- Add docs/reviews/README.md with the numbering rules and a finding index
- Rename koppen-mixed-display-plan.md to koppen-mixed-display.md and fix
  its stale Puerto Rico and "stage 5" text
- Add the precipitation-month step to the README enrichment list
- Describe the Current method / Previous method pattern in plan section 5
- Add CLAUDE.md with the project guardrails and doc layout

Format filter-calculations.md so it renders on GitHub and in VS Code:
inline math uses $...$, ranges use en dashes, and implementation
references name functions instead of line numbers.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 17:31:26 -04:00
co-authored by Claude Opus 5
parent e855d583e3
commit 867a07cecb
20 changed files with 3519 additions and 121 deletions
+53
View File
@@ -0,0 +1,53 @@
# Filter reviews
Each filter has one review file (`01`–`12`) holding its findings, links to its
decisions, and its task checklist. [00-cross-filter.md](00-cross-filter.md)
holds findings that affect more than one filter. Review status is tracked in
[pipeline-plan.md](../pipeline-plan.md) §6, and every review follows the
checklist in §5.
## Conventions
- Each finding lives in exactly one review file. The other filter reviews it
affects link to it and record only how it applied to them.
- Findings keep one number across all review files. A new finding takes the
next number (27 as of 2026-09-15) wherever it is filed, and is added to the
index below.
- A finding that turns out to affect other filters moves to `00`, leaving a
link behind.
- A resolved finding stays where it is, with its resolution in italics.
- A finding accepted as a limitation becomes a caveat in
[filter-calculations.md](../filter-calculations.md).
## Finding index
Status is kept in each finding, not here.
| # | Finding | File |
| --- | --- | --- |
| 1 | Annual temperature weights months equally | [02](02-annual-avg-temperature.md) |
| 2 | Base NOAA aggregation is not area-weighted | [00](00-cross-filter.md) |
| 3 | Partial precipitation years are accepted | [06](06-annual-precipitation.md) |
| 4 | The Köppen fallback can create false data | [01](01-koppen.md) |
| 5 | Extreme-day counts are not completeness-normalized | [04](04-extreme-temperature-days.md) |
| 6 | The absolute-extreme metric depends on unrelated percentile thresholds | [04](04-extreme-temperature-days.md) |
| 7 | Heat Index days are a daily-extrema proxy | [05](05-heat-index-days.md) |
| 8 | Heat-year completeness is permissive | [05](05-heat-index-days.md) |
| 9 | The GHI formula assumes hourly, 365-day input | [11](11-solar-ghi.md) |
| 10 | Clear-sky reduction averages ratios rather than energy totals | [12](12-clear-sky-ghi-reduction.md) |
| 11 | Spatial weighting is inconsistent across metric families | [00](00-cross-filter.md) |
| 12 | Alaska and Hawaii are not covered by the NOAA and gridMET sources | [00](00-cross-filter.md) |
| 13 | Lexington, VA (51678) is missing from the NOAA daily county files | [00](00-cross-filter.md) |
| 14 | Helper functions are duplicated across scripts | [00](00-cross-filter.md) |
| 15 | The app's source text for three NOAA metrics names the wrong product | [00](00-cross-filter.md) |
| 16 | Source links point to retired or missing pages | [00](00-cross-filter.md) |
| 17 | The data-sources metric list is out of date | [00](00-cross-filter.md) |
| 18 | The data-sources doc describes the retired locally extreme metric | [04](04-extreme-temperature-days.md) |
| 19 | The data-sources doc recommends a GHI raster the pipeline does not use | [11](11-solar-ghi.md) |
| 20 | The base build labels any solar CSV as representative-point | [11](11-solar-ghi.md) |
| 21 | The documented Köppen labels differ from the app | [01](01-koppen.md) |
| 22 | The base build's docstring calls its Köppen value a majority class | [01](01-koppen.md) |
| 23 | The metric files and `metric_sources.json` were not in git | [00](00-cross-filter.md) |
| 24 | The data-sources doc does not cover several pipeline steps | [00](00-cross-filter.md) |
| 25 | Wettest and driest month are computed in two places | [00](00-cross-filter.md) |
| 26 | Solar GHI is finalized by the extreme-temperature apply step | [00](00-cross-filter.md) |