Orchestrates the educational video pipeline from Cursor commands. Use when the user wants to generate a video scene from a narration script and a visual prompt, choosing either the Manim or Remotion pipeline.
This skill wires together the project’s pipelines so you can trigger them from Cursor with a single command.
When the user asks to create a video or scene from a script:
Gather parameters
script_file: path to the narration script or structured description (e.g. scripts/audio_binary_intro.txt).visual_prompt: a short natural-language description of what the visuals should look like.pipeline: either "manim" or "remotion".Shared behavior
make record-audiomedia/transcripts/ (generated by the transcription pipeline).script_file as inputs or reference when shaping the visuals.If pipeline == "manim"
manim-pipeline/scenes/ for an existing scene that matches the topic, or create a new scene file if needed.manim-pipeline/theme/style.py.visual_prompt and script_file as guidance for what to animate.manim -pqh manim-pipeline/scenes/<scene_file>.py <SceneClassName>media/ (gitignored).If pipeline == "remotion"
remotion-pipeline/ (or create one if missing) using the standard Remotion CLI.media/processed_recordings/.media/transcripts/.visual_prompt and script_file to decide what visual elements to show over time.manim-pipeline/theme/style.py into a shared TypeScript module in remotion-pipeline/.media/ (gitignored).Error handling / missing pieces
media/processed_recordings” or “no transcription JSON found under media/transcripts”).make record-audio) to generate it.Design language consistency
manim-pipeline/theme/style.py as the source of truth.Example 1 – Manim pipeline
scripts/audio_binary_intro.txt that shows a smooth waveform with binary digits and minimal cinematic camera moves.”script_file = "scripts/audio_binary_intro.txt"visual_prompt = "smooth waveform with binary digits and minimal cinematic camera moves"pipeline = "manim"manim-pipeline/scenes/ that matches the prompt.Example 2 – Remotion pipeline
script_file pointing to the narration script (if provided).visual_prompt as given.pipeline = "remotion".media/processed_recordings/.media/transcripts/.