Design & Medialow risk

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.

nexu-io/open-design·plugins/_official/scenarios/od-media-generation/SKILL.md
61/ 100推荐值

导入这个 Skill

选择你的 coding agent,复制项目级或个人级安装命令。

固定到平台收录的 commit
导入当前项目.agents/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a codex -y
导入个人环境~/.agents/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a codex -g -y
手动放置目录.agents/skills/od-media-generationOfficial docs ↗
导入当前项目.claude/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a claude-code -y
导入个人环境~/.claude/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a claude-code -g -y
手动放置目录.claude/skills/od-media-generationOfficial docs ↗
导入当前项目.agents/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a github-copilot -y
导入个人环境~/.copilot/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a github-copilot -g -y
手动放置目录.agents/skills/od-media-generationOfficial docs ↗
导入当前项目.agents/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a cursor -y
导入个人环境~/.cursor/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a cursor -g -y
手动放置目录.agents/skills/od-media-generationOfficial docs ↗
导入当前项目.agents/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a gemini-cli -y
导入个人环境~/.gemini/skills/od-media-generation
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/scenarios/od-media-generation -a gemini-cli -g -y
Native Gemini CLIgemini skills install https://github.com/nexu-io/open-design.git --scope workspace --path plugins/_official/scenarios/od-media-generation
手动放置目录.agents/skills/od-media-generationOfficial docs ↗
⚠ 安装命令使用开源 skills CLI。执行前请检查来源、脚本和权限。
# 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). 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.