Three new source datasets from Atlas, committed as-is before any build:
fec_candidates.jsonl 2,494 2026 federal candidates (officeholders.fec_data)
acs_county.jsonl 3,231 Census ACS 2023 by county (~100 dup keys to dedupe)
acs_cd.jsonl 363 Census ACS 2023 by congressional district
A new axis for the mirror: who is running (candidates) and the
demographics of each place (ACS). Keyed on fec_id / state+district /
county_fips — no person links yet. Raw first; the build into Candidate
and Jurisdiction entities follows.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The one radical view whose data is fully real today (brief §4.5).
Renders every officeholder in the mirror as coverage: teal is the
federal + state tier (the roof, every state), amber is county +
municipal depth (the foundation, so far only Florida). Click Florida
to descend into its 67 counties, shaded by local officeholder count.
Self-contained: inlined US state + FL county geometry, hand-rolled
lng/lat projection, vanilla JS — no external requests, no build deps.
Instrument aesthetic: dark ground, mono readout, breathing amber to
invite the drill-down. viz/coverage.json is generated from the tree.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The seat data answered 'who represents this place?' but not 'who runs
this institution?' — the Speaker of the House existed only as the rep
for LA-4. This adds the missing axis of institutional power.
New Body entities (233): the U.S. House, U.S. Senate, Executive Office,
49 committees, 181 subcommittees — each with its leadership.
Federal people (532/542) enriched with bioguide IDs, leadership roles,
and committee seats, reconciled from congress-legislators by name.
Mike Johnson is now Speaker of the House, not just LA-4.
Sources ingested directly into the repo (repo-canonical): Atlas
supplied bodies/leadership/committee_memberships via congress-legislators,
committed raw in data/. build.py supersedes convert_officeholders.py and
reads all four inputs in one deterministic pass (byte-identical on rerun).
The 10 unenriched federal records are a finding, not a bug: vacancies,
the President, and ~5 seats where Atlas's roster disagrees with the
authoritative current roster — model-vs-reality discrepancies to surface.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One record, one file. The jurisdiction tree is now real:
us/people/ 542 federal
us/states/<xx>/people/ 7,561 state
us/states/fl/counties/<c>/people/ 1,058 county
.../municipalities/<m>/people/ 2,124 municipal (67 FL counties)
Each file is OKF markdown + YAML frontmatter: fixed key order,
field-level source provenance, Atlas UUIDs for round-tripping,
deterministic paths and slugs. Converter passes the determinism
test: two runs, byte-identical tree.
Generated by scripts/convert_officeholders.py from
data/officeholders-v2.jsonl (unchanged).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The only surviving copy of the dataset after the DB loss on
10.0.0.116 — committed as-is, before any transformation.
Federal (536), state (7,560), county (1,057), municipal (2,118)
current officeholders. Source: Atlas via /depot/exports,
generated 2026-07-03.
Raw first, refined later: the conversion into structured entity
files will itself be a visible diff.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Government as an operating system, git as its missing changelog.
The mirror architecture, influence as a computable tool, a visual
grammar for power, and the game layer that lights the map.
The diff is the product.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>