Initial release — OpenMontage: the first open-source agentic video production system

11 production pipelines, 47 tools, 124 agent skills.
Supports cloud APIs (fal.ai, OpenAI, ElevenLabs, Suno, HeyGen, Runway) and
free local providers (diffusers, Piper TTS, WAN 2.1, Hunyuan, CogVideo).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
calesthio
2026-03-29 08:25:17 -07:00
commit a3e735cc7a
1147 changed files with 240221 additions and 0 deletions
@@ -0,0 +1,65 @@
# Asset Director - Podcast Repurpose Pipeline
## When To Use
This stage builds the reusable kit for podcast-derived video assets: subtitles, speaker cards, quote cards, optional topic art, and optional music support.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Schema | `schemas/artifacts/asset_manifest.schema.json` | Artifact validation |
| Prior artifacts | `state.artifacts["scene_plan"]["scene_plan"]`, `state.artifacts["script"]["script"]`, `state.artifacts["idea"]["brief"]` | Deliverable plan and transcript truth |
| Tools | `subtitle_gen`, `image_selector`, `diagram_gen`, `music_gen`, `audio_enhance` | Asset generation |
| Playbook | Active style playbook | Brand consistency |
## Process
### 1. Start With Mandatory Assets
Highest priority:
- subtitles for every clip,
- clean audio where needed,
- speaker attribution assets if multiple speakers appear,
- quote-card templates for quote-led outputs.
### 2. Treat Topic Graphics As Optional
Generated graphics should support the batch, not dominate it. Use them only when:
- the topic truly benefits from a clarifying image,
- the episode companion needs chapter separation,
- the budget can support consistent outputs.
### 3. Use Templates, Not Reinvention
Prefer reusable templates for:
- speaker cards,
- quote cards,
- end cards,
- brand containers.
### 4. Store Rich Asset Truth In Metadata
Recommended metadata keys:
- `speaker_assets`
- `subtitle_assets`
- `quote_card_assets`
- `topic_graphics`
- `music_assets`
### 5. Quality Gate
- all clips have subtitle assets,
- speaker identity is visually consistent,
- quote-card text remains mobile-readable,
- optional generated art stays within budget and style constraints.
## Common Pitfalls
- Spending budget on optional art before subtitles and attribution assets are complete.
- Creating inconsistent speaker cards across the same episode.
- Overproducing topic graphics for long-form companion videos.
@@ -0,0 +1,63 @@
# Compose Director - Podcast Repurpose Pipeline
## When To Use
Render the podcast-derived outputs with audio fidelity as the top priority. The visuals need to support the speech, not compete with it.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Schema | `schemas/artifacts/render_report.schema.json` | Artifact validation |
| Prior artifacts | `state.artifacts["edit"]["edit_decisions"]`, `state.artifacts["assets"]["asset_manifest"]` | Output plans and asset paths |
| Tools | `video_compose`, `audio_mixer` | Rendering and mix control |
| Playbook | Active style playbook | Brand consistency |
## Process
### 1. Render Highest-Value Outputs First
Priority order:
1. short highlight clips
2. quote-led clips
3. optional long-form companion video
This keeps the most publishable assets available first.
### 2. Preserve Audio Quality
- avoid unnecessary re-encoding,
- keep speech intelligible and stable,
- use music sparingly and only when it does not compete,
- verify subtitle sync after render.
### 3. Respect Platform Shapes
- `9:16` for short-form social
- `1:1` for quote-led or feed-safe clips
- `16:9` for long-form YouTube companion output
### 4. Verify Every Deliverable
- correct duration,
- correct aspect ratio,
- readable subtitles,
- accurate speaker attribution,
- stable audio,
- consistent brand treatment.
### 5. Use Render Report Metadata
Recommended metadata keys:
- `deliverable_groups`
- `audio_notes`
- `subtitle_checks`
- `failed_outputs`
## Common Pitfalls
- Letting visual treatments degrade audio quality.
- Rendering the full companion first and delaying the clips that matter most.
- Forgetting that a simple, readable clip beats a technically elaborate but confusing one.
@@ -0,0 +1,60 @@
# Edit Director - Podcast Repurpose Pipeline
## When To Use
This stage creates the actual timeline logic for short clips and any optional full-episode companion asset. The audio remains the primary content.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Schema | `schemas/artifacts/edit_decisions.schema.json` | Artifact validation |
| Prior artifacts | `state.artifacts["assets"]["asset_manifest"]`, `state.artifacts["scene_plan"]["scene_plan"]`, `state.artifacts["script"]["script"]` | Assets, layouts, transcript timing |
| Playbook | Active style playbook | Motion and subtitle rules |
## Process
### 1. Build Clip Timelines Fast
For short-form clips:
- open on the hook,
- start captions immediately,
- make speaker attribution obvious,
- let the ending land cleanly.
### 2. Match The Edit To The Treatment
- source-video clips should emphasize speaker framing and reactions,
- audiogram clips should emphasize captions, speaker identity, and pacing,
- quote-led clips should preserve enough reading time after the line lands.
### 3. Keep Full-Episode Companion Simple
If producing one:
- use chapter cards,
- use limited recurring visual systems,
- do not force constant visual novelty if the assets are not there.
### 4. Use Metadata For Richer Timeline Notes
Recommended metadata keys:
- `clip_timelines`
- `quote_hold_times`
- `speaker_change_markers`
- `chapter_card_windows`
### 5. Quality Gate
- every short clip hooks quickly,
- captions and attribution are present,
- quote-led clips hold long enough to read,
- the long-form companion stays editorially honest and technically feasible.
## Common Pitfalls
- Building generic audiograms that ignore who is speaking.
- Ending quote clips as soon as the audio ends, before the text can be read.
- Turning a long-form companion into a weak imitation of a fully produced video podcast.
@@ -0,0 +1,135 @@
# Executive Producer — Podcast Repurpose Pipeline
## When to Use
You are the **Executive Producer (EP)** for a podcast repurpose project. You orchestrate the pipeline serially with quality gates focused on **audio preservation, clip selection quality, multi-deliverable consistency, and posting readiness**.
**No pre-production stages.** Source audio/video exists. The EP manages the complexity of extracting multiple deliverables (clips, quote cards, companion video) from a single source.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Pipeline | `pipeline_defs/podcast-repurpose.yaml` | Stage definitions |
| Skills | All 7 director skills + `meta/reviewer` | Stage execution |
| Schemas | All artifact schemas | Validation |
| Playbook | Active style playbook | Quality constraints |
## Cumulative State
```
EP_STATE:
pipeline: podcast-repurpose
playbook: <selected>
budget_total_usd: <configured>
budget_spent_usd: 0.0
# Podcast-specific
source_format: null # solo / interview / panel
deliverable_types: [] # audiogram_clips / quote_clips / companion_video
clip_count_target: 0
speaker_count: 0
artifacts:
idea: null
script: null
scene_plan: null
assets: null
edit: null
compose: null
publish: null
revision_counts: {}
issues_log: []
```
## EP-Specific Cross-Stage Checks
### After IDEA stage:
```
CHECK: Source assessment
- Source podcast format identified (solo, interview, panel)?
- Output types specified and realistic for source length?
- Clip count target achievable given source duration?
```
### After SCRIPT stage:
```
CHECK: Transcript quality
- Full episode transcribed with accurate timestamps?
- Speaker diarization present if multi-speaker?
- Highlight segments and quotable moments identified?
- At least N candidate clips where N >= clip_count_target?
```
### After SCENE_PLAN stage:
```
CHECK: Clip standalone quality
- Does each planned clip make sense without episode context?
- Does each clip have a strong opening hook?
- Are visual treatments appropriate (audiogram vs quote-led vs caption-led)?
CHECK: Companion video feasibility
- If companion video planned: is it light-touch (not over-produced)?
- Does chapter structure align with topic transitions?
```
### After ASSETS stage:
```
CHECK: Audio preservation
- Original podcast audio quality preserved (no degradation)?
- Speaker-specific assets (photos, name cards) consistent?
- Subtitles generated for all deliverables?
- Budget gate: 90% threshold warning
```
### After EDIT stage:
```
CHECK: Clip openings
- Each clip opens with its hook within first 3 seconds
- Attribution (show name, speaker) present but not slow
- Quote cards and captions timed correctly
CHECK: Deliverable consistency
- Visual style consistent across all clips
- Audio levels consistent across all clips
```
### After COMPOSE stage:
```
CHECK: Multi-deliverable validation
- All planned deliverables rendered (clips + companion if planned)?
- Each clip meets platform specs (resolution, aspect ratio)?
- Audio quality preserved from original podcast?
- Waveform/motion treatments correct per layout?
```
## Quality Gates Summary
| Gate | After Stage | What's Checked | Fail Action |
|------|-------------|---------------|-------------|
| G1 | idea | Source format, deliverable types | Revise |
| G2 | script | Transcript quality, highlights | Revise |
| G3 | scene_plan | Clip quality, companion feasibility | Revise |
| G4 | assets | Audio preservation, subtitles, budget | Revise |
| G5 | edit | Clip hooks, deliverable consistency | Revise |
| G6 | compose | Multi-deliverable probe, audio quality | Revise or send-back |
| G7 | publish | Per-clip metadata, posting schedule | Revise |
| FINAL | all | Audio quality, clip selection, consistency | Send-back |
## Execution Limits
| Limit | Value |
|-------|-------|
| Max revisions per stage | 3 |
| Max send-backs per stage pair | 1 |
| Max total send-backs | 3 |
| Max total budget | Configurable (default $1) |
| Max total wall-time | 12 minutes |
## Common Pitfalls
- **Degrading source audio**: The podcast audio is the product. Never re-encode at lower quality.
- **Context-dependent clips**: Every clip must stand alone. Test: would a stranger understand this clip?
- **Over-producing companion video**: Full-episode companion should be light-touch — waveforms, captions, topic graphics. Not a feature film.
- **Inconsistent clip styling**: All clips from one episode should look like they belong together.
@@ -0,0 +1,86 @@
# Idea Director - Podcast Repurpose Pipeline
## When To Use
Use this pipeline when the source is a podcast episode, either audio-only or video podcast, and the user wants clips, social assets, or a companion long-form video treatment.
Your first responsibility is to decide what is feasible from the source that actually exists.
## Reference Inputs
- `docs/podcast-repurposing-best-practices.md`
- `skills/creative/short-form.md`
- `skills/creative/long-form.md`
## Process
### 1. Classify The Source
Capture the source mode:
- `audio_only`
- `video_podcast`
- `hybrid` (audio plus stills, cover art, guest photos)
Also capture the conversational format:
- solo
- interview
- panel
- narrative / produced show
### 2. Choose Deliverables That Match Reality
Default deliverables should be feasible with the source and tools on hand.
Safe options:
- short-form highlight clips,
- audiogram or caption-led clips,
- quote-led clips,
- one optional full-episode companion layout.
Do not assume a high-production full-episode YouTube treatment unless the source video, branding assets, and optional imagery actually exist.
### 3. Set A Sensible Deliverable Mix
Typical starting point:
- `3-5` highlight clips
- `1-3` quote-led assets if the episode has strong one-liners
- optional long-form companion if the source justifies it
### 4. Respect Platform Differences
- `9:16` for Shorts, Reels, TikTok
- `1:1` for LinkedIn and safer feed repurposing
- `16:9` for YouTube companion video
If the source is audio-only, make that explicit in the brief. Downstream stages should not plan speaker-framed video that does not exist.
### 5. Build The Brief
Use `brief.metadata` for the richer podcast-specific contract:
- `source_mode`
- `show_name`
- `episode_title`
- `episode_number`
- `speakers`
- `conversation_format`
- `deliverable_mix`
- `brand_assets_available`
- `full_episode_companion_feasible`
### 6. Quality Gate
- the deliverable mix matches the actual source,
- clip counts are realistic for the episode length,
- the brief states whether visuals will be source-led, quote-led, or audiogram-led,
- long-form ambitions are scaled to the available assets.
## Common Pitfalls
- Treating audio-only and video-podcast sources as the same production problem.
- Planning too many deliverables from a weak episode.
- Promising a rich full-episode visual treatment without the assets to support it.
@@ -0,0 +1,61 @@
# Publish Director - Podcast Repurpose Pipeline
## When To Use
Package podcast-derived clips and companion assets so that every short-form piece points back to the episode instead of drifting as an isolated fragment.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Schema | `schemas/artifacts/publish_log.schema.json` | Artifact validation |
| Prior artifacts | `state.artifacts["compose"]["render_report"]`, `state.artifacts["idea"]["brief"]`, `state.artifacts["script"]["script"]` | Outputs, source truth, chapters |
| Playbook | Active style playbook | Brand voice |
## Process
### 1. Link Every Clip Back To The Episode
Each short-form asset should reference:
- show name,
- episode title or number,
- guest name where relevant,
- full episode destination.
### 2. Tailor The Copy
- Shorts / Reels / TikTok: hook-led and concise
- LinkedIn: insight-led and more contextual
- YouTube companion: chapter-rich and search-friendly
### 3. Sequence The Release
Recommended order:
1. strongest announcement clip
2. next-best insight clip
3. quote-led or guest-led follow-ups
4. remaining supporting clips
### 4. Store Cross-Linking Truth In Metadata
Recommended metadata keys:
- `episode_reference`
- `guest_tags`
- `posting_schedule`
- `clip_to_episode_map`
### 5. Quality Gate
- every clip points back to the episode,
- guest attribution is correct,
- copy matches the platform,
- the release order reflects actual clip strength.
## Common Pitfalls
- Publishing clips without clear episode references.
- Forgetting to tag or mention the guest when that audience matters.
- Reusing one caption style across every platform.
@@ -0,0 +1,70 @@
# Scene Director - Podcast Repurpose Pipeline
## When To Use
You are deciding how each podcast deliverable should look based on the actual source mode. This is where you prevent "fake richness" and choose honest, effective treatments.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Schema | `schemas/artifacts/scene_plan.schema.json` | Artifact validation |
| Prior artifacts | `state.artifacts["script"]["script"]`, `state.artifacts["idea"]["brief"]` | Highlight set and source truth |
| Tools | `frame_sampler` | Optional visual inspection for video-podcast sources |
| Playbook | Active style playbook | Brand consistency |
## Process
### 1. Pick The Right Treatment Per Deliverable
Prefer a source-faithful hierarchy:
- if video podcast footage exists, use speaker-led scenes first,
- if only audio exists, use audiogram or quote-led layouts,
- if branding assets are limited, keep the visual system simple and repeatable.
### 2. Avoid Pretend Complexity
Do not plan a full episode with endless generated topic art unless the budget and tools support it. A clean branded companion layout is better than a noisy, underpowered pseudo-production.
### 3. Define Scene Families
Useful schema scene types:
- `talking_head` for source video speaker shots
- `text_card` for quote cards and chapter cards
- `generated` for optional topic art
- `diagram` for the rare cases where the discussion needs a graphic
- `transition` for chapter moves
### 4. Use Metadata For Layout Strategy
Recommended `scene_plan.metadata` keys:
- `deliverable_layouts`
- `speaker_card_rules`
- `quote_card_rules`
- `audiogram_rules`
- `full_episode_companion_rules`
### 5. Plan Safe Zones And Attribution
Every layout should clearly preserve:
- speaker attribution,
- subtitle zone,
- show branding,
- CTA or episode reference area if needed.
### 6. Quality Gate
- each deliverable has a treatment that matches the actual source,
- source video is used when it exists instead of being hidden behind generic graphics,
- audio-only assets remain visually simple and readable,
- long-form companion visuals are achievable.
## Common Pitfalls
- Planning speaker-centric layouts for audio-only episodes.
- Turning every clip into the same waveform-plus-logo composition.
- Using generated graphics to cover weak editorial choices.
@@ -0,0 +1,70 @@
# Script Director - Podcast Repurpose Pipeline
## When To Use
This stage creates the transcript truth, speaker attribution, highlight set, and chapter structure that every later stage depends on.
## Prerequisites
| Layer | Resource | Purpose |
|-------|----------|---------|
| Schema | `schemas/artifacts/script.schema.json` | Artifact validation |
| Prior artifact | `state.artifacts["idea"]["brief"]` | Deliverable mix and source truth |
| Tools | `transcriber`, `audio_enhance` | Diarized transcript and cleanup |
## Process
### 1. Protect Transcript Quality
If the source audio is weak, use `audio_enhance` before or alongside transcription. Speaker diarization quality directly affects quote attribution and clip quality.
### 2. Produce A Speaker-Aware Transcript
Diarization is not optional for multi-speaker episodes. Verify speaker mapping early and store the richer diarization detail in `script.metadata`.
Recommended metadata keys:
- `speaker_map`
- `transcript_path`
- `chapter_candidates`
- `highlight_candidates`
- `rejected_highlights`
### 3. Rank Highlight Moments
Use the episode transcript to find:
- concise insights,
- surprising claims,
- emotional peaks,
- debates,
- practical advice,
- memorable phrasing.
Every highlight should be evaluated for:
- standalone clarity,
- hook strength,
- attribution confidence,
- platform fit.
### 4. Build Chapters For Long-Form Packaging
If the user wants a full-episode companion asset, identify the topic shifts now. These become chapter markers and later visual transition points.
### 5. Keep The Schema Clean
Use `sections[]` for the structured production-facing segments and put the richer highlight inventory in metadata.
### 6. Quality Gate
- speaker attribution is trustworthy,
- the highlight set is strong enough for the requested deliverables,
- weak clips are rejected instead of padded,
- chapter markers cover the long-form conversation cleanly.
## Common Pitfalls
- Treating diarization errors as minor when they change who said the quote.
- Selecting clips that need too much earlier context.
- Overfitting the batch to one section of the episode.