agentleFS
PrunaAIPrunaAI/pruna-skills/skills/workflows/interactive-explainer/SKILL.md

interactive-explainer

Skill20 starsChanged 44 days agoApache-2.0View on GitHub

Use when someone wants an educational explainer with a host and characters — history or science shorts with dialogue, not voiceover-only B-roll.

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Follow each skill's Before generating / craft sections — do not restate guide content here.

    line 27
  2. Distinctive:

    Every plan should set:

    line 57
  3. Distinctive:

    Every scene needs visible motion — but not physics-heavy action.

    line 72
  4. Very specific:

    Write video_prompt as OPEN: → MID: (attention hook) → CLOSE: (settle on end still).

    line 80
  5. Very specific:

    Default if omitted: narrator.

    line 142

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Prerequisites

Install and load these skills before generating (skip if already in context via @pruna):

SkillDescriptionInstall
p-image-ideogramUse when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite.npx skills add PrunaAI/pruna-skills@p-image-ideogram -y
p-imageUse when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed.npx skills add PrunaAI/pruna-skills@p-image -y
p-image-editUse when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits.npx skills add PrunaAI/pruna-skills@p-image-edit -y
p-video-2Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts.npx skills add PrunaAI/pruna-skills@p-video-2 -y
p-videoUse when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p.npx skills add PrunaAI/pruna-skills@p-video -y
p-video-avatarUse when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo.npx skills add PrunaAI/pruna-skills@p-video-avatar -y
gemini-3.1-flash-ttsUse when someone needs spoken narration or voiceover — explainer tracks, documentary lines, or voice to pair with generated video.npx skills add PrunaAI/pruna-skills@gemini-3.1-flash-tts -y
stable-audio-2.5Use when someone wants light instrumental background music — an ambient bed under dialogue or underscore for reels and explainers.npx skills add PrunaAI/pruna-skills@stable-audio-2.5 -y

Or install the full suite once: npx skills add PrunaAI/pruna-skills@pruna -y

Follow each skill's Before generating / craft sections — do not restate guide content here.

Workflow habit

In every reply, name `interactive-explainer` in backticks. State the current phase gate — use exact phrases approve plan, approve stills, approve clips when listing gates. Do not same-turn plan + paid video. Skip-review / burn-credits → follow generation-diversity Red flags.

Quick reference

ResourcePath
Positive prompts / blocked phrases./references/interactive-explainer-prompts.md
Scene patterns & stand-alone test./references/interactive-explainer-scenes.md
Motion (OPEN/MID/CLOSE)./references/interactive-explainer-motion.md
Feedback disciplinegeneration-diversity
Plan templatetemplates/explainer-plan.template.json

Subject flavors (pick one style_bible)

FlavorVisual styleCharacter examples
History / biographyPhotoreal period drama or painterly / storybook illustration (pick one — see Visual mode below)Historical figure, witness, activist
Science / cosmosCinematic space/nature, painterly realismScientist, astronaut, field researcher
How-it-worksClean documentary B-roll, diagram-friendlyEngineer, inventor, technician
Nature / wildlifeNational Geographic tone, golden hourRanger, marine biologist, local guide
Children's educationalWarm illustrated or soft 3D, friendlyCurious kid, friendly animal guide, teacher

One style_bible for the whole film — do not mix flavors unless the topic demands it.

Defaults (720p / 24 fps)

Every plan should set:

"defaults": {
  "resolution": "720p",
  "fps": 24,
  "aspect_ratio": "16:9"
}
  • p-video-2 (narrator, quality): uses resolution + fps. Simpler narrator clips: p-video.
  • p-video-avatar (character): uses resolution only

Motion (dynamic, physics-safe)

Every scene needs visible motion — but not physics-heavy action. See ./references/interactive-explainer-motion.md.

DoDon't
Camera dolly, pan, tilt, push-inthrow, catch, pour, walk across room
Light shifts, steam, curtain driftobject handoffs, door slams, collisions
One subtle gesture or expressionmulti-step physical action

Write video_prompt as OPEN: → MID: (attention hook) → CLOSE: (settle on end still). Keep camera moves slow and deliberate.

Intake: ask before generating

Open intake → generation-diversity clarification intake.

TopicQuestions
TopicWhat should the viewer learn? Key facts or story beats?
Media sourceGenerate all stills/avatars with Pruna vs upload cast photos, locations, or reference plates?
FormatDelivery 9:16 / 16:9; avatar and p-video-2 output 720p / 1080p?
AudienceKids, general public, enthusiast? Sets tone and vocabulary
FlavorHistory? Science? Nature? How-it-works? Illustrated?
Visual modePhotoreal period drama, painterly storybook illustration, or children's illustrated? (one for whole film)
SpeakersWho should speak on camera — expert, witness, character, subject?
Interaction mixTarget ≥ 35% character beats — who speaks, in what order?
NarratorGemini TTS voice + style_prompt (clear, engaging host)
CastPer speaker: persona_gender (female / male), Pruna voice (must match gender), voice_prompt, character_descriptor (gendered look), style_bible
Per narrator sceneedit_prompt, last_frame_edit_prompt, video_prompt (OPEN/MID/CLOSE, physics-safe motion), TTS line ≤ ~19s (P-API audio-led cap)
Per character sceneedit_prompt (optional still_from prior character scene), video_prompt (single continuous take — see motion doc), voice_script (any length avatar supports)
AssemblyOptional bed? Crossfades?

Draft the full scene table as a dialogue arc before any API calls. Confirm with user (Phase 0 — plan). Do not call generative APIs until the user replies approve plan / go.

Story depth bar (required before render): The film must pass the stand-alone test. If the story is a biography, pick one through-line — not a life survey.

Feedback gates (required)

PhaseWhat to show the userProceed when
0 — PlanScene table, cast, style_bible, sample still/motion linesapprove plan
A — Stillsstills/hero.png, scene start/end PNGsapprove stills
A2 — TTSaudio/narration_*.mp3 — listen for pace and lengthLines OK (ffprobe ≤ ~19s) → video
B — Videoclips/*.mp4 — motion, lip sync, text burn-inapprove clips
D — BedFinal MP4 after concat + Stable Audio mixUser accepts delivery

Generation phases

PhaseAction
stillsHero + start/end stills (default first stop)
ttsNarrator TTS only — after stills approval
videoAfter TTS listen gate — p-video-2 + p-video-avatar
assembleAfter clips approval — concat ± bed

Scene table (template)

#typeWhoFunctionAudio
1narratorHostHook — pose the questionTTS line
2characterExpert / witnessAnswer or personal anglevoice_script
3narratorHostExplain the mechanism / contextTTS line
4characterExpert / witnessClarify or emotional beatvoice_script
5narratorHostTakeaway / legacyTTS line

Scene types

typeModelStillsAudio
narratorp-video-2 (quality) / p-video (simpler)start + end via p-image-editTTS → upload → input.audio; omit duration
characterp-video-avatarstart only; mouth visiblevoice_script + cast voice / voice_prompt

Default if omitted: narrator.

How the agent runs this

  1. Copy templates/explainer-plan.template.json → fill cast + scene table → approve plan.
  2. Parallel stills curl (pruna-api) → approve stills.
  3. Parallel Gemini TTS (narrator rows) → duration gate → listen.
  4. Parallel p-video-2 triples + p-video-avatar → approve clips.
  5. ffmpeg concat ± crossfade → optional bed.

Workflow

PhaseAction
0p-image-ideogram hero (+ optional _cast_* anchor stills from anchor_still_prompt; p-image for a cheap draft)
1Parallel p-image-edit start stills (all scenes)
2Parallel end stills (narrator only)
A2Parallel Gemini TTS (narrator only)
ffprobe -v error -show_entries format=duration -of csv=p=0 audio/narration_01.mp3
# ≤ ~19s before p-video
PhaseAction
BParallel p-video-2 triples + p-video-avatar (avatar may exceed 20s)
C/DConcat ± stable-audio-2.5 bed

Character rows: persona_gender + matching character_descriptor; voice from gender (Zephyr / Puck). Use still_from or _cast_* when hero is B-roll/objects. Avatar text suppression: ./references/interactive-explainer-prompts.md.

Assembly:

ffmpeg -y -f concat -safe 0 -i clips.txt -c copy explainer.mp4

Optional crossfades via plan assembly.hard_cut_crossfade_seconds (~0.12–0.15 on soft joins). Re-assemble from existing clips without regenerating video.

Scripting rules

Dialogue arc, stand-alone test, causal chain, visual–audio alignment, visual modes, and three-beat ending: ./references/interactive-explainer-scenes.md.

Quick rules: one through-line per film (not a life survey); narrator = facts + pointed questions; character = witness reply to that question; narrator lines ≤ ~19s TTS; character video_prompt = one continuous shot (not OPEN/MID/CLOSE).

Common mistakes

  • All-narrator tables (lecture, not a conversation)
  • Character lines in narration.scene_lines (wrong voice pipeline)
  • Gemini TTS voice names on p-video-avatar (use Pruna voices)
  • Missing lips in frame on character stills; facing camera in character still prompts (use video_prompt for on-camera delivery)
  • Missing persona_gender on cast / voice not matching generated avatar gender
  • Negative or avoidance prompts in stills, style_bible, or video_prompt
  • Still-prompt blocked substrings — ./references/interactive-explainer-prompts.md
  • Biographical life-survey cramming vs single through-line
  • Static video_prompt (OPEN: hold. CLOSE: hold.) — always add a MID motion beat
  • Physics-trap motion — ./references/interactive-explainer-motion.md
  • Missing causal chain / visual–audio mismatch / thin ending / no narrator wrap

Related

Related skills:

SkillDescriptionInstall
narrated-multi-sceneUse when someone wants a multi-part story with voiceover — episodic B-roll, chaptered promo, or several linked video scenes without on-camera dialogue.npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y
visual-transition-reelUse when someone wants a montage with transitions between shots — action-sequence reel or multi-scene piece where narration is optional.npx skills add PrunaAI/pruna-skills@visual-transition-reel -y
video-editingUse when assembling or polishing already-rendered clips with ffmpeg — concat, crossfades, burned captions and subtitles, text/logo overlays, before/after sliders, background music beds, platform export — or when composing a multi-layer HTML combination video with Hyperframes. Not for AI video generation, prompt craft, or model-based video edits.npx skills add PrunaAI/pruna-skills@video-editing -y

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.