Files
OpenMontage/pipeline_defs/documentary-montage.yaml

179 lines
7.3 KiB
YAML
Raw Permalink Normal View History

Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
name: documentary-montage
version: "1.0"
description: >
Retrieval-first thematic montage pipeline. Builds a semantic corpus of real-world
footage from Pexels, Archive.org (Prelinger et al.), NASA, Wikimedia Commons, and
Unsplash, then uses CLIP-based
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
retrieval to fill slot descriptions from a thematic brief. The edit arranges clips
by narrative beat with music sync and uniform color grade across mixed-era footage.
Inspired by Adam Curtis / Chris Marker / Errol Morris tone poems.
category: documentary
stability: beta
default_checkpoint_policy: guided
# Reference video input support
reference_input:
supported: false
orchestration:
mode: executive-producer
skill: pipelines/documentary-montage/executive-producer
budget_default_usd: 1.00
max_revisions_per_stage: 3
max_send_backs: 2
max_wall_time_minutes: 60
extensions:
custom_scripts: true
custom_playbooks: true
custom_skills: true
custom_tools: false
required_skills:
- pipelines/documentary-montage/executive-producer
- pipelines/documentary-montage/idea-director
- pipelines/documentary-montage/scene-director
- pipelines/documentary-montage/asset-director
- pipelines/documentary-montage/edit-director
- pipelines/documentary-montage/compose-director
- meta/reviewer
- meta/checkpoint-protocol
compatible_playbooks:
custom_allowed: true
stages:
- name: idea
skill: pipelines/documentary-montage/idea-director
produces:
- brief
tools_available: []
checkpoint_required: true
human_approval_default: true
review_focus:
- Thematic question is ONE sentence
- Tone register is ONE value from the fixed list
- Duration and shape are concrete
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- Music plan is present (MANDATORY — silent only if user explicitly opted out)
- End-tag plan is present (MANDATORY — one philosophical closing line, rendered as Remotion end-card, default mode "overlay" on final scenes, unless user explicitly opted out)
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- Narration plan is present (narration itself is OPTIONAL — absence is fine if music + visuals + end-tag carry the register)
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
success_criteria:
- Schema-valid brief artifact
- thematic_question present in metadata
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- music_plan present in metadata (source may be `none` ONLY with explicit user opt-out note)
- end_tag_plan present in metadata (text, palette, duration, mode — may be `null` ONLY with explicit user opt-out note)
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- name: scene_plan
skill: pipelines/documentary-montage/scene-director
required_artifacts_in:
- brief
produces:
- scene_plan
tools_available: []
checkpoint_required: true
human_approval_default: true
review_focus:
- Slot descriptions use concrete noun-and-adjective language
- Every slot has 2-3 short search queries
- At least 2 slots are marked hero
- Slot count and target holds match the tone/duration math
- era_mix is reflected in preferred_sources distribution
success_criteria:
- Schema-valid scene_plan artifact
- metadata.slots[] present with per-slot queries and preferred_sources
- Sum of target_hold_seconds within 10% of brief.duration_seconds
- name: assets
skill: pipelines/documentary-montage/asset-director
required_artifacts_in:
- scene_plan
- brief
produces:
- asset_manifest
required_tools: [] # fast path needs only direct_clip_search; standard path needs corpus_builder + clip_search
optional_tools:
- direct_clip_search
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- corpus_builder
- clip_search
- music_gen
tools_available:
- direct_clip_search
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- corpus_builder
- clip_search
- music_gen
checkpoint_required: true
human_approval_default: true
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
review_focus:
- Every slot has exactly one picked clip
- No clip_id is picked for two slots
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- Provenance (provider, original_url, license) present on every asset
- "Standard path: corpus size >= 8x slot count, scores >= 0.22, diversify ran clean"
- "Fast path: thumbnails inspected, cross-act reuse noted, gaps filled"
- rejected_picks log has reasons for passes (standard path)
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
success_criteria:
- Schema-valid asset_manifest artifact
- One video asset per scene slot
- metadata.corpus_stats present (standard path) OR metadata.search_stats present (fast path)
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- name: edit
skill: pipelines/documentary-montage/edit-director
required_artifacts_in:
- scene_plan
- asset_manifest
produces:
- edit_decisions
tools_available: []
checkpoint_required: true
human_approval_default: true
review_focus:
- renderer_family is locked to documentary-montage
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- Hero slots hold longest; mid-sequence cutaways shortest
- No two adjacent cuts share subject AND scale
- Transition vocabulary is at most 4 distinct values
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- Music config is present (MANDATORY — silent only if brief.metadata.music_plan.source=none with explicit opt-out note)
- "End-tag timing is present (MANDATORY — overlay mode: end_tag.offset_seconds in edit_decisions; concat mode: end-tag appended after body. Unless brief.metadata.end_tag_plan is null with explicit opt-out note)"
- total_duration_seconds matches sum of cut durations (body only — end-tag overlay does not extend duration; concat mode adds tag duration)
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- Every cut has a reason
success_criteria:
- Schema-valid edit_decisions artifact
- Timeline duration within 10% of brief.duration_seconds
- name: compose
skill: pipelines/documentary-montage/compose-director
required_artifacts_in:
- edit_decisions
- asset_manifest
- brief
produces:
- render_report
required_tools:
- video_compose
optional_tools:
- audio_mixer
- color_grade
- video_trimmer
- video_stitch
tools_available:
- video_compose
- audio_mixer
- color_grade
- video_trimmer
- video_stitch
checkpoint_required: true
human_approval_default: false
review_focus:
- Output duration matches planned within 1s (body duration for overlay mode; body + tag for concat mode)
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- Resolution matches target_platform canvas
- Uniform LUT applied across the timeline
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- Music is mixed in (MANDATORY — silent output only with explicit user opt-out recorded in brief)
- "render_runtime locked at proposal MUST stay 'remotion' on this pipeline until HyperFrames end-tag parity lands — the overlay/concat end-tag stack depends on Remotion CinematicRenderer components. Silent swap to hyperframes or ffmpeg is a CRITICAL governance violation."
- "End-tag rendered via Remotion (MANDATORY — absence only with explicit opt-out). Default mode: overlay (ProRes 4444 with alpha composited on final scenes). Fallback: concat (opaque card appended after body)."
- "Overlay mode: extract a frame from the overlay region and verify text is visible over footage, not over black. Concat mode: last frame must be the end-tag card."
Add documentary-montage pipeline for retrieval-first motion-clip montage New end-to-end pipeline for building thematic documentary montages from a locally-indexed corpus of free stock footage (Pexels, Archive.org, NASA). The agent builds a project-local corpus, CLIP-ranks candidates per scene slot, edits with motion-aware arc logic, and composes via ffmpeg. No paid APIs required for the full path. Pipeline definition and director skills: - pipeline_defs/documentary-montage.yaml: 5-stage manifest (idea -> scene_plan -> assets -> edit -> compose) - skills/pipelines/documentary-montage/: 6 director skills (executive-producer + idea/scene/asset/edit/compose directors) Corpus and retrieval infrastructure: - tools/video/corpus_builder.py: multi-source stock fan-out with resumable append-only corpus index - tools/video/clip_search.py: CLIP ViT-B/32 retrieval — rank_for_slot, find_similar_set, diversify, stats - tools/video/stock_sources/: base + pexels + archive_org + nasa adapters with a pluggable BaseStockSource contract - lib/clip_embedder.py: CLIP wrapper - lib/corpus.py: corpus schema, jsonl append/read, motion-score caching video_compose fix rolled in because any concat-based pipeline depends on it: - Replace ambiguous -to with -t duration (was double-trimming cuts) - Force re-encode + normalize to 1920x1080 @ 30fps (was keyframe- snapping with -c copy and breaking concat on mixed-source corpora) - Add silent-audio anullsrc fallback for clips without an audio stream README: add Documentary Montage row to the pipeline table and bump the pipeline count from 11 to 12.
2026-04-10 16:04:28 -07:00
- No silent fallback from a motion-led promise
success_criteria:
- Schema-valid render_report artifact
- Output file exists and passes ffprobe validation
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- render_report.end_tag_rendered = true (or explicit opt-out)
- render_report.end_tag_mode = "overlay" or "concat"
docmontage: make music + end-tag mandatory, add Remotion EndTag component User override during the audit runs made music and an end-tag MANDATORY defaults for documentary-montage (narration stays optional). This commit codifies those defaults into the pipeline manifest + director skills and ships the Remotion end-tag component that the compose stage now concatenates after the FFmpeg body. Changes: - pipeline_defs/documentary-montage.yaml: idea/edit/compose stages now require music_plan and end_tag_plan to be present; opt-out requires an explicit user note recorded in metadata. - skills/pipelines/documentary-montage/idea-director.md: rewrote sections 4 (music MANDATORY), 5 (end-tag MANDATORY with shape {text,palette,duration_seconds,render_engine:remotion,component:EndTag}), 6 (narration OPTIONAL), 7 (updated brief JSON shape), 8 (quality gate). Common Pitfalls grew two entries covering silent-contract drift and end-tag omission. - skills/pipelines/documentary-montage/compose-director.md: section 4 now stops on music-contract violation; new section 4b documents the two-engine flow (FFmpeg body -> npx remotion render EndTag -> ffmpeg concat). Quality gate checks render_report.metadata.music_mixed and end_tag_rendered. - remotion-composer/src/components/EndTag.tsx (new): bold uppercase typographic end-card with animated 0->100% underline draw-in and a single left-to-right shimmer sweep. Supports cool_offwhite_on_black and warm_ivory_on_black palettes. Renders at 1920x1080 @ 30fps. - remotion-composer/src/Root.tsx: register EndTag as a first-class composition (durationInFrames=165, 5.5s hold) so it can be rendered standalone via the Remotion CLI with --props overrides.
2026-04-11 00:42:53 -07:00
- render_report.music_mixed = true (or explicit opt-out)