mcpbeat

Od Media Generation

nexu-io/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.

3k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
83386
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/nexu-io/open-design --skill od-media-generation

What comes with it

8 248 bytes besides the instruction
open-design.json

The instruction itself

5 sections, as written by the author

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

{
  "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). Only

set this when the user names a provider explicitly.

After the media atom returns:

  • Save the binary into <cwd>/media/<timestamp>.<ext>.
  • 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.

How to use it

Copy the folder

Take nexu-io/od-media-generation from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.