From 39f3db1f142fb730f61b1b464bd1def443e3c071 Mon Sep 17 00:00:00 2001 From: Rachael Wright-Munn Date: Sun, 9 Aug 2026 18:30:22 +0000 Subject: [PATCH 1/2] Add XO Ruby New York City 2026 --- .../xoruby-new-york-city-2026/event.yml | 19 +++++++++++++++++++ .../xoruby-new-york-city-2026/sponsors.yml | 12 ++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 data/xoruby/xoruby-new-york-city-2026/event.yml create mode 100644 data/xoruby/xoruby-new-york-city-2026/sponsors.yml diff --git a/data/xoruby/xoruby-new-york-city-2026/event.yml b/data/xoruby/xoruby-new-york-city-2026/event.yml new file mode 100644 index 000000000..51463f5d3 --- /dev/null +++ b/data/xoruby/xoruby-new-york-city-2026/event.yml @@ -0,0 +1,19 @@ +--- +id: "xoruby-new-york-city-2026" +title: "XO Ruby New York City 2026" +location: "New York, NY" +timezone: "America/New_York" +kind: "conference" +description: |- + XO Ruby New York City is a single-day, single-track conference designed to draw folks in from the city and the region. An approachable $100 ticket price coupled with no need for a hotel or airfare means you can connect with your community without breaking the bank. +start_date: "2026-10-10" +end_date: "2026-10-10" +year: 2026 +website: "https://www.xoruby.com/event/new-york-city/" +tickets_url: "https://buy.stripe.com/9B600ka23e9q1I1g2A43S0q" +banner_background: "#230902" +featured_background: "#230902" +featured_color: "#FE470B" +coordinates: + latitude: 40.7127281 + longitude: -74.0060152 diff --git a/data/xoruby/xoruby-new-york-city-2026/sponsors.yml b/data/xoruby/xoruby-new-york-city-2026/sponsors.yml new file mode 100644 index 000000000..af0b6f0b7 --- /dev/null +++ b/data/xoruby/xoruby-new-york-city-2026/sponsors.yml @@ -0,0 +1,12 @@ +# docs/ADDING_SPONSORS.md +# Do not remove todo until event is over and all sponsors are added. +# TODO: Add missing sponsors. +--- +- tiers: + - name: "Sponsors" + level: 0 + sponsors: + - name: "Flagrant" + website: "https://www.beflagrant.com/" + slug: "flagrant" + logo_url: "https://storage.ghost.io/c/ff/4b/ff4b28c9-cd38-47b6-a7f1-0607de52b4e4/content/images/size/w1200/2025/07/Flagrant_logo_stacked_1c_Orange_pms485U.jpg" From 44df8fb65805b2d9ba691386e6327e575523076e Mon Sep 17 00:00:00 2001 From: Rachael Wright-Munn Date: Sun, 9 Aug 2026 18:39:35 +0000 Subject: [PATCH 2/2] Update skills: screenshots, PR template, and GH_SESSION_TOKEN guidance --- .agents/skills/event-data/SKILL.md | 10 +++++---- .agents/skills/github-image-upload/SKILL.md | 24 +++++++++++++++------ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.agents/skills/event-data/SKILL.md b/.agents/skills/event-data/SKILL.md index 40aa70543..e2dc5a7a8 100644 --- a/.agents/skills/event-data/SKILL.md +++ b/.agents/skills/event-data/SKILL.md @@ -22,7 +22,7 @@ Do not delete TODO comments generated by the generator unless specifically instr - [ ] Start the dev server with `bin/dev` to review the changes locally. - [ ] Commit the changes. - [ ] Take a screenshot with playwright of any pages that were affected by the update. -- [ ] Create a PR with the changes, and include the screenshots in your PR description using the gh-image extension for GH. +- [ ] Create a PR with the changes using the .github/pull_request_template.md and include the screenshots in your PR description using the gh-image extension for GH. # Adding Event Data with the Generators @@ -58,7 +58,7 @@ Call the generator once per talk, and do not attempt to create multiple talks in Do not pass `--id` when adding a new talk. Talk ids follow the "firstname-lastname-event-slug" convention (enforced by `bin/rails validate:videos`), and the generator derives the correct id from the speakers, kind, and title, avoiding ids already taken in the file. Only pass `--id` to update an existing talk: the generator updates the entry with that id, and fails with a list of available ids when it doesn't exist. -Run `bin/lint` once all talks are added to confirm the structure. +If you create talks, capture a screenshot from http://localhost:3000/events//talks after the changes are seeded. ## Generating a Schedule @@ -74,7 +74,7 @@ Create a command to approximate the schedule provided by the user. Modify the yaml file to match the schedule exactly. -Run `bin/lint` to confirm the schedule structure. +If you create a schedule capture a screenshot from http://localhost:3000/events//schedule after the changes are seeded. ## Generating a Sponsors file @@ -84,7 +84,7 @@ Run `bin/rails g sponsors --help` to review the available parameters for the Spo Create a command for each sponsor to add or update their details. -Once all sponsors are added, run `bin/lint` to confirm the structure of the file. +If you create a sponsor capture a screenshot from http://localhost:3000/events//sponsors after the changes are seeded. ## Generate a Venue file @@ -100,6 +100,8 @@ bin/rails g venue --event "sfruby-2026" --name "SF Jazz" \ --website "https://www.sfjazz.org/" ``` +If you create a venue capture a screenshot from http://localhost:3000/events//venue after the changes are seeded. + ## Speakers When updating speakers.yml, the structure is: diff --git a/.agents/skills/github-image-upload/SKILL.md b/.agents/skills/github-image-upload/SKILL.md index 79d12ba30..cb5065ba6 100644 --- a/.agents/skills/github-image-upload/SKILL.md +++ b/.agents/skills/github-image-upload/SKILL.md @@ -54,10 +54,19 @@ Run these checks; only act on the ones that fail. > like a PAT). Treat it like a password; in CI use a dedicated bot account. > 💡 The user may hand you the session token directly (e.g. "you can use the - > user session token … to call it"). Pass it with the `--token` flag — do not - > echo it, print it, write it to a file, or commit it. Keep it out of command - > output by referencing it via a shell variable. It expires, so if an upload - > fails later, ask the user for a fresh one. + > user session token … to call it"). Do not echo it, print it, write it to a + > file, or commit it. When they do, `export GH_SESSION_TOKEN` for the current + > shell session so subsequent uploads work without re-passing the token: + > + > ```bash + > export GH_SESSION_TOKEN="" + > ``` + > + > Note the export only persists for that shell session — it is lost when a new + > terminal/session starts, so re-export or pass `--token` on later runs. (Do not + > append it to `~/.bashrc` or similar; storing session cookies there is + > discouraged.) It expires, so if an upload fails later, ask the user for a + > fresh one. ## Step 1 — Normalize the file path @@ -71,9 +80,10 @@ or Unicode (e.g. CleanShot's narrow spaces) work, but quote them. # working dir (inferred from the remote). gh image "/abs/path/screenshot.png" --repo / -# With a user-provided session token (see note in Prerequisites): -TOKEN="" # keep this secret — don't echo or commit it -gh image "/abs/path/screenshot.png" --repo / --token "$TOKEN" +# With a user-provided session token (see note in Prerequisites). If you already +# exported GH_SESSION_TOKEN for the session, no --token/--repo is needed here: +export GH_SESSION_TOKEN="" +gh image "/abs/path/screenshot.png" --repo / ``` `gh image` prints the reference to **stdout** — an image embed for images, a bare