Re-stitch existing clips in `<project>/scenes/*/` after operator edits — no re-render. ffmpeg concat driven by manifest.json.
Scanned 6/5/2026
Install via CLI
openskills install event4u-app/agent-config---
model_tier: inherit
name: video:stitch
pack: ai-video
tier: 2
cluster: video
sub: stitch
description: Re-stitch existing clips in `<project>/scenes/*/` after operator edits — no re-render. ffmpeg concat driven by manifest.json.
personas: [ai-video-technical-director]
skills: []
suggestion:
eligible: true
trigger_description: "re-stitch existing video clips, rebuild final MP4 after edits, ffmpeg concat existing scenes"
trigger_context: "user has edited clips in `<project>/scenes/*/` and wants the final.mp4 rebuilt without paying for re-renders"
workspaces:
- agent-config-maintainer
packs:
- meta
---
# /video:stitch
`/video:stitch <project-slug> [--skip-scene <id>]... [--continue]`
Re-stitches existing clips after operator edits. **No adapter calls.**
Reads `<project>/manifest.json`, runs `scripts/ai-video/stitch.sh`,
writes `<project>/final.mp4`.
**Block-on-ambiguity:** a missing project slug, a missing
`manifest.json`, or a clip path that no longer resolves halts the run
with a precise diff — the operator must say `--skip-scene <id>` or
`--continue` explicitly.
## Steps
### 1. Validate dependencies
```bash
scripts/ai-video/lib/validate-deps.sh .agent-src.uncondensed/commands/video/stitch.md
```
(Lightweight here — only the `ai-video-technical-director` persona is
declared; no skill stack to resolve.)
### 2. Locate the project
Resolve `<project-slug>` against the working directory. If neither
`<slug>/manifest.json` nor `agents/reference/ai-video/projects/<slug>/manifest.json`
exists, fail with the searched paths.
### 3. Honor operator overrides
Read `--skip-scene <id>` (repeatable) and `--continue` (proceed past
the first missing clip) flags. Reject any other flag — this command
does not render, so `--image-provider` / `--video-provider` are
contract bugs.
### 4. Stitch
```bash
scripts/ai-video/stitch.sh <project>/manifest.json <project>/final.mp4 \
${SKIP_FLAGS} ${CONTINUE_FLAG}
```
The stitcher fails loud on the first unresolved clip unless
`--continue` is set; on `--skip-scene` it drops the named scene from
the concat list before invoking `ffmpeg`.
### 5. Report
Print: project slug, scenes stitched, scenes skipped, final MP4 path,
audio status (per-clip `audio_embedded` flags from `manifest.json`).
No live cost (no network calls happened). No commit. No push.
## Rules
- **No adapter calls.** This command must refuse any provider flag.
- **No commit, no push, no PR.**
- **Block on missing clips** unless `--continue` is explicitly set.
- **Manifest is source of truth** — never re-order clips by filename
or timestamp; respect `manifest.json` ordering.
## See also
- [`/video:from-script`](from-script.md) — full pipeline including
initial stitch
- [`/video:scene`](scene.md) — render one scene
- [`scripts/ai-video/stitch.sh`](../../../scripts/ai-video/stitch.sh) — the underlying tool
No comments yet. Be the first to comment!