[scheduled:data-sync] Mechanical data sync 2026-10-03 - #17
nguyenthanhvuh wants to merge 1 commit into
Conversation
Ran the three authorized mechanical sync scripts per docs/AUTOMATION.md's data-sync section: - sync:nsf:names: re-resolved NSF investigator names against the current CSRankings roster. 230 differing names recorded in public/nsf-name-crosswalk.csv (down from 245); award count unchanged at 20798. 9 previously-resolved names now fail to match the roster exactly or by first/last-name identity (Chee-Keng Yap, Chen-Ching Liu, Danaë Metaxa, Fei-Fei Li, Héctor Muñoz-Avila, Jana Kosecká, Basak Güler, Chung-Hwan Kim, David Saldaña) and their rosterName is now null in nsf-awards.json; 1 new resolution added (Mark A. Hasegawa-Johnson). - sync:csrankings-rules: re-fetched upstream csrankings.py; content hash (sourceVersion) unchanged, only the syncedAt timestamp moved. - check:size: passed, no files changed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RUjwmcs26QcoxY9k4yaf9z
sync-nsf-roster-names.mjs used a stricter nameWords than sync-nsf-awards.mjs, so the monthly data-sync unlinked 15 faculty (54 awards) that the full sync had resolved, e.g. Jana Kosecká -> Jana Kosecka, Chen-Ching Liu -> Chen Liu 0027 (PR #17). With the same folding it reproduces main's attributions exactly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rb8aKy6S5J1kBTk8L2gpRp
|
Auditor ( What's wrong. Checked against the source. I downloaded today's CSRankings Fix. Commit 098c58a on Nothing else is lost. The only change in Generated by Claude Code |
Mechanical sync per
docs/AUTOMATION.md's data-sync section. No web research performed; only the three authorized scripts were run.Commands run
npm run sync:nsf:namesnpm run sync:csrankings-rulesnpm run check:sizeDiff stats
public/nsf-awards.json/public/nsf-name-crosswalk.csv(sync:nsf:names)Award count unchanged: 20798 → 20798.
Crosswalk rows: 245 → 230 differing names.
1 new resolution added:
Mark A. Hasegawa-Johnson→Mark Hasegawa-Johnson(Univ. of Illinois at Urbana-Champaign).9 previously-resolved names no longer match the current CSRankings roster (exact or first/last-name identity) and now have
rosterName: nullinnsf-awards.json(54 investigator records across their awards):This script uses stricter exact/identity-key matching than whatever produced the prior crosswalk (comment previously credited
sync-nsf-awards.mjs); several of these are accent/diacritic variants (Héctor/Hector, Danaë/Danaé) that the stricter matcher doesn't fold. Flagging for the auditor rather than guessing a fix, per the "unknown beats wrong" rule — this routine does no web research and can't confirm whether these are still active CSRankings roster members under a different exact string.coverageunchanged (10579/10579 faculty, 198/198 institutions, 0 failures).src/csrankings-rules.generated.js(sync:csrankings-rules)sourceVersion(upstream content hash) unchanged — upstreamcsrankings.pytaxonomy has not changed since the last sync.syncedAttimestamp moved:2026-09-23T05:21:03.904Z→2026-10-03T00:40:49.297Z.check:size: passed, no files changed.No near-total rewrite or entry-count drop in either generated file, so this is a normal PR rather than an Issue.
Validation
npm test— 84/84 passednpm run typecheck— cleannpm run build— succeeded (676 university + 27 area SEO pages generated; one pre-existing, unrelated warning aboutdblp-aliases.csvfailing to parse as optional SEO metadata, not caused by this change)git diff --check— cleanSummary
sync:nsf:names,sync:csrankings-rules,check:size(all three authorized commands;sync:nsf:alland the OpenAlex rebuild were not run, per the non-negotiable constraint).[scheduled:data-sync]PR/Issue to defer to.🤖 Generated with Claude Code
https://claude.ai/code/session_01RUjwmcs26QcoxY9k4yaf9z
Generated by Claude Code