From kubecon
Filter and curate a KubeCon schedule from ICS calendar exports. Parses the raw schedule, applies heuristic filters to surface deep dives and high-signal talks, then iteratively refines recommendations based on user feedback. Outputs a curated markdown list and a filtered ICS file. Use this skill whenever the user mentions KubeCon schedule, KubeCon talks, filtering conference sessions, or wants help deciding which KubeCon sessions to attend — even if they just say "help me pick talks" or "there are too many sessions."
npx claudepluginhub joshuarweaver/cascade-code-general-misc-2 --plugin niekcandaele-claude-helpersThis skill uses the workspace's default tool permissions.
Filter a KubeCon schedule down to the talks worth attending: $ARGUMENTS
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Filter a KubeCon schedule down to the talks worth attending: $ARGUMENTS
This skill ships with bundled ICS files for the current KubeCon event. Your job is to parse the schedule, apply quality heuristics, and then work with the user in iterative rounds to build a personalized shortlist. The user knows Kubernetes well — they want depth, not introductions.
Two ICS files are bundled in this skill's directory:
kubecon.ics — the main KubeCon conference sessionscolocated-events.ics — co-located events (Cilium Con, Istio Day, BackstageCon, etc.)Read both files from the skill directory (the same directory as this SKILL.md). If the user provides a different ICS file path, use that instead.
Extract these fields from each VEVENT:
If the ICS is malformed or missing fields, work with what you have. KubeCon's Sched exports are sometimes messy — speaker names might be in the description body rather than a structured field. Do your best to extract them.
Count the total number of sessions parsed and tell the user so they know the scale.
Score each talk using these heuristics. The goal is to separate signal from noise before the user sees anything.
Don't filter by topic area yet. The user hasn't told you what they're interested in — that's what the iterative rounds are for. Apply only quality heuristics in this pass, not topic preferences.
Show the user 10-15 of the highest-scored talks. For each talk, present:
### [Talk Title]
**Speaker(s):** Name (Company)
**Track:** Deep Dive / Case Study / etc.
**When:** Day, Time — Time
**Room:** Location
> [2-3 sentence summary of the abstract — what the talk is actually about, not the marketing fluff]
**Why this made the cut:** [brief reason — e.g., "maintainer of Cilium discussing eBPF internals" or "production war story from a team running 2000 nodes"]
Group the batch by day/time slot if possible so the user can see their schedule taking shape.
If any recommended talks overlap in time, flag it clearly:
> [!warning] Schedule conflict
> This talk overlaps with [Other Talk Title] (same time slot). Both are recommended — pick one to attend live and catch the other on YouTube later.
After presenting, ask the user for feedback. Something like: "Which of these look good? Which aren't interesting? Any topics you want to see more or less of?"
Based on the user's feedback, infer their preferences:
Apply the learned preferences and present the next batch. Keep batches to ~10 talks to avoid overwhelming the user.
Repeat until:
Throughout the rounds, maintain a running list of accepted talks so you can:
When the user is satisfied, produce two outputs:
Save to Fleeting/ in the vault (or wherever the user specifies) as YYYY-MM-DD_kubecon-schedule.md:
---
date: YYYY-MM-DD
tags:
- area/tech/kubernetes
- resource/conference
---
# KubeCon YYYY — Curated Schedule
## Day 1 — [Date]
### [Time Slot]
**[Talk Title]**
Speaker(s) | Track | Room
> [Brief summary]
[If there's a conflict, show both talks with a note:]
*Also interested in: [Conflicting Talk Title] — catch recording later*
### [Next Time Slot]
...
## Day 2 — [Date]
...
## Talks to Watch Later
These talks looked interesting but conflicted with something better, or didn't fit the schedule:
- [Talk Title] — [one-line reason it's worth watching]
- ...
Generate a valid ICS file containing only the accepted talks. This lets the user import their curated schedule into Google Calendar, Apple Calendar, or whatever they use.
The ICS should preserve the original VEVENT data (times, locations, descriptions) from the source file. Write it to the same directory as the markdown file, named kubecon-YYYY-curated.ics.
ICS format reminder:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//KubeCon Curator//EN
BEGIN:VEVENT
DTSTART:20260316T090000Z
DTEND:20260316T093000Z
SUMMARY:Talk Title
DESCRIPTION:Talk description
LOCATION:Room Name
END:VEVENT
...
END:VCALENDAR
Make sure to preserve timezone information from the original file.
After saving, run vault maintenance agents: