Communitygithub.com

interview-soul-editor

Interview Soul Editor Agent Skill — verbatim-first editing with human topic gates and source verification.

What is interview-soul-editor?

The Interview Soul Editor is an AI agent skill designed to help editors transform raw interview footage (audio or video) into tight, thematic short video scripts while preserving the speaker's original words. It enforces strict rules: never rewrite, paraphrase, or add content — only select, reorder, trim, and sequence verbatim excerpts. The skill guides users through a progressive pipeline of seven thresholds: from confirming task boundaries and planning themes with the 'four soul questions', to building redundant candidate cuts, conducting three rounds of purposeful review (trim, stress-test, structure), and finally generating source-verified scripts with hooks, endings, and a timecode-based edit sheet ready for real video cuts. It supports local transcription via `v2t` or other tools, outputs a structured `edit/` directory with all artifacts, and includes a Python audit script (`audit_cut.py`) to verify that every spoken word exists in the original transcript and count content units. The skill works as a 'selection and structure partner', not a ghostwriter, and is suitable for platforms like Claude Code, Cursor, or Codex where strict editorial fidelity is required. It also supports multi-model comparison by normalizing outputs into a common format, and provides guidelines for real video execution (DaVinci Resolve, Premiere Pro, or CapCut) via edit sheets rather than automatic cuts.

Works with~Claude Code~Codex CLI~Cursor
npx skills add yunye123/interview-soul-editor

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Interview Soul Editor

Turn raw interview footage into tight short-video scripts that have a single theme, emotional arc, source evidence, and are revisable. Treat AI as a selection and structure partner, not a ghostwriter.

Seven Hard Rules

  1. Keep the original media and original verbatim transcript read-only; all output goes into the edit/ directory under the footage folder.
  2. Red line: Do not change a single word, do not re-record, do not paraphrase, do not rephrase — only select, reorder, splice, trim, and arrange pacing.
  3. Every spoken word in the final script must exist verbatim in the source transcript. Sentences that are similar, summarized, or polished are considered failures.
  4. Separate transcription correction from editing. If you suspect an ASR error, mark it as [待复听] with a timestamp — do not silently correct the word.
  5. Confirm the theme and the four soul questions before producing the full script; confirm the editing strategy before performing actual video cuts.
  6. Do not promise a viral hit in one go. Each round must produce a verifiable improvement or a clear reason to stop — avoid mechanically repeating the same prompt.
  7. Do not let the model estimate or report word count. The content units of the script must be counted by audit_cut.py; final metrics depend on WPS/Word and actual preview.

Identify Input and Set Up the Project

Input is a video or audio file

  1. Use ffprobe to check the filename, duration, and audio/video tracks — do not modify the source file.
  2. Prefer the installed $local-transcribe tool, or run directly:
v2t "/absolute/path/interview.mp4" "/absolute/path/edit/transcripts" --spk

Use --spk for multi-speaker interviews. Keep .txt for verbatim verification, and keep .srt / .json for timestamp-based positioning. If v2t is unavailable, fall back to the host's existing local transcription capability; do not upload unpublished interviews to cloud services without the user's consent.

Input is already a transcript

Treat the user-specified file as the sole text source. If timestamps are absent, you may complete theme and script planning, but explicitly note in the edit sheet that "precise re-cutting is not yet possible" — do not fabricate timestamps.

Fixed Output Directory

edit/
├── project.md
├── transcripts/                 # Original transcription output, do not overwrite
├── 01-theme-map.md
├── 02-candidate-cut.md
├── 03-source-audit.md
├── 04-final-cut.md
├── 04-final-cut-pure.txt
├── 05-hooks-endings.md
└── 06-edit-sheet.md

In project.md, record: source file, target platform, target audience, final duration, rough draft budget, selected theme, four soul questions, current threshold, user-approved decisions, and items needing re-listening. Only advance through one threshold at a time.

Progress Through Thresholds

Threshold 0: Confirm Task Boundaries

Confirm the target platform, final duration, whether there are multiple speakers, and whether the output needs to be directly cut into a video. If the user does not specify, default to a high-quality short video of 2–3 minutes, with a candidate draft approximately 1.5–2 times the final target, making clear this is a tentative value. The budget can be estimated by converting content units: approximately 280–300 units per minute for Chinese speech. However, after generating the script, you must use the script to count units — do not rely on model estimates. Final metrics depend on WPS/Word and actual preview.

Threshold 1: Plan the Theme and the Four Soul Questions

Read the entire transcript, then generate 01-theme-map.md. Each candidate theme must include:

  • A one-sentence theme and core conflict;
  • The four soul questions: who is it for, what do you want to say, what impact do you want to have on whom, who is the opposition;
  • Original excerpts or time ranges that support the theme;
  • Emotional peaks, counterintuitive points, specific details, and potential hooks;
  • The value of a single penetrating focus and the risk of going off-topic.

Recommend only 3–7 genuinely different themes. Do not repackage the same idea under different titles. Ask the user to select one theme; do not generate full scripts for all themes without a selection.

Read editorial-rubric.md to understand the four soul questions and theme scoring.

Threshold 2: Build a Redundant Candidate Cut

Create 02-candidate-cut.md around the selected theme. If the final target is 3 minutes, start with about 5 minutes; if the final target is about 800 words, start with about 1200. Redundancy is for further trimming, not for stuffing in tangents.

Write each continuous original excerpt as an independent VERBATIM block; when reordering, move only whole blocks. Do not disguise half-sentences from two non-adjacent positions as a single continuous excerpt. Strictly follow the format in cut-script-format.md.

Immediately after generating the candidate script, run audit_cut.py. If source verification fails, fix the error first — do not carry errors into the review stage. If content units deviate from the budget, you can only continue selecting or discarding original sentences — do not pad by rewriting.

Threshold 3: Three Rounds of Purposeful Review

Review sequentially — do not simply ask "can you optimize it?" for all three rounds:

  1. Trim round: Delete content unrelated to the theme, audience, impact, or opposition; merge duplicate arguments.
  2. Stress-test round: Answer "why might this version fail to get traction?" Check for: hook too slow, unclear conflict, generic information, lack of detail, insufficient emotion, overusing the conclusion. Then fix using only original sentences.
  3. Structural final round: Check each paragraph for its purpose, logical connections, order of immersion, vivid details, mainline deviation, and alignment with the four soul questions — with the principle of "interlocking links, from start to finish."

For each round, list "Keep / Delete / Reorder / Reason", then provide the updated block order. Do not use polishing to mask structural problems. If a round finds no new issues, state the evidence and stop iterating.

Threshold 4: Determine Hooks and Endings

Once the main content is stable, generate 05-hooks-endings.md:

  • Find 3–8 opening candidates from the source transcript, noting block ID, stickiness, thematic consistency, and risk of contextual misdirection;
  • Allow "greatest hits collection" as a hook scheme, but every sentence must still come from the original, and avoid creating a meaning the interviewee never expressed;
  • Find from the original text a suitable ending for closure, suspense, anticipation of the next episode, or call for comments/interaction;
  • If the original text does not contain a spoken CTA, you may only list "non-spoken on-screen subtitle / publication caption suggestions" — do not mix them into the script's verbatim text.

Threshold 5: Verbatim Verification and Word Count Verification

Run:

python3 "/path/to/interview-soul-editor/scripts/audit_cut.py" \
  --source "/path/to/edit/transcripts/interview.txt" \
  --cut "/path/to/edit/04-final-cut.md" \
  --target-units 900 \
  --pure-out "/path/to/edit/04-final-cut-pure.txt"

Only when missing_verbatim_blocks = 0 can the script be called "source-verified." The script counts content units using Chinese characters plus English/words, and gives an estimate of 280–300 units/minute; do not present it as WPS's exact word count.

For items marked [待复听], go back to the original video to confirm, then either update the corrected version of the source transcript or retain the original ASR text and add a re-listening annotation. Do not silently change words only in the script.

Threshold 6: Generate a Re-cuttable Edit Sheet

06-edit-sheet.md must include for each row: output order, clip ID, source file, in point, out point, verbatim original sentence, structural role, emotion/action notes, and transition context. Prioritize preserving crying, laughter, pauses, emphasis, and reaction tails after quotable moments. If timestamps drift, leave buffer for the editor to preview.

Before formally extracting clips, search the source transcript again for each original sentence: first, confirm the sentence exists; second, restore any stronger original text that AI may have missed. Run any new candidates through review and verification — do not skip thresholds.

Multi-Model Comparison

When the user provides multiple AI versions, reduce them all to the same VERBATIM block format. First eliminate sentences that do not come from the original text, then blind-evaluate them according to editorial-rubric.md. Keep the truly stronger blocks from each version and re-verify. Do not fabricate "all models agree" without actually invoking multiple model tools.

Real Video Execution Boundaries

This skill delivers a "verified script + hook/ending candidates + timestamp edit sheet" by default — it does not automatically change video. If the user explicitly requests direct video output:

  • Prefer using browser-use/video-use pipeline: transcript → EDL → render → self-eval;
  • For DaVinci Resolve media library, search, and EDL/XML workflows, evaluate StoryToolkitAI;
  • For Premiere Pro / CapCut integration, hand off 06-edit-sheet.md to the human editor: first unify lighting, composition, and subject position, then extract clips in order;
  • Before executing any real cuts, have the user approve the textual editing strategy.

Read open-source-reuse.md to understand the verified GitHub/npm solutions and adoption boundaries.

Completion Definition

Only report completion when all of the following conditions are met: the theme and four soul questions are confirmed; every spoken word in the final script comes from the original text; the word count/duration is close to the target; the final review passed the mainline check; hooks and endings are selected or listed as candidates; every clip can be located back to the source material; and all re-listening items are explicitly listed. Strictly distinguish between "may be shareable" and "guaranteed viral hit."

Related Skills