Skip to content

fix: repair rotted evidence-source URLs + scheduled link-rot CI - #42

Merged
cschanhniem merged 1 commit into
mainfrom
fix-source-rot
Jun 18, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
fix-source-rot

Conversation

@cschanhniem

Copy link
Copy Markdown
Contributor

Summary

Running pnpm verify:sources surfaced dead evidence URLs (HTTP 404). This PR repairs them honestly — pointing each record at the real underlying source and correcting claims to what that source supports — and adds a scheduled health check so rot is caught automatically.

Record Problem Fix
wmo-heat-health-2023 Dead WMO link Repaired to WMO Library record (WMO-No. 1335); confidence → medium; note to reconfirm counts
fao-grassland-degradation-2023 Cited report title not verifiable; '20-30% degraded' unsupported Re-sourced to FAO 2023 Global assessment of soil carbon in grasslands; claim rewritten to supported content; confidence → low
pollinator-monitoring-gap-tropical Dead ScienceDirect link; duplicated IPBES record Removed; gap is captured by the existing IPBES record (its own origin)

Plus .github/workflows/verify-sources-scheduled.yml — weekly + on-demand verify:sources health check.

Test plan

  • pnpm validate passes
  • All three replacement URLs return HTTP 200 under the source-checker user agent
  • Removed record leaves each pack with ≥1 evidence record

Protocol Notes

  • verify:sources now runs on a schedule (added here) rather than only when a pack is edited.
  • The fao-grassland-degradation-2023 case shows a confident, high-rated claim can carry a fabricated source title past review. Recommend a red-team pass that specifically attacks high-confidence single-source claims, and consider a validator rule flagging confidence: high records whose source URL has never passed verify:sources.
  • The .nic.in and geos-chem.org records reported fetch failed from one network (not HTTP 404); they may be geo/TLS-restricted and need confirmation from CI runners before any change.

Source rot surfaced by pnpm verify:sources (HTTP 404):
- heat-early-warning-systems-global / wmo-heat-health-2023: repaired to
  the WMO Library record (WMO-No. 1335); confidence lowered to medium and
  a note added that the country counts should be reconfirmed.
- grassland-degradation-central-asia / fao-grassland-degradation-2023:
  the cited 'Status of the World's Grasslands' report could not be
  confirmed to exist and its '20-30% degraded' figure was unsupported;
  re-sourced to FAO's verifiable 2023 'Global assessment of soil carbon
  in grasslands' and rewrote the claim to what that report supports
  (confidence low; Central-Asia degradation-extent figure still needed).
- pollinator-decline-agriculture-global / pollinator-monitoring-gap-tropical:
  removed — its URL had rotted and its claim duplicated the existing
  IPBES record (whose own limitations were the origin of the figure).

Adds .github/workflows/verify-sources-scheduled.yml: weekly + on-demand
health check so link rot is caught automatically, not only on pack edits.

Protocol Notes: verify:sources should run on a schedule (now added). The
'Status of the World's Grasslands' case shows a confident claim can carry
a fabricated source title past review; a red-team pass on high-confidence
single-source claims would catch this class of defect.
@cschanhniem
cschanhniem merged commit f2aa630 into main Jun 18, 2026
2 of 3 checks passed
@cschanhniem
cschanhniem deleted the fix-source-rot branch June 18, 2026 08:18
cschanhniem added a commit that referenced this pull request Jun 18, 2026
)

The scheduled source-health check flagged dead authoritative URLs. Each
record is re-pointed at the real underlying source and verified live.

URL/title repairs (claim unchanged, source clearly the same resource):
- landsat-lst-urban-heat-island -> USGS Landsat ST Product Guide (LSDS-1330)
- era5-land-cold-spell-analysis -> ESSD ERA5-Land reference paper
- census-migration-data-limitations -> UN DESA migrant stock (current path)
- insar-slope-deformation-monitoring -> Copernicus SentiWiki S1 mission
- icao-vaac-coverage-2024 -> ICAO Doc 9766 (Handbook on the IAVW)
- eyjafjallajokull-operational-lessons -> ICAO Doc 9974
- ioc-tsunami-warning-2024 -> UNESCO-IOC IOTWMS page
- who-uhc-2023 -> WHO item 9789240080379
- jmp-water-quality-2024 -> JMP 2023 WASH households report
- who-unicef-mhm-2023 -> JMP Menstrual Health page (was mislabeled)
- school-feeding-cost-effectiveness -> WFP State of School Feeding 2022
- who-ihr-monitoring-2024 -> WHO IHR SPAR page

Claim corrected to match the real source (old stat was unsupported):
- un-water-wastewater-2023: '80% untreated' -> UN-Water 6.3.1 '56% of
  domestic wastewater safely treated in 2022'
- unicef-breastfeeding-scorecard-2024: early-initiation 44% -> 46% (2023 ed)
- training-provider-data-fragmentation: unconfirmable 'landscape assessment'
  -> World Bank/ILO/UNESCO TVET systems report (2023), claim softened

evidence.md ledgers updated to match corrected claims.

Protocol Notes: like the FAO case in PR #42, several confident high-rated
claims carried fabricated or mismatched source titles/figures past review.
A red-team pass on high-confidence single-source numeric claims, plus a
validator linking confidence to a passing verify:sources check, would
catch this class systematically.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant