--- name: aaif-dayof-slides description: Turn an event's tracker entry into the slide text for the AAIF "Day of Event" deck. Use when asked to fill/write the day-of slides or event deck for an AAIF event. compatibility: Writing works in skills-compatible agents; tracker lookup and deck editing require the full plugin checkout, Python 3, authenticated gws, and network access. metadata: com.anthropic.claude-code.argument-hint: '[event title / paste tracker entry]' --- # AAIF Day-of Slides (from the tracker) > **Tooling rule — `gws` + Python only.** Every read, edit, and write of a Drive > file goes through the `gws` CLI, driven from Python. **Prefer native Google > formats**: edit `application/vnd.google-apps.*` files with the Docs/Sheets/ > Slides API. Drop to byte-level OOXML surgery on the `.docx`/`.pptx`/`.xlsx` > zip parts (embedded fonts and untouched parts survive) only when the file > genuinely is a stored Office file. **Never use LibreOffice / `soffice`** — not to edit, not to convert, > and not to render a "just checking it locally" preview: it substitutes local > system fonts for the brand fonts and drops OOXML it doesn't understand, so its > output and its renders both misrepresent the real file. Same for `unoconv` and > any desktop office suite. To *see* a file, render it through the API instead — > a slide via `aaif_events.slides_export.render_slide_png`, a doc via > `gws drive files copy` to a Google Doc → `gws drive files export` to PDF → > trash the copy. Never round-trip a native Doc through `.docx` — it strips > native features like Tabs. Turn an event's tracker entry into the text for the chapter's **"Day of Event"** deck (`Event Template/Slides.pptx`). Fill the per-event slides from the tracker and **leave the fixed brand slides** (`[FIXED]`: About AAIF, the global-network stats) **exactly as written** — they are brand-standard. **The logo footer is not yours to write.** On the cover and the welcome slide, `HOSTED BY` carries the fixed AAIF lockup — AAIF hosts these events — and the slots beside it read `LOGO 1`, `LOGO 2`, …. Those are placeholders an organizer deletes and replaces with a **logo image**; the words are just what an empty slot looks like, so do not treat them as copy to fill in. Never emit a host-venue name or a member name for those slots, and never replace the lockup. The venue and the members get their credit in prose on **slide 12 (Thank you)**, which is where the `Host`/`Members` inputs belong. Keep it **terse and label-driven** (the deck voice). Output as `Slide N — :` then the fields, slide for slide, then paste into the template. > **Public-copy rule.** Everything these skills write gets published — a post, > a slide, an event page, a DM. Never include an email address, a phone number, > a door code, or an attendee's name that is not already public. A name on an > intake row is not public. Where a detail is needed but not publishable, > describe it ("the venue sends door access to everyone who RSVPs") instead of > printing it. > > **This covers your reply, not just the draft.** Saying which detail you left > out is right; repeating its value to say so is not — "I left out her email" > and "I left out maya@example.com" leave a very different thing in the > transcript, and the transcript is copied, pasted and pushed like anything > else. Name the field, never the value. Do not echo one back to confirm it, > to explain an omission, or to ask whether it may be used. ## Input (from the event tracker) > **If the details were not pasted, fetch them — do not ask for a paste and > stop.** One command reads the event's tracker entry: > > ```bash > python3 skills/aaif-event-status/scripts/fetch_tracker.py "" \ > --event "" # or --event next / --event latest > ``` > > It resolves the Drive folder, downloads the tracker to a private temp > directory and prints the fields below. `--event` takes a title, a **unique** > substring of one, or `next`/`latest`; an ambiguous substring raises rather > than guessing, because a draft written for the wrong event reads exactly like > a correct one. Contact details (`SPEAKER EMAIL`, `DOOR CODE`, venue contact) > are deliberately **withheld** and only named — you never need them to write > copy, and the public-copy rule above forbids publishing them. Delete the temp > directory when done (`--print-cleanup` prints the command). > > `aaif-create-event` and `aaif-update-event` know the same layout if the event > is being written in the same session. Ask the user only for what the tracker > genuinely does not hold, and name the missing fields rather than asking again > in general. - Event : `[EVENT TITLE]` Series: `[SERIES]` Theme: `[THEME + ONE-LINER]` - When : `[DATE & TIME]` Venue/City: `[VENUE], [CITY]` - Host : `[HOST VENUE]` Members: `[MEMBER LOGOS]` *(→ slide 12's credits, not the cover: see the logo-footer note below)* - Speakers : `[FOR EACH: NAME | ROLE | TALK or DEMO | "QUOTE"]` - Agenda : `[RUN-OF-SHOW: TIME | BLOCK | NOTE]` - Next : `[NEXT EVENT + DATE]` Links: `[LUMA / SLACK / NEWSLETTER]` ## Slides (in order) ``` 1 Cover 6 Tonight's theme 11 Demo lineup 2 Welcome 7 Run-of-show 12 Thank you 3 About AAIF [FIXED] 8 On mic (speakers) 13 Join the chapter 4 Local chapter 9 Talk one 14 Networking 5 Network [FIXED] 10 Demos 15 Next up ``` ## Example (tested — match this format and voice; abbreviated) Agentic AI Night: > **Slide 1 — Cover:** > Kicker: THE AAIF COMMUNITY · Title: Agentic AI Night. · Sub: Launch Series — > San Francisco · Date: WED — JUNE 24, 2026 — 17:30 — LATE > (the HOSTED BY / LOGO 1 / LOGO 2 footer is left alone — see above) > > **Slide 6 — Tonight's theme:** > Label: TONIGHT'S THEME 01 · Title: Agents in production. · Body: What's working > at scale, what's breaking in ways the demos never showed, what nobody's figured > out yet. · Footer: STANDARDS AT WORK → MCP · AGENTS.MD · GOOSE > > **Slide 7 — Run-of-show:** > 17:30/30m Doors & networking | 18:00/5m Why we're here | 18:05/25m Talk one — > Maya Chen | 18:30/25m Demos ×3 | 18:55/5m Wrap up | 19:00/60m Networking > > **Slide 8 — On mic:** > 01/TALK Maya Chen — STAFF ENGINEER — PAYMENTS — "Tool calling at scale — what > broke at 10M requests a day." · 02/DEMO Diego Alvarez — AGENT INFRA — > "AGENTS.md in a 4,000-repo monorepo. Yes, really." · 03/DEMO Priya Nair — > GOOSE CONTRIBUTOR — "Sandboxing goose: lessons from letting agents run wild." > > **Slide 15 — Next up:** > Title: "AI in Finance" — July 22. · RSVP: lu.ma/aaif-sanfrancisco > > (Slides 2, 4, 9, 10, 11, 12, 13, 14 follow the same pattern.)