Legislation axis: Bill schema, OpenStates ingest, validator + provenance

The legislative-process corpus, parallel to the U.S. Code statute corpus.
schemas/bill.schema.json + scripts/ingest_legislation.py (deterministic,
stdlib-only, reads per-state JSONL from the depot); validate.py gains
legislation/ as a third tree; Makefile 'legislation' target. Raw JSONL stays
off-repo on the depot (gitignored); the per-state SHA-256 manifest is the
committed provenance anchor. Vintage 2026-07-01.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Fabio
2026-07-06 17:24:31 -04:00
parent 246d014a4e
commit 7764501bcf
7 changed files with 669 additions and 2 deletions
+5
View File
@@ -7,3 +7,8 @@
# "raw-first, in-repo" discipline turns on at v1.0 — see README.
data/legal/raw/**/*.zip
data/legal/raw/**/*.xml
# Legislation (OpenStates): per-state enacted exports are the raw bytes
# (~1.1GB/vintage), kept on the depot at /depot/exports/legislation/<vintage>/;
# ingest reads them from there. Only the manifest (committed under data/sources/)
# + the rendered Bill nodes get committed.
data/legislation/