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)
5.7 KiB
Asset Director - Avatar Spokesperson Pipeline
When To Use
This stage prepares the actual spokesperson ingredients: narration, avatar or lip-sync footage, subtitle assets, branded backgrounds, and the minimal support graphics needed to complete the cut.
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"] |
Presenter plan and narration needs |
| Tools | talking_head, lip_sync, tts_selector, subtitle_gen, image_selector, audio_enhance — selectors auto-discover all available providers from the registry |
Avatar, narration, and support asset options |
| Playbook | Active style playbook | Background, type, and subtitle rules |
Process
1. Lock The Avatar Generation Path
Use one primary path and record it clearly:
talking_headfrom still image plus audio,lip_syncfrom existing presenter plate plus new audio,- externally supplied avatar render if created outside the current runtime.
Do not hide a blocked avatar path. Record it.
1b. Sample Preview (Prevents Wasted Spend)
Before batch-generating assets, produce one sample of each expensive type and show the user:
- TTS sample (if generating narration): Generate one section. Confirm voice, pace, and persona before batching the rest.
- Avatar sample (if using
talking_head): Generate a short test clip. Confirm the avatar quality is acceptable before committing to full generation.
If rejected, adjust parameters and retry (max 3 iterations). Do not batch until approved.
2. Resolve Narration Before Support Graphics
Spokesperson videos depend on speech. Determine whether narration is:
- supplied,
- TTS-generated,
- already embedded in a presenter plate.
If narration is missing and no TTS tool is available, mark the project blocked instead of pretending the stage succeeded.
3. Build The Minimal Support Kit
Prepare only what the scene plan actually needs:
- subtitle files,
- one lower-third system,
- CTA card,
- background or plate assets,
- optional still or product support images.
4. Use Metadata For Capability Truth
Recommended metadata keys:
avatar_generation_pathnarration_assetssubtitle_assetsbackground_assetsscene_asset_indexblocked_assets
5. Quality Gate
- the avatar path is explicit,
- narration and avatar assets align,
- support graphics stay minimal,
- every referenced file exists.
No-Avatar Path
When the EP has triggered a narration-over-graphics pivot (neither talking_head nor lip_sync available), skip avatar generation entirely and produce a graphics-driven asset kit instead:
What to produce:
- Narration audio — via
tts_selector(mandatory; block the project if no TTS is available either). - Scene visuals — via
image_selectororvideo_selector. One primary visual per scene that reinforces the spoken point (diagram, illustration, product shot, or stock footage). - Subtitle files — same as standard path.
- Text cards — key-point overlays, stat cards, CTA end card.
- Backgrounds — consistent family matching the playbook.
What to skip:
- No
talking_headorlip_synccalls. - No presenter framing metadata.
avatar_generation_pathshould be set to"none — narration-over-graphics pivot".
Metadata for this path:
avatar_generation_path:"narration_over_graphics"pivot_reason: why the no-avatar path was chosen- All other metadata keys remain the same.
Mid-Production Fact Verification
If you encounter uncertainty during asset generation:
- Use
web_searchto verify visual accuracy of subjects (e.g. what does this building actually look like?) - Use
web_searchto find reference images before generating illustrations - Log verification in the decision log:
category="visual_accuracy_check"
Visual accuracy matters. If the script mentions a specific place, person, or object, verify what it actually looks like before generating images. Don't rely on the AI model's training data — it may be wrong or outdated.
Common Pitfalls
- Building decorative assets before the narration path is solved.
- Mixing multiple avatar-generation strategies in one simple spokesperson video.
- Marking the stage complete when the core presenter asset is still hypothetical.
- (No-avatar path) Generating filler visuals with no connection to the narration — every image must reinforce the spoken point.
When You Do Not Know How
If you encounter a generation technique, provider behavior, or prompting pattern you are unsure about:
- Search the web for current best practices — models and APIs change frequently, and the agent's training data may be stale
- Check
.agents/skills/for existing Layer 3 knowledge (provider-specific prompting guides, API patterns) - If neither helps, write a project-scoped skill at
projects/<project-name>/skills/<name>.mddocumenting what you learned - Reference source URLs in the skill so the knowledge is traceable
- Log it in the decision log:
category: "capability_extension",subject: "learned technique: <name>"
This is especially important for:
- Video generation prompting — models respond to specific vocabularies that change with each version
- Image model parameters — optimal settings for FLUX, DALL-E, Imagen differ and evolve
- Audio provider quirks — voice cloning, music generation, and TTS each have model-specific best practices
- Remotion component patterns — new composition techniques emerge as the framework evolves
Do not rely on stale knowledge. When in doubt, search first.