AI-Agent Video Production Guide.md

## Multi-Format System — Short-Form (9:16) · Long-Form (16:9) · Feed (4:5 / 1:1)
### Promedic App Family — Dose Calculator · Female ProMedic · Coach ProMedic · Dentist Pro

*Legend: values marked **(source)** come directly from your files. Values marked **(proposed)** fill a gap your files left open, using the same logic/tier your files already established elsewhere — treat these as strong starting defaults, not locked brand-final numbers, until checked against real footage.*

---

## 0. Universal Rules — Apply to Every Video, Every App, Every Format

1. **Faceless rule (absolute, non-negotiable).** No eyes, no nose, no mouth, no facial features, no eye circles, no face-implying shapes, in any generated or supporting visual. Abstract or text-only representations only. *(source: stated identically across all four app files)*
2. **Readability beats style, always.** Any grade, effect, or motion that reduces legibility of a dose, drug name, calculation, score, or UI text gets removed — no exceptions for "look."
3. **Non-destructive capture.** Record clean, archive the raw file, never overwrite it. All effects applied in a separate processing pass.
4. **Transitions default to hard cuts** (~80–90% of all cuts). An occasional short zoom-transition or wipe between major sections is fine. Avoid heavy dissolves, light leaks, glitch, or chromatic aberration on any UI-bearing footage.
5. **Hook framing defaults to negative/mistake framing** ("Stop doing this wrong," "Most people miss this," "This is calculated wrong") — consistent with every example hook across all four apps.
6. **Brand-family consistency:** caption font family, weight, and kinetic reveal *mechanic* stay identical across all four apps. What's allowed to differ per app: grade, accent color, zoom ceiling, and pacing (Section 1 table).
7. **Dose Calculator and Dentist Pro are the most visually similar pair in the family** (both cool/clinical/minimal-effects/slow-precise-motion). Color alone is a thin differentiator between the two — keep their accents genuinely distinct (blue vs. teal, not two shades of one blue), and consider a small static corner logo/bug as a second differentiator if audience confusion between the two ever comes up.

---

## 1. Per-App Variable Table
*(Referenced by both Part 1 and Part 2 below via `{VARIABLE}` placeholders.)*

| Variable | Dose Calculator | Female ProMedic | Coach ProMedic | Dentist Pro |
|---|---|---|---|---|
| White balance | Cool, ~5900K *(source: "slight cool bias")* | Warm, ~5200K + rose/peach tint *(source)* | Neutral-warm, ~5700K *(source: "touch of warmth")* | Cool, ~6100K *(source: "cool clinical blue bias")* |
| Exposure | +0.2 EV | +0.2 EV | +0.3 EV *(source: "higher contrast")* | +0.2 EV |
| Black lift | 8–10 | 10–12 *(proposed, softer per "soft warm" identity)* | 5–8 *(proposed, punchier per "higher contrast")* | 8–10 |
| Highlight cap | 245 | 248 | 250 | 245 |
| Saturation | −8% | −3% *(proposed, less desaturated than clinical apps)* | +2% to +5% *(source: "energetic")* | −8% to −10% *(most desaturated — most "sterile")* |
| Grain | 0% default, ≤2% only off numeric screens *(source)* | ≤4%, soft/warm *(source: "very light warm grain acceptable")* | ≤2% | 0% *(source: "almost no texture effects")* |
| Vignette | Very light only if flat; mask off nav/corner UI *(source)* | Very light, soft edges only *(source)* | None *(source: identity is energy, not restraint)* | Very light only if flat; mask off nav/corner UI *(source)* |
| Motion blur | None | None | Subtle, transitions only *(source)* | None |
| Accent color | Soft clinical blue *(source)* | Rose-gold / muted blush *(source)* | Orange or electric blue *(source)* | Soft teal/cyan — keep visibly distinct from Dose's blue |
| Zoom ceiling (all Ken Burns, incl. hook) | 1.08×–1.15× *(source: "maximum" — applies to hook too, no exception)* | 1.08×–1.18× *(proposed: base range + headroom for "key reveal" moments per file)* | 1.10×–1.22× *(proposed: widest range — this is where the original 18–22% hook energy belongs)* | 1.08×–1.15× *(proposed, matches Dose's restraint tier)* |
| Hook window (short-form) | 1.0–1.8s *(source)* | 1.5–2.2s *(source)* | 1.0–1.6s *(proposed: fastest-paced app gets tightest hook)* | 1.5–2.5s *(proposed: same restraint tier as Female)* |
| Pattern-interrupt cadence (short-form) | 2.0–3.0s *(source)* | 2.5–3.5s *(source)* | 1.8–2.8s *(source)* | 2.5–3.5s *(source)* |
| Visual-change cadence (long-form) | 6–12s *(source: general default)* | 6–12s *(source: general default)* | 6–10s *(proposed: extends short-form tiering)* | 8–14s *(proposed: extends short-form tiering)* |

> This resolves the conflict where a generic "18–22% hook punch" contradicted a flat "1.08×–1.15× maximum" cap. The ceiling is now tiered per app — no app's hook is allowed to exceed its own base ceiling.

---

## PART 1 — SHORT-FORM VERTICAL (9:16)

**Use cases:** TikTok, Instagram Reels, YouTube Shorts, Facebook Reels, Instagram/Facebook Stories.
**Best for:** cold-open hooks, single-feature demos, myth-busting, "you're doing this wrong," quick tips, top-of-funnel reach and discovery.
**Optimized for:** scroll-stopping and completion rate. Depth is not the goal here — Part 2 handles depth.
**Length target:** 15–45 seconds.

### Copy-paste template

```
[APP: {APP_NAME}] — SHORT-FORM 9:16 INSTRUCTIONS

PHASE 1 — RECORD
- Capture native screen at ≥1.3x delivery resolution (e.g. 1284x2778+ for a 1080x1920 delivery), or device native res if higher.
- No filters, overlays, grading, or effects during capture.
- If source is HDR, tone-map to SDR before this pipeline touches the file.
- No critical UI within 10% of any frame edge. Note the zoom-target element per screen (the result/number, not the full screen).
- Archive raw file. Never overwrite.

PHASE 2 — PROCESS (in order)

1. GRADE (locked preset — pull from Section 1 table, do not re-derive per video)
   White balance: {WB} | Exposure: {EXPOSURE} | Black lift: {BLACKS} | Highlight cap: {WHITES}
   Saturation: {SATURATION} | Grain: {GRAIN} | Vignette: {VIGNETTE}

2. MOTION
   - Ken Burns / punch-in range: {ZOOM_MIN}-{ZOOM_MAX} — this ceiling applies to the hook punch too, never exceeded
   - Zoom target = the defined result/number per screen, never the full frame
   - Ease in/out only — never linear
   - Completes over the full on-screen duration of that shot

3. SAFE ZONE (constraint for steps 4-5 below — captions/graphics must be placed inside this from generation, not checked afterward)
   - Canvas 1080x1920. Outer bound for all text/logos/graphics: x:60-930, y:250-1450
   - Caption anchor specifically: keep centroid between 20-55% of frame height (y:384-1056) — tighter than the outer bound, for the caption text itself
   - Covers TikTok/Reels/Shorts UI with margin. Confirm on an actual phone before publishing — desktop preview does not reliably show the real overlay.

4. CAPTIONS
   - Burn in, synced to voiceover, 2-4 word phrase groups (not single words)
   - Minimum hold: 0.4-0.5s per chunk even if speech is faster
   - HOOK ({HOOK_MIN}-{HOOK_MAX}s): distinct bolder treatment, single punchy line or number reveal, must read with sound OFF
   - Steady-state caption style resumes after the hook window closes
   - Highlight numbers, drug/feature names, and benefit words in {ACCENT}

5. PATTERN INTERRUPTS & NUMBERS
   - New screen, zoom punch, caption change, or motion graphic every {INTERRUPT_MIN}-{INTERRUPT_MAX}s — never let one screen sit static longer than that
   - Calculated/result numbers: animate as count-up (0 -> final value, 0.5-0.8s) synced with pop SFX -- never a static pop-in
   - Highlight circles / soft glow: 1-2 per screen max, in {ACCENT}
   - Soft whoosh on screen transitions only

6. AUDIO
   - Voiceover: primary, compressed, dominant
   - Music bed (on-brand or trending): ducked 8-12dB under voiceover during narration
   - SFX (whoosh/pop): >=15dB below dialogue
   - Normalize: -14 LUFS integrated / -1 dBTP true peak (or -11 to -12 LUFS if prioritizing TikTok/Reels feed attention over YouTube consistency)

7. LOOP
   - End on a frame + spoken fragment that can flow back into the opening, for rewatch

8. EXPORT
   - 1080x1920, H.264 High Profile, 30fps (60fps only if fast scroll/swipe motion), 15-20 Mbps, MP4, no watermark

PHASE 3 -- QA
[ ] Muted playback -- hook + captions fully understandable with zero audio
[ ] Real phone preview -- nothing sits under platform UI
[ ] Grade matches {APP_NAME}'s locked preset -- no drift from prior exports
[ ] Zoom never exceeds {ZOOM_MAX} anywhere, including the hook
[ ] No distorted or illegible numbers/text anywhere
[ ] Faceless rule respected in every generated visual
```

### Filled example — Coach ProMedic

```
[APP: Coach ProMedic] -- SHORT-FORM 9:16

GRADE: WB ~5700K | Exposure +0.3 EV | Blacks 5-8 | Whites cap 250 | Saturation +2-5% | Grain <=2% | No vignette
MOTION: 1.10x-1.22x zoom ceiling (hook included), eased, never linear
SAFE ZONE: x:60-930, y:250-1450 (canvas 1080x1920); caption centroid y:384-1056
HOOK: 1.0-1.6s, bold reveal, sound-off legible. Example: "Stop doing this exercise wrong"
INTERRUPTS: every 1.8-2.8s
NUMBERS: animate progress/rep/timer counts, orange or electric blue accent, count-up synced to pop SFX
AUDIO: -14 LUFS / -1 dBTP, music ducked 8-12dB, SFX >=15dB below dialogue
EXPORT: 1080x1920, H.264, 30fps, 15-20 Mbps
```

### Pro-tips — short-form specific

- **Coach vs. Dose/Dentist needs to feel like a different speed, not just a different color.** Coach's faster interrupt cadence (1.8–2.8s) and wider zoom range are what actually make it read as "energetic." If the cadence gets normalized to match the clinical apps during editing, the color grade alone won't carry the brand distinction.
- **Match the save-CTA language to the app's register:** "Save this clinical reference" (Dose), "Save this workout" (Coach). A generic "follow for more" underperforms a specific save-reason.
- **Female ProMedic's hook needs the widest margin between "honest" and "clinical-cold."** Life-stage / hormonal-truth framing works; avoid opening on a bare stat the way Dose does — open on the relatable claim, then show the number.
- **Dentist Pro is the one app where short-form pacing should still feel closer to long-form.** Even inside its 2.5–3.5s interrupt cadence, keep the tone serious — this is the app most likely to lose trust from an over-energetic short-form treatment.

---

## PART 2 — LONG-FORM (16:9) + FEED (4:5 / 1:1)

> **Before this section:** Instagram's own 2026 guidance has moved away from 1:1 as the feed default — most current posted content is Reels, 4:5 posts, and vertical video, and the profile grid itself now crops preview thumbnails to roughly 3:4 regardless of the ratio uploaded. Square (1:1) still works and still has a real use — cross-platform reuse (LinkedIn, Facebook, uniform grids) — but it is no longer the Instagram-optimized choice. **4:5 is the recommended primary feed export below; 1:1 is kept as the cross-platform alternative.** Export both from the same project if you can.

### 2A — Long-Form 16:9

**Use cases:** YouTube (primary), LinkedIn native video, Facebook video posts, website/blog embeds, webinar or full-demo recordings.
**Best for:** case walkthroughs, full procedure/workout breakdowns, educational authority-building, SEO-searchable content, LinkedIn thought-leadership/demo content.
**Length target:** 3–12+ minutes depending on platform.

**Structurally different from 9:16:** there's no persistent platform action-button overlay baked onto the frame. Standard 16:9 video only needs to keep clear a small bottom-right duration counter, and — if used — a bottom strip during end-cards or chapter markers. The safe-zone concern here is the older broadcast **title-safe convention** (content may play in embeds, variable player sizes, smart-TV apps) plus, if YouTube end screens are used, a dedicated end-screen zone roughly 10% smaller than the full frame for the final 5–20 seconds.

```
[APP: {APP_NAME}] -- LONG-FORM 16:9 INSTRUCTIONS

PHASE 1 -- RECORD
- Same clean, high-res, non-destructive capture as short-form. Zoom headroom matters less here (holds are longer, punches are rarer) but doesn't hurt.
- Archive raw file.

PHASE 2 -- PROCESS

1. GRADE -- identical to {APP_NAME}'s short-form preset (Section 1 table). Same brand, same look, every format.

2. MOTION
   - Hold each major screen long enough to actually read it -- this is the core long-form difference. Ken Burns still within {ZOOM_MIN}-{ZOOM_MAX}, used sparingly: only on key reveals or numbers, not every screen.
   - Zoom punches reserved for major reveals only.

3. SAFE ZONE
   - Canvas 1920x1080. General title-safe margin: keep essential text/graphics within x:120-1800, y:70-1010 (~6% margin) -- protects against variable embed sizes, not a platform overlay.
   - If using end screens/cards: nothing essential in the final 5-20s outside the central ~90% of frame.
   - Avoid the bottom-right ~60x40px in the last few seconds (video duration counter).

4. CAPTIONS
   - Kinetic style (2-4 word bursts) ONLY for the opening hook ({HOOK_MIN_X2}-{HOOK_MAX_X2}s -- roughly 2x the short-form hook window as a starting point).
   - Standard steady subtitles (full clause, not word-by-word) for the remainder -- constant kinetic captions fatigue viewers over multiple minutes.
   - Same {ACCENT} highlight on numbers/key terms as short-form, used more sparingly.

5. STRUCTURE & PATTERN INTERRUPTS
   - Problem -> Solution -> Proof -> How it works -> CTA
   - Visual change every {LONG_INTERRUPT_MIN}-{LONG_INTERRUPT_MAX}s, or whenever new information appears -- not on a rigid timer
   - Number/result reveals: same animated count-up as short-form, used only at genuine reveals
   - Add YouTube chapter markers at each structural beat

6. AUDIO
   - Same -14 LUFS / -1 dBTP target as short-form (this is what YouTube itself normalizes toward -- don't push louder here even if TikTok/Reels exports run hotter)
   - Longer, more restrained music beds; fewer, sparser micro-SFX than short-form
   - Voiceover more explanatory/educational in tone than the short-form cut

7. EXPORT
   - 1920x1080, H.264 High Profile, 30fps, 15-25 Mbps (higher end if UI text/numbers are dense), MP4

PHASE 3 -- QA
[ ] Title-safe margins respected for embeds/variable players
[ ] Chapters added
[ ] End-screen zone respected if end cards are used
[ ] Grade matches the short-form version of the same app -- no drift between formats
[ ] Muted-playback check on the hook segment specifically (Facebook video skews heavily muted)
[ ] Faceless rule respected
```

### 2B — Feed: 4:5 (Instagram-optimized) & 1:1 (cross-platform)

**Use cases:** Instagram feed, Facebook feed native video, LinkedIn feed video — any placement where the video sits inside a continuously-scrolling mixed feed rather than a dedicated short-form surface (Reels/Shorts tab) or a search-driven destination (YouTube).
**Length target:** 15–60 seconds — closer to short-form pacing than long-form, since feed scrolling behavior is closer to swipe behavior than a deliberate YouTube click.

**Structurally different here:** like 16:9, there's no baked-in action-button overlay on the video frame itself — captions/like/comment sit around the post, not on top of it. The real risk is the **grid-thumbnail crop**: Instagram's profile grid crops preview thumbnails to roughly 3:4 regardless of upload ratio, so a subject or text positioned near the top or bottom edge of the full post can disappear once shown as a small grid thumbnail, even though the full post looks fine in-feed.

```
[APP: {APP_NAME}] -- FEED INSTRUCTIONS (4:5 primary / 1:1 alt)

PHASE 1 -- RECORD
- Same clean capture as other formats. If sourcing from the 9:16 vertical recording, re-frame (don't blind-crop) so key screen content sits centered -- a straight crop from 9:16 often pushes content too high or low for a 4:5/1:1 canvas.

PHASE 2 -- PROCESS

1. GRADE -- identical {APP_NAME} preset, both crops.

2. MOTION -- same {ZOOM_MIN}-{ZOOM_MAX} ceiling as short-form; hold slightly longer than Reels/Shorts pacing since feed scrolling is a touch less rapid-fire.

3. SAFE ZONE (grid-crop protection -- this is the main constraint here, not a UI-overlay concern)
   - 4:5 canvas 1080x1350: keep face/subject/key text within the central 1080x1080 region (roughly y:135-1215, full width) -- protects against the 3:4 grid-thumbnail crop
   - 1:1 canvas 1080x1080: keep face/subject/key text within the central ~90% (x:55-1025, y:55-1025) for the same reason
   - Either way: nothing essential within the outer ~10% on any edge

4. CAPTIONS
   - Kinetic hook (first {HOOK_MIN}-{HOOK_MAX}s, same window as short-form -- feed scrolling still rewards a fast stop-the-scroll moment)
   - Steady captions after, similar density to short-form (feed video skews heavily muted-first too)

5. PATTERN INTERRUPTS & NUMBERS -- same short-form cadence and count-up treatment, held a beat longer per screen

6. AUDIO -- same -14 LUFS / -1 dBTP target as short-form/long-form

7. EXPORT
   - Primary: 1080x1350 (4:5), H.264, 30fps, 12-18 Mbps, MP4
   - Alt: 1080x1080 (1:1), same codec/fps/bitrate -- use for LinkedIn/Facebook or cross-platform reuse

PHASE 3 -- QA
[ ] Preview both the in-feed view AND the profile-grid thumbnail crop -- not just the full post
[ ] Nothing essential in the outer 10% on any edge
[ ] Grade matches the app's other formats
[ ] Faceless rule respected
```

### Pro-tips — long-form / feed, platform-specific per app

- **Dose Calculator & Dentist Pro:** LinkedIn and Facebook consistently outperform pure entertainment platforms for these two *(source: both files)*. Keep the long-form/feed cut even more restrained than the short-form version — skipping zoom punches entirely is a reasonable option for LinkedIn specifically.
- **Female ProMedic:** Instagram (feed + Reels combination) is the strongest platform *(source)*. For 4:5/1:1 feed specifically, pair with carousel posts on the same topic — the file notes this combination performs well.
- **Coach ProMedic:** YouTube Shorts *and* long-form both work — full workout breakdowns and form-correction long-form content build on the same short-form hooks *(source)*. Keep the long-form energy curve front-loaded (high energy first 30–45s, settle into teaching rhythm, re-accelerate at the CTA) rather than flat throughout.
- **All four apps:** build the short-form cut first (highest retention pressure forces the clearest structure), then expand into long-form/feed by lengthening holds, adding explanatory voiceover, and thinning out interrupts — not by starting long-form from scratch. Export every format from the same project so the grade never drifts between them.

---

## Changelog — what changed from the source docs, and why

- **Zoom ceiling:** was a flat "1.08×–1.15× maximum" (File 1) directly contradicted by a generic "18–22% hook punch" (Part 2). Now tiered per app (Section 1 table) — Coach gets the widest range, including the original hook energy; Dose/Dentist keep the tighter clinical ceiling with no hook exception.
- **Color grade:** was one hardcoded universal block (previous answer) that actually only matched the two clinical apps. Now a per-app table — same structure (WB / exposure / blacks / whites / saturation / grain / vignette), different values per app.
- **Faceless rule:** stated as absolute in every app file, but missing from the earlier universal instruction block. Now in Section 0.
- **Hook window:** Dose (1.0–1.8s) and Female (1.5–2.2s) were given directly; Coach and Dentist weren't. Filled both using the same pacing-tier logic already present in the pattern-interrupt numbers, marked *(proposed)*.
- **Caption placement:** was specified two ways (a percentage-of-height centroid rule, and a pixel bounding box) that didn't conflict but weren't connected. Now explicitly nested: centroid rule for the caption anchor, bounding box for everything else.
- **Long-form visual-change cadence:** was one flat "6–12s" for all four apps. Extended the same energy-tiering already used for short-form pacing, marked *(proposed)*.
- **16:9 and feed safe zones:** didn't exist in the source material at all (only 9:16 was covered). Built from a genuinely different, weaker constraint than 9:16's platform-UI overlay — title-safe convention for 16:9, grid-thumbnail crop protection for feed — since neither format has TikTok/Reels-style buttons baked onto the frame.
- **Feed format:** flagged that Instagram's 2026 default has shifted from 1:1 toward 4:5/3:4 — added 4:5 as the Instagram-optimized primary export, kept 1:1 as the cross-platform variant rather than silently dropping what was asked for.