Video Edit Assembly logo

Video Edit Assembly

Community
wwwzhouhui
video-edit-assembly

Specialized workflow for multi-material video assembly. Use after video-edit-agent classifies a task as combining, selecting, ordering, de-duplicating, or shaping multiple user-provided videos/audio/images into one coherent finished video, montage, recap, social-media cut, or story.

Overview

Publisherwwwzhouhui
Repositoryskills_collection
Skill namevideo-edit-assembly
Stars
285
Forks
57
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by wwwzhouhui on GitHub. Read the source before you install it.

Installation

Install the Video Edit Assembly AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/wwwzhouhui/skills_collection/tree/main/video-agent-kit/skills/video-edit-assembly
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/wwwzhouhui/skills_collection.git /tmp/skills_collection
mkdir -p .claude/skills
cp -r /tmp/skills_collection/video-agent-kit/skills/video-edit-assembly .claude/skills/video-edit-assembly
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Video Edit Assembly in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Video Edit Assembly on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Video Edit Assembly is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Video Edit Assembly

Use this skill for multi-material assembly tasks: the user provides a batch of materials and asks for a coherent finished video. The goal is not to use every file; the goal is to choose the right materials, order them intentionally, preserve important speech, avoid repetition and off-topic shots, and deliver a rendered preview that passes the common video-edit contract.

Follow the video-edit-agent common file contract and completion bar. This skill adds the assembly-specific decision process.

Assembly Principles

  1. Classify before cutting. Multi-material editing starts with an inventory and grouping pass, not with a timeline.
  2. Use source evidence. Selection decisions must be based on inspect_media, transcript when speech matters, and visual contact sheets. Do not infer content from filenames alone.
  3. Not all materials should be used. Drop duplicates, low-quality clips, off-topic material, broken speech fragments, and shots that weaken the requested story.
  4. Preserve key speech. If a used source contains speech, avoid cutting important sentences mid-thought. If preserving a sentence would hurt the edit, either keep the complete sentence or drop that spoken segment entirely and explain the tradeoff.
  5. Respect task constraints. Duration, aspect ratio/platform, tone, pacing, special effects, subtitles, music, and speech protection should be parsed before planning. Record hard constraints and soft preferences in out/media.json or out/report.md.
  6. Prefer coherent structure over file order. Build an editorial arc from content: hook, setup, development, contrast/turn, climax, resolution, outro, or another structure fitting the task.
  7. Use conservative assumptions. In automated data runs, do not ask for confirmation unless the task is impossible. Explain assumptions in out/report.md.

Assembly Workflow

Run these phases in order.

Phase 1: Discover And Parse Constraints

Read materials_manifest.json when present; otherwise scan the current working directory, excluding generated/runtime directories. Build a material inventory with:

  • file path and type: video, audio, image, other;
  • duration, resolution, fps, audio presence, obvious technical risk;
  • user-mentioned files/folders if any;
  • inferred task type, target duration, target platform/aspect ratio, tone, pacing, effects/subtitle/music expectations;
  • hard constraints vs soft preferences.

Write or later update out/media.json with the inventory. For multiple sources, write per-source probes to out/media/<source>.json.

Phase 2: Inspect Sources

For every video/audio source that may participate, call inspect_media.

For sources with audio when speech may affect editing, call transcribe into out/transcripts/<source>.json. Run ASR for all audio-bearing sources when the user says not to cut speech, asks for dialogue-aware editing, or the content type likely includes speech. Silent or no-speech transcripts are valid and should be recorded.

For each source video that may be used or needs a keep/drop decision, call video_ingest with a distinct output path:

text
out/ingest/<source_stem>.json

Read the returned contact-sheet images. If a source is clearly unusable after metadata alone (corrupt, wrong file type, zero duration), record that reason without visual planning. Otherwise do not reject video content without visual evidence.

Use analyze_media only as a deterministic hint for scene boundaries, black ranges, silence ranges, or candidate segments. It does not replace visual inspection.

Phase 3: Group, Score, And Select

Before timeline writing, create a source selection summary in out/media.json or a separate review artifact referenced by out/report.md. Include:

  • material_groups: duplicates, same scene/take, same topic, off-topic, low-quality, spoken/interview, B-roll, title cards, stills/images, audio-only;
  • selection_summary: selected, rejected, maybe/backup;
  • keep/drop reasons grounded in visual/audio evidence;
  • speech constraints: which spoken ranges must be preserved or avoided;
  • candidate ranges with source timestamps and editorial purpose;
  • quality risks: shaky footage, black frames, low resolution, wrong aspect ratio, source jump cuts, loud audio, silence.

For duplicate or near-duplicate material, keep the best version based on stability, completeness, composition, audio, and usefulness. Do not include multiple near-identical clips just to reach target duration unless the user explicitly asks for repetition.

For off-topic material, drop it even if it helps duration. If the requested duration cannot be reached without weak material, prefer a shorter strong cut and explain the limitation.

Phase 4: Decide Format And Structure

Choose sequence/canvas early:

  • If the user asks for vertical/social/mobile/reels/tiktok/shorts, prefer a 9:16 canvas unless the material would be harmed and explain the tradeoff.
  • If the user asks for horizontal, documentary, presentation, archival, or source fidelity, keep a landscape canvas when appropriate.
  • If the user only says "social media" and materials are mixed, choose the aspect ratio that best preserves subjects and record the assumption.

Define an editorial structure before writing clips. Common assembly structures:

  • hook -> context -> development -> climax -> resolution;
  • before -> process -> result;
  • wide -> medium -> close detail -> payoff;
  • problem -> evidence -> answer;
  • calm opener -> activity -> peak -> closing card;
  • chronological sequence when chronology matters.

Record the chosen structure in project, markers[], clip beat, and out/report.md.

Phase 5: Build Project Timeline

Write out/timeline.json as a project-style timeline with:

  • project: task, assumptions, selected strategy, rejected-material policy;
  • sequence or output_canvas: width, height, fps, duration target, aspect-ratio/platform notes;
  • assets[]: all source and derived assets, including rejected assets with roles/reasons when useful;
  • tracks[]: at least one typed video or main track. Add audio, music, voiceover, subtitle, overlay, or chapter_card tracks only when required by the task or clearly justified.

Each video clip needs source, start, end or duration, optional timeline_start, and a reason explaining its editorial role. Use beat for the structural role. Use volume, speed, opacity, transition_in, and transition_out only when meaningful.

Do not silently claim unsupported advanced NLE features were rendered. If an idea is only metadata, make that clear in out/report.md.

Phase 6: Validate, Render, QC, And Self-Review

Run:

  1. validate_timeline(timeline_path="out/timeline.json", output_json="out/timeline_validation.json")
  2. render_preview(timeline_path="out/timeline.json", output_path="out/preview.mp4")
  3. qc_preview(video_path="out/preview.mp4", timeline_path="out/timeline.json", output_json="out/preview_qc_report.json")

Then visually self-review out/preview.mp4 using video_ingest with output_json="out/preview_ingest.json" when needed. Check:

  • the final video follows the requested structure and tone;
  • selected materials match the user's subject;
  • repeated or off-topic shots were not accidentally included;
  • important speech is not cut mid-sentence;
  • transitions and cut boundaries are clean;
  • aspect ratio/crop keeps important subjects visible;
  • audio continuity and loudness are acceptable;
  • QC warnings are fixed or explicitly justified.

If repair is needed, use timeline_diff, then rerun validation, render, and QC.

Phase 7: Report

Write out/report.md with:

  • user task and assumptions;
  • final output path, duration, resolution, fps, and audio state;
  • selected structure and timeline summary;
  • selected and rejected material decisions;
  • speech preservation decisions;
  • QC status and any warnings/errors;
  • repair loop summary if any;
  • unresolved risks or limitations.

Assembly-Specific Completion Bar

In addition to the global completion bar, the assembly task is complete only when:

  • every relevant video source has either a source observation package or a recorded reason why visual inspection was unnecessary/impossible;
  • out/media.json summarizes source groups and keep/drop decisions;
  • the timeline uses project-style assets[] and tracks[];
  • selected clips have editorial reason and, when useful, beat;
  • rejected/unused important materials are explained in out/report.md or out/media.json;
  • the final report states whether the result met duration/aspect/tone/speech constraints or explains any deliberate deviation.

Frequently asked questions

What does the Video Edit Assembly AI skill do?

Specialized workflow for multi-material video assembly. Use after video-edit-agent classifies a task as combining, selecting, ordering, de-duplicating, or shaping multiple user-provided videos/audio/images into one coherent finished video, montage, recap, social-media cut, or story.

Why use Video Edit Assembly on TypingMind?

Because you install it once and use it with any model. Video Edit Assembly is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Video Edit Assembly in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/wwwzhouhui/skills_collection/tree/main/video-agent-kit/skills/video-edit-assembly. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Video Edit Assembly?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Video Edit Assembly?

As many as you like. As long as a model supports skills, you can use Video Edit Assembly with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Video Edit Assembly AI skill free?

It is published on GitHub by wwwzhouhui. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇