Skip to content
Back to skills

Finish Interview

ASecurity

Apply repeatable dialogue MA, Studio-based or automatic portrait reframing, overlay-safe rendering, and loudness/sync QA to an existing interview or talking-head rough cut. Use when the user asks to make speech easier to hear, perform MA, enlarge or rebalance a person in frame, crop or punch in an interview, automatically propose framing, or prepare a finishing preview before final approval.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added August 31, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add mocchalera/video-os-v2 --skill finish-interview --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Finish Interview?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Finish Interview
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mocchalera-finish-interview/badge)](https://www.skillsdirectory.com/skills/mocchalera-finish-interview)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: finish-interview
description: Apply repeatable dialogue MA, Studio-based or automatic portrait reframing, overlay-safe rendering, and loudness/sync QA to an existing interview or talking-head rough cut. Use when the user asks to make speech easier to hear, perform MA, enlarge or rebalance a person in frame, crop or punch in an interview, automatically propose framing, or prepare a finishing preview before final approval.
---

# Finish Interview

Use canonical timeline metadata and the shared renderer. Do not handwrite a
one-off ffmpeg graph unless the project's downstream overlay format cannot be
represented by the timeline.

## Workflow

1. Read `05_timeline/timeline.json`, `06_review/review_patch.json`, the latest
   preview, and any downstream card/caption artifacts.
2. Measure before changing:
   - create a representative frame contact sheet;
   - measure integrated LUFS, true peak, and LRA;
   - probe video/audio start times and durations;
   - record `avg_frame_rate`, `r_frame_rate`, and `time_base`; treat a phone
     source whose cadence cannot be proven CFR as VFR for sync review.
   - when choosing framing automatically, run
     `.build/debug/videoos-studio-cli interview-reframe --source=<video> --in-us=<n> --out-us=<n>`;
   - treat its face/eye/yaw/hand result as a proposal, then inspect representative frames.
3. Keep editorial timing unchanged unless the user separately requests a cut.
   For a titled J-cut opening, stage information instead of presenting exterior,
   title, and dialogue at the same instant: establish the exterior, let the title
   read, then fade dialogue in before the title exits. Enter the interview on a
   moving source frame, never a frozen bridge frame. Preserve the complete final
   utterance and a short moving-picture tail; do not extend the ending with a
   freeze frame.
4. Write review patch operations:
   - one `change_visual_transform` per affected video clip;
   - one timeline-level `change_audio_finish` operation.
   Studio can author both operations from the selected clip's
   **インタビュー仕上げ** inspector. Adjusted framing appears immediately in the
   Viewer; press **画角を保留** and **MAを保留** before Apply & Preview.
5. Apply the patch with `scripts/compile-timeline.ts --patch` and require schema
   validation to pass.
6. Render the clean assembly first. Burn captions and insert question cards
   afterward so zoom/crop never scales authored graphics.
7. Verify the final preview by full decode, loudness measurement, visual frame
   sampling, audio/video duration comparison, and dialogue placement QA. The
   duration comparison alone is insufficient: package QA must show
   `dialogue_timeline_alignment_valid` as well as `av_drift_valid`.

## Patch pattern

```json
{
  "timeline_version": "1",
  "operations": [
    {
      "op": "change_visual_transform",
      "target_clip_id": "CLP_0001",
      "visual_transform": {
        "zoom": 1.15,
        "position": { "x": -144, "y": -39 }
      },
      "reason": "Increase portrait presence while preserving look room"
    },
    {
      "op": "change_audio_finish",
      "audio_finish": {
        "preset": "dialogue-clean",
        "loudness_target_lufs": -16,
        "true_peak_target_dbtp": -1.5
      },
      "reason": "Improve speech intelligibility and delivery loudness"
    }
  ]
}
```

`position` is measured in output pixels. Negative `x` shifts the image left;
negative `y` shifts it upward. Start around `zoom: 1.10–1.18` for a restrained
talking-head punch-in and inspect hand gestures across the whole cut.

For `zoom > 1`, position pans inside the available zoom overscan and clamps at
the source boundary. Do not recreate the old post-crop pad/translate graph; it
exposes black edges. The automatic planner normally caps an interview punch-in
at 1.18, reduces it when hands are detected, and allows stronger zoom only when
the detected face is genuinely small.

## Audio presets

- `dialogue-clean`: 70 Hz high-pass, gentle noise reduction, mud/presence EQ,
  3:1 compression, and measured two-pass loudness normalization.
- `loudness-only`: measured two-pass normalization without cleanup or EQ.
- `none`: disables the declared finish preset.

Defaults target `-16 LUFS`, LRA 7, and `-1.5 dBTP`. The dialogue preset keeps
0.3 dB of codec headroom before AAC encoding.

## QA contract

- No cropped head, hands, or interviewer look room in representative samples.
- Captions and question cards retain their authored size and position.
- Integrated loudness is within 0.5 LU of target.
- Encoded true peak does not exceed the declared target by more than 0.2 dB.
- Audio/video start at zero and end within one frame.
- Dialogue-only signal stays inside the timeline windows that own dialogue.
  `adelay=...,atrim=start=0` on one input branch is forbidden because the trim
  removes the inserted lead-in; source `atrim` must precede `adelay`, and only
  the final mixed output may be duration-trimmed.
- For VFR phone footage, first choose the intended video frame, then measure the
  video and audio source offsets independently. If frame quantization leaves a
  sub-frame residual, keep the chosen picture frame and offset audio by the
  measured residual. Do not chase sync by repeatedly moving the video trim
  across frame boundaries.
- A proxy or alternate encode made to diagnose a player is diagnostic only. It
  must not become the canonical creative output or constrain title/J-cut timing.
- Full ffmpeg decode exits successfully.
- Keep preview output distinct from final package output until caption and
  review gates are approved.

Files in this skill

  • SKILL.md5.5 KB
  • agents/openai.yaml258 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.