shorts-edit
Skill38 starsChanged 6 months agoMITView on GitHub
Turn raw talking-head recordings (OBS, webcam, screen capture) into finished vertical shorts — cut the retakes and dead air, clean the audio, burn word-by-word captions, add cue-anchored motion graphics and retention pattern-interrupts, all in a single video encode, then prove it with a QA gate. Use when asked to edit/cut/clip raw talking-head footage, remove retakes or dead air, denoise recording audio, add captions or motion graphics to a talking-head video, or improve a video's retention.
- Reads credentials
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- timscheuerai/gtm-architecture-templatetheir own version, first seen Sep 14, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- timscheuerai/gtm-architecture-template★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- graphics-designerSkill
- launch-videoSkill
- lead-magnet-creatorSkill
- linkedin-copywriterSkill
- long-formSkill
- newsletter-writerSkill
- repurposeSkill
- researcherSkill
- shorts-audioSkill
- shorts-cutSkill
- shorts-motionSkill
- shorts-qaSkill
- video-useSkill
- x-copywriterSkill
- youtube-descriptionSkill
- youtube-publisherSkill
- youtube-scriptSkill
- youtube-thumbnailSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Every single bug in this pipeline's history was invisible to eyeballs and obvious to a measurement.
- Distinctive: line 32
Read the one you need. Read shorts-qa always.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
shorts-edit
The orchestrator. Raw takes in, postable vertical shorts out.
Built and hardened on a real session: 14 OBS recordings, 57 minutes of raw → 21 minutes of cut. Every rule below exists because a defect got through review looking fine.
The prime directive
Nothing is done until
qa.pypasses. Not "looks good" — passes.
Every single bug in this pipeline's history was invisible to eyeballs and obvious to a measurement. A caption verifier that sampled long words reported perfect while short words were silently wrong. A tier grade was revealed 5.7s before it was spoken and every frame looked fine in isolation. Audio "sounded weird" and the cause was a filter silently changing mode. Do not trust your eyes on this material. Measure.
Subskills
| Skill | Owns |
| shorts-cut | take selection, dead air, why ASR word-ends are fiction |
| shorts-audio | the two silent audio traps, and why the answer was no denoiser |
| shorts-motion | scout → plan → render, cue anchoring, the brand, the tier board |
| shorts-qa | the gate. 7 checks. Run it before anything ships. |
Read the one you need. Read shorts-qa always.
Project layout
<project>/
raw/ source recordings (untouched)
clips/ <name>_final.mp4 <- deliverables
edit/ everything derived
transcripts/ cached word-level ASR — NEVER re-transcribe
edl_parts_tight/ the cut decisions — SOURCE OF TRUTH
motion.json the graphics plan (cue-anchored)
word_fixes.json ASR corrections + caption inserts
caption_work/ per-frame PNG sequence + schedule.jsonScripts find the project via $SHORTS_PROJECT, --project <dir>, or by walking up from
the cwd for raw/.
SETUP
brew install ffmpeg # every stage shells out to it
pip install pillow numpy # the renderers
# transcription runs through the vendored video-use helpers
export ELEVENLABS_API_KEY=...Then point two shell vars at this vault so the pipeline below copy-pastes:
V=~/.claude/skills/content-vault/skills # wherever you cloned content-vault
S=$V/shorts-edit/scriptsOptional, all with sane fallbacks — see scripts/assets.py:
| Env | Default | If unset |
SHORTS_FONT | macOS Helvetica Neue .ttc | on Linux/Windows, set it — there is no fallback face |
SHORTS_SFX_DIR | shorts-edit/assets/sfx/ | synthesised whoosh/impact/riser, measures clean |
SHORTS_BRAND_MD | shorts-edit/assets/BRAND.md | ships conformant; edit it to your brand |
The pipeline
export SHORTS_PROJECT="/path/to/project"
# 1. transcribe (word-level, CACHED)
python $V/video-use/helpers/transcribe_batch.py "$SHORTS_PROJECT/raw" \
--edit-dir "$SHORTS_PROJECT/edit" --workers 4
python $V/video-use/helpers/pack_transcripts.py --edit-dir "$SHORTS_PROJECT/edit"
python $S/words_dump.py
# 2. pick takes -> edit/edl_parts/*.json (see shorts-cut)
# 3. tighten dead air inside kept takes
python $S/tighten_edl.py # -> edit/edl_parts_tight/
# 4. plan graphics (see shorts-motion)
python $S/motion_scout.py "<clip>" # find the visualizable moments
# -> hand-write edit/motion.json, CUE-ANCHORED
# 5. build — cut + captions + audio + graphics + polish, ONE encode
python $S/build.py "<clip>" --polish
# 6. THE GATE — nothing ships until this passes
python $S/qa.py "<clip>"Hard rules (violating any of these produces a silent failure)
- ONE video encode. Trim → concat → zoom → overlay → encode, all in one filtergraph. Two encodes softened a 246 kbps source from SSIM 0.998 to 0.977. Never re-encode a finished clip to add something to it.
- ASR word END times are fiction. They pad into the following silence and can be
phantom words over dead-silent audio. Word STARTs are reliable. All silence reasoning
comes from the audio (
silencedetect/RMS), never the transcript. - Never let ffmpeg derive caption/graphic timing from durations. The concat demuxer re-times to CFR and rounds boundaries as it pleases. Use one PNG per output frame.
- Never use
loudnormfor gain. See shorts-audio. It silently pumps. - Graphics are cue-anchored, never hand-timed. See shorts-motion.
- Fades only at real cut edges. A mid-beat framing change is not a cut — the audio runs straight through it. A 30ms fade there dips the voice audibly.
concatwants inputs interleavedv0,a0,v1,a1,…— not all video then all audio. The two are identical for one segment, so a single-segment test clip hides the bug.- PIL's ImageDraw with a partial-alpha fill OVERWRITES pixels, it does not composite. Draw at full opacity on a layer, then fade the layer. Otherwise a fading element punches a transparent hole through whatever is beneath it.
What shipped
| video | libx264 CRF 6, preset slow, native res/fps, bt709/tv — SSIM 0.9996 vs source |
| audio | highpass 60Hz + a constant gain to −1.5 dBTP. No denoiser. |
| captions | Helvetica Neue Medium, lowercase, 18px, tracking −1, no stroke |
| graphics | cue-anchored, on-brand, drawn per frame at 30fps |
| retention | pattern interrupt every ≤4.8s; dead-air 0% |
Fix the capture, not the edit
The source was 360×640, 246 kbps, −43 LUFS. No post-processing recovers detail that was never recorded. Raising the OBS canvas and input gain improves every future edit for free.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

