Memos & LTCs — All Jurisdictions

Executive memos, Letters to Commission, Manager/Mayor communications to elected officials.
Today: Mon, May 11, 2026 Last audited: May 11, 2026 (Phase 3 sub-agent + Miami Beach Laserfiche spider) Jurisdictions: 7 Backend status: Scaffolded · build needed
⚑ Audit summary: The backend has an executive-memos.yml workflow and a state/executive_memos.json catalog but no output has surfaced. Most likely diagnosis: parsers are empty or only attempt Miami Beach (the only jurisdiction with a clean LTC index), memos_by_id is never read by the dashboard, and the 8h staleness alarm doesn't fire on an empty collection. Miami Beach is the easiest first win — Laserfiche WebLink stores LTCs as sequential PDFs (LTC ###-YYYY), ~10-15 posted per business week, with documented URL patterns. Three of the seven jurisdictions (Miami Beach, Miami-Dade, Coral Gables) have dedicated memo channels; the other four (City of Miami, Pinecrest, South Miami, Hialeah) require an agenda-packet cover-memo extractor.

Side-by-side: channel · platform · build priority

Jurisdiction Channel Platform / storage Build priority
Coral Gables Mayor's Memos page + ad-hoc CM PDFs City website + Sites/default/files Medium
Miami-Dade County Mayor's Memos and Reports miamidade.gov + Legistar matter PDFs 2nd
City of Miami Agenda-packet cover memos only Legistar / Granicus Generic extractor
Miami Beach Letters to Commission (LTC) Laserfiche WebLink (CityClerk) — direct URL pattern 1st — easiest, highest signal
Pinecrest Agenda-packet items (Manager comms) Legistar / Manager page Generic extractor
South Miami Inter-Office Memorandum PDFs DocumentCenter + Agenda Center + Laserfiche Generic extractor
Hialeah Mayor cover memos on agenda items CivicEngage Agenda Center Generic extractor

Miami Beach — Letters to Commission (gold standard)

Laserfiche WebLink · ~10-15 LTCs / business week · sequential numbering LTC ###-YYYY
Live LTC indexmiamibeachfl.gov — Letters to Commission (city-maintained mirror, easier to crawl than Laserfiche directly)
URL patterndocmgmt.miamibeachfl.gov/WebLink/edoc/{DOC_ID}/LTC%20{###-YYYY}%20{slug}.pdf?dbid=0&repo=CityClerk
Search fallbackGoogle site-search for LTC 2026 (works without portal session cookies)

Recent LTCs surfaced by Laserfiche spider (Google index, 2025 series)

2026 LTCs not yet in Google's index — Phase 3 build will pull them directly from the Laserfiche cabinet and/or the city's LTC index page.

Build path: Parse the city's LTC index page (HTML, no JS rendering, easier than Laserfiche direct). Store LTC#, date, subject, doc URL, jurisdiction tag in memos_by_id. For live-tree Laserfiche access, the right pattern is a Playwright job that holds cookies — see System Health for the spider workflow once it's added.

Miami-Dade County — Mayor's Memos and Reports

miamidade.gov direct portal + Legistar matter PDF backfill
Legistar backfillmiamidade.gov/govaction/legistarfiles/Matters/Y{yyyy}/{matter_id}.pdf
CadenceWeekly+; PDF format
Build path: Scrape the memos.page listing (stable HTML). Items include ITRs (Information Transmittal Reports). Pair with Legistar matter-PDF backfill for memos cited as backup in agenda items.

Coral Gables — Mayor's Memos + ad-hoc CM PDFs

City website dual-source
Mayor's Memoscoralgables.com — Mayor's Memos verify slug
Ad-hoc CM PDFscoralgables.com/sites/default/files/{yyyy}-{mm}/{slug}.pdf
Build path: Scrape Mayor's Memos page + glob over sites/default/files/{yyyy}-{mm}/ filtering for "Memo" in filename. Note: URL still references "Lago" — confirm current mayor's slug. Mayor Vince Lago is currently serving (re-elected April 2025).

City of Miami — Agenda-packet cover memos

No dedicated portal · use generic extractor
Current CMJames Reyes (confirmed Jan 8, 2026, salary $475k)
Build path: No standalone memo channel. New City Manager James Reyes (sworn under Mayor Eileen Higgins, Jan 2026). Manager memos surface as backup on Legistar agenda items only. Non-agenda memos require a PRR — flag for Phase 4 standing template.

South Miami — Inter-Office Memoranda

DocumentCenter + Agenda Center + Laserfiche (e-docs)
Current CMGenaro "Chip" Iglesias, Ed.D., MBA, ICMA-CM
Build path: South Miami runs its own Laserfiche instance (same WebLink platform as Miami Beach — same URL patterns apply). Worth checking whether the SoMi Laserfiche tree mirrors Miami Beach's taxonomy for LTCs.

Village of Pinecrest — Manager comms via Council packet

Legistar / Manager page · no memo archive
Finance reportsMonthly Budget vs. Actual (monthly)
Current ManagerYocelyn Galiano (since July 15, 2011)
Build path: Council meets ~monthly; Manager comms come through the Council packet PDF. Generic agenda-packet extractor handles this.

Hialeah — Mayor cover memos on agenda items

Strong-mayor city · no separate memo channel · CivicEngage Agenda Center
Current MayorBryan Calvo (sworn Jan 12, 2026 — youngest in city history; signed executive orders on retirement payouts, contract review, transparency)
Build path: Hialeah is a strong-mayor city (no city manager). Mayor comms enter the record only as cover memos on Council agenda items. Generic agenda-packet extractor walks each packet PDF and regex-matches "MEMORANDUM / TO: Honorable Mayor and Council" on pages 1-3. Watch for Calvo's executive-order memoranda flowing through this channel.

Build sequence (7-day push)

1. Confirm repo state — paste executive-memos.yml + first 200 lines of state/executive_memos.json, or grant a read token to the workspace. Rule out the "file doesn't actually exist" case.
2. Stand up the Miami Beach LTC parser. Source: city-maintained LTC index page (HTML, no JS rendering). Easier and more reliable than crawling Laserfiche directly. Highest signal in the system.
3. Add Miami-Dade Mayor's Memos parser pointing at miamidade.gov/global/government/mayor/memos.page + Legistar matter-PDF backfill.
4. Add Coral Gables dual-source parser (Mayor's Memos page + glob over CM PDFs).
5. Build the generic agenda-packet cover-memo extractor (used by City of Miami, Pinecrest, South Miami, Hialeah). pdfplumber + regex on first 3 pages for "MEMORANDUM" + "TO: Honorable Mayor".
6. Write a memos_by_id → dashboard adapter so the morning view has a "Last 14 days, by jurisdiction" section. Render with memo#, date, subject, source URL, jurisdiction tag.
7. Fix the staleness rule — empty-collection-after-a-business-hours-run should fire alarm, not stay green. Current 8h check needs a "rows written this run" check, not just "file mtime".
8. Add a per-jurisdiction last-seen counter to the daily heartbeat so silent failures (e.g., Laserfiche schema change) become visible.