Skip to content
cccskills
FreePublished on GitHub

oma-video

Create videos through the OMA video CLI, or analyze and edit existing clips with media tools. Use for frame extraction, visual analysis, silence cuts, dubbing assembly, scripts, and composition; audio-only work uses oma-voice.

The English summary is being prepared. Showing the original description.

See how to install

Files included (16)

  • SKILL.md8.5 KB
  • config/video-config.yaml1.9 KB
  • resources/checklist.md2.3 KB
  • resources/execution-protocol.md8.8 KB
  • resources/existing-media.md10.7 KB
  • resources/hyperframes-authoring/demo.md966 B
  • resources/hyperframes-authoring/explainer.md901 B
  • resources/hyperframes-authoring/README.md2.1 KB
  • resources/hyperframes-authoring/shorts.md1.2 KB
  • resources/mpt/driver.py12.2 KB
  • resources/prompt-tips.md4.5 KB
  • resources/script-schema.md3.5 KB
  • resources/strudel/package.json464 B
  • resources/strudel/page.html3.0 KB
  • resources/strudel/render.mjs9.8 KB
  • resources/vendor-matrix.md6.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Video Router

Scheduling

Goal

Create a playable video, or derive requested frames, analysis, or edits from an existing clip while retaining its source timeline.

Intent signature

  • Create a short, explainer, or recorded demo.
  • Extract frames, count visible objects, remove pauses, or assemble a dubbed clip.

When to use

Use this skill for a short/reel, README or code explainer, demo walkthrough, or analysis and editing of an existing video.

RequestModeDefault aspectRequired source
Short, reel, social clipshorts9:16Topic or brief
README, code, data explanationexplainer16:9Topic or source path
Demo or walkthroughdemo16:9Human recording via --capture

Existing-clip work uses installed media tools through the conditional resource; it is not a new oma video generate mode.

When NOT to use

Use oma-image for a still image, oma-slide for a deck, oma-voice for audio only, and oma-explanation for an interactive HTML explainer. Route transcription, synthesis, and TTS duration fitting to oma-voice, and spoken translation to oma-translation; this skill owns their placement in video. Live streaming is out of scope.

Expected inputs

A creation brief, or an existing clip plus the requested analysis/edit, selected streams, timing or sampling requirements, and output path.

Expected outputs

A generated video and its asset bus, or requested frames/analysis/edited media with source timestamps and the parameters used to derive them.

Dependencies

Creation requires the selected OMA providers/compositor. Existing-clip work uses installed ffprobe/ffmpeg and an available vision tool when visual analysis is requested. Report unavailable capabilities; do not substitute fabricated results.

Structural Flow

For an existing clip, use the existing-media branch in the canonical path. For creation, inputs are a brief plus optional mode, aspect, locale, captions, visual, voice, music, duration, compositor, capture path, and seed. Outputs live in .agents/results/videos/<timestamp>-<shortid>-<mode>/:

  • script.json, timing.json, and render-spec.json form the deterministic asset bus.
  • Captions and acquired audio/visual assets are recorded in manifest.json with hashes, providers, cost, warnings, and exit code.
  • A successful real render contains <mode>-<slug>.mp4, an encoded video stream, and a positive ffprobe duration.

OMA_VIDEO_MOCK=1 is a test harness only. It can create deterministic text placeholders with an .mp4 name; those files are never a user deliverable. A missing HyperFrames/MPT toolchain, an un-authored composition, a render error, or an invalid video fails with diagnostics and leaves the script/render spec for recovery.

Decide and confirm

For creation, infer mode when clear: short/reel -> shorts; README/code/data/explain -> explainer; demo/walkthrough/capture -> demo. For a one-line creation request, state the inferred mode, aspect, duration, visual strategy, captions, locale, and voice/music before invoking. Do not make the user complete a questionnaire when those defaults are clear.

Ask only when it changes the result: an ambiguous mode/source, a required demo recording, or a cost confirmation. Respect an explicit mode, aspect, duration, captions, or voice verbatim.

For a demo, a human records the screen and controls login. --source web --url provides context only; it never automates login or starts a recorder. Without --capture, return guided capture instructions and stop.

Logical Operations

Guardrails

  1. Keep output and capture paths inside $PWD unless external output is explicitly allowed. Validate capture formats and copy external assets into the run directory. Mask URL query/hash tokens in logs and manifests.
  2. Provider configuration is key-optional: use the configured chain. Paid providers require their environment key and the cost guardrail. Local fallbacks may replace voice, visuals, captions, or music; record coverage in warnings. A compositor failure is never a fallback video.
  3. Before a paid provider action or rerun, compare the planning estimate with cost.guardrail_usd or --max-usd and reuse existing spend authorization. In an active OMA video workflow, record the actual paid, limited, fallback, or declined choice before executing it (execution protocol Step 2). Pass --yes or OMA_VIDEO_YES=1 only for an already authorized paid action; the event does not grant permission.
  4. For creation, respect limits.max_duration_sec (180) and limits.max_scenes (40). Cancel subprocess work on SIGINT/SIGTERM.
  5. Keep run directories. Never auto-prune a user’s video artifacts.
  6. --dry-run writes only planning artifacts and does no provider render. It does not prove an MP4 exists.

Canonical command path

  1. Existing clip: load resources/existing-media.md and follow the requested extraction, analysis, or editing operation there. Its tool commands do not pass through oma video generate or the creation-only limits above.
  2. New video: use the commands below and the creation pipeline. Keep existing shorts, explainer, and demo behavior.
# Plan or create the asset bus. Supply --script whenever an agent authored it.
oma video generate "Jeju coffee" --mode shorts --aspect 9:16 \
  --captions tiktok --script ./script.json --output json

# Deterministic planning only; no real render or provider work.
oma video generate "explain this project" --mode explainer --seed 42 --dry-run

# Human-recorded demo input.
oma video generate "feature walkthrough" --mode demo --capture <absolute-path>.mp4

# Scaffold the per-run HyperFrames project, author index.html as instructed,
# then render and validate the encoded output.
oma video compose <runDir> --output json
oma video render <runDir> --output json

# Diagnose required toolchains without changing a run.
oma video doctor
oma video provider list

oma video generate --output json returns {exitCode, runDir, manifestPath, scriptPath, renderSpecPath, warnings, error}. Read video and asset paths from the manifest; the JSON envelope has no outputs field.

Failure and recovery

  • Missing HyperFrames composition: oma video compose <runDir> prepares the project and authoring contract. Author <runDir>/hyperframes/index.html using the generated AUTHORING.md, then invoke oma video render <runDir>. The command lints, renders, and ffprobes the output. Fix a reported composition or toolchain failure and re-run; return a failure report when it cannot render.

  • Missing MPT toolchain: --compositor mpt requires the installed checkout, its virtual environment, and ffmpeg. Use oma video doctor --install-mpt when setup is authorized and available. MPT setup failures, driver failures, and non-video output fail with the diagnostic; they do not write a placeholder MP4.

For creation, success means all asset schemas and manifest hashes validate and a real MP4 passes video-stream and duration validation. A partial success may use a key-free visual, timing, caption, or music fallback, but it still requires that real video validation.

References

Conditional resources

Load only what the task needs:

  • resources/execution-protocol.md for the creation pipeline, failure mapping, and JSON reporting rules.
  • resources/existing-media.md when analyzing, extracting from, cutting, or dubbing an existing clip.
  • resources/vendor-matrix.md before changing providers, keys, cost, or fallback order.
  • resources/script-schema.md when authoring or validating --script input.
  • resources/prompt-tips.md when turning a brief into scene prompts.
  • resources/hyperframes-authoring/README.md and the selected mode guide before writing index.html.
  • resources/checklist.md before handing a newly generated video to a user.

Verification

For CLI/runtime changes, add a regression test for the affected success and failure paths. At minimum run the focused Vitest files, for example:

cd cli
bunx vitest run commands/video/providers/compositor.test.ts \
  commands/video/orchestrator.test.ts
bunx biome check commands/video/providers/compositor.ts \
  commands/video/providers/compositor.test.ts

Do not run a live render merely to test documentation or a mock-only branch.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

A fixture whose description uses a YAML folded scalar, which parses with an embedded trailing newline unless normalized before use in Markdown tables.

The English summary is being prepared. Showing the original description.

first-fluke/oh-my-agent1.4KUpdated Oct 22, 2026

Draft and revise academic prose against a rubric, evidence, and citation requirements. Use for essays, reports, literature reviews, or academic style audits.

The English summary is being prepared. Showing the original description.

first-fluke/oh-my-agent1.4KUpdated Oct 22, 2026

Architecture specialist for software/system design, module and service boundaries, tradeoff analysis, and stakeholder synthesis. Uses context-aware methods such as diagnostic routing, design-twice comparison, ATAM-style risk analysis, CBAM-style prioritization, and ADR-style decision records.

The English summary is being prepared. Showing the original description.

first-fluke/oh-my-agent1.4KUpdated Oct 22, 2026

Evaluate system boundaries and architectural tradeoffs. Use for architecture decisions, design reviews, and ADRs.

The English summary is being prepared. Showing the original description.

first-fluke/oh-my-agent1.4KUpdated Oct 22, 2026

Implement server APIs, authentication, and application data access. Schema modeling and query tuning use oma-db.

The English summary is being prepared. Showing the original description.

first-fluke/oh-my-agent1.4KUpdated Oct 22, 2026

Backend specialist for APIs, databases, authentication with clean architecture (Repository/Service/Router pattern). Use for API, endpoint, REST, database, server, migration, and auth work.

The English summary is being prepared. Showing the original description.

first-fluke/oh-my-agent1.4KUpdated Oct 22, 2026

See all skills by first-fluke

Report a problem with this skill