multicam-director
Sync N camera angles by waveform, then auto-direct a flattened single-track program cut from the diarized transcript, applied graph-natively through EDL ops.
Skill by explicit09
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-multicam-director
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.
About
Reviews
Write a reviewNo 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
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/multicam-director
What's inside
- Skill name
multicam-director- Description
- Sync N camera angles by waveform, then auto-direct a flattened single-track program cut from the diarized transcript, applied graph-natively through EDL ops.
- License
- Apache-2.0
- Instructions
- 160 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Multicam director
Use this when the user has **multiple camera angles of the same take**
(podcast, interview, panel, live event) and wants them cut into one
program. This is a graph-native assembly pass: the only durable outputs
are `Set Sync Group` and `Apply Multicam Plan` EDL ops applied through
`apply_edl`. Never produce a detached FFmpeg switch script that bypasses
the edit graph.
The pass has two halves that **must run in order**: first align the
angles in time (`analyze_sync`), then direct the cut (`plan_multicam`).
Planning before syncing produces wrong angles, because the director
scores each camera's sidecars at the program time, and an unsynced
camera's sidecars are offset from that time.
## Prerequisites
This skill is recommendation-driven and reads indexer sidecars. Confirm
the inputs exist before planning:
```
view_timeline
read_index(channel="transcript", asset_id=<audio master>)
read_index(channel="face", asset_id=<each camera>)
read_index(channel="shot", asset_id=<each camera>)
```
- **Whisper with diarization** on the audio master — supplies the
`segments[]` with `speaker_id` that drive who-is-talking switching.
- **Face** on each camera — supplies `speaker_to_face` so the director
knows which angle actually shows the current speaker.
- **Shot** on each camera — supplies `type` (close/medium/wide) for
framing preference and the topic-change wide reset.
- **Frame-quality** (optional) — breaks ties toward the sharper angle.
If any are missing, instruct the user to index first
(`montage index --indexer whisper|face|shot <project>`). At least two
`Camera`-role assets are required.
## 1. Sync the angles
Run waveform alignment across the cameras (and any external mics):
```json
analyze_sync({"reference_asset":"raw/cam-a.mp4"})
```
Each proposal carries `offset_s`, `confidence`, a `sync_group_id`, an
optional `speed_factor` (drift correction), `manual_offset_required`,
and a ready `Set Sync Group` EDL fragment.
Apply only the proposals you trust:
- `confidence >= 0.35` and no `blocker`: apply the proposal's
`Set Sync Group` fragment through `apply_edl` (fill in the candidate
clip's `clip_uuid` from `view_timeline`/`inspect_clip`).
- `manual_offset_required: true` (low confidence) or a drift `blocker`:
**do not auto-apply.** Surface the proposal, ask the user for the
offset (or to split the drifting source), then apply with the
confirmed `offset_s`.
```text
*** Begin EDL
*** Set Sync Group
@@ anchor: clip_uuid=<candidate clip uuid>
+ sync_group_id: sync-cam-a-cam-b
+ offset_s: 2.000000
+ confidence: 0.910
*** End EDL
```
The reference camera needs no sync group (offset 0). After applying,
`vedit_diff` should show one `montage.sync_group` effect per non-reference
camera.
## 2. Direct the program cut
With offsets applied, run the director:
```json
plan_multicam({"min_hold_s": 3.0})
```
It reads the applied sync offsets and scores each camera **at its own
source time**, so the angles line up. It returns flattened
`Program Video` decisions, each with `source_asset`, `speaker`,
`reason`, `sync_group_id`, and `metadata.offset_corrected`, plus a ready
`Apply Multicam Plan` EDL fragment.
Review before applying:
- **`warnings[]`** — if it reports no applied sync groups for a
multi-camera project, go back to step 1; the cut is assuming a shared
timebase and will be misaligned for separate-device recordings.
- **`offset_corrected: false`** on a camera that should have been synced
means its `Set Sync Group` was not applied — fix step 1 and re-run.
- **`min_hold_s`** — raise it (e.g. 4–5s) if the cut feels twitchy, lower
it for a punchier edit. The director holds the previous angle until the
minimum hold elapses, and forces a wide angle at topic-change
boundaries.
- Spot-check a few cut points with `view_frame` to confirm the chosen
angle actually frames the speaker.
When the decisions look right, apply the fragment:
```text
*** Begin EDL
*** Apply Multicam Plan
+ plan_json: { "program_track": "Program Video", "decisions": [ ... ] }
*** End EDL
```
`Apply Multicam Plan` atomically replaces the `Program Video` track and
stamps `multicam_source_asset`, `multicam_decision_index`, and
`sync_group_id` on each program clip for `vedit` audit. It validates that
decisions are non-empty, finite, and non-overlapping before mutating, so
a bad plan fails without touching the graph.
## 3. Verify and renderFrom explicit09/montage, Apache-2.0.
More from explicit09/montage
- 0.523score
color-corrector
explicit09
Analyze footage color/exposure problems and apply clip-level graph-native color correction or LUTs through EDL ops.
SkillBFreshness: BClaude Code +9 - 0.517score
podcast-episode-producer
explicit09
End-to-end production of a published podcast episode from raw recording.
SkillBFreshness: BClaude Code +9 - 0.504score
generated-explainer
explicit09
Use when the user wants a generated educational, technical, mathematical, or visual-essay video rather than an edit built primarily from recorded footage.
SkillBFreshness: BClaude Code +9 - 0.476score
pacing-optimizer
explicit09
Optimize pacing by removing dead zones, preserving intentional pauses, and applying safe speed changes based on content type and speech rate.
SkillCFreshness: CClaude Code +9 - 0.476score
auto-cutter
explicit09
Extract the real episode from a long raw recording, then apply conservative mechanical cleanup for silence, fillers, and false starts.
SkillCFreshness: CClaude Code +9 - 0.476score
beat-sync-editor
explicit09
Edit footage to music by creating beat-aligned cut plans, motivated transitions, speed accents, and verification of timing tolerance.
SkillCFreshness: CClaude Code +9 - 0.476score
drawn-artifacts
explicit09
Generate charts, data visualizations, animated counters, and polished motion-graphic assets with open-source generators (matplotlib, Manim, Lottie, Motion…
SkillCFreshness: CClaude Code +9 - 0.476score
interview-tightener
explicit09
Tighten an interview by 20-30% without losing meaning.
SkillCFreshness: CClaude Code +9 - 0.476score
meeting-highlights
explicit09
Create concise meeting highlight cuts and reports focused on decisions, action items, blockers, and executive-ready context.
SkillCFreshness: CClaude Code +9 - 0.476score
overlay-animation
explicit09
Plan generated motion-graphic overlay assets as Montage media overlays, with per-slot briefs, exact durations, and EDL insertion hints.
SkillCFreshness: CClaude Code +9 - 0.476score
podcast-editor
explicit09
Polish podcast or interview audio/video by tightening silence, removing filler, applying speed only where safe, balancing speakers, and verifying loudness.
SkillCFreshness: CClaude Code +9 - 0.474score
b-roll-suggester
explicit09
Find visual cutaways for spoken content from an EXISTING IN-PROJECT B-roll library (separate cutaway assets imported alongside the primary recording).
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 7, 2026 (4 months ago)
- Last release
- Jun 10, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/explicit09/montage
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from explicit09
- 0.523score
color-corrector
explicit09
Analyze footage color/exposure problems and apply clip-level graph-native color correction or LUTs through EDL ops.
SkillBFreshness: BClaude Code +9 - 0.517score
podcast-episode-producer
explicit09
End-to-end production of a published podcast episode from raw recording.
SkillBFreshness: BClaude Code +9 - 0.504score
generated-explainer
explicit09
Use when the user wants a generated educational, technical, mathematical, or visual-essay video rather than an edit built primarily from recorded footage.
SkillBFreshness: BClaude Code +9 - 0.476score
auto-cutter
explicit09
Extract the real episode from a long raw recording, then apply conservative mechanical cleanup for silence, fillers, and false starts.
SkillCFreshness: CClaude Code +9 - 0.476score
beat-sync-editor
explicit09
Edit footage to music by creating beat-aligned cut plans, motivated transitions, speed accents, and verification of timing tolerance.
SkillCFreshness: CClaude Code +9 - 0.476score
drawn-artifacts
explicit09
Generate charts, data visualizations, animated counters, and polished motion-graphic assets with open-source generators (matplotlib, Manim, Lottie, Motion…
SkillCFreshness: CClaude Code +9
Cite this page
multicam-director skill. Agent Mart. https://agentmart.dev/skills/explicit09-multicam-director (last updated 2026-10-24)