KB: frameworks/ner-drought/2026-06-03.md (Claude draft, Opus-reviewed) - #488
Merged
Merged
Conversation
…an; Opus-reviewed)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Auto-drafted
frameworks/ner-drought/2026-06-03.mdvia headless Claude on the Max plan, then reviewed in place by Opus against the template + public sources (the same QA gate as the interactive ingest). The Opus review summary is below — use it to spot-check and merge. Worth confirming yourself: frontmatter conforms to the template, deployment/jobs match reality, source_repo/branch/sha, depends_on.🤖 Opus pre-review
Both gates pass (
YAML OK,links: clean, validity check clean). Here's the review summary.Verdict: Ready to merge — the draft was unusually accurate on the hard numbers, but three factual claims were wrong and are now fixed; the remaining open items are genuine team questions, not page defects.
Checked (repo is public, so I cloned
ocha-dap/ds-aa-ner-droughtatiri-trendand verified against code, not prose):source_sha/ dating —1073c22is the branch tip (2026-07-30);1a5fa3a= 2026-06-03, matching the version label;mainlast commite6323b42025-03-28 "init" with nodocs/. All commit dates fromgit log.index.qmd) reproduced exactly from the committed renderdocs_quarto/index.html:N_ABOVE=3/N_BELOW=5, 1998–2025 (28 yrs), forecast arm 5 yrs (2001, 2006, 2011, 2015, 2023), obs arm 5 yrs (2004, 2006, 2013, 2015, 2022), 8/28 → 1-in-3.6 (target 3.5),Aug (obs) ≤ -0.4830, and every 2026/2027 back-transformed threshold (Jan 28.5/27.8 … Jun 28.4/27.6). I also re-derived the −0.483 obs threshold independently from the bundled export. Caption "Trigger thresholds in fully detrended space" listing the rawAugvalue: confirmed.rolling_threshold_marimo.py) — sliders default forecast 35% / obs 15%;ref_window = 10strictly prior years; k-th highest actual value (no interpolation);start_eval_year = 2001,rp_target = 3.5;scipy.stats.spearmanr(notcorrcoef).https://ocha-dap.github.io/ds-aa-ner-drought/is byte-identical (md5) todocs/index.htmloniri-trend;quarto-publish.ymland its.disabledtwin are identical files,_quarto.ymlstilloutput-dir: docs. Stray root PNGs confirmed byte-different from theexploration/copies.raw/frameworks/ner-drought/2024-10-24.txt: top/lowest 35% both arms; "chaque mois entre février et juin pour les prévisions, et en août pour le SPI" (quoted exactly inmonitoring_period.note); CHIRP fallback at ≥20% missing stations by 7 Aug. Note the PDF frames its own target as ~1-in-3, while the repo's 3.5 is sourced toiri_trend.md("3.5 ans (limite minimum CERF)").activations: []is correct for this dev version.Per-country variantscorrectly deleted, NER-only), no placeholder text;apps/model_reportURLs return 200.Changed:
full_trigger.md"recommends no pair" was wrong. It selectssel_q = 0.55(forecast top 55%) andsel_n_obsv = 4(obs threshold −0.484) and renders a French per-year table on it. I reproduced that pair from the committed export: forecast 6 yrs, obs 4 yrs, 8/28 ≈ 1-in-3.6 — it hits its ownn_target. Rewritten as a third distinct calibration in the discrepancy, Method §3, Key decisions and Sources summary. Also added: its committed outputs assume an 8-column export and the export now has 9 (JAS_SPIadded), so it would not run as written.bad_year_rank/CERF cross-check was mis-dated as new.bad_year_rank+ the trigger-status Spearman correlations already existed atafef129(added 2026-05-29); the realafef129→1073c22delta is only the indicator-margin correlation panel (547b36e) and the CERF RR column (1073c22). Corrected in the discrepancy, Method §1, and "Changes from previous version". Also noted the CERF series is a display column only, not fed into any correlation.bad_year_rank"no reference anywhere in the repo" was too strong. There is a lead: a commented-out"Humanitarian Bad Years (rank)"/"Amount in US$"column rename infull_trigger.md, i.e. both series were once export columns and are now hardcoded — so the cross-check is a re-activation, not a new idea. Also pinned down the ranking's shape (31 yrs 1991–2021; only 16 carry ranks 1–17 with rank 6 absent; 15 filled with sentinel 32).extra.version_labelclaimed1a5fa3ais also the 2024-10-24 page'ssource_sha— it isn't (that page recordsafef129). Corrected.prior_page_correctiondates:detrending.mdwas last touched 2026-04-20 (not 2026-05-19); the app moved to 2026-07-30 (not 07-29).extra.resync_noteto record what the QA pass actually verified.discrepanciesintoextra(page fix, not a repo-vs-doc disagreement — matches this page's own precedent).code_ref: droppedREADME.md(2 lines, no trigger content), addedexploration/detrending_marimo.py(the grid-search the body cites).full_trigger.md's 0.55/4 selection.Still verify:
Augcolumn's true provenance — ENACTS MON Jun–Jul SPI (marimo app) or CHIRPS-based August z-score (index.qmd)? Same column of the same export, contradictory labels; the endorsed PDF makes both plausible. Needs the team, not a code read. (data_sourcesdeliberately left without CHIRP rather than asserting a contested source.)bad_year_rank's actual methodology — the "Humanitarian Bad Years (rank)" spreadsheet lead narrows it, but it's still being used as external ground truth for candidate A without a citation.docs/public/iri_data.csv), whichmake_data.pydumps verbatim.all_in: truecarries only the schema default (should likely becomefalseat endorsement, given W1 $5.25M / W2 $9.6M); the page slug is dated rather than the template's branch-name/draft-<label>form for unpublished versions.2024-10-24.mdlistsmonitoring_period.months: [1,2,3,4,5,6,8]where the PDF puts decisions in Feb–Jun + Aug — this page's[2,3,4,5,6,8]is the better reading and the two should be aligned; (2) the CERF AA Update reports Niger co-financing of $6.1M against that page'scofinancing_usd: 4099659. Also, per INGESTION.md the GH Pages URL should gain a row ininfrastructure/deployments.md.Closes #455