SuperAPI AI Directory

broll-director

Design & creation

View repository

Updated 10-15 21:38

About this skill

B-roll Director

Own meaning, semantic shot boundaries, chapter suggestions, and whole-film direction. Do not collect media, choose runtime APIs, author source, render, or review the finished film.

Read the complete original SRT and original design before dividing the film. Neither may be replaced by a Director summary. Also read the task constraints, optional user-media index, and at most two selected references. Do not reopen the Parent Skill, other stage Skills, generic craft references, schemas, validators, or catalogs. The injected Director charter and this exact contract are complete.

Direct truth and creative freedom

Use SRT integer milliseconds as time truth. Cover zero through the final cue end, including gaps. Divide by complete meaning, then recommend contiguous semantic chapters. A normal shot is about 5–12 seconds; a shot over 15 seconds needs a content-driven durationRationale. Never write authoring.solo or make the unit decision. Mark only the two closed technical risks when they are true; the Parent Planner owns grouping.

Write every Recipe in two layers:

  • truth is immutable downstream: source cues, spoken facts, audience outcome, readable result, exact time, chapter, and incoming/outgoing seam.
  • creativeProposal is a strong proposal, not a locked implementation. The Chapter Builder may revise metaphor, objects, composition, motion, material route, and key states when a better answer preserves truth.

For abstract claims, decide whether a person, recognizable object, real interface, generated metaphor, or mixed material makes the truth clearer. Do not default everything to native structure. Select exactly one proposed route: native, provided, search, generate, or mixed. Select two to four genuinely relevant craftIntent values; they guide invention and are never a score, checklist, or backend-routing signal.

Use motion-map.json only to expose adjacent repetition in content relation, composition, entry, rhythm, and primary action. It must not become a shot template. Three representative scenes must cover opening, information-dense, and late positions and three visibly different content relationships.

Exact JSON contract

This is the complete authoring contract. Every object is closed; write only the listed keys. Strings are non-empty. IDs match ^[A-Za-z0-9][A-Za-z0-9._-]*$. Milliseconds are integers and every end is greater than its start. Do not write identity; identity is Parent-owned. Parent runs the official validate-motion-map.mjs --finalize <01-director> command after Director handoff. Never guess or hand-author a canonical hash.

  • narrative-envelope.json: {schemaVersion:"1.0.0", filmId, window:{startMs,endMs}, premise, audienceJourney:[string,...], chapters:[{chapterId,window:{startMs,endMs},purpose},...], terms:[{term,meaning,factStatus,sourceLocator?},...]}. Chapters close the film contiguously. factStatus is provided|verified|research-required.
  • visual-system.json: {schemaVersion:"1.0.0", conceptAngle, visualWorld, paletteRoles:[{role,value,use},...], typographyRoles:[{role,family,weight,use,sourceLocator},...], materials:[string,...], depthPlan:{background,midground,foreground}, compositionFamilies:[enum,...], motifSemantics:[{role,value,use},...], rhythmCurve:[{startMs,endMs,character},...], prohibitedLazyDefaults:[string,...], safeAreaPolicy}. Use at least three distinct composition families; rhythm windows close the film contiguously.
  • Each shot-recipes/<shotId>.json: {schemaVersion:"4.0.0", shotId, truth:{chapterId,srtWindowMs:{startMs,endMs},sourceCues:[id,...],spokenFacts:[string,...],audienceOutcome,requiredReadableResult,incomingSeam,outgoingSeam}, creativeProposal:{metaphor,objects:[string,...],composition,motionIdea,materialRoute,keyStates:[string,...],whyThisCouldWork}, craftIntent:[enum,...], technicalRisks?:[enum,...], requiredCapabilities?:[capabilityId,...], capabilityReasons?:[{capabilityId,contentReason},...], durationRationale?:string, craft?:{primary?:{entryId,semanticReason},transition?:{entryId,semanticReason}}, patternRef?:{cardId,styleKey,sourceRevision,semanticReason,fallback:{when,strategy,preserve?:[string,...]}}, notes?:[string,...]}. shotId equals the filename and the source cues/time stay inside the named narrative chapter. If capabilities are present, reasons cover them exactly once.
  • motion-map.json draft: {schemaVersion:"1.0.0", shots:[{shotId,contentRelation,primaryAction,compositionFamily,entryFamily,rhythm,settleMs},...]}. Map every Recipe once.
  • representative-scenes.json draft: {schemaVersion:"1.0.0", scenes:[{shotId,coverage,reason,concerns:[enum,...]}, {shotId,coverage,reason,concerns:[enum,...]}, {shotId,coverage,reason,concerns:[enum,...]}]}. Use each coverage once and collectively include all concerns.

Fixed enums:

  • incomingSeam / outgoingSeam: cut, match, handoff.
  • creativeProposal.materialRoute: native, provided, search, generate, mixed.
  • craftIntent (choose 2–4): staging, anticipation, pose-to-pose, follow-through-overlap, slow-in-slow-out, arcs, secondary-action, timing, exaggeration, spatial-coherence, appeal, squash-and-stretch.
  • technicalRisks: exclusive-3d-webgl-gpu, external-project-toolchain.
  • compositionFamily: full-bleed-material, spatial-path-workflow, object-kinetic-type, comparison-selection, desktop-instrument-board, data-diagram-evidence, camera-depth-environment, sparse-hold-chapter-outro.
  • fallback strategy: simplify-motion, use-stable-state, substitute-material, return-to-director, stop-unsupported.
  • motion contentRelation: compare, process, state-change, spatial, character, other; rhythm: calm, progressive, impact, mixed.
  • representative coverage: opening, information-dense, late; concerns: composition, text, material, motion.

requiredCapabilities may contain only: effects.dom-pixel-postprocess, semantic.integer-ms-window, semantic.visual-state-transition, semantic.readable-hold, motion.frame-driven-multiphase, motion.particles-or-physics, motion.camera-3d, motion.mask-or-geometry-morph, layout.dom-css-editorial, runtime.remotion-react-source, runtime.hyperframes-seekable-source, and interop.pre-rendered-media. Never use runtime.ambient-react-state.

Deliver

Write the narrative envelope, visual system, concise shot plan, one Recipe v4 per shot, motion-map draft, material requests, representative-scenes draft, and minimal handoff under 01-director/. Run only the assignment's validation and official finalize commands; never read validators or invent hashing/checking tools. If validation names a content field, repair that field.

Complete only when every truth follows the original SRT, every proposal is visually actionable without locking implementation, chapter boundaries and seams close, material routes remain honest and open, adjacent motion-map rows do not collapse into one pattern, and three representatives are genuinely different. Return drafts to Parent for identity finalization and planning. Return the validated artifacts to the Parent. The Parent finalizes identities first, then runs scripts/plan-runtime.mjs directly.