# Supreme Judicial Court — v1.3 (2026-10-14)

Every justice of the Maine Supreme Judicial Court since 1820: 118 justices, 144 commissions.

| file | contents |
|---|---|
| `sjc_justices.csv` | One row per justice: Cleaves number, name, residence at appointment, first appointment date and role (AJ/CJ), appointing governor and party, chief-justice date and appointer, other appointments (reappointments after a break; sourced modern reappointments), service end, end reason, status (serving/former), note, flags, `service_breaks` (v1.1: the gap in service of the three justices whose single first-appointed → service-end span hides one — Woodbury Davis 1856–57, Artemas Libby 1882–83, Albert M. Spear 1916–17) |
| `sjc_appointments.csv` | One row per commission: initial appointment (AJ), appointment/elevation to chief justice (CJ), reappointment after a break in service (RE), with governor and party; `RT` rows are the seven-year reappointments on file. `party_group` (v1.1): the governor's party in the cross-file vocabulary (DR, D, W, R, U = Unenrolled, NR) |
| `sjc_composition_by_year.csv` | Seats on July 1 of each year 1820–2026 by the party of the governor who signed each sitting justice's most recent commission on file |
| `build.py` | The data itself (every commission, departure and reappointment is hand-entered here from the sources) → `sjc_justices.csv`, `sjc_appointments.csv`, `sjc_data.json`. Reads the governor timeline from `../governors/governors_raw.txt` |
| `derive.py` | `sjc_data.json` → `sjc_composition_by_year.csv` and `derived.json` (the composition series, with the sitting justices named for each year, plus governor term labels) |
| `build_page.py` | `page_template.html` + `sjc_data.json` + `derived.json` → `supreme_judicial_court.html` (the built page, published at https://mainepoliticaldata.com/supreme-judicial-court/). Takes the favicon from `../site-design/brand/favicon_tags.html` and the Historical menu from `../site-design/shared/hist_nav.py` |
| `check_sjc.py` | The weekly check (below) |

**Rebuild:** `python3 build.py && python3 derive.py && python3 build_page.py` in this folder (all paths are relative to the Dropbox folder). Then rebuild `../governors/` too, because the Governors page counts each governor's SJC appointments from `sjc_data.json`.

**Sources.** Cleaves Law Library, *The Supreme Judicial Court of the State of Maine, 1820 to 2021* (table + biographies, cleaves.org/sjcbios13.htm); Maine State Law and Legislative Reference Library, *Maine Supreme Court Chief and Associate Justices*; Office of the Governor releases (Lipez 2025, Taub 2026, Mead renomination 2021); Maine Senate Advance Journal 1/4/2017 (Jabar reappointment); press coverage of the 2022 Lawrence and 2023 Douglas appointments; Wikipedia's current-court table (Taub swearing-in date, Horton/Humphrey/Hjelm active-retired dates).

**Party** = appointing governor's party. Governors' parties are hand-entered in `build.py` (`GOV`); reconciled against `legislature/constitutional_officers.csv` (Governor rows) on 2026-10-02 — no disagreement for any governor who made an SJC appointment (the Richard Vose disagreement was settled as Whig by Matt on 2026-10-03 — `governors/FLAGS.md`; he made no appointment, so this table is unaffected).

## Keeping it current (weekly)
`check_sjc.py` is the SJC step of the scheduled task "Officeholders weekly check" (Mondays), added 2026-10-02 after the officeholders steps:

> Open https://courts.maine.gov/courts/sjc/justices.html in the browser and save its text; run `python3 check_sjc.py <that file>` with `sjc_justices.csv` beside it. If it prints NO CHANGE, update `last_verified` in this README only. If it reports a change, confirm it against the Governor's news releases (maine.gov/governor/mills/news), update `sjc_justices.csv` and `sjc_appointments.csv` through `build.py` (a new justice's appointing governor is the governor in office on the swearing-in date), rerun `build.py`, `derive.py` and `build_page.py`, rebuild `../governors/` and republish the SJC page (and the Governors page if an appointment count changed) to the existing URL, add a `changelog/` entry naming who left or arrived, and include it in the notification to Matt.

**2026-10-14 (P-119):** the "possible new justice" step now reads only the court page's `Hon. First M. Last` heading lines (one per justice) and also compares their count with the serving rows; before, it matched "Justice …" anywhere and ran across line breaks, so it reported every sitting justice and exited 2 every week. Tested on the court page as of 2026-10-14 (`test_pages/justices_2026-10-14.txt` → NO CHANGE) and on altered copies (a justice replaced, an eighth justice, a new Chief Justice — each reported). If the court changes its page layout and no `Hon.` headings are found, the script says so instead of passing silently.

The court's site lists sitting justices only; departures (retirement, active-retired status, death) also show up as Governor's nominations to fill the seat, so a nomination announced but not yet confirmed is reported as "pending" and not added until the swearing-in.

## What changed in v1.3 (2026-10-14, data audit II)
* **Residences of the two newest justices filled** from the Governor's office: Julia M. Lipez, Cape Elizabeth (release of 3/28/2025, the day she was sworn in: "A resident of Cape Elizabeth"); Christopher Taub, Brunswick (nomination release of 3/13/2026: "He resides in Brunswick"). Taub's confirmation on 3/31/2026 is also from the Governor's release of that day, which said he would be sworn in "in the coming weeks"; the 4/6/2026 swearing-in date is still from Wikipedia. Edited in `build.py`; `build.py`, `derive.py` and `build_page.py` rerun (`derived.json` and `sjc_composition_by_year.csv` unchanged). The rebuilt page also picks up the site's current Historical menu and header from `../site-design/shared/hist_nav.py`.
* `check_sjc.py` (P-119, fixed earlier today) rechecked: `test_pages/justices_2026-10-14.txt` → NO CHANGE for the seven sitting justices; a copy with one "Hon." heading replaced reports the new name. The Governors page needs no rebuild (no appointment changed).

## What changed in v1.2 (2026-10-05)
* **Unenrolled, never Independent (Matt's ruling):** the appointing governor's party for Gov. James B. Longley's 3 appointments (Godfrey, Nichols, McKusick as CJ) and Gov. Angus S. King Jr.'s 5 commissions (Saufley AJ and CJ, Alexander, Calkins, Levy) is now "Unenrolled", `party_group` U (was "Independent", I). `build.py` (governor party map, `PG`), `derive.py` (`sjc_composition_by_year.csv` column "Independent" → "Unenrolled"; the counts are unchanged) and `page_template.html` (party label, short form U, colour classes) changed; all three rebuilt and the page assembled with `build_page.py`.

## What changed in v1.1 (2026-10-05)
* The 1855 governor is named "Anson P. Morrill" everywhere (was "Anson Morrill" in `build.py`, the CSVs and `sjc_data.json`), matching `governors/governors_raw.txt`; the alias in `build.py`, `derive.py` and `../governors/build_gov.py` is removed. Four rows change (Tenney CJ, May, Woodbury Davis, Goodenow). The page shows names as before (the template's prose still says "Anson Morrill (1855)", which follows the site's no-middle-initial rule).
* `sjc_justices.csv` gains `service_breaks`; `sjc_appointments.csv` gains `party_group`. `sjc_composition_by_year.csv` is unchanged (it already models the breaks through `derive.py`'s `GAPS`).

last_verified: 2026-10-12
