Skip to main content

od-media-generation

Default reference pipeline for image, video, and audio projects — routes through media-image / media-video / media-audio atoms based on the project kind, wraps the output in a live artifact, and devloops on critique-theater until the score converges.

Jump to install

Source facts

Repository
nexu-io/open-design
Last source activity
August 18, 2026 at 07:09
Detected SKILL.md language
English
Stars
96,674
Forks
11,234

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
od-media-generation
description
Default reference pipeline for image, video, and audio projects — routes through media-image / media-video / media-audio atoms based on the project kind, wraps the output in a live artifact, and devloops on critique-theater until the score converges.
od
{"scenario":"media-generation","mode":"scenario"}
# od-media-generation (scenario) This scenario plugin is the bundled default for projects whose `metadata.kind` is `image`, `video`, or `audio`. The web client and the daemon both look up `defaultScenarioPluginIdForKind(kind)` from `@open-design/contracts` and, when no other plugin is applied, bind this scenario at project / run creation time. ## Default pipeline ```jsonc { "stages": [ { "id": "discovery", "atoms": ["discovery-question-form"] }, { "id": "plan", "atoms": ["todo-write"] }, { "id": "generate", "atoms": ["media-image", "media-video", "media-audio", "live-artifact"] }, { "id": "critique", "atoms": ["critique-theater"], "repeat": true, "until": "critique.score>=4 || iterations>=3" } ] } ``` The `generate` stage lists all three media atoms even though a single run only calls one of them. Picking the right atom is the agent's job: - `metadata.kind === 'image'` → `media-image` - `metadata.kind === 'video'` → `media-video` - `metadata.kind === 'audio'` → `media-audio` If the user picks this plugin manually without a media-typed project, prefer `media-image` and explain the assumption in the first reply. ## Atom call shape Every media atom takes the same kernel of inputs and returns a media artifact reference that `live-artifact` can wrap: - `prompt` — the rendered `useCase.query` after input substitution. - `aspect` — one of `1:1` / `16:9` / `9:16` / `4:3` / `3:4`. Default `16:9`. The contracts `MediaAspect` union enumerates the legal values. - `provider` — left blank by default so the daemon picks the user's configured provider for this media kind (see Settings → Media providers). Only set this when the user names a provider explicitly. After the media atom returns: 1. Save the binary into `<cwd>/media/<timestamp>.<ext>`. 2. Call `live-artifact` to register a preview surface pointing at the saved file. The preview is what the user sees in the right pane. ## Critique loop `critique-theater` reads the artifact, scores it across the standard five dimensions, and emits a `critique.score` signal. The `until` clause stops the loop at score ≥ 4 or three iterations, whichever comes first. Use the critique notes to drive the next media call's prompt, not to re-pick the media atom. ## Replace, do not extend Enterprise editions that need a different default for media work should ship a sibling scenario plugin and add the right mapping in `@open-design/contracts/scenario-defaults`, not patch this manifest.
View on GitHub