Skip to content
Agentmart
Submit a tool

podcast-episode-producer

End-to-end production of a published podcast episode from raw recording.

Skill by explicit09

IndexedApache-2.0
Write a review

Chalk Labs

Need help deploying podcast-episode-producer?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/explicit09-podcast-episode-producer

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

End-to-end production of a published podcast episode from raw recording. Identifies hooks, removes filler, applies a clean cold-open structure, and renders a final mp4.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/podcast-episode-producer

What's inside

Skill name
podcast-episode-producer
Description
End-to-end production of a published podcast episode from raw recording. Identifies hooks, removes filler, applies a clean cold-open structure, and renders a final mp4.
License
Apache-2.0
Instructions
529 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • body: 529 lines (spec recommends under 500)

Files (3)

  • SKILL.md
  • metadata_plan.py · scripts/
  • render_verify.py · scripts/

SKILL.md (first lines)

# Podcast episode producer

You are producing a finished podcast episode from a raw recording. The
goal is **a single ~30-90 minute mp4 the user can publish today**. You
own the whole flow end-to-end; ask the user for input only on
genuinely-ambiguous editorial calls (e.g. "do you want to keep this
tangent at 22:14?"), not on mechanics.

Completion means the whole producer pipeline, not a few cleanup edits.
If the user says "edit this", "prepare this episode", "finish this", or
similar, continue through structure, cleanup, visual/brand polish,
audio/package metadata, confirmation, render, verification, and handoff
unless a specific blocker prevents it. Do not stop after start/end trims,
dead-air cleanup, loudness, or a draft note and imply the episode is done.

## The editor-order playbook

Run these in order. After each step, summarize what you did in 1-2
short sentences before moving on. After the timeline draft,
present the cut list to the user and pause for confirmation before
rendering.

### 1. Preflight the project

- Call `list_assets` if available, then `view_episode`.
- Confirm raw video, clean audio, music, graphics, b-roll, and any
  sponsor/media assets are present. If separate audio exists but the
  timeline has no synced/paired graph representation, report a sync
  blocker instead of pretending the edit is ready.
- Use `bash`/`ffprobe` only for sanity checks such as duration, frame
  rate, audio streams, corrupt files, and sample rate. Do not mutate
  media or `project.otio.json` through `bash`.
- Target long-form delivery is usually 1080p or 4K, source frame rate,
  48 kHz audio, and timeline render via `start_render(scope="timeline")`.

### 2. Read the episode shape

- Call `view_episode` to see the full episode map (speakers, topics,
  duration, indexed channels).
- Call `find_episode_start` to identify the publishable start. Raw
  podcast recordings often begin with real transcript text that is
  still pre-roll, off-camera setup, or a rehearsed intro; do not infer
  the start from `read_index(offset=0)` or from the first dead-air gap.
- Run `podcast_flow_shape` before any extraction or cleanup on raw
  recordings longer than one normal episode, recordings with repeated
  starts/closes, or recordings that may contain planning chatter. This is
  the blocking episode-shape gate: use the returned transcript packet to
  classify flow semantically as one episode, multiple publishable
  episodes, clip candidates, and post-show/production spans. Literal
  boundary phrases are recall evidence only.
- Run `podcast_episode_spans` or `auto-cutter/scripts/episode_span_plan.py`
  as a secondary hint pass, not as the source of editorial truth. If the
  semantic flow review or span planner indicates multiple publishable
  spans, stop and ask the user which episode to produce before trimming.
- Do not continue to cleanup, visual polish, or render while
  `podcast_flow_shape` still reports `blocks_timeline_edits=true` and no
  explicit chosen span / user-choice escalation has been recorded.
- After the user chooses a span, or after semantic review confirms a
  single accepted span, immediately persist it with `apply_episode_spans`
  (`status="accepted"`, `create_stringouts=true`) and verify with
  `list_episodes`. If one raw cast is split into multiple episode
  projects/timelines, repeat this in each resulting project. Timeline
  clips alone are not sufficient episode-scope metadata.
- Call `shot_summary` if vision indexers ran — it tells you whether
  this is a heavy-B-roll edit (62%+ no-face shots = lots of cutaways)
  or a clean talking-head (>70% medium/close-up = minimal cutaways).
- If `view_episode` shows zero topics and zero moments, stop and tell
  the user the project hasn't been indexed yet. Don't try to edit raw
  footage without the brain.
- Use montage's richer index set when present: topic for chapter
  structure, editorial-moments for hooks/payoffs, shot for visual
  texture, face/gaze for direct-address moments, frame-quality for
  usable thumbnails, and CLIP/shot tools for cutaways.

### 3. Find the real start, ending, and cold open

Find the real start before cleanup. Also find the real ending: remove
tail chatter, "are we done?", standing up, technical talk, and dead air
after the useful close. If a stronger mid-episode moment exists, build a
cold open: hook first, then intro/title, then the chronological start.
Represent this as `Insert Clip`/`Move Clip`/`Trim Clip` graph edits, not
as render-time slicing.

After extracting or drafting the usable episode span, re-read the
timeline-relative transcript/topic map before creating chapters. This
second pass is how the old editor avoided source-time chapter drift:
the first pass finds the real episode inside a messy recording; the
second pass names the actual topic transitions in the extracted edit.
If the second pass still sees rehearsal, pre-show, post-show, or a
botched intro take, tighten the span before branding.

### 4. Identify the editorial spine

Pull the strongest 3-5 editorial beats. Use them to structure the
episode:

```
find_beat(kind="hook", min_score=0.7)         → opens the episode
find_beat(kind="cta",  min_score=0.6)         → closing thoughts / pitch
find_beat(kind="punchline", min_score=0.7)    → mid-episode peaks
find_beat(kind="emotional_peak", min_score=0.6)
```

For each surviving moment, call `inspect_moment(moment_id=...)` to see
the surrounding transcript window + any dependencies. Dependencies are
**load-bearing**: if a punchline depends on a setup 2 minutes earlier,
keep both.

### 5. Radio edit the conversation

This is an audio/story pass before visual polish. Listen through the
full episode context via transcript, moments, and timeline ranges; do
not edit isolated snippets without understanding callbacks.

Use:

```
find_dead_air(max_silence_s=1.5)
find_filler_words(aggressive=false)

From explicit09/montage, Apache-2.0.

More from explicit09/montage

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 5, 2026 (1 month ago)
Last release
Jun 10, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from explicit09

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get podcast-episode-producer running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying podcast-episode-producer?

CallGet help
Cite this page

podcast-episode-producer skill. Agent Mart. https://agentmart.dev/skills/explicit09-podcast-episode-producer (last updated 2026-10-24)