Skip to content

Latest commit

Β 

History

History
76 lines (60 loc) Β· 2.82 KB

File metadata and controls

76 lines (60 loc) Β· 2.82 KB
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 mode
media-generation
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

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