mirror of
https://github.com/hanzoai/video.git
synced 2026-11-03 04:21:39 +00:00
Implements the 2026-04-02 transformation spec (Phases 1-8) and fixes all critical bugs found during 5-pipeline E2E testing. Governance & Decision Intelligence: - Pipeline-specific stage order in checkpoint (replaces global STAGES list) - Provider scoring engine (lib/scoring.py) with 7-dimension weighted ranking - Decision log artifact enforced at proposal/idea stage across all 10 pipelines - Delivery promise classifier prevents silent motion-to-still downgrades - Structured shot language in scene_plan schema (camera, lens, lighting, DOF) - Variation checker and slideshow risk scorer block samey output before render - Creative intake, capability extension, and creative-intake meta skills - Final self-review artifact with 5 mandatory checks before presenting output - Source media review contract for user-supplied footage Render & Theme System: - Remotion AnimatedBackground now derives colors from playbook (no more hardcoded dark blue fintech gradient on every video) - video_compose builds custom ThemeConfig from playbook YAML colors/fonts — custom playbooks flow through to Remotion automatically - Explainer component wires theme to all child components (charts, cards, etc.) - resolveAsset() handles absolute paths on Windows/Unix via file:// URIs - RENDERER_FAMILY_MAP synced with actual Remotion compositions Critical Bug Fixes: - Windows npx subprocess: run_command() resolves .cmd wrappers via shutil.which() - Silent renderer downgrade: Remotion failure now returns explicit error with options instead of silently falling back to FFmpeg - .env inline comment parsing strips trailing # comments from API keys - concat_path UnboundLocalError in video_compose finally block - audio_mixer and showcase_card capture=True kwarg bug - Selector estimate_cost() calls fixed (_select_tool -> _select_best_tool) - asset_manifest schema expanded with provider, license, subtype fields - screen-demo subtitle_gen moved from required to optional tools - Duration drift detection in post-render final review (>25% warns)
1.4 KiB
1.4 KiB
Publish Director - Cinematic Pipeline
When To Use
Package the cinematic piece and any cutdowns so the hero version stays clear and the distribution intent is obvious.
Prerequisites
| Layer | Resource | Purpose |
|---|---|---|
| Schema | schemas/artifacts/publish_log.schema.json |
Artifact validation |
| Prior artifacts | state.artifacts["compose"]["render_report"], state.artifacts["proposal"]["proposal_packet"], state.artifacts["research"]["research_brief"], state.artifacts["script"]["script"] |
Final outputs and beat map |
| Playbook | Active style playbook | Tone and naming consistency |
Process
1. Separate Hero And Derivatives
Typical deliverables:
- hero trailer or brand film,
- teaser cut,
- social cutdown,
- poster-frame or thumbnail concept.
2. Match Metadata To Tone
Packaging should reflect the actual mood:
- dramatic,
- premium,
- mysterious,
- reflective,
- urgent.
3. Preserve Editorial Truth
Store in publish_log.metadata:
hero_outputderivative_outputsposter_frame_notesdistribution_notes
4. Quality Gate
- hero export is clearly identified,
- derivative exports are labeled by purpose,
- metadata fits the tone,
- the package is usable without manual cleanup.
Common Pitfalls
- Mixing teaser and hero outputs without clear naming.
- Writing generic metadata that ignores the mood.
- Treating all cutdowns as interchangeable.