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
- Keep the original media and original verbatim transcript read-only; all output goes into the
edit/directory under the footage folder. - 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.
- Every spoken word in the final script must exist verbatim in the source transcript. Sentences that are similar, summarized, or polished are considered failures.
- Separate transcription correction from editing. If you suspect an ASR error, mark it as
[待复听]with a timestamp — do not silently correct the word. - Confirm the theme and the four soul questions before producing the full script; confirm the editing strategy before performing actual video cuts.
- 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.
- 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
- Use
ffprobeto check the filename, duration, and audio/video tracks — do not modify the source file. - Prefer the installed
$local-transcribetool, 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:
- Trim round: Delete content unrelated to the theme, audience, impact, or opposition; merge duplicate arguments.
- 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.
- 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–8opening 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-usepipeline: 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.mdto 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."