ForgeKitFORGEKIT

Build Log

MedinaCHF 2026-2027 Roster Reconciliation & Load

August 30, 2026

Reconciled two roster CSVs against live production, previewed the load, then loaded 31 new families with real Clerk accounts and patched 17 existing ones — catching and fixing a wrong-org-id mistake and a real webhook bug along the way.

MedinaCHFData MigrationBug Fix
49
families now in production
31
new families created
17
existing families patched
1
real webhook bug found and fixed

Timeline

Start
Reconciliation Charge received
Reconcile two roster CSVs against production, preview before running, report gaps after
~1h
Concurrency blocker
Other live session owned main checkout; worktree creation also broken; resolved once the other session wrapped and force-release was confirmed
~1.5h
Reconciliation report published
32 new / 17 existing / 4 items needing Zeb's call, all resolved
~2h
First load attempt — wrong org_id
Guessed org_mchf_placeholder instead of confirming the real org_id; bypassed real Clerk account creation
~2.25h
Caught, deleted, redone correctly
31 wrong-org rows deleted; redo used the real org_id and the real createUser Clerk flow
~2.5h
Case-sensitivity webhook bug found
2 of 31 new Clerk accounts never linked — fixed ilike() in the webhook, linked both stranded accounts
~3h
Gap report published, deployed, wrapped
Final missing-data report shipped; webhook fix deployed to production

What shipped

Reconciliation preview report (artifact) — new vs. existing families, field diffs, child diffs, 4 flagged review items

One-time load scripts: products/medinaCHF/scripts/_export-current-members.mjs, _load-new-families-corrected.mjs, _delete-wrong-org-families.mjs, _link-stranded-clerk-accounts.mjs

Fixed products/medinaCHF/app/api/webhooks/clerk/route.ts — case-insensitive email match (ilike instead of eq) for the user.created webhook

Final missing-data gap report (artifact, filterable by gap type) — 20 of 48 real families have at least one gap, mostly missing child birthdays

31 new production families with real Clerk accounts (no invitation emails sent, per instruction), 17 existing families patched (address/phone/spouse diffs + 23 missing children added), 3 confirmed data corrections applied (Knupp Maddie->Madeline rename, Meyer Braden/Bryce birth_year swap fix, Brooks upgraded to exact_date twin-of-Bryce)

We don't use org id for medinachf. We don't use it. Look at my id.

Zeb, redirecting from an abstract org-id discussion to checking real, known-good production data directly