Borrowing it
Nothing to install: this file belongs to kwakseongjae/oh-my-design. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kwakseongjae/oh-my-design/main/.claude/skills/omd-media/SKILL.mdgit clone --depth 1 https://github.com/kwakseongjae/oh-my-designWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kwakseongjae/oh-my-design/omd-media)<a href="https://agentmods.dev/skills/kwakseongjae/oh-my-design/omd-media"><img src="https://agentmods.dev/badge/skills/kwakseongjae/oh-my-design/omd-media/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kwakseongjae/oh-my-design/omd-media"><img src="https://agentmods.dev/badge/skills/kwakseongjae/oh-my-design/omd-media.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium analysis-evasion · line 1 Suspicious Unicode normalization or mixed-script contentFix: Review the flagged content for security risks. Ensure no credentials, secrets, or sensitive data are exposed.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00116 | $0.02121 |
| Opus 5 | $0.00058 | $0.01060 |
| Sonnet 5 | $0.00023 | $0.00424 |
| Haiku 4.5 | $0.00012 | $0.00212 |
Grade A, and why
omd:media scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
omd:media — 브랜드 자산 세트, 가진 채널로
입력은 DESIGN.md(토큰·서사·금지)와 .omd/config.json(omd:setup이 저장한 채널·예산)이다. config가 없으면
먼저 omd:setup을 돌린다 — 채널을 추측하거나 "키를 발급받으라"고 말하지 않는다.
1. 프롬프트 팩 (채널 무관, 항상 만든다)
assets/generated/<set>/PROMPTS.md — 항목마다:
- 역할(히어로 / 섹션 n / 아이콘 / OG) · 비율 · 크기
- 비율은 기본값에서 고르지 말고 「그 이미지가 들어갈 자리」에서 가져온다. 레이아웃 슬롯의 실제 종횡비를 재고(렌더가 있으면 그 박스, 없으면 설계 폭÷높이), 브랜드 증거가 있으면 그 브랜드 이미지의 관행 비율과 맞춘다. 히어로 16:9·OG 1.91:1·아이콘 1:1은 자리를 못 잰 경우의 최후 기본값이지 출발점이 아니다.
- 근거: T3-3 레인 A 108칸에서 **생성 이미지의 비율이 브랜드 이미지 관행에서 10% 넘게 벗어난 칸이 60%**였고, 근거 추종 축의 기계 수치는 세 도구 모두 40 이하였다(omd 33.8 · hallmark 34.6 · uiuxpromax 35.9). 페이지 안에서 잘려 나가는 비율은 p90 0.37로 오히려 완만했다 — 문제는 배치가 아니라 생성 시점에 고른 비율이다.
- 프롬프트 원문: 컨셉 한 문장 + 피사체 + 구도 + 빛·질감 + 팔레트 hex 잠금(DESIGN.md 토큰 인용 경로) + 금지(얼굴·로고·텍스트·스톡 느낌)
- 스타일 참조:
assets/_reference/캡처가 있으면 경로(Recraft style_id 생성 입력) - 랜딩이면
storyboard.md의 섹션별 에셋 계획을 그대로 읽는다(중복 작성 금지).
2. 채널 실행 (config media.image 순서대로, 실패 시 다음)
2.0 세트는 배치로 — openai-batch (OPENAI_API_KEY 가 있을 때 기본)
12~40장 세트는 낱장 호출이 아니라 OpenAI Batch API 로 한 번에 넣는다(출력 토큰 50% 할인, 공식 확인).
도구: node test-v2/tools/image-batch.mjs run --spec <set.json> --out <dir> — plan 은 오프라인이라 키 없이도
JSONL 과 비용 구조를 미리 볼 수 있다. 스펙의 styleSuffix 는 모든 프롬프트 끝에 토씨 그대로 붙는다
(우리 채널에는 시드가 없어 세트 일관성은 이것과 참조 이미지뿐이다). 참조 이미지가 있는 슬롯은 /v1/images/edits
배치로 자동 분리된다(최대 16장). 결과는 images/<id>.png + results.json(sha256·usage) + ledger.json(비용).
size 는 슬롯 실측 비율에서 고른다 — 허용 목록·제약은 도구가 검증한다.
| 채널 | 호출 | 산출 |
|---|---|---|
grok-build |
grok --prompt-file <p> -m grok-4.6 --always-approve --cwd <run> — 프롬프트는 "image_gen으로 생성해 <path>로 cp" 지시 |
jpg/png |
codex-imagegen |
codex exec "<prompt>… save to <path>" ($imagegen, ChatGPT 로그인) |
png |
gemini-nanobanana |
gemini -p + nanobanana 확장(/generate) |
png |
xai-api |
POST /v1/images/generations (grok-imagine-image-2.0) — env XAI_API_KEY |
jpg |
recraft-api |
style 생성(참조 1–10장 → style_id, 레퍼런스별 1회) → svg 생성 |
svg |
| 없음 | 프롬프트 팩 + assets/generated/QUEUE.md(사람이 돌릴 목록) + 팔레트 추상 SVG 플레이스홀더 |
— |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 82 lines · 116 tokens per session scan A 644fc129f8a1
omd:media is a skill published in the GitHub repository kwakseongjae/oh-my-design (500 stars, last pushed 5d ago), licensed MIT. It adds 116 tokens to every session and 2,121 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
dembrandt
A TypeScript command-line tool that renders a web page with Playwright and examines its actual styles. It turns colours, typography, spacing, borders, shadows, animation curves, components, and breakpoints into structured design tokens.
extract-design
Extract the full design language from any website URL. Produces 8 output files including AI-optimized markdown, visual HTML preview, Tailwind config, React theme, shadcn/ui theme, Figma variables, W3C design tokens, and CSS variables. Also runs WCAG accessibility scoring. Use when user says 'extract design', 'get…
designlang-tokens
Use when styling UI for cal.com — references the extracted design system tokens instead of inventing colors, spacing, or typography.
brandmd
Extract a website's design system into a DESIGN.md file. Use when starting a new frontend project, rebuilding a site, or when the user wants AI-generated UI to match an existing brand.
montology
A repo's vocabulary as a database, enforced against the code by a tree-sitter scan — in every language it declares (Python, TypeScript/JS, Go, Rust, Swift, Java, Ruby, Elixir, C/C++, and more). Use BEFORE naming anything in code — a class, struct, function, type, module, table, column, endpoint, event, env var, CLI…
animated-infographic
This skill should be used when the user asks to "make an animated infographic", "create an infographic video", "build an infographic animation", "animate an explainer infographic", "do a sequenced reveal of icons and stats", "animate icons with key numbers and connectors", or "lay out a designed infographic that…