Process doc for keeping porto-chapter-calendar.html current by monitoring the #por_jul26_* Slack channels. Schema/tech/design details live in README.md — this file only covers the monitoring workflow and decision rules. Change history lives in development_runbook_jul26.md and Notes and ideas _jul26.md; don’t duplicate entries here, log there.
Source of truth: channel-map.json (workspace T40A6MC8G, one entry per por_jul26_* channel: Slack channel ID + category type). Don’t hardcode channel IDs elsewhere — read them from that file.
Four categories, each with its own monitoring rule (below): Events, Spontaneous, Other, uncategorized (not yet classified — flag for a categorisation decision before treating it either way, don’t silently skip or silently monitor).
Channels: adventures, skillshare, tribaltuesday (see channel-map.json for current membership — treat that file as authoritative, this list can drift).
README.md §8.Channels: coworking, fitness, food.
foodtour2 (Hiba’s Taste Porto tour, fixed Wed 22 Jul 15:30–19:00, €89, gifted/already booked by her).note (more context than the terse Events-channel notes, since there’s no separate thread for people to read) — see foodtour2 in EVENTS for the template.Channels: announcements, chitchat.
Channels not yet assigned (currently: arrivals, castleweekend, gratitude, overheard, photos, recommendations, splitwise, traitors — check channel-map.json for the live list).
channel-map.json.Follow README.md §8 (event object shape, EVENTS/SPANS/FLOATING, step-by-step). One addition on top of that doc, decided 18 Jul (logged in Notes and ideas _jul26.md):
Every new entry from now on carries a
postfield — the permalink to the source Slack message (https://wifitribe.slack.com/archives/<channelId>/p<ts>). Rendered in the drawer as “View Slack post ↗” and folded into the.icsdescription. Existing pre-18-Jul entries weren’t backfilled with this — only new ones need it.
To get a permalink while reading Slack via the chrome-devtools MCP: the message’s timestamp element is an <a href="https://wifitribe.slack.com/archives/{channelId}/p{ts}"> — grab it with evaluate_script, don’t guess the URL format.
list_pages → select_page → evaluate_script / take_snapshot). No Slack API wired up — this is DOM scraping of the live client. Day dividers ([data-qa="channel_day_divider_label"]) are the reliable way to bound a “last N days” scan; thread replies need an explicit click-through (take_snapshot to find the “N replies” button, click it, then re-scrape).google-calendar MCP is wired to the dedicated wifitribe.porto.jul26@gmail.com account — see google-calendar-mcp-setup.md. Still a manual one-off, not automatic — adding a tile to the HTML does not push to Google Calendar by itself. If a sync is wanted for a new/changed entry, it has to be done explicitly via the MCP tools.