kling-3-0-deep-dive
Deep operating guidance for Kling 3.0 video generation. Use when selecting Kling 3.0 for a shot, designing multi-shot scene…
Package completed visual storytelling video outputs into OpenShot editor projects with the system-installed media-project command. Use when an agent needs to run or verify a playable .osp handoff, preserve production sidecar metadata, or decide whether a project is ready for
Claude Code
$ npx -y skills add leynos/visual-storytelling-skills --skill media-project --agent claude-code
Codex
$ npx skills add leynos/visual-storytelling-skills --skill media-project -a codex -y
Cursor
$ npx skills add leynos/visual-storytelling-skills --skill media-project -a cursor -y
Gemini CLI
$ npx skills add leynos/visual-storytelling-skills --skill media-project -a gemini-cli -y
GitHub Copilot
$ npx skills add leynos/visual-storytelling-skills --skill media-project -a github-copilot -y
OpenCode
$ npx skills add leynos/visual-storytelling-skills --skill media-project -a opencode -y
Windsurf
$ npx skills add leynos/visual-storytelling-skills --skill media-project -a windsurf -y
name: media-project description: Package completed visual storytelling video outputs into OpenShot editor projects with the system-installed media-project command. Use when an agent needs to run or verify a playable .osp handoff, preserve production sidecar metadata, or decide whether a project is ready for OpenShot packaging.
Use this skill when packaging selected generated clips into an OpenShot project with the `media-project` command. The command is expected to be installed at the system tool level before this skill is used, normally with `uv tool install`.
Do not assume the story project contains the `media-project` source tree. The story project normally contains only generated media, metadata, prompts, and editor handoff outputs.
Before running `media-project package-openshot`, verify both commands exist:
command -v media-project command -v ffprobe
If `media-project` is absent, stop immediately and report that the command must be installed system-wide with `uv tool install` before packaging can proceed. Do not look for repository-local source directories or try to run the command through a project checkout.
If `ffprobe` is absent, stop immediately. Do not run the packager, do not write a minimal `.osp`, and do not tell the user the project is packaged. Report that `ffprobe` is required because OpenShot playback depends on full FFmpeg reader metadata in both `files[]` and `clips[].reader`.
Only package a project after `video-generator` has produced reviewed local media and these project-root-relative files:
Preferred `generated/assembly_order.md` columns are:
| Column | Meaning | | --- | --- | | `Order` | Final timeline order. | | `Shot ID` | Stable shot identifier. | | `Sub-clip` | Sub-clip identifier. | | `Selected clip` | Project-root-relative local video path. | | `Boundary after` | Edit-boundary or transition intent after the clip. | | `Notes` | Editor handoff notes. |
Some older assembly files may use `File` instead of `Selected clip` or `Boundary (next)` instead of `Boundary after`. Treat those as compatibility aliases only when the installed tool version documents support for them.
`Sub-clip` is mandatory even when a shot was not decomposed into separate sub-clips. The packager matches assembly rows to generation-log rows using `Shot ID`, `Sub-clip`, and the selected local file path, so the same non-empty `Sub-clip` value must appear in both tables. For non-decomposed shots, use `-` as the placeholder in both `generated/assembly_order.md` and `generated/generation_log.md`; do not leave the cell blank or omit the column.
`generated/generation_log.md` must identify the same selected files and include completed statuses, accepted review states, duration metadata, model/job metadata, actual file size, actual resolution, prompt hash, and audio mute intent. Do not package blocked, missing, incomplete, or unreviewed required clips.
Run the already installed command from the story project repository or from any working directory where project-root paths are clear:
media-project package-openshot \ --project-root /path/to/story-project \ --assembly-order generated/assembly_order.md \ --generation-log generated/generation_log.md \ --manifest prompts/manifest.md \ --output generated/media-project/project.osp \ --sidecar generated/media-project/media-project.json
The command refuses to overwrite existing outputs unless `--force` is passed. Use `--force` only when replacing the generated `.osp` and sidecar is intentional.
A playable OpenShot handoff needs full FFmpeg reader metadata. Check generated projects for these invariants:
its matching file entry.
frame count, file size, duration, frame rate, dimensions, display ratio, sample rate, channel data, pixel data, and container metadata.
project has a matching `layers[]` entry.
flags, and waveform colour are OpenShot keyframe curve objects with `Points`, not scalar values.
The sidecar JSON remains the production provenance record. Preserve transition intent there and in clip metadata; do not invent OpenShot transition effects unless the tool version explicitly supports them with a verified reference shape.
After packaging, inspect the generated project before handing it off:
jq '.files[0].type, .clips[0].reader.type, .clips[0].gravity, .clips[0].scale, .clips[0].layer' \ /path/to/story-project/generated/media-project/project.osp
Expected values are:
"FFmpegReader" "FFmpegReader" 4 1 1000000
When OpenShot is available, perform a manual smoke test: open the `.osp`, press play on the timeline, and verify that at least the first selected clip decodes and plays rather than merely appearing as a timeline block. If OpenShot is not available in the current environment, report that the manual smoke test was not run.
[]( Agent skills for AI film production — from prose to picture. Every story contains a film. These skills find it.
Deep operating guidance for Kling 3.0 video generation. Use when selecting Kling 3.0 for a shot, designing multi-shot scene…
Craft high-precision prompts and edit instructions for Nano Banana image workflows, especially when using the local nanobanana…
Build pronunciation tables, generate text-to-speech (TTS) preview samples, and produce phoneticized scripts ready for narration.…
End-to-end production-prep workflow: extracts comprehensive scene inventories from narrative writing, extracts continuity…
Deep operating guidance for Seedance 2.0 video generation. Use when selecting Seedance 2.0 for a shot, designing multimodal…
Per-shot production specification workflow: takes a completed scene inventory (from scene-inventory-extractor-v2) and decomposes…
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…