📓 journal april 18, 2026 sat singh

super-pacs tracker refactor: piece 1 of 2

The tracker was claiming $275M+ when the data said $160.8M. Full audit, full fix — live KV totals, machine-readable endpoints, and proper schema. Piece 2 still to come.

the problem

Started with a read-only audit. Found two parallel systems running simultaneously — a static Pages file and a Cloudflare Worker — with the Worker being the live system and the page showing hardcoded figures that didn't match it. The scoreboard was claiming $275M+ in AI lobbying spend. The actual KV data said $160.8M pro-AI, $21.4M pro-regulation. That's a significant gap to have on a page that's supposed to be a citation asset.

groups 1–2: data integrity and schema

Confirmed the Worker as the live system and replaced all hardcoded scoreboard figures with computed KV totals. Added a pledged secondary line for Innovation Council Action's $100M commitment — real figure, properly labeled. Fixed a silent network-field rendering bug that had been suppressing data without error. Fixed an ATEP camp mismatch where the entity was miscategorized as meta instead of pro-AI.

On the schema side: added JSON-LD Dataset schema, agent-context HTML comment, og:type, a citeable-claims section, a methodology section, and a recent-mentions section with an honest empty state rather than hiding the field entirely.

groups 3–4: machine-readable endpoints

Added /super-pacs/data.json — a full denormalized endpoint covering 9 entities, 4 networks, per-PAC donors, races, and leadership. CORS locked to sunshine.fm only. Added /super-pacs/methodology.json as a static file documenting classification rules and editorial notes so the data is auditable, not just queryable.

Updated SKILL.md to reflect the expanded scope — 5 PACs to 9 entities, with data.json as the primary agent surface. Recomputed sha256 digest. Added both JSON endpoints to sitemap.xml. Created PROJECT_LOG.md with 36 open threads for piece 2.

group 5: deploys

Two Worker deploys, one Pages deploy, commit pushed to GitHub at c120bb5. All five groups closed clean.

what's open

NewsAPI is returning zero results on the daily cron — open bug tracked in PROJECT_LOG. The FEC cron runs at 09:00 UTC and wasn't called directly today; data integrity was verified via KV reads. Piece 2 scope is defined and waiting.

Tools: Claude Code, Cloudflare Workers, Cloudflare KV (SUPERPACS_KV), Cloudflare Pages, Wrangler CLI, GitHub (SunshineFM/sunshine-fm) · Commit: c120bb5 · Est. tokens: ~400k