shot-list-protocol
ShotList schema authoring, camera and lens grammar, pacing rules per channel. Owned by Helios.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
ShotList schema authoring, camera and lens grammar, pacing rules per channel. Owned by Helios.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Shared audio production protocol for the Helios sub-crew — foley, score, and dialogue. Spectral allocation, sync, stems, loudness, and mix manifests. Owned by Helios.
Curated comfyui workflow recipes Helios fires via the hydra-creative.comfyui.* MCP tool. Each recipe lists input schema, output, when-to-use, and cost.
CreativeBrief envelope contract, intake template, and validation checklist for Calliope and any head receiving strategic intent.
IP clearance checklist and brand-guardrail rubric. Owned by governance-c2pa, consumed by Calliope and Helios.
Euterpe's paid-acquisition playbook. ROAS targets, bid strategies, fatigue detection, scale vs rotate decisions, CAC payback heuristics.
LUTs, white-balance, mood-driven grading, and color-space deliverable mapping. Helios uses this to brief comfyui and color sub-pipelines.
| name | shot-list-protocol |
| description | ShotList schema authoring, camera and lens grammar, pacing rules per channel. Owned by Helios. |
| user-invocable | false |
| argument-hint | <draft|validate|pace> |
| allowed-tools | ["Read","Write"] |
Helios's working document for translating a CreativeBrief into a renderable ShotList. Every visual asset traces back to a shot entry.
Produce a ShotList envelope that satisfies the Hydra schema, follows channel-appropriate pacing, and gives downstream generation tools (comfyui, video-synth, gemini-image) unambiguous direction.
/photo-direction is invoked./creative-campaign reaches the visual-direction phase and Helios needs to fan out renders.hydra_core/schemas.py:Shot)Each shot:
shot_id — sh-{seq:03} within a list (e.g. sh-001, sh-002)description — one sentence, action-first, subject-secondcamera_angle — one of wide, closeup, medium, aerial, povfocal_length_mm — integer; see lens grammar belowduration_sec — float; only for motion shots, omit for stillslighting_notes — concise: key, fill, rim, practicals, time-of-day, mood refThe enclosing ShotList envelope adds: type: "ShotList", campaign_id, shots: [Shot], target_channel, aspect_ratio, total_runtime_sec.
CreativeBrief (objective, key_messages, channels, brand_constraints)eights.memory.recall(tags=["shot-library"])ShotList JSON written via rlm.output.write to RLM/output/photo/{campaign_id}-shotlist-{date}.jsonAssetJob envelopes derived from the list, dispatched to comfyui / video-synth / gemini-image| mm | Use |
|---|---|
| 14-24 | Ultra-wide; environment, architecture, immersive POV; distortion warning |
| 28-35 | Reportage / documentary; wide-medium; lifestyle in context |
| 50 | Normal lens; matches human perspective; honest portraiture |
| 85 | Classic portrait; flattering compression; soft background separation |
| 100-135 | Tight portrait, beauty, product macro |
| 200+ | Telephoto compression; isolated subject, sports, candid |
| Macro (any mm with macro mode) | 1:1 or closer; product details, textures |
Anamorphic: prefix with anamorphic- and the squeezed FF-equivalent (e.g. anamorphic-40).
Total runtime caps and cut cadence:
| Channel | Max runtime | Cut cadence | Aspect | Safe area notes |
|---|---|---|---|---|
| TikTok | <= 30s (sweet spot 9-21s) | every 1.5-3s in first 6s; then 2-4s | 9:16 | Top 15% / bottom 20% UI overlay |
| Instagram Reel | <= 90s (sweet spot 15-45s) | every 2-4s | 9:16 | Caption-safe bottom 18% |
| Instagram Feed video | <= 60s | every 2-5s | 4:5 or 1:1 | |
| YouTube Shorts | <= 60s | every 2-4s | 9:16 | |
| YouTube standard | no hard cap; ad-cut every 7-12s | varies by genre | 16:9 (4K master) | |
| X / Twitter | <= 140s (sweet spot 30s) | 2-4s | 16:9 or 1:1 | Autoplay muted; first frame must read |
| <= 10 min (sweet spot 30-90s) | 3-6s | 16:9 or 1:1 | ||
| Threads | <= 5 min (sweet spot 15-30s) | 2-4s | 9:16 or 1:1 | |
| Broadcast TVC | :15 / :30 / :60 exact | per board | 16:9 | Title-safe 90%, action-safe 93% |
| OOH digital | 6-15s loop | static-feeling | varies | Legibility at distance |
Hook rule: the first shot MUST land the core key_message visually within the first 3 seconds for short-form social, first 2 seconds for TikTok.
Rule of thumb: shots/min = 60 / average_cut_seconds. Hand-edit if narrative beats demand longer holds.
CreativeBrief. Identify which key_messages map to visual beats vs copy beats.eights.memory.recall(tags=["shot-library"], k=12).lighting_notes using color-science mood entries.shot_id sequence is contiguous; total duration_sec <= channel cap; first 3 seconds carry the hook.ShotList envelope; derive an AssetJob per shot tagged with the destination workflow recipe (see comfyui-workflow-recipes).brand-safety and color-science checks before sign-off.camera_angle is from the controlled vocabularyfocal_length_mm is a positive integerduration_sec is omitted for stills; present for motionduration_sec <= channel max runtimeaspect_ratio matches target_channelcamera_angle AND focal_length_mm unless intentional (a held beat)brand-safety IP-clearance before render.hydra_core/schemas.py in the Hydra repository (Shot, ShotList)color-sciencecomfyui-workflow-recipes