c22d86450b
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.1 KiB
6.1 KiB
Roadmap
An honest account of what exists, what's next, and what's further out. This repository will always be evolving; there is no "finished."
Done
- The substrate — repo-canonical, OKF markdown + YAML frontmatter, JSON-Schema validated, deterministic build (byte-identical on rerun).
- Six entity types, 302,874 files — Person (13,329), Body (275), Candidate (2,494), Jurisdiction (29,905), LegalText (59,740), Bill (197,131).
- The federal government, structurally — every member of Congress, the chambers, 49 committees and 181 subcommittees with their leadership, and every member's committee seats.
- The nationwide county skeleton — all 3,131 U.S. counties as demographic nodes, plus all 435 congressional districts (Census ACS demographics on 363).
- The authority layer — every state legislative district (4,927 house, 1,897 senate) linked county↔district↔legislator, nationwide.
- The municipal layer — every incorporated place in the country (19,513 cities, towns, villages, boroughs) as a first-class Jurisdiction node keyed by Census place GEOID, modelled like a county (place + government fused). 2,229 are filled with their officeholders today (2,217 GEOID-resolved off a 98.8% name→GEOID join); the rest are truthful skeleton stubs — "governed, not yet mirrored" — waiting for depth, the same discipline as the county skeleton.
- The complete U.S. Code — every section of all 53 populated titles (Title 53 is reserved), 59,740 per-section records, mirrored from the official OLRC USLM XML at release point 119-100, uniform edition end to end, with manifests and checksums.
- The authority axis (v1) — the executive branch minted as nodes from the Code's own enumerations (15 Cabinet departments from 5 U.S.C. § 101, 21 Level I offices from § 5312), and 27,804 edges linking 17,031 sections to the offices they empower.
scripts/extract_authority.py→data/section_authority_edges.jsonl(a committed input, like the district edges); reciprocal "empowered by" links render on each office node. Named references only for now (cabinet-level); relative refs ("the Secretary") and the agency long tail are next. - The legislation corpus — 197,131 enacted bills and resolutions from all 50 states (OpenStates vintage 2026-07-01) as
Billrecords with version chains, sponsors, votes, and action timelines. Raw JSONL off-repo on the depot; the per-state SHA-256 manifest committed as the provenance anchor. The state-law "merged PRs" beside the U.S. Code's "deployed branch"; the next vintage's diff is the changelog of American state law. - The 2026 federal candidate field — every FEC filing as a Candidate.
- Florida to the ground — officeholders down to the municipal level across all 67 counties.
- The pipeline —
make build/validate/changelog/check, standard-library only. - The changelog engine — git diffs rendered as a plain-language civic changelog.
- The Board — a self-contained coverage map (
viz/board.html).
Next
- Self-updating mirror — the
make checkGitHub Action now guards every push; next is the scheduled job that pulls a fresh Atlas export, rebuilds, and commits the changelog automatically. That is the point where the mirror maintains itself and the daily civic changelog becomes real (the first re-sync diff, where only genuine government changes surface). - Deepen the authority axis — v1 links cabinet-level named references. Next: resolve relative references ("the Secretary", "the Commission") via each title's definitions section; mint the agency long tail (~600 more offices the Code names — EPA, OPM, FCC, GAO…); attach current occupants (a Person for the sitting Secretary, from Atlas); and render the reverse edge on the section files themselves.
- The Code as a living diff — re-sync the Code at each new OLRC release point so amendments surface as diffs: a new public law becomes a visible change to the affected sections.
- The demographic choropleth — the Board already has ACS data for every county; shade the map by population, income, and poverty, turning it from a coverage indicator into an instrument.
- Fill the municipal skeleton — the 19,513 city nodes exist; 2,229 carry officeholders. The work now is depth: pull municipal officeholders for the next states (Texas, California, Ohio all have a spine already), each a diff against a node that's waiting. Municipal ACS demographics would enrich every city node the way ACS already enriches counties.
- State and local bodies — Bodies (as distinct institution files) currently exist only at the federal level. Mint them for state legislatures and, following the municipal layer, county commissions where they warrant a Body of their own.
- Graph export — a loader that walks the tree and builds the relationship graph (Memgraph) as a materialized view, so the repo can rehydrate the graph rather than the reverse.
Later
- The issues axis — cross-cutting
Issueentities that link people, bodies, and places across the jurisdiction tree, so the mirror answers "who, nationwide, is touching this issue?" and not only "who governs here?" - The money layer — donations, contracts, and grants as sourced event files; the flows that make influence legible (the Sankey / "circuit-breaker" views from the brief).
- Meetings and agendas — the highest-value local data, and the hardest: scraped from Legistar / Granicus / CivicPlus portals and, where towns publish nothing in text, from meeting video. A new agenda item is a diff with a deadline — a mission.
- Contribution as correction — let people propose fixes to the mirror (a wrong phone number, a missed meeting) as pull requests, making the public literal contributors to their own civic record.
Non-goals
Deliberately out of scope, to keep the mirror honest and buildable:
- Becoming an authority. This is a mirror; official sources remain the source of truth.
- A heavy web application, database dependency, or graph-database setup in the core repository. The substrate stays flat files.
- Ingesting all of government at once. Depth follows attention, county by county.