Skip to main content

broll-director

Turn a complete original SRT and design into immutable shot truth, revisable creative proposals, semantic chapters, a shared visual world, a compact motion map, and three representative-scene choices.

Source facts

Repository
erduo1998-cell/erduo-broll-loop-engineering
Last source activity
August 18, 2026 at 16:07
Detected SKILL.md language
English
Stars
207
Forks
39

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
broll-director
description
Turn a complete original SRT and design into immutable shot truth, revisable creative proposals, semantic chapters, a shared visual world, a compact motion map, and three representative-scene choices.
# 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.
View on GitHub