Skip to content
Back to skills

Storycut

ASecurity

Turn an interview, podcast, lecture, founder story, or other spoken video/audio file into a verified transcript, meaningful highlights, and an ordered, timestamped story cut list. Use whenever the user asks for the best moments, clips, an interview highlight reel, a rough cut, an edit decision list, or transcript-to-video storytelling, even if they do not mention StoryCut by name.

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
designpythonrailsapi

Works with

  • claude code
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

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

Scanned November 7, 2026

npx -y skills add Wanfeng1028/muse --skill storycut --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Storycut?

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

Security grade badge for Storycut
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wanfeng1028-storycut/badge)](https://www.skillsdirectory.com/skills/wanfeng1028-storycut)

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: storycut
description: Turn an interview, podcast, lecture, founder story, or other spoken video/audio file into a verified transcript, meaningful highlights, and an ordered, timestamped story cut list. Use whenever the user asks for the best moments, clips, an interview highlight reel, a rough cut, an edit decision list, or transcript-to-video storytelling, even if they do not mention StoryCut by name.
---

# StoryCut — evidence-based interview editing

You are the story editor; `scripts/storycut.py` does deterministic transcription preparation, timestamp math, source checks, and exports. Never invent a quotation or timestamp. Never claim a rendered video exists unless you actually render one.

## Environment and input

- Run scripts with Python 3.10+ from this skill directory, for example `python3 scripts/storycut.py doctor`.
- Supported transcript inputs: `.srt`, `.vtt`, or `.txt` with explicit timestamp ranges. Supported media: audio/video readable by FFmpeg.
- Media transcription is **local** and requires FFmpeg plus `faster-whisper` (`pip install faster-whisper`). Its model downloads on first run; no paid transcription API is required. Ask permission before installing or downloading if the environment requires it.
- Input media can contain sensitive speech. Keep it local; do not upload, publicize, or commit it without consent. Analyze only media the user owns or is permitted to process.
- In Claude Code, the user needs to provide a **local accessible file path**. An attachment in a chat interface is not automatically accessible to this skill.

## Workflow

1. Ask only for missing essentials: file path, intended audience/format, target duration, and desired story angle. If omitted, use: general viewers, an engaging 90-second highlight, and fidelity to speaker intent; state those assumptions.
2. Run `python3 scripts/storycut.py prepare INPUT --out OUTPUT_DIRECTORY`. For long media, provide `--model small` or another available faster-whisper model. For a timestamped transcript, no model is needed.
3. Open the generated `transcript.json`. Every item has a stable `id`, `start`, `end`, and `text`. Use those IDs, not guessed seconds. For very long files, inspect the transcript in chunks, first making a compact story map with IDs, then reread source segments for final choices.
4. Identify moments with a hook, stakes, change, concrete example, insight, or satisfying payoff. Do not treat emotional intensity alone as quality. Design a coherent **hook → setup → turning point → payoff** sequence, or explain a justified alternative. Preserve context and speaker meaning.
5. Write `cutlist_draft.json` according to `references/cutlist-format.md`. Every clip must refer to one or more **consecutive** segment IDs. The script derives start/end timestamps from those IDs. Use `quote` only if it is an exact, contiguous excerpt in the source clip; otherwise omit it. Scores are qualitative judgments, never objective virality predictions.
6. Run `python3 scripts/storycut.py validate OUTPUT_DIRECTORY/transcript.json OUTPUT_DIRECTORY/cutlist_draft.json --out OUTPUT_DIRECTORY`. If validation fails, fix the cited IDs or quotes and rerun. Read warnings about overlong clips or target duration.
7. Deliver `cutlist.md`, `cutlist.csv`, and `cutlist.json` with a short explanation of editorial logic and any uncertainty. The user can hand these files to an editor. Do not present them as frame-accurate edits: speech segments are approximate and may need manual handles.

## Guardrails

- Never fabricate speech, transitions, or speakers. Explicitly flag missing narrative bridges and context.
- Keep segment IDs consecutive *within* each clip. Non-adjacent clips form separate cuts.
- If no transcription engine is installed, do not pretend video was analyzed. Explain the missing dependency or use a real timed transcript the user supplies.
- If the user's input is plain text without timestamps, request the original media or a timed transcript. Do not infer timing from word counts.
- The MVP generates an editorial **cut list**, not a finished MP4. Do not promise automated video rendering.
- For journalistic, legal, or sensitive material, emphasize human fact-checking and context review before publication.

Files in this skill

  • LICENSE1.1 KB
  • README.md2.6 KB
  • SKILL.md4.2 KB
  • examples/cutlist.json2 KB
  • examples/cutlist.md733 B
  • examples/transcript.json1.2 KB
  • references/cutlist-format.md1.3 KB
  • scripts/storycut.py13.6 KB
  • tests/fixtures/cutlist_draft.json813 B
  • tests/test_storycut.py3 KB

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.