2cd36fa8e0
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)
245 lines
7.9 KiB
YAML
245 lines
7.9 KiB
YAML
name: animation
|
|
version: "2.0"
|
|
description: >
|
|
Animation-first pipeline for motion graphics, diagram-led explainers, kinetic typography,
|
|
math visuals, and stylized illustrative sequences. Features a research-first pre-production
|
|
phase: the agent researches the topic and animation techniques, proposes concepts with
|
|
animation mode selection and cost estimates, and gets explicit user approval before any
|
|
assets are generated.
|
|
category: animation
|
|
stability: production
|
|
default_checkpoint_policy: guided
|
|
|
|
extensions:
|
|
custom_scripts: true
|
|
custom_playbooks: true
|
|
custom_skills: true
|
|
custom_tools: false
|
|
|
|
required_skills:
|
|
- pipelines/animation/executive-producer
|
|
- pipelines/animation/research-director
|
|
- pipelines/animation/proposal-director
|
|
- pipelines/animation/script-director
|
|
- pipelines/animation/scene-director
|
|
- pipelines/animation/asset-director
|
|
- pipelines/animation/edit-director
|
|
- pipelines/animation/compose-director
|
|
- pipelines/animation/publish-director
|
|
- meta/reviewer
|
|
- meta/checkpoint-protocol
|
|
|
|
orchestration:
|
|
mode: executive-producer
|
|
skill: pipelines/animation/executive-producer
|
|
budget_default_usd: 2.00
|
|
max_revisions_per_stage: 3
|
|
max_send_backs: 3
|
|
max_wall_time_minutes: 15
|
|
|
|
compatible_playbooks:
|
|
- clean-professional
|
|
- flat-motion-graphics
|
|
- minimalist-diagram
|
|
- anime-ghibli
|
|
|
|
stages:
|
|
# ── Pre-Production ──────────────────────────────────────────────
|
|
|
|
- name: research
|
|
skill: pipelines/animation/research-director
|
|
produces:
|
|
- research_brief
|
|
tools_available: []
|
|
checkpoint_required: false
|
|
human_approval_default: false
|
|
review_focus:
|
|
- Content landscape mapped with at least 3 existing pieces
|
|
- Data points are specific and sourced, not vague
|
|
- Animation technique references researched (at least 2)
|
|
- At least 3 genuinely different angles discovered with animation_fit
|
|
- All angles grounded in specific research findings
|
|
success_criteria:
|
|
- Schema-valid research_brief with at least 3 data_points
|
|
- At least 3 angles_discovered, each with grounded_in references
|
|
- At least 5 sources cited with URLs
|
|
|
|
- name: proposal
|
|
skill: pipelines/animation/proposal-director
|
|
required_artifacts_in:
|
|
- research_brief
|
|
produces:
|
|
- proposal_packet
|
|
- decision_log
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Concept options are genuinely different (animation mode, structure, hook)
|
|
- Animation mode selection is grounded in technique research and tool availability
|
|
- Each concept includes a reuse strategy (motifs, templates, transition family)
|
|
- Production plan reflects actual tool availability from preflight
|
|
- Cost estimate is itemized and honest
|
|
- Free/local tool options are highlighted where applicable
|
|
success_criteria:
|
|
- Schema-valid proposal_packet with at least 3 concept_options
|
|
- selected_concept includes animation_mode and reuse_strategy
|
|
- cost_estimate has itemized line_items with per-tool costs
|
|
- approval.status is "approved" or "approved_with_changes" before proceeding
|
|
|
|
# ── Production ──────────────────────────────────────────────────
|
|
|
|
- name: script
|
|
skill: pipelines/animation/script-director
|
|
required_artifacts_in:
|
|
- proposal_packet
|
|
optional_artifacts_in:
|
|
- research_brief
|
|
produces:
|
|
- script
|
|
optional_tools:
|
|
- transcriber
|
|
tools_available:
|
|
- transcriber
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Script beats are concise and animation-friendly
|
|
- On-screen text remains readable and restrained
|
|
- Timing structure leaves room for visual holds
|
|
- Word count within +/-10% of duration target from selected concept
|
|
- Script incorporates research data points where relevant
|
|
success_criteria:
|
|
- Schema-valid script artifact
|
|
- Script sections map to distinct animation beats
|
|
- Total duration matches selected concept target within 10%
|
|
|
|
- name: scene_plan
|
|
skill: pipelines/animation/scene-director
|
|
required_artifacts_in:
|
|
- script
|
|
optional_artifacts_in:
|
|
- proposal_packet
|
|
produces:
|
|
- scene_plan
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Scene system is coherent and follows reuse strategy from proposal
|
|
- Animation mode specified per scene, consistent with proposal
|
|
- Transition logic is limited and meaningful
|
|
- Every scene has a feasible tool path
|
|
success_criteria:
|
|
- Schema-valid scene_plan artifact
|
|
- Every scene includes animation mode and visual treatment
|
|
|
|
- name: assets
|
|
skill: pipelines/animation/asset-director
|
|
required_artifacts_in:
|
|
- scene_plan
|
|
- script
|
|
optional_artifacts_in:
|
|
- proposal_packet
|
|
produces:
|
|
- asset_manifest
|
|
required_tools:
|
|
- tts_selector
|
|
optional_tools:
|
|
- image_selector
|
|
- video_selector
|
|
- math_animate
|
|
- diagram_gen
|
|
- code_snippet
|
|
- music_gen
|
|
tools_available:
|
|
- tts_selector
|
|
- image_selector
|
|
- video_selector
|
|
- math_animate
|
|
- diagram_gen
|
|
- code_snippet
|
|
- music_gen
|
|
checkpoint_required: true
|
|
human_approval_default: false
|
|
review_focus:
|
|
- Asset production path is explicit per scene
|
|
- Reusable motifs and templates are prepared and referenced
|
|
- Missing tool paths are surfaced honestly
|
|
- Total cost within approved budget from proposal_packet
|
|
success_criteria:
|
|
- Schema-valid asset_manifest artifact
|
|
- All referenced asset files exist on disk
|
|
|
|
- name: edit
|
|
skill: pipelines/animation/edit-director
|
|
required_artifacts_in:
|
|
- scene_plan
|
|
- asset_manifest
|
|
optional_artifacts_in:
|
|
- script
|
|
produces:
|
|
- edit_decisions
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: false
|
|
review_focus:
|
|
- Hold times and staggered reveals are preserved
|
|
- Motion serves hierarchy rather than decoration
|
|
- Timeline logic is consistent across scenes
|
|
- Audio ducking configured for narration segments
|
|
success_criteria:
|
|
- Schema-valid edit_decisions artifact
|
|
- Edit decisions cover all planned animation beats
|
|
|
|
- name: compose
|
|
skill: pipelines/animation/compose-director
|
|
required_artifacts_in:
|
|
- edit_decisions
|
|
- asset_manifest
|
|
optional_artifacts_in:
|
|
- scene_plan
|
|
produces:
|
|
- render_report
|
|
- final_review
|
|
required_tools:
|
|
- video_compose
|
|
- audio_mixer
|
|
optional_tools:
|
|
- video_stitch
|
|
tools_available:
|
|
- video_compose
|
|
- audio_mixer
|
|
- video_stitch
|
|
checkpoint_required: true
|
|
human_approval_default: false
|
|
review_focus:
|
|
- Text and diagrams remain sharp at final resolution
|
|
- Motion timing survives the final render
|
|
- Audio sync matches the animatic intent
|
|
- Duration within +/-5% of target
|
|
success_criteria:
|
|
- Schema-valid render_report artifact
|
|
- Output file exists and passes ffprobe validation
|
|
|
|
- name: publish
|
|
skill: pipelines/animation/publish-director
|
|
required_artifacts_in:
|
|
- render_report
|
|
- final_review
|
|
optional_artifacts_in:
|
|
- proposal_packet
|
|
- script
|
|
produces:
|
|
- publish_log
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Platform packaging matches the animation style
|
|
- Metadata reflects the actual topic, animation mode, and visual system
|
|
- Thumbnail concept matches the final visual language
|
|
success_criteria:
|
|
- Schema-valid publish_log artifact
|
|
- Export package contains video and metadata outputs
|