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