이미지 placeholder를 동적으로 materialize. Codex 채널에서는 내장 image-generation primitive 호출, Claude Code 채널에서는 omd-asset-curator로 fall back, OpenCode에서는 spec dump. HTML/MD의 `` 블록을 단일 source of truth로 사용. '이미지 생성해줘', '플레이스홀더 채워줘', '코덱스로 이미지 만들어' 류 트리거.
$npx -y skills add kwakseongjae/oh-my-design --skill omd-codex-imageInstalls into the current project.
Run `npx skills use "https://github.com/kwakseongjae/oh-my-design" --skill "kwakseongjae/oh-my-design/omd-codex-image"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.
Use the skills in "https://github.com/kwakseongjae/oh-my-design" that are relevant to the current task. Run `npx skills add "https://github.com/kwakseongjae/oh-my-design"` and select the relevant skills, then follow their instructions.
| 1 | # omd-codex-image |
| 2 | |
| 3 | Materialize placeholder images embedded as `<!-- omd:gen-image ... -->` spec blocks. |
| 4 | |
| 5 | ## Boot |
| 6 | |
| 7 | 1. Read the installed `omd-codex-image/SKILL.md` from the active host's skill root in full |
| 8 | 2. Resolve `channel` input (auto-detect via `process.env.OMD_CHANNEL`, host agent identity, or `--channel` flag) |
| 9 | 3. Read `artifact_path` |
| 10 | |
| 11 | ## Workflow |
| 12 | |
| 13 | Follow §1 of the skill — channel-specific dispatch: |
| 14 | |
| 15 | - `codex` → native image generation primitive (tool name varies; pick whatever is available) |
| 16 | - `claude-code` → omd-asset-curator (free-license catalog) as fallback |
| 17 | - `opencode` → terminal user-queue prompt |
| 18 | |
| 19 | Apply idempotency rules from §3 (skip already-done blocks). |
| 20 | |
| 21 | ## Output |
| 22 | |
| 23 | - Materialized image files at each `filename` path |
| 24 | - Spec blocks preserved verbatim |
| 25 | - `<!-- omd:gen-image:done at=<ISO> by=<channel> -->` annotation added immediately below each processed spec |
| 26 | - One-line summary per §5 |
| 27 | |
| 28 | ## Self-audit |
| 29 | |
| 30 | Before reporting: |
| 31 | |
| 32 | 1. Every spec block in the artifact either has a `:done` annotation OR an `:error` annotation |
| 33 | 2. No spec block was deleted or modified |
| 34 | 3. Every `filename` path exists with size > 0 (unless error state) |
| 35 | 4. No identifiable person likeness was generated |
| 36 | 5. No brand logos were synthesized (logos must be sourced from `references:` URLs) |
| 37 | |
| 38 | Fail → re-run that block before returning. |
| 39 | |
| 40 | ## Parallel safety |
| 41 | |
| 42 | Multiple artifacts in different paths are independent. The orchestrator may invoke this agent in parallel across files. Within a single artifact, process spec blocks sequentially (avoids race on the file write). |