# MGW.handoff.ground-game-session2.071926.v3
**Issued:** 2026-07-19 · **Supersedes:** v2 (071826, retained in Supabase as audit trail with Addenda 1–2) and v1/a84797ba (deep detail — KEEP). All corrections integrated; no internal contradictions.

## 0 · COLD-START SEQUENCE
1. Read this doc fully. Do not re-derive anything stated here.
2. Supabase MCP, project `tfytghgbhdufvhviureg`, schema `mrx_bethune` — always schema-qualify. `execute_sql` for DML/reads, `apply_migration` for DDL.
3. Count-check: `select (select count(*) from mrx_bethune.gasplant_atomic_sentiments), (select count(*) from mrx_bethune.gasplant_atomic_sentiments where status='superseded'), (select count(*) from mrx_bethune.gasplant_sentiment_buckets), (select count(*) from mrx_bethune.gasplant_person_project);` → **expect 292 / 9 / 440 / 58** (orphans 0). Mismatch → stop, diff read-only, tell John. Uniform `created_at` dates are session-clock artifacts (ET sessions cross midnight UTC), not evidence of rebuilds.
4. HARD GATE (§5) before any dashboard work.
5. First work item = Queue #1 unless John redirects.
6. Never cite `/mnt/transcripts/` paths cross-session — they are per-conversation containers. Cross-session replay material lives in Supabase.

## 1 · WORKSTREAM
Ground Game = sentiment intelligence for **Project Dreadnaught** (John's ~600 ac / ~652 IT MW data center, Bethune, Kershaw County SC; Route B = text amendment + CUP; Phase 1A Q2 2027). **Project Ballast** (Beaufort Rosemary / BRNG LLC 500 MW gas plant — NOT John's) passed third reading 4–3 on 7/14/26; its opposition is the mood Dreadnaught inherits. Evidence engine: append-only ledger of atomic sentiment claims from FULL reads of primary council transcripts, keyed to speakers (with life context) and 18 macro buckets.

## 2 · LEDGER STATE (canonical, verified live 7/19)
- Atomics **292** (283 active / 9 superseded) · mappings **440**, orphans 0 · buckets 18 · person_project **58** (of which **16 = Park Road 9/23/25 registry**; pre-Park-Road baseline was 42).
- Append-only: DELETE trigger-blocked; corrections via `status='superseded'` + replacement. RLS admin-only.
- Active sources: `meeting_2026_07_14_transcript` (113) · `meeting_2026_07_14` derived (65 — **deliberately active**, see §3 ruling) · `meeting_2026_06_23_transcript` (43) · change.org petition (18) · FB threads (44) · [6/23 derived (9) = superseded]. There is **no** `doc_2026_07_15` source label — the "136-row seed" = 65+18+44+9.
- Speaker keys normalized to canonical `stakeholders.id`; deliberate exceptions 'Rykbost/general', 'Catoe/Tucker/Connell'.
- Park Road 9/23/25 = person registry only, deliberately NOT bucketed (Ballast-scoped matrix).

## 3 · 7/14 DUAL-SOURCE RULING (Fork D — John-approved 7/19)
The 113-row transcript read **added to** the 65-row derived set; it did not duplicate it. Diff at (speaker, valence, bucket): ~46 of 65 have zero transcript counterpart (Poole EJ percentiles + $14M/$2M FILOT math; Rykbost "bribe" + 508-petition; Kane photographed-at-home; Jones reading son's letter; Connell Dec-2025 field trip; Tomlinson Gaston visit; McCaskill COBRA $1.5–3.3M; Tucker Alabama precedent; etc.); ~19 covered.
**Do NOT supersede the 65. Convention for all matrices/counts: pivot the UNION of both 7/14 sources deduped on (speaker, valence, macro_id) — no cell counts twice; note dual provenance in footers.** v3-matrix predates this convention; v4 built under it reads LOWER on 7/14-heavy buckets. Lower-but-true is the standard.

## 4 · METHOD RULES (John's law) + EXTRACTION TECHNIQUE
Rules: never sample/summarize a transcript — full read; capture WHO each speaker is; verified/asserted/unconfirmed strictly separated; /mnt/project "docx" transcripts are UTF-8 (`cat`); garble map: Thompson=Tomlinson, Reichboast=Carla Rykbost, Smoke=Smoak, Ruszkowski=Joey Adams-Raczkowski, Rev. Mango=Rev. Benjamin Mingo, Kto/Canto=Lynn Conto; naming `MGW.[category].[slug].MMDDYY.v[N].[ext]` — new content = new name; JM3 so-what/why/catch; single-word approval = execute; corrections get "noted"; never suggest pausing; SQL live via MCP.
Technique: (1) `wc -w -c` first, plan segments; (2) split ~3,500-word fixed sequential segments, read ALL in order, re-view any elided line ranges; (3) per segment extract: every claim (atomic = one claim/speaker/valence), who-the-speaker-is (self-stated in first 30 sec — verbatim), procedure/votes incl. throwaway lines during motions (often the tells), calendar facts; (4) anchor verbatim — quote, never characterize; transcript beats derived-doc paraphrase (supersede the derived row); (5) attribution via cross-evidence (chair acknowledgment, self-ID, clerk list, family rolls); two-source conflicts get a discrepancy flag routed to John, never a silent pick; (6) dual transcripts of one meeting: read both fully, diff, correct via UPDATE + note; numbers verified only from the cleaner source; (7) writes: source_label per meeting, canonical speaker keys at insert, mappings same transaction, person capture in notes; (8) per-segment tallies reconciled against ledger before declaring done; (9) artifacts regenerate from fresh DB pivots, never from memory of prior artifacts.

## 5 · HARD GATE (in force)
No dashboard code, migrations, or commits until John aligns on architecture (tabs-vs-cockpit, filter grouping). R1–R8 requirements discussed, never filed.

## 6 · SETTLED FACTS (do not re-litigate)
Vote arc: 7-0 (5/12 title-only) → leak ~6/10 → 4–3 (6/23) → 4–3 (7/14; 3-hr hearing moved zero votes). Yes: Connell, Shoemake, Tucker, Tomlinson. No: Catoe, Jones, Brazell. Grievances = PROCESS wounds, not merits.
Ballast FILOT: 4% / 341.3 fixed mills / 40-yr / $400M super-FILOT floor / BRNG LLC (6% was Gemstone's). 6/23 corrections: bind/setbacks Qs + solar-FILOT-on-this-property (Santee Cooper named) = TOMLINSON, not Brazell. Budget 7-0 unanimous (first in 10+ yrs).
OPEN: 6/23 question-list speaker "Pam Gainey" (clean captions; matches Rollings family roll) vs "Karen Gainey" (Otter) — stored under Karen Gainey + discrepancy flag; John adjudicates.
PARK ROAD 9/23/25 (Terra Nexus case 25-14, 162 ac RD→GD, postponed then withdrawn) — council's own DC conditions: Shoemake — problem is GD rezoning not DCs, "there's other ways to do it" (text-amendment path pre-endorsed), closed-loop water + no-ratepayer-harm ordinance; Brazell — briefing first, buffers, development agreement w/ restrictive covenants (attorney: viable), personal SITE VISIT; Tucker — DCs "don't bring people... and they do bring revenue. Now I'm not gonna sell out"; holds NAACP channel (Rev. Benjamin Mingo, Kershaw branch pres., organized the turnout; Zakiya Mickle, state EJ chair, substance); Jones ("we'll hear it and we'll vote it down") retiring — successor-elect Jonathan Proctor. Attorney: PC-heard matters MUST come to council. Ordinance 9-D (6-1): 30-day post-PC-referral window + shorter hearings where statute allows → Dreadnaught filing math.
CALENDAR: 7/28/26 council meeting CANCELED (SCAC) → next meeting AUGUST. Moratorium expiring; BPAS 350/yr caps passed 5/12/26; MPD district at PC since 5/26/26 (possible second vehicle); 6/9/26 William Holland asked for an AI-DC ban; Tomlinson 4/28/26: "I will never allow Kershaw County to be Lexington County." kershawcouncilrecap.org: automated recaps + full transcripts + vote records; will auto-cover Dreadnaught when filed.

## 7 · QUEUE (John-approved order)
1. **5/12/26 transcript full read** — `/mnt/project/kershaw_councilmeeting_transcript_5_12_26.md` (24,971 words; Ballast 1st reading 7-0 + Candyroot/Gemstone ZLDR §3:3 conditional-use text amendment, Smoak presenting = live mechanism precedent + Smart Growth package). Extract per §4; then regenerate matrix → **v4 under the §3 union-dedupe convention**.
2. FB attribution (44 null-speaker atomics; names in raw threads + 270-member roster).
3. Pam-vs-Karen Gainey (John). 4. Setback/Siting 19th bucket (John).
5. Sentiment→Dreadnaught lever matrix (skeleton = parkroad-takeaways §3).
6. File R1–R8 requirements doc. 7. Dashboard wiring (HARD GATE).
8. Per-councilmember talking points + NAACP path (Mingo via Tucker).

## 8 · ARTIFACTS + REHYDRATION
Table of record: `MGW.reference.sentiment-matrix.071826.v3.html` (pre-convention; v4 replaces). One-pager: `MGW.reference.parkroad-takeaways.071826.v1.html`. Handoffs in `public.project_notes`: **this doc** (`MGW.handoff.ground-game-session2.071926.v3.json`, is_handoff=true) · v2 `13c2bb71-bed5-4298-b63b-72eac17a05f3` (audit trail w/ Addenda 1–2) · v1 `a84797ba-...` (ADDENDA 1–4 deep detail) · `8280f814-...` (dashboard hard gate). Retrieve with: **"pull up the ground-game session2 handoff v3."**
