The county fills were technically correct but visually near-black: linear
min-max scaling crammed a right-skewed distribution into the dark end, so
the map read as empty. Fixes:
- Rank (percentile) coloring — spread the full palette evenly across
counties, the standard choropleth technique, so every lens shows rich
variation instead of a few bright outliers on black.
- Brighter per-lens ramps (income green, population teal, poverty amber).
- Coverage amber lifted so Florida's 67 lit counties are unmistakable
against the fog-of-war country.
- Default lens is now Median income, so the map opens full of color;
Coverage (the fog of war) is one click away.
Verified in-browser: full green income choropleth, Florida clearly lit in
coverage, hover readout prints each county's demographics + officeholders.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Republic OS
An open, version-controlled mirror of public power in the United States.
Government is already software: statutes are code, agencies are processes, elections change the maintainers, and a bill is a pull request against the law. What government has never had is a changelog. This repository is that changelog.
The diff is the product. Every file here mirrors the observable public state of a government entity as a deterministic, sourced, human-readable record. When government changes, the files change, and git makes the change visible, permanent, and inspectable.
What's in here today
17,506 entity files, every one schema-validated:
| Entity | Count | What it is |
|---|---|---|
| Person | 11,285 | Current officeholders — federal, all 50 state legislatures, and Florida down to the municipal level. Federal members carry their bioguide ID, leadership roles, and committee seats. |
| Body | 233 | The institutions themselves — the U.S. House, the Senate, 49 committees, 181 subcommittees, each with its leadership. |
| Candidate | 2,494 | Everyone running for federal office in 2026, from FEC filings. |
| Jurisdiction | 3,494 | Every U.S. county (3,131) and 363 congressional districts, each carrying Census demographics — the nationwide skeleton, filled with data. |
The mirror answers, with receipts: who holds power, who runs the institution, who's running, and what each place is made of — and, through git, what changed.
How it works
raw source exports deterministic build validated tree
data/*.jsonl ──► scripts/build.py ──► data/jurisdictions/**
(committed as-is) (7 inputs, one pass) (OKF markdown + YAML)
- Format — Markdown with YAML frontmatter, OKF-conformant, validated by JSON Schema in
/schemas. Human-readable in any editor or on GitHub; machine-readable by any agent. - Deterministic —
make buildtwice yields a byte-identical tree. Entity files change only when the government changes, so every diff is signal. - Sourced — every record carries field-level provenance and a confidence level. This repo is a mirror, never the authority; official sources remain the source of truth.
- Raw-first — source exports land in
data/*.jsonluntouched before any transformation, so the origin is always recoverable.
Commands
make build # regenerate the entity tree from the raw exports
make validate # OKF + schema + link-integrity checks on all 17,506 files
make changelog # what changed in the government since the last commit
make check # build, then validate — the full gate
Everything runs on the Python standard library. No dependencies to install.
Documentation
- Government as Code — the philosophy: why git, and what its primitives mean for government
- Data Model — entity types, IDs, the file format, the jurisdiction tree
- Sources — where every fact comes from, and how current it is
- Roadmap — what exists, what's next
- Contributing — the disciplines, and how to add a source
- Technical Brief — Government as Software — the founding document
- CHANGELOG.md — the civic changelog, generated from git history
The disciplines
Three rules govern everything here, and they are won by subtraction:
- Never overwrite — a change is a new commit, not a clobbered file. Deletes are diffs.
- Never rewrite history — no force-push, no squash. The past is load-bearing.
- Always push off-box — one copy is a single point of failure; more is not.
Substrate for influence.tools.