What changed, and when
Changelog
Each entry is a deployment of the site. Times are America/Chicago. The identifier is the Cloudflare Worker version that went live.
-
sponsors filters · FAQ · llms.txt/sponsors client-side filters. Chips: All | Senate | House | Central Iowa. Sort: Chair / Vice / Ranking first, then A–Z. One-line under filters: start with your own members via the finder; use Judiciary for a committee carrier. Disclaimer kept. Central Iowa = County column on official Senate / House lists includes Polk, Dallas, Warren, Story, Jasper, Madison, or Boone (fetched November 3, 2026) — 15 Judiciary members; not guessed from district number. Jasper and Madison had no Judiciary hits in that County column.
FAQ: new section Arguments you will hear against this bill — five steelman objections (victim safety with Holt RR 0.2 / 4.9 and CIs; court burden; VAWA 18 USC 2265 unchanged; “helps abusers”; ICADV directional conflict without smear). Links to /measurement, /states, /bill.
/llms.txt and /.well-known/llms.txt — short machine-readable campaign summary;
text/plainin_headers. Homepage: Arguments against → FAQ anchor; llms.txt in footer fine print.Worker version
99c62e23(feature), then24b74162recording this entry. -
testimony · link auditNew page: /testimony — subcommittee leave-behind / oral testimony outline. Timed ~3-minute oral bullets (problem: Hall + § 664A.5 no findings, O’Brien mootness, no Iowa outcomes; four safeguards; six cheapest-first sections one line each; what the bill does not do; sponsor/pass ask). One-page printable leave-behind with Print button and denser print CSS; links to /bill and /kit. Tips: identify as constituent; do not discuss personal open cases in a way that violates an order; not legal advice; orders stay in force. Wired into More nav, footer, /sponsors, /kit, /action, sitemap, feedback page enum, and 404.
Full link audit of every http(s) href in local HTML, bill.txt, and sitemap — HEAD/GET with timeout; non-200 after redirects logged. Broken internal links fixed; external legis.iowa.gov / CourtListener soft-404s replaced from the CourtListener audit report or official Iowa Courts PDFs, or marked status S with dead href removed. No invented citations. Detail:
workspaces/reports/foursafeguards-link-audit-20261103.md.Site search skipped (would bloat). Worker version
f4ecbe18(feature), thend9e762cc/cdfcf024recording this entry. -
nav · /states · RSSNav reorg. Primary (always visible): Home, Sponsor kit, Sponsors, Model bill, Take action. Secondary pages live in a native
<details class="nav-more">“More” disclosure — keyboard-accessible, no hover-only mega menu. Current page keepsaria-current="page". Mobile: primary wraps; More expands inline. Applied on every page including 404.New page: /states — “How other jurisdictions handle the hearing.” Table of six verified rows: Iowa (§ 664A.3 / § 664A.5 / Hall); Connecticut (Fernando A.); New York (Crawford); Massachusetts (G.L. c. 209A § 4 + C.O. v. M.M.); Wisconsin as-applied (Blazel); England (Family Division Practice Guidance, 14-day return — labeled England, not a U.S. state). Links back to bill Divisions II–V. Unverified statutes omitted.
Changelog RSS: /changelog.xml (
application/rss+xml), last ~10 entries;rel=alternateon this page and home;_headerscontent-type.Wired into More nav, footer, sitemap, and feedback page enum.
Version
f0217321(feature), then33690ead/9ee5004drecording this entry. -
press · bill.txt · sponsor-askNew page: /press — media / excerpt kit. One-paragraph boilerplate (criminal 664A first, six sections, not a repeal, Hall holding that courts will not require findings so the Legislature must); 5–7 quotable lines with sources; key-facts box (Holt RRs with CIs, Dowling OR, Iowa no outcome series, HF 523 eff. Jul 1 2026, sine die May 3 2026); links to /kit /bill /sponsors /measurement /cases; print-friendly; unique meta and OG tags. Not legal advice; orders stay in force.
Bill download: /bill links to /bill.txt (Iowa drafting style, DRAFT watermark, same disclaimer;
text/plainvia_headers). HTML remains canonical.Sponsor-ask tally: optional radio on public comment — asked an Iowa legislator to sponsor (yes / not yet / prefer not to say). Stored in D1 as
asked_sponsor; counts only in/api/opinion/summary. One-line display on /opinion and /sponsors when yes > 0.Wired into primary/footer nav, 404, sitemap, feedback enums, homepage media note.
Version
5c48aaa2. -
Judiciary roster · /sponsorsNew page: /sponsors — who can introduce this bill. Explains that any Representative or Senator can sponsor; Judiciary is a natural first ask for 664A/236 procedure bills. Lists current (91st General Assembly) House and Senate Judiciary membership copied from legis.iowa.gov/committees only — name, chamber, party, role, district, and Capitol phone when the official legislator page publishes one; links only to official legislator pages. Clear non-endorsement disclaimer; ask-your-own-members first (legislator finder); what to hand them (/kit, /bill, /timeline); HF 523 / sine die / 2027 session note; legal-advice and orders-stay-in-force banner.
Wired into primary/footer nav, 404, sitemap, feedback page list, homepage CTA, /action, /kit, and /lever#sponsors. Sample message on /action keeps the sponsorship ask and adds an optional bracketed Judiciary sentence that names no people. All member links verified HTTP 200 at fetch.
Version
7b6ec7da. -
sponsors · kit · firms outLobbying firms removed; site asks for legislative sponsors. The public firm table on the cheapest-lever page is gone (no firm names, phones, or sites). “Who can carry it” now points at Representatives and Senators as sponsors, the legislator finder, a generic lobbyist-registry link, conflict-check advice without naming firms, and the ICADV caution. Take-action and timeline copy rewritten sponsor-first; sample message asks for sponsorship, not vague support. Homepage primary CTA: “Ask a legislator to sponsor.”
New page: /kit — sponsor ask kit for a legislator or staffer (problem in five bullets, four safeguards, six cheapest sections, what the bill does not do, clear Ask block, print stylesheet for a ≤2-page Letter packet). Wired into primary/footer nav, 404, sitemap, and feedback page list. No separate conflict-check download; retainer advice stays generic on /action §4 and /lever.
Version
fa768b9c. -
Hall lead · timelineHall as the headline political argument; 2027 session path; share polish. Home page now opens with a prominent callout on State v. Hall (Iowa May 22, 2026, unanimous): a five-year § 664A.5 order requires only the conviction, deferred judgment, or plea — no additional findings — and notice plus the sentencing hearing satisfies due process, so only the Legislature can require written findings. Links to lever §2 (new
id="findings") and the model bill. Framing is political of an adverse holding, not a claim that Hall is favorable.New page: /timeline — 2026 adjourned sine die May 3; HF 523 effective July 1, 2026 (§ 236.6 left alone); before-January work (sponsor, conflict check, LSA); subcommittee → floor → Governor; cheapest-first six sections; orders already signed stay in force. Navigation, footer, 404, and sitemap add Timeline on every page. Homepage and take-action CTAs make Public comment and Feedback first-class; the take-action page no longer says the site has no contact form — it keeps “no mailing list” and points to /opinion and /feedback.
Share/SEO: unique titles and descriptions retained; static OG image at
assets/og.png(oxblood/paper) wired asog:image/twitter:imagewith absolutehttps://foursafeguards.org/…URLs;twitter:cardset tosummary_large_image. Focus-visible styles reinforced on buttons, links-as-buttons, and form controls.Version
84ca1eb8. -
authorities auditAuthorities page restored; CourtListener audit applied. The authorities page had been rendering empty because the data array behind it was lost in an earlier rewrite. The 48 entries were recovered and now live in assets/casebook-data.js, loaded before the renderer. Thirteen Iowa authorities were added from the audit: Hutcheson (1992), Hunter, Lynch, Toler Sr., Flores v. Aragon Nunez, McGuire, Henson, State v. J. Doe (2023), Dayton v. Asberry, Barra v. Everett, Turner v. Belman, Huber, and Huffer. The list is now 61 entries.
Corrections to legal statements, by page and sentence. State v. Hall (Iowa May 22, 2026) was read and upgraded from S to P everywhere it appears (home, harm, cheapest lever, Iowa scorecard, research, FAQ, model bill): it holds unanimously that a five-year § 664A.5 order requires no proof, findings, or explanation beyond the conviction and that notice plus the sentencing hearing satisfies due process. Henley (Iowa 1995) was read and upgraded to P; "jailed" became "held in contempt, seven days suspended," following Hutcheson. The mootness discussion on the harm, research, Iowa, lever, and bill pages no longer calls O'Brien v. Young and T.F. v. C.G. an unreconciled split; O'Brien, Flores, McGuire, Henson, and R.M. v. D.S. state the rule and T.F. is the exception. Charles v. Charles: the husband filed for limited divorce that day and the wife petitioned that evening; court renamed Appellate Court of Maryland. Wiederien construed § 708.12(2), the predecessor of chapter 664A, 4–3. Ewoldt: "and a taunt" removed. Crespo: unverified "7–0" removed (research, FAQ). Ary: link pointed at the correct opinion and noted as a dissolution-decree contempt case. Reporter citations added for Rasmussen (7 N.W.3d 357) and Petro (981 N.W.2d 686). Source links for Fuentes, Blazel, C.O. v. M.M., Kerry G., Kampf, Granath, Putman, Howsare, Runyan, Goldston, and § 236.20 replaced with the primary opinion or official text.
Version
6f9d0df3, followed by a follow-up deploy that recorded this id. -
third passPublic comment and feedback channels added. New pages: /opinion (a short public-comment form: role, the safeguard that matters most, two yes/no/unsure questions on the fourteen-day hearing and written findings, Iowa county, an optional comment, and an opt-in to publish an anonymized excerpt) and /feedback (citation, link, number, accessibility, and wording corrections, with an optional source URL). Aggregate counts for the public-comment questions are published on the opinion page as responses arrive; individual comments and all feedback are private to the site owner.
The site now runs as a Cloudflare Worker with static assets. Forms post to
/api/opinionand/api/feedback, are checked by Cloudflare Turnstile and a hidden honeypot field, rate-limited to five submissions an hour per hashed address, and stored in a D1 database with an hour-coarse timestamp. No email is collected on the opinion form; the feedback form's contact line is stored only and never auto-replied. Navigation and the sitemap add Public comment and Feedback on every page.Version
7a896c8c(the deploy that shipped the forms), followed by a follow-up deploy recording this entry and the README. -
second passTake action, model bill, FAQ, and this changelog added. New pages: /action (legislator lookup, a sample message with a copy button, a printable one-page memo), /bill (draft statutory text for the six sections, cheapest first, with drafting notes and an applicability division that leaves every existing order in place), /faq (counterarguments and answers, every number with its interval, adverse authorities marked), and /changelog.
Navigation now carries Take action, Model bill, and FAQ on every page, including the not-found page, and wraps on narrow screens instead of scrolling off-screen; footer navigation adds Changelog. Sitemap updated. JSON-LD added (WebSite on the home page, Article or FAQPage on content pages). A "last updated" date added to every footer. The contract-lobbyist contact table on the cheapest-lever page was removed; that page now points to the Legislature's lobbyist search and says what to ask a firm, and names none. Color contrast of the verification pills and link colors checked against WCAG AA; the lowest pair measured 5.65:1, so no colors changed. The project was placed under version control.
Version
0b6b7db3, followed the same morning by a small follow-up deploy that recorded this id, adjusted the take-action page's wording about lobbyists, and kept non-site files out of the asset upload. -
9:28 amRevision. The cheapest-lever page was the only file written between the 9:25 deploy and this one. Changes were not recorded sentence by sentence before this changelog existed.
Version
7e403f40. -
9:25 amRevision. Files written before this deploy: the seven pages, the not-found page, the sitemap, robots.txt, and the response-header file. Changes were not recorded sentence by sentence before this changelog existed.
Version
c05fa8b6. -
8:41–8:44 amLaunch. First upload of the site to the
four-safeguardsCloudflare Worker, followed by two redeploys within three minutes. Seven pages: home, harm, measurement, cheapest lever, Iowa scorecard, authorities, research.Versions
527693b9,716fedb7,94a236a7.
Substantive corrections to a legal statement or a number will be listed here with the page and the sentence that changed.