Agent skill

Podcast

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0…

MITAuto-check passedMedia & Creative

Install Podcast

skills CLI
$ npx skills add ericrisco/rsc-harness --skill podcast -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness podcast --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/podcast .claude/skills/podcast && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
podcast
GitHub stars
167
Token cost
~3.2k tokens
SKILL.md length
1,508 words
Files
5 (incl. scripts, references)
Skills in repo
227
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0…

  • Works in 4 steps: Plan → Record → Edit & master → …
  • Publishing one podcast episode end to end — the run-of-show and guest brief
  • SKILL.md covers The flow — find the phase, do…, Phase 1 — Plan, Phase 2 — Record and Phase 3 — Edit & master, plus 5 more sections
  • Runs Shell scripts from its folder

What it does

Podcast is an agent skill from ericrisco/rsc-harness. Use when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0 sidecars for chapters and transcripts, the RSS item, and timestamped SEO show notes. Covers audio that is quiet on one platform and loud on another, feeds rejected for bad artwork, and chapters that will not appear in the app. NOT clipping the episode into social posts (that is social-publisher), NOT cutting the vertical short (that is…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/rss-and-namespace.md`).

It sits in Media & Creative, covering Podcasting. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • Publishing one podcast episode end to end — the run-of-show and guest brief
  • Recording settings
  • The loudness master
  • The Podcasting 2.0 sidecars for chapters and transcripts

Example prompts

  • “/podcast”

Requirements

  • A Bash shell

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Plan
  2. Record
  3. Edit & master
  4. Publish

What it can do on your machine

Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Podcast loads about 3.2k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 136 tokens; SKILL.md has 1,508 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~136
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 1,508 words, ~3,220 tokens.

Download SKILL.mdSave it as .claude/skills/podcast/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
podcast
description
Use when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0 sidecars for chapters and transcripts, the RSS item, and timestamped SEO show notes. Covers audio that is quiet on one platform and loud on another, feeds rejected for bad artwork, and chapters that will not appear in the app. NOT clipping the episode into social posts (that is `social-publisher`), NOT cutting the vertical short (that is `video-shorts`).
tags
podcast, audio, rss, show-notes, podcasting-2.0
recommends
social-publisher, video-shorts, newsletter, brand-voice, content-engine
origin
risco

Podcast — One Episode, Plan to Published

You own the production craft and the distribution surface of a single audio episode: the run-of-show, the recording settings, the loudness target, the chapters and transcript sidecars, the RSS <item>, and the show-notes page that ranks. You do not invent the show's voice, plan the content calendar, or cut the clips — you take one episode from idea to a feed entry an app can ingest.

An episode moves through four phases: plan → record → edit & master → publish (plus the show-notes page that ships with publish). Every load-bearing number below is sourced and dated (accessed 2026-06-02). Use the current numbers; do not guess from memory.

The flow — find the phase, do that phase

Read the ask, drop it into one phase, execute that phase, and stop at its hand-off. Do not redo earlier phases the user already has.

The ask sounds likePhaseYou produce
format, run-of-show, guest brief, questions, cold-open1 Planan episode outline + question list
double-ender, sample rate, multitrack, "how do I record remotely"2 Recorda recording-settings checklist
"how loud", LUFS, true peak, mono vs stereo, export format3 Edit & mastera mastering target sheet + export plan
RSS item, enclosure, chapters, transcript, artwork, submit to Apple4 Publisha valid <item> + chapters.json + transcript.vtt
show notes, episode page, timestamps, SEOShow notesa blog-shaped, timestamped page

Phase 1 — Plan

Pick the format first; it sets everything downstream.

FormatUse whenWhy
Soloyou own the expertise and want tight controlno scheduling, fastest to ship, easiest to master (mono)
Interviewthe value is a guest's knowledgeborrowed audience + authority; needs a guest brief
Co-hosta recurring two-voice dynamicchemistry carries it; needs two locals
Narrativestory-driven, scripted, sound-designedhighest production cost; script before you record

Run-of-show. Write a timed segment table before recording so the edit has a spine. Target minutes for a ~40-min interview:

SegmentTargetPurpose
Cold-open0:30best 30s of tape, pulled forward to hook
Intro1:00show ID + episode promise + guest one-liner
Segment(s)30:00the body — 2-4 themed blocks, not one shapeless chat
CTA0:30one ask (subscribe / a specific link), never three
Outro1:00recap + where to go next + sign-off

Guest brief (send before the record): episode topic + angle, 4-6 question themes (not the verbatim list — keep some spontaneity), tech check (headphones + a quiet room + the recording link), the time/timezone, and how their name and links should appear. A guest who knows the themes gives sharper tape.

Question design. Open-ended, single-barrel, no yes/no. One idea per question.

text
Bad   "Did you find fundraising hard, and what would you change?"  (double-barreled yes/no)
Good  "Walk me through the moment fundraising got hardest."         (open, single, invites a story)

Phase 2 — Record

Record locals, never the call. A remote double-ender records each participant locally — Riverside/Descript capture every speaker on their own machine at 48 kHz uncompressed WAV, one track per speaker, cloud-backed in real time, so quality is independent of the connection. The Zoom/Meet mixdown is compressed, single-track, and drops out with the bandwidth. (Riverside double-ender; Buzzsprout remote-recording guide 2026 — accessed 2026-06-02.)

text
Bad   Hit "record" in Zoom and edit the resulting compressed stereo mixdown.
Good  Double-ender: each speaker's local 48 kHz WAV on its own track, cloud-backed,
      assembled into a multitrack you edit downstream.

Recording checklist:

  • Remote → double-ender (Riverside/Descript). In-person → multitrack recorder/interface, one mic per speaker.
  • 48 kHz, uncompressed WAV, separate track per speaker — never a pre-mixed single track.
  • Local + cloud backup running before you start talking.
  • Track to ~-18 dBFS peaks, leaving headroom — do not record hot toward 0 dBFS; clipped tracks are unrecoverable and you fix loudness at the master, not the mic.
  • Headphones on every speaker (kills echo/bleed); record 10s of room tone for noise cleanup.

Phase 3 — Edit & master

Edit order. Assemble → content edit (cut tangents, fix flow) → cleanup (noise reduction, level the tracks against each other) → master last. Master on the finished mix, never mid-edit.

Master once to -16 LUFS integrated, stereo, true peak -1 dBTP. This is the single safe target. Apple Podcasts recommends -16 LUFS integrated; Spotify normalizes podcasts to -14 LUFS and turns down anything louder on playback — so you do not master a separate file per platform. The -1 dBTP ceiling prevents inter-sample clipping after MP3 encoding. (SONE "Podcast Loudness Standards 2026"; Descript "Podcast Loudness Standard"; Podnews LUFS FAQ — accessed 2026-06-02.)

DestinationIntegrated LUFSTrue peakChannelsNote
Apple Podcasts-16-1 dBTPstereothe reference target
Spotifynormalizes to -14-1 dBTPstereolouder uploads are turned down; do not over-master for it
Mono voice (solo)-19 (≈ -16 stereo)-1 dBTPmonomono is ~half the file size for a single voice
YouTube (if you also post audio video)~-14-1 dBTPstereonormalized like Spotify

The mono equivalent of -16 LUFS stereo is -19 LUFS — relevant only when you publish a single-voice episode as mono. (SONE / Podnews — accessed 2026-06-02.)

Export. Keep the WAV master as your archive. Encode the distribution file to MP3 (commonly 128 kbps stereo / 96 kbps mono for voice) — that MP3 is what the RSS <enclosure> points at. Note its byte length and MIME type; you need both for the <item>.

Show full SKILL.md (715 more words)Show less

Phase 4 — Publish

The deliverable is a valid RSS episode <item> plus its sidecars. A complete annotated <item>, the full iTunes/RSS channel tag list, and the Podcasting 2.0 tag set with every attribute live in references/rss-and-namespace.md — load it before hand-writing a feed.

The <item> must carry (Apple's required set + the enclosure):

  • <title> and <itunes:title>, <description> (the show notes), <pubDate> (RFC-822).
  • <enclosure url="…" length="…BYTES" type="audio/mpeg"/> — the MP3 URL, its size in bytes, and the MIME type. A wrong length breaks the player's scrubber.
  • <guid isPermaLink="false"> — a stable unique ID that never changes after publish; changing it duplicates the episode in every app.
  • <itunes:duration> (seconds or HH:MM:SS) and <itunes:image href="…"/>.

Artwork constraints (feeds are rejected otherwise): cover art must be a square JPG or PNG, RGB color space, minimum 1400×1400 px and maximum 3000×3000 px. (RSS.com hosting guide 2026 — accessed 2026-06-02.)

Podcasting 2.0 sidecars (wire them in the <item>; full shapes in the reference):

  • chapters.json → <podcast:chapters url="…" type="application/json+chapters"/>. The JSON has version + a chapters[] array; each chapter has a numeric startTime (seconds) and title, and startTimes are monotonically non-decreasing. The hosted file can be edited after publish.
  • transcript.vtt / .srt → <podcast:transcript url="…" type="text/vtt"/>. The type attribute is required (text/vtt, application/srt, or application/json); you may add multiple podcast:transcript tags for multiple formats. Creator-supplied transcripts beat Apple's auto-generated ones. (Podcasting 2.0 namespace docs — accessed 2026-06-02.)
  • <podcast:person> for host and guest (role + image href).

Apple auto-generates transcripts (since 2024-03) and chapters (iOS 26.2), but auto-chapters only fire when the creator supplied none — your manual podcast:chapters always wins, so supply them when timestamps matter. (Apple Newsroom 2024-03; Castopod/TechBuzz iOS 26.2 coverage — accessed 2026-06-02.)

Submission reality. A feed needs at least one published episode before you can submit it — Apple requires it and Spotify for Creators hides RSS distribution until the first episode ships. Apple review can take up to 72 hours; most hosts publish new episodes within hours. (VNYL RSS guide; RSS.com; Spotify for Creators — accessed 2026-06-02.)

Show notes

Top-ranking show notes are blog-shaped, ~1,500+ words, not a one-paragraph blurb. Timestamps are both a UX and an SEO signal. (Sweetfish "Show Notes Template"; Increv "SEO show notes 2025" — accessed 2026-06-02.)

Template:

text
H1            target keyword as the episode title
Summary       2-3 sentences, keyword-bearing, what the listener gets
Chapters      timestamped list (00:00 Intro / 04:12 …) mirroring chapters.json
Takeaways     3-5 bullets — the episode's claims, skimmable
Guest         short bio + links (site, social)
Resources     every tool/book/link mentioned
CTA           one ask (subscribe / a specific URL)

Title craft — specific and outcome-bearing beats sequential:

text
Bad   "Episode 12"
Good  "Episode 12: How Marta scaled a solo SaaS to $40k MRR without ads"

Embed PodcastEpisode JSON-LD on the page (name, datePublished, duration as ISO-8601 PT35M, associatedMedia → the MP3, partOfSeries → the show) so the episode is eligible for rich results — see references/rss-and-namespace.md for the block.

Anti-patterns

Anti-patternWhy it failsDo instead
Mastering a separate file per platformSpotify turns down anything over -14 anyway; you just add work and risk inconsistencyMaster once to -16 LUFS stereo / -1 dBTP
Editing the recorded Zoom/Meet mixdownCompressed, single-track, drops out with bandwidth; unrecoverableDouble-ender local 48 kHz WAV, one track per speaker
Tracking hot toward 0 dBFSClipped peaks are permanent; loudness is a master-stage fix, not a mic-gain fixTrack to ~-18 dBFS peaks, set loudness at the master
<podcast:transcript> without a typeApps cannot parse it; the tag is ignoredAlways include type= (text/vtt, application/srt, application/json)
Wrong/blank <enclosure length>Breaks the player scrubber and progressUse the MP3's exact size in bytes
Changing <guid> after publishApps treat it as a brand-new episode — duplicates the feedSet a stable guid once; never change it
1024×1024 or non-square cover artBelow the 1400 px floor / non-square → feed rejectedSquare JPG/PNG, RGB, 1400-3000 px
Show notes as a one-paragraph summaryNo keywords, no timestamps → no ranking, no UX valueBlog-shaped ~1,500 words with timestamped chapters + takeaways
Relying on Apple auto-chapters when timing mattersAuto-chapters only fire when you supplied none, and you lose control of titlesShip a manual chapters.json via podcast:chapters

Hand-offs

  • Clip the episode into posts for X/LinkedIn/IG and schedule them → ../social-publisher/SKILL.md.
  • Cut the vertical/short video of a moment → ../video-shorts/SKILL.md.
  • Write the email that announces the episode to the list → ../newsletter/SKILL.md.
  • Define the show's tone/persona the episode should sound like → ../brand-voice/SKILL.md.
  • Decide which episodes exist and the cadence across the catalog → ../content-engine/SKILL.md.

References

  • references/rss-and-namespace.md — required + recommended iTunes/RSS channel and item tags, a full annotated <item> example, the Podcasting 2.0 tag set with attributes (transcript, chapters, person, funding, season, episode), a sample chapters.json, a transcript.vtt snippet, and the PodcastEpisode JSON-LD block.

After you emit a chapters.json, a feed/<item>, or a transcript.vtt, run scripts/verify.sh <dir-or-file> to lint the shape (parse, monotonic startTimes, required enclosure attributes, transcript type, artwork size).

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in skills/podcast of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/rss-and-namespace.md
  • scripts/verify.sh

Open the folder on GitHubat commit e3d5b33

Compare with similar skills

Podcast next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Podcast compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Podcast this skillericrisco/rsc-harness167—~3.2kAutomated safety check: PassMIT
Podcast Transcript FetcherVarnan-Tech/opendirectory6741 repos~1.9kAutomated safety check: NotesMIT
Podcastzarazhangrui/personalized-podcast437—~2.3kAutomated safety check: NotesNone
Podpullxiaoleiy/podpull146—~962Automated safety check: PassMIT
Xiaoyuzhou Downloadgainubi/wechat-skills170—~551Automated safety check: PassNone
Summarizetrpc-group/trpc-agent-go1.8k22 repos~552Automated safety check: PassApache-2.0

Similar skills

  • Podcast Transcript Fetcher

    Varnan-Tech/opendirectory

    A skill your agent uses when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast.

    674 GitHub starsUsed in 1 repo~1.9k tokens
    Media & CreativeAuto-check: notes
  • Podcast

    zarazhangrui/personalized-podcast

    Generate a podcast episode from content you provide. An agent skill from zarazhangrui/personalized-podcast.

    437 GitHub stars~2.3k tokensUpdated 6 mo ago
    Media & CreativeAuto-check: notes
  • Podpull

    xiaoleiy/podpull

    A skill your agent uses when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode…

    146 GitHub stars~962 tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Xiaoyuzhou Download

    gainubi/wechat-skills

    Download Xiaoyuzhou FM podcast episode audio files from xiaoyuzhoufm.com/episode links.

    170 GitHub stars~551 tokensUpdated 4 mo ago
    Media & CreativeAuto-check passed
  • Summarize

    trpc-group/trpc-agent-go

    Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).

    1.8k GitHub starsUsed in 22 repos~552 tokens
    Media & CreativeAuto-check passed
  • Convert a Markdown article into a natural first-person podcast script for 1 to 4 speakers and save it as a .txt file under the current project's markdown directory.

    8.6k GitHub stars~1.6k tokensUpdated 11 days ago
    Media & CreativeAuto-check passed

More from ericrisco/rsc-harness

All 227 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    167 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    167 GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    167 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    167 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    167 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    167 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed

Questions about Podcast

What does Podcast do?

A skill your agent uses when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0…. Podcast is an agent skill from ericrisco/rsc-harness.0 sidecars for chapters and transcripts, the RSS item, and timestamped SEO show notes.

When should I use Podcast?

Podcast fits situations like: publishing one podcast episode end to end — the run-of-show and guest brief; recording settings; the loudness master; the Podcasting 2.0 sidecars for chapters and transcripts.

How do I install Podcast in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill podcast -a claude-code`. Or copy the skill folder (skills/podcast in ericrisco/rsc-harness) into .claude/skills/podcast in your project. Claude Code loads it when a task matches its description.

How do I install Podcast in Codex?

Run `npx skills add ericrisco/rsc-harness --skill podcast -a codex`. Or copy the skill folder (skills/podcast in ericrisco/rsc-harness) into .agents/skills/podcast in your project. Codex loads it when a task matches its description.

Can I use Podcast in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill podcast -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/podcast, .gemini/skills/podcast, .github/skills/podcast and .opencode/skills/podcast in your project.

What does Podcast need to run?

Going by SKILL.md and its folder, Podcast needs a shell for the scripts in its folder. Our summary lists: A Bash shell.

Does Podcast access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Podcast safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Podcast use?

Podcast is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Podcast use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.

What are the alternatives to Podcast?

Skills that share tags, products or a category with Podcast: Podcast Transcript Fetcher (Varnan-Tech/opendirectory, 674 stars), Podcast (zarazhangrui/personalized-podcast, 437 stars), Podpull (xiaoleiy/podpull, 146 stars) and Xiaoyuzhou Download (gainubi/wechat-skills, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Podcast?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.