# Omd Setup

> Guided setup of the tools the design harness can use — image/video generation channels, browser, encoders. Detects what the user already has, explains pros/cons/costs, asks instead of instructing, and saves choices to .omd/config.json so every later design task reuses them. Trigger: 'omd setup', '도구 셋업', '이미지 생성 뭐 쓸 수 있어', 'configure media', '세팅해줘', 'what can you generate'.

- Skill: `kwakseongjae/omd-setup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kwakseongjae/omd-setup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kwakseongjae/omd-setup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: kwakseongjae (https://skillmd.com/u/kwakseongjae)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kwakseongjae/omd-setup

---


# omd:setup — 가진 것을 찾고, 고르게 하고, 기억한다

원칙 하나: **"이거 발급받아라"고 하지 않는다.** 이 머신과 계정에 이미 있는 채널을 찾아 보여 주고,
각 채널의 장단점·비용을 설명한 뒤, 사용자가 고른다. 고른 것은 `.omd/config.json`에 저장돼 이후의
디자인 작업(`omd:landing`, `omd:media`, `omd:showcase`, `omd:autopilot`)이 자동으로 쓴다.
키 값은 어디에도 기록하지 않는다 — env 이름의 존재 여부만.

## 절차

### 1. 감지 (기계)

```bash
omd setup detect --json                     # 설치본(기본) — 패키지 루트의 감지 스크립트를 실행한다
node scripts/omd-setup-detect.mjs --json    # 이 레포 안에서 개발할 때만
```
설치본이 기본 경로다. 결과의 `channels[*].present`가 사실이다.
`present: null`(claude-in-chrome 등)은 세션의 도구 목록에서 직접 확인한다. 이미 `.omd/config.json`이 있고
`--redo`가 아니면 현재 설정을 보여 주고 바꿀지만 묻는다.

### 2. 설명 (한 번에, 표로)

감지된 채널만 표에 넣는다(없는 것은 "미보유" 한 줄로 접는다 — 발급 안내 금지). 열: 채널 · 무엇을 만드나 ·
장점 · 단점 · 비용(외부 발표치임을 명시) · 이 프로젝트에서 쓰는 곳. 예:

| 채널 | 만드는 것 | 장점 | 단점 | 비용 | 쓰는 곳 |
|---|---|---|---|---|---|
| grok build | 이미지·6초 영상 | 로그인만으로 · 벤치 실사용 | SVG 없음 | 구독 | landing 히어로·섹션 에셋 |
| Codex $imagegen | 이미지 | 키 없이 헤드리스, 참조 편집 | SVG 없음 | ≈$0.03–0.08/장 | media 래스터 |
| Recraft | SVG·style_id | 유일한 벡터, 브랜드 스타일 재사용 | 유료 키 | SVG $0.088 | 아이콘·일러스트 세트 |

### 3. 문답 (한 배치, 최대 5문)

`AskUserQuestion` 한 번에 묻는다:
1. 래스터 이미지 1순위 채널(감지된 것 중) — 권장은 첫 선택지.
2. SVG·아이콘 세트: Recraft 보유 시 쓸지 / 없으면 인라인 SVG 생성으로 갈지.
3. 영상: grok `image_to_video` / Veo / 안 씀.
4. 브라우저: playwright(결정론) / claude-in-chrome(로그인 세션) / aside.
5. 비용 상한: 작업당 자산 세트 예산(기본 $1).
무인 모드면 각 문항의 첫 선택지를 고르고 `autoSelected`로 기록한다.

### 4. 저장

`.omd/config.json`:
```json
{
  "version": 1,
  "updatedAt": "<ISO8601>",
  "media": { "image": ["grok-build", "codex-imagegen"], "svg": "inline" , "video": "grok-build", "budgetUsdPerSet": 1 },
  "browser": "playwright",
  "detected": { "<channel>": { "present": true, "version": "…" } },
  "notes": "사용자가 고른 이유 한 줄"
}
```
`.omd/preferences.md`에 `pending` 한 줄을 남긴다: "도구 설정 — <요약> (omd:setup, <날짜>)". 키 값은 쓰지 않는다.

### 5. 다음 행동 제안 (한 줄)

설정이 끝나면 지금 바로 해볼 수 있는 것 하나를 제안한다 — 예: "`omd:landing toss` 로 원페이지를 만들면
grok build로 에셋 5장을 생성하고 showcase 영상까지 냅니다."

## 소비자 (이 설정을 읽는 스킬)

- `omd:media` / `omd-codex-image` — `media.image[0]`부터 시도, 실패 시 다음 채널, 전부 없으면 프롬프트 팩 + 큐.
- `omd:landing` 3단계 에셋 — 같은 순서. `budgetUsdPerSet` 초과 시 중단하고 보고.
- `omd:showcase` — `ffmpeg` 부재면 프레임 PNG만 남기고 안내.
- `omd doctor` — `.omd/config.json`이 있으면 채널·예산 요약을 한 줄로 보여 준다.

## 하드 룰

- 발급·결제·가입을 지시하지 않는다. 없는 채널은 "없음"으로 표시하고 대안(인라인 SVG·소싱·프롬프트 팩)을 제시한다.
- 키 값·토큰을 파일·로그·대화에 쓰지 않는다.
- 사용자가 고르기 전에는 아무 채널도 기본값으로 굳히지 않는다(무인 모드 제외, 그때도 기록).

