UNDERSTORY LABSSHIPPEDfeatureinfrastructurelaunch
Ballot guide, multi-area — shipped
Features
- Multi-area ballot guide shipped — 77 source-cited decisions live across Hendricks (Lincoln, Washington) and Marion (Pike, Lawrence), every research row
full
- Marion Superior Court retentions (15 judges) and the Court of Appeals retention published under one shared standard for independent reporting, with a pending-discipline flag on one judge
- 18 uncontested races vetted — why each ballot row has one name, the nominee's record, and every audit and court-record result stated with its limits
- "Ask for your ballot" — readers give a county, township or town and ZIP (never a street address) and requests reach Discord within ten minutes
- Tap-to-pick — names under "On the ballot" set the pick directly, in sync with the picker below
Infrastructure
request feedback kind added to ballot_2026_feedback with a widened check constraint and a notified_at column
- Alert job on CT 100 posts new rows once to
#ballot-guide through its own webhook, secrets in a mode-600 env file written from stdin
- Verification ran as read-only agents per group, then a separate fix pass — 8 of 18 uncontested contests came back partly unsupported before correction
Lessons
- A verifier's recommendation can rest on a wrong assumption — excluding AI-assisted court digests did not leave one judge with zero reports, because the outlet's next eligible item took its place
- Drafter-reduced snapshots must say so in their metadata — a transcription labelled "original" was the first thing every verifier flagged
- Image-only PDF pages hide the party's own response — reading them in the viewer changed what a fair summary of the Pike audit said
- PowerShell strips inner quotes from a remote
ssh command, so a secret has to travel on stdin to a script already on the host
- A Vercel preview failing on a Google font module in a file nobody touched was transient — a redeploy built the same commit
TODO
- Refresh campaign finance after the Oct 16 pre-election reports
- Replace statute hedges once the enrolled HEA 1033 text is captured