Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .agents/skills/event-data/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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/<event-slug>/talks after the changes are seeded.

## Generating a Schedule

Expand All @@ -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/<event-slug>/schedule after the changes are seeded.

## Generating a Sponsors file

Expand All @@ -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/<event-slug>/sponsors after the changes are seeded.

## Generate a Venue file

Expand All @@ -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/<event-slug>/venue after the changes are seeded.

## Speakers

When updating speakers.yml, the structure is:
Expand Down
24 changes: 17 additions & 7 deletions .agents/skills/github-image-upload/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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="<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

Expand All @@ -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 <owner>/<repo>

# With a user-provided session token (see note in Prerequisites):
TOKEN="<session-token>" # keep this secret — don't echo or commit it
gh image "/abs/path/screenshot.png" --repo <owner>/<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="<session-token>"
gh image "/abs/path/screenshot.png" --repo <owner>/<repo>
```

`gh image` prints the reference to **stdout** — an image embed for images, a bare
Expand Down
19 changes: 19 additions & 0 deletions data/xoruby/xoruby-new-york-city-2026/event.yml
Original file line number Diff line number Diff line change
@@ -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
12 changes: 12 additions & 0 deletions data/xoruby/xoruby-new-york-city-2026/sponsors.yml
Original file line number Diff line number Diff line change
@@ -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"
Loading