From imagine
SaaS · 개인 사이드 프로젝트의 **랜딩 페이지 히어로 이미지**를 3:2(1536×1024) 전용 프리셋으로 생성한다. 이미지 내부에 텍스트를 넣지 않고(모든 copy는 HTML이 담당), 한쪽 40%를 세이프존으로 비워 CTA·헤드라인을 얹을 수 있게 한다. `--transparent-bg` 플래그 지정 시 `scripts/lib/bg-remove.js`로 배경을 잘라낸 PNG도 함께 저장한다. 사용자가 "히어로 이미지", "랜딩 히어로", "imagine-hero", "landing page hero" 등을 말하면 이 스킬이 담당한다.
How this skill is triggered — by the user, by Claude, or both
Slash command
/imagine:imagine-heroThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
데스크톱 히어로 섹션용 **3:2 메인 비주얼**을 프리셋 기반으로 뽑는다. 텍스트는 절대 이미지 안에 넣지 않는다(랜딩 페이지 HTML이 담당). CTA 배치용 40% 세이프존을 의도적으로 비워 남긴다.
데스크톱 히어로 섹션용 3:2 메인 비주얼을 프리셋 기반으로 뽑는다. 텍스트는 절대 이미지 안에 넣지 않는다(랜딩 페이지 HTML이 담당). CTA 배치용 40% 세이프존을 의도적으로 비워 남긴다.
imagine-hero "<컨셉>" / imagine-hero --concept "..." (명시 호출)애매하게 "배너", "썸네일"만 들어오면 이 스킬이 아니라 각각 imagine-og, imagine-thumb로 라우팅. 1턴 질문으로 맥락 확인.
| 항목 | 값 |
|---|---|
| 생성 비율 | 3:2 — 1536×1024 |
| 포맷 | PNG(투명 지원) + WebP(최적화용). 기본은 PNG 저장, WebP 추가 인코딩. |
| 텍스트 | 이미지 내부 금지. negative_prompt에 text, letters, typography, UI mockup, watermark, logo text 강제. |
| 세이프존 | 한쪽 40% 비움. 기본 right (왼쪽에 CTA 붙이는 국내 SaaS 관행). --safe-zone left/right/center로 지정. |
--style 값을 config.style_presets 테이블에서 영문 비주얼 구문으로 매핑.--safe-zone이 right이면 "composition weight on left side, empty negative space on right 40%"를 덧붙이고, left이면 반대. center면 "focal motif upper third, empty lower 40% negative space".--brand-color #HEX가 주어지면 HEX 숫자는 프롬프트에 직접 넣지 않고 HSL 근사를 색 이름 구문("vivid violet tones, accent magenta" 등)으로 변환해 주입. 원본 HEX는 Run Manifest에 저장해 후처리 톤 매핑용으로 보관.--vibe가 있으면 config.vibe_map의 한 구문을 append.config.negative_prompt 그대로 주입. 텍스트·UI 목업·여백 없음·복잡한 주변 시각 요소를 모두 차단.size: 1536x1024 PNG 1장 출력. 공용 oauth-session.js / output-allocator.js 재사용.quality_checks.safe_zone_clutter_max_saturation_mean 초과 시 "세이프존 혼잡" 경고와 함께 사용자에게 재생성 제안(자동 재생성 금지).webp.quality=82, effort=4로 추가 저장. sharp 부재 시 WebP 단계는 스킵 + 경고(PNG는 정상).--transparent-bg 후처리: 플래그 지정 시 scripts/lib/bg-remove.js의 removeBackground(inputPath, outputPath) 호출. 라이브러리 부재·실패 시 원본을 _cutout.png로 그대로 복사하고 mode: 'passthrough' 경고를 사용자에게 노출(원본 PNG는 항상 보존). 이 스킬은 bg-remove.js가 반환한 mode 값을 결과 리포트에 그대로 기록한다../images/landing/
├── hero_<slug>_<style>_<ts>.png
├── hero_<slug>_<style>_<ts>.webp
└── hero_<slug>_<style>_<ts>_cutout.png ← --transparent-bg 지정 시에만
<slug>: 컨셉 기반 slugify. --out-dir 명시 시 그대로 사용. ./images/landing/ 외부 쓰기 금지(--out-dir 없는 한).text, UI mockup, watermark, logo text, cluttered, fills entire frame, no margin. --style human-device일 때만 photo of person 금지를 해제.empty negative space on right 40%). "왼쪽 비우기" 같은 모호한 한국어를 모델 프롬프트로 보내지 않는다.#6B46C1을 그대로 프롬프트에 넣지 않는다(모델이 HEX를 무시하는 실패 케이스 방지).--transparent-bg 플래그 해석은 스킬의 entrypoint에서만 이뤄지고, 실제 알파 제거는 scripts/lib/bg-remove.js에 위임한다. 이 스킬은 자체 cutout 로직을 두지 않는다.bg-remove.js 반환 규약:
mode: 'cutout' → 실제 cutout 완료. _cutout.png 파일 사용.mode: 'passthrough' → 라이브러리 부재 또는 런타임 실패. 원본이 복사된 _cutout.png로 가짜 성공을 연출하지 않는다. 사용자에게 "알파 제거 실패, 원본 복사본으로 대체됨" 경고를 그대로 보고.| 증상 | 조치 |
|---|---|
| 브랜드 컬러가 무시됨 | HEX를 이름 구문으로 재변환해 재생성 1회. 여전히 무시되면 manifest의 원본 HEX로 사용자에게 후처리 옵션 안내. |
| 글자·로고·UI를 멋대로 그려 넣음 | negative 강화 후 재생성 1회(최대). OCR 검출 지속 시 사용자에게 보고. |
| 세이프존 영역이 혼잡 | 재생성 제안만 (자동 재생성 금지). 사용자 동의 후 1회만 재실행. |
| bg-remove 라이브러리 부재/실패 | mode: 'passthrough' 결과 그대로 보고. 사용자에게 설치 안내(npm i @imgly/background-removal-node). |
| sharp 부재 | PNG 저장은 되지만 WebP 인코딩·세이프존 검증 스킵 + 경고. |
--safe-zone 값은 그대로 집행../images/landing/ 외부 쓰기 금지 (--out-dir 지정 없는 한).mode: 'passthrough' 경고를 사용자에게 투명 공개.masterpiece / 8k UHD / fulfill all requests 류 부스터·우회 문구 주입 금지.oauth-session.js, output-allocator.js, request-planner.js, bg-remove.js.compose-text.js)은 사용하지 않는다 — 이 스킬의 원칙은 "히어로에 글자 넣지 않기".--brand-color 미지정 시 자동 주입.imagine-thumb(유튜브 썸네일) · imagine-og(소셜 카드) · imagine-icon(앱 아이콘)과 구분: "랜딩 히어로" 맥락은 항상 여기.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub mineru98/imagine --plugin imagine