CtrlK
BlogDocsLog inGet started
Tessl Logo

stitch-videos-ffmpeg

Stitch video segments with ffmpeg concat, xfade, overlay, audio mux, and export settings. Ships montage.py, a free montage assembler (python3 + ffmpeg, no keys). It takes a JSON EDL of clips and stills, normalizes them and hard-cuts them in order, burns captions from an SRT, a cue list or word timings, and lays a VO over a music bed that ducks under it, mastered to -14 LUFS.

66

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

An exemplary script-driving skill body: copy-paste-ready commands, a complete spec example, explicit validation with exit codes and warning-to-error escalation, and a real test suite description. It assumes competence and stays operational throughout, with only minor costs — some provenance boilerplate, all reference material inlined, and one dangling reference to a tests file not present in the bundle.

DimensionReasoningScore

Conciseness

The body is dense with operational detail and assumes Claude's competence — it never explains what ffmpeg or LUFS are, and every section (spec format, defaults table, exit codes, renderer fallbacks) is task-relevant. Minor trimmable padding exists in the provenance boilerplate ('Implementation status', 'Sources', 'Extraction notes'), which keeps it at the 4 anchor rather than the lean 5.

4 / 5

Actionability

Fully executable, copy-paste-ready guidance: exact CLI invocations for every step ('python3 $S/montage.py run --spec montage.json --out edits/master.mp4 --workdir edits/work'), a complete JSON spec example, a defaults table with every overridable setting, defined exit codes, and a concrete fallback command ('python3 -m pip install pillow'). This matches the 5 anchor where specific examples cover the common cases.

5 / 5

Workflow Clarity

The pipeline is clearly sequenced (edl → assemble → captions → mix → run) with a dedicated upfront validation step that lists 'All problems ... at once', explicit feedback loops (exit codes 0–3, warnings vs errors with --strict, VO-overrun warning with a concrete remedy), and a tests section with precise assertions running in CI. Validation is explicitly present, so the batch-operation cap at 3 does not apply; this matches the 5 anchor's explicit validation and error-recovery loop.

5 / 5

Progressive Disclosure

Scored against the actual bundle: the 50KB montage.py implementation is appropriately kept out of SKILL.md, and every referenced script (scripts/montage.py, composite.py, composite_final.py/.sh, normalize_clip.sh, voiceless/composite.py) exists in the bundle. Minor gaps keep it at 4 rather than 5: the full spec-format and defaults documentation is inline with no reference-file split, and 'tests/test_stitch_montage.py' is referenced but absent from the bundle.

4 / 5

Total

18

/

20

Passed

Description

71%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, capability-rich description in third person that concretely covers assembly, captions, and audio mixing with measurable output targets. Its main weakness is the complete absence of a 'Use when...' trigger clause, which both caps completeness and slightly weakens trigger discoverability. Adding a trigger clause and common user synonyms (merge/combine/join, .mp4) would raise it further.

Suggestions

Append an explicit trigger clause, e.g. 'Use when the user wants to stitch, merge, or combine video clips into one montage or ad, or mentions an EDL, concat, or cutting a video from finished clips.'

Add natural user synonyms and file extensions to the trigger vocabulary — 'merge videos', 'join clips', 'combine segments', '.mp4' — so the description matches how users actually phrase the request.

Keep the concrete capability list as-is; it is the description's strongest asset and needs no trimming.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions — 'Stitch video segments with ffmpeg concat, xfade, overlay, audio mux', 'normalizes them and hard-cuts them in order, burns captions from an SRT, a cue list or word timings', 'lays a VO over a music bed that ducks under it, mastered to -14 LUFS' — with comprehensive coverage of the skill's capabilities. It clearly matches the 5 anchor rather than 4, which would require minor gaps in coverage.

5 / 5

Completeness

The 'what' is clearly and concretely answered (concat/xfade/overlay/audio mux, captions, VO over ducking music bed, -14 LUFS master), but there is no 'Use when...' clause or any equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 4 because the 'when' is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say in this domain: 'stitch video segments', 'montage', 'captions', 'SRT', 'ffmpeg', 'VO'. A few natural terms are missing — common synonyms like 'merge/combine/join clips' and file extensions such as .mp4 — so it matches the 4 anchor rather than the comprehensive 5.

4 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche (JSON EDL montage assembly with caption burn, sidechain ducking, and -14 LUFS mastering) with distinct triggers, so it is mostly distinguishable. Minor overlap risk remains with closely related skills the body itself names ('mix-master', 'caption-burn'), matching the 4 anchor rather than the minimal-conflict 5.

4 / 5

Total

16

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
gooseworks-ai/goose-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.