Skip to content

Update meetup-update skill with the real booking workflow - #48

Open
MasonEgger wants to merge 17 commits into
mainfrom
meetup-skill-update
Open

Update meetup-update skill with the real booking workflow#48
MasonEgger wants to merge 17 commits into
mainfrom
meetup-skill-update

Conversation

@MasonEgger

Copy link
Copy Markdown
Member

Summary

Folds the lessons from the August/October booking mixup into the skill.

  • The CFP responses spreadsheet in Drive is now the primary input source, with notes on the Acked column, test rows, and duplicate submissions.
  • The booked date must come from the "Speak at PyTexas Meetup" email thread, never assumed from the next open month.
  • New step 0: branch from up-to-date main, since the site can lag several months.
  • Documents the July "Summer of Lightning Talks" tradition and its post format.
  • Documents holding the PR as a draft when a headshot is missing (strict builds fail on the dangling image reference) or an earlier month is unbooked.
  • Adds references/outreach-email.md with the standard date-offer email template and the Gmail draft URL-mangling caveat.

Add the CFP responses spreadsheet as the primary input source.
Require confirming the booked date from the email thread instead of assuming the next open month.
Add steps for syncing with main, the July lightning talks tradition, and holding draft PRs on missing headshots or open months.
Add the speaker outreach email template as a reference file.
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Make the Google MCP pull the mandatory first step.
Mirror the Todoist "Schedule Monthly Meetup" subtasks: website update, Canva card, social media email to Kassandra, and the manual event listings (Discord, Meetup.com, MKE).
The Canva step targets the per-year "Meetup Banners" design with one page per month.
Finish each run by reporting status against the Todoist checklist without auto-completing subtasks.
Add a template policy: every produced artifact fills a reference template verbatim.
Add the Drive step: month folder (root/YYYY/YYYY-MM-DD), run of show copied from the Drive template, attendance form copied from the template form.
Add exact fill-in templates for the run of show and the Kassandra social email (proposed, pending approval).
Document the Canva season decks: September through August, named for the season's ending year, with deck history back to the September 2023 launch.
Note the Meetup.com GraphQL API as the future path for automating network events.
Deck pages are not in chronological order; find the latest month by reading date text.
Asset upload needs a direct 200 URL; resolve redirects like github.com avatars first.
Document the card's fixed and fill-in slots.
…kflow

Decks are newest first; the new card is inserted as page 1 via merge-designs sourcing the deck itself.
Page 1 is then filled through an editing transaction scoped to that page.
Note that scratch designs cannot be deleted through the MCP.
The duplicated page keeps the source page's title label.
The skill now reminds Mason to rename it in the editor after every card.
…run of show research

The social handoff is a webhook post to the marketing channel, with the URL read from PYTEXAS_MARKETING_WEBHOOK and never committed.
The run of show now has a research procedure: local meetups table from docs/local-meetups.md plus each group's meetup.com page, recurring and time-sensitive announcements, next month teaser, and optional polls.
Flag both flows as untested until their first live run.
… repo

The encrypted secrets/meetup.sops.env is committable and holds a placeholder until Mason pastes the real webhook URL.
Onboarding another organizer is adding their age key to .sops.yaml and running sops updatekeys.
The skill posts through sops exec-env so the decrypted URL never lands in history.
Cover reading and changing secrets, onboarding an organizer, and why adding a key to .sops.yaml grants nothing without an existing key holder running updatekeys.
The encrypted secrets file now holds the real URL instead of the placeholder.
A test message through sops exec-env returned 204 from Discord on 2026-07-30.
Back up the age key to the password manager; if lost, re-obtain secrets from their sources and re-encrypt to a fresh key.
secrets/meetup.sops.env now holds both webhook URLs; the organizers one was verified with a live 204 test.
Marketing gets the asset handoff (card, run of show, forms, meetup.com placeholder, RSVP); organizers get the setup summary with remaining manual steps.
Marketing now carries a fresh card PNG export, speaker socials when available, and a Discord event placeholder.
New discord-event.md documents the scheduled event endpoint, the guild ID from the bot repo, the stage payload, and what Mason must provide (bot token in secrets, stage channel ID).
Step 10 reframes the event listings as pending credentials instead of permanently manual.
Stage-linked events have a bug with bad stage audio, so the meetup always creates the event as external with location text instead.
External events need an end time and no channel id, which also drops the stage channel ID ask.
The skill keeps judgment and interactive-auth work; a short-lived dispatch workflow on the self-hosted cluster owns the webhook posts, Discord event, and eventually meetup.com.
Inputs are links only (claim check via Drive) to stay under the 2MB payload cap.
Home is the middleware repo, extended and renamed.
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