Skip to content

feat(api): backfill day shape, Meetup hack nights, and the curation pass - #219

Merged
themightychris merged 3 commits into
developfrom
feat/events-backfill-day-shape
Oct 14, 2026
Merged

themightychris merged 3 commits into
developfrom
feat/events-backfill-day-shape

Conversation

@themightychris

Copy link
Copy Markdown
Member

Summary

Plan events-legacy-backfill, continued (still in progress until the data PR merges and production renders).

  • Day events take title keywords: slugs are <YYYY-MM-DD>-<a few words of the title> — the clause before an ampersand, slash, colon or "and", cut at a word boundary within 32 characters, trailing connectives and bare numbers shed — so 2019-09-07-opening-work-day, not 2019-09-07-launchpad_2019. Re-slugged records are deleted before the upsert.
  • A whole-day first segment is the event: laddr's first segment of a day was usually the day itself ("Work Day" with the day's description, or a one-session day's only segment). When it spans the day's whole range, its text becomes the event description and it leaves the agenda. One-session days now have a description and no schedule; the 2018 work day keeps its eight real slots.
  • Monthly Hack Nights from Meetup: backfill-meetup-hack-nights.ts reads the Next.js page data the Meetup events page requests and seeds the series the site exists to replace — September through December 2026 — with meetupUrl, the description's "Agenda:" block as agenda items, and the event end stretched to the agenda's last slot.
  • Curation pass recorded: curate-events-backfill.ts is the record of the hand review that followed, applied through the dev API's staff write routes (titles, descriptions, venues, agendas; the 2023 "Weekly Hack Nights" segment split into its five Tuesdays). The plan's Scope now describes the Meetup seed and the curation step.

Result

codeforphilly-data #20 (draft, into published) carries the regenerated, curated records: 5 series, 31 events, 16 images.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TGqwPjt3v4eMfiHpPmCKnR

themightychris and others added 3 commits October 14, 2026 12:27
…-day first segment

Event slugs are now `<YYYY-MM-DD>-<a few words of the title>` — the clause
before an ampersand, slash, colon or "and", cut at a word boundary within
32 characters, trailing connectives and bare numbers shed — instead of the
series slug, so `2019-09-07-opening-work-day` rather than
`2019-09-07-launchpad_2019`. Records are still matched by (series, day);
a record whose slug changed is deleted before the upsert.

laddr's first segment of a day was usually the day itself: the "Work
Day" entry whose text describes the whole day, or the single segment of a
one-session day. When it spans the day's whole range its text becomes the
event description and it leaves the agenda, so a one-session day has a
description and no schedule, and the 2018 work day keeps its eight real
time slots.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TGqwPjt3v4eMfiHpPmCKnR
…ture

The series the site exists to replace needs a reference pattern to design
against before the cutover. The script reads the Next.js page data the
Meetup events page requests, takes every hack night on or after --since,
and writes them into a "Monthly Hack Nights" series: the standing "Code
for Philly" prefix comes off the title, the description's "Agenda:" block
of `6:00-6:15pm - …` lines becomes agenda items (and the event's end
stretches to the agenda's last slot when Meetup's end stopped short), the
Meetup venue maps to ours, and meetupUrl keeps the link while RSVPs still
live there. Re-runnable: series by slug (hand-curated text on the branch
wins), events by day.

The plan now records the Meetup seed and the hand-curation pass that
follows both scripts.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TGqwPjt3v4eMfiHpPmCKnR
The edits made record by record after the two backfill scripts ran —
through the dev API's own staff write routes, so each was validated like
a staff edit — kept as a script so the branch can be regenerated and the
curation replayed. One-off: it names the records as the scripts produce
them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ac/code/session_01TGqwPjt3v4eMfiHpPmCKnR
@themightychris
themightychris force-pushed the feat/events-backfill-day-shape branch from 441a138 to 37d3b76 Compare October 14, 2026 16:40
@themightychris
themightychris merged commit e7c72a2 into develop Oct 14, 2026
1 check passed
@themightychris
themightychris deleted the feat/events-backfill-day-shape branch October 14, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant