Exhibit 02
The Peskin Connection
Peskin
Machine
One in three of her donors funded it.

Same movement. Same money. Same record of making San Francisco less affordable.

Lori Brooke organizes Neighborhoods United SF. Aaron Peskin’s wife chairs zoning for the Telegraph Hill Dwellers, an NUSF member group. They share a CEQA lawsuit, campaign events, and every major anti-housing fight in San Francisco.

Nearly a third of Brooke’s campaign money comes from donors who also funded Peskin’s mayoral run. Brooke even volunteered for that campaign. One movement, one shared record of driving up costs and shutting out families.

Lori Brooke presents herself as a new voice for San Francisco’s District 2. The record is not new at all. Brooke runs Neighborhoods United SF — the public-facing coalition against upzoning. Aaron Peskin’s wife, Nancy Shanahan, chairs the zoning committee of the Telegraph Hill Dwellers, one of NUSF’s member groups. Peskin himself campaigns alongside Brooke at town halls and Planning Commission hearings. And Brooke’s own campaign filings show she worked on Peskin’s mayoral run before launching her own.

This is not guilt by association. It is an organizational network, documented in campaign disclosures, published reporting, a neighborhood newsletter, and a CEQA lawsuit in Superior Court.

2.1

Same Movement

Brooke is a co-founder of Neighborhoods United SF (NUSF), a coalition of more than sixty San Francisco neighborhood groups formed in 2023 to fight the city’s rezoning plan. The Telegraph Hill Dwellers (THD) — Peskin’s political home base for decades — is one of the coalition’s member groups.

Nancy Shanahan, Aaron Peskin’s wife, co-chairs THD’s Planning & Zoning Committee. She writes for the THD newsletter, The Semaphore, where her Planning & Zoning Report and companion piece on upzoning echo NUSF’s framing almost verbatim, including the specific CEQA arguments at the center of the coalition’s lawsuit.

That lawsuit — a CEQA challenge to the Family Zoning Plan — names NUSF, Small Business Forward, THD member Romalyn Schmaltz, and individual resident Paul Erikson as plaintiffs. Brooke’s coalition and Peskin’s home organization are literally co-plaintiffs in the same filing.

The press has named the arrangement plainly. The Voice SF, reporting on Brooke’s February 4, 2026 District 2 campaign forum, described Shanahan as “the attorney and spouse of the former District 3 Supervisor Aaron Peskin, who continues to be, along with Brooke, a lead organizer against upzoning.” Shanahan does not live in District 2. She showed up anyway.

In the press · Feb 2026

Nancy Shanahan “continues to be, along with Brooke, a lead organizer against upzoning.” — The Voice SF

2.2

Same Events

The organizational ties show up in public appearances on a regular, documented schedule.

June 2024 — Westside town hall. The San Francisco Standard published a photograph of Supervisors Joel Engardio and Aaron Peskin attending a westside upzoning town hall where Brooke was speaking. In the accompanying article, Brooke praised Peskin’s leadership on housing, telling the reporter that the issue had shown voters “leadership that would actually fight for the neighborhoods.”

September 2025 — NUSF Sunset town hall. At a Brooke- and NUSF-organized event at the United Irish Cultural Center, The Voice SF reported that Peskin “circulated among attendees.” Brooke closed the event by giving “shout-outs to all the progressive members of the Board of Supervisors who’ve been supportive.”

September 2025 — Planning Commission hearing. At the Planning Commission hearing on the Family Zoning Plan, NUSF’s attorney threatened a CEQA lawsuit. In the same room, the same day, the San Francisco Standard reported, Peskin appeared “in a costume resembling a luxury condo building.” The theater and the legal threat were coordinated in timing.

November 2025 — Board Land Use Committee. Testifying against the Family Zoning Plan at the Land Use Committee, Brooke told the Supervisors: “Your authority has been stripped by Scott Wiener. Blanket upzoning in a dense city does not create affordability.” Immediately after, Nick Ferris, president of the Telegraph Hill Dwellers, echoed the same line.

2.3

Same Money & Staff

The financial and staffing ties reinforce the organizational ones.

Brooke volunteered for Peskin for Mayor (2024). On her own League of Pissed Off Voters questionnaire, under “What campaigns have you worked on?” Brooke wrote: “Most recently for Aaron Peskin for Mayor.” In her own words, in her own filing, Brooke placed herself inside the Peskin political operation before launching her own campaign. Public records also show Brooke donated $500 to the Peskin-for-Mayor campaign.

Nancy Shanahan donated to Brooke (Feb. 2026). Peskin’s wife gave $500 to Brooke’s campaign for District 2 Supervisor. The contribution is listed on Brooke’s Form 460 filing with the San Francisco Ethics Commission.

One in three of her donors funded Peskin for Mayor. Of Brooke’s 295 individual donors, 88 — 29.8% —also contributed to Peskin’s 2024 mayoral campaign. In dollars, those shared donors account for $29,950 of her $98,200 raised, or 30.5%. This is not a random coincidence of San Francisco politics: it is a who’s-who of Peskin’s political world. Among the 88 are Esther Marks, a longtime Peskin political consultant; Dennis Antenore, a former DCCC member and progressive operative; Dale Carlson, a communications consultant tied to slow-growth causes; Bridget Maley, a preservationist architectural historian; Richard Drury, an environmental attorney; and Douglas Engmann, another longtime progressive donor. Brooke is raising money from the same rolodex that just powered Peskin’s run for Mayor.

A base that looks like a neighborhood-association mailing list. 52.5%of Brooke’s donors list their occupation as “Retired” — 155 of 295 — and they account for 51.2% of her money. A typical San Francisco supervisor campaign runs in the 25–35% retired range; Brooke is at double the upper end of that norm. The donor file is heavily concentrated in zip codes 94123, 94109, and 94118 — Marina, Cow Hollow, Russian Hill, Pacific Heights — the enclaves where long-tenured homeowners dominate, and the same constituency that organizes through THD and NUSF.

Shared campaign staff. Jamie Hughes, a veteran of Peskin’s 2024 mayoral run, now works on Brooke’s District 2 campaign. Campaign staff are not coincidental. They are an expression of political alignment, shared strategy, and shared worldview.

2.4

Same Record

Peskin’s political legacy is built on obstruction — blocking development projects, slowing environmental reviews, and using procedural tools to stop housing before it breaks ground. For two decades, his votes and legal challenges helped keep the city’s housing supply constrained and its prices climbing.

Brooke’s record is the continuation of that legacy by a different hand. On every major housing fight in San Francisco and Sacramento in recent years, Brooke has taken the Peskin position:

The Family Zoning Plan. Brooke’s NUSF coalition filed a CEQA lawsuit against the plan. Brooke herself called it an “unprecedented giveaway to developers.”

State housing streamlining. Peskin has defended local control against state intervention throughout his career. Brooke rallied against SB 79 and called SB 423 “game over for local democracy.”

CEQA as a delay tool. Peskin built a career using environmental review to slow development. Brooke’s NUSF is now using the same tool to sue the Family Zoning Plan — with Shanahan’s THD organization supplying a named co-plaintiff.

The state housing mandate. Peskin has questioned the methodology behind San Francisco’s housing targets. Brooke has argued the same target should be recalculated downward because, in her words, “the immediacy of the housing crisis has waned.”

The Shared Record

Same movement. Same events. Same staff. Same lawsuit. And on every major housing fight, the same position — the position that makes San Francisco less affordable for everyone who doesn’t already own.

Brooke’s individual housing record is documented in Exhibit 01. The $500 donation is a data point. The shared staff is a data point. The co-plaintiff coalition is a data point. The policy record is the argument: Brooke is running to build the same San Francisco Peskin spent two decades building — one with less housing and higher costs.

Share this with your District 2 neighbors.

Election Day — June 2, 2026

Paid for by GrowSF Voter Guide. FPPC # 1433436. Committee major funding from: Nick Josefowitz. Not authorized by any candidate, candidate's committee, or committee controlled by a candidate. Financial disclosures are available at sfethics.org.