npx claudepluginhub fivetaku/pumasiThis skill uses the workspace's default tool permissions.
> Codex CLI의 `/imagen` 기능으로 이미지를 생성한다.
Generates and edits images using Gemini CLI image models for blog featured images, YouTube thumbnails, icons, diagrams, patterns, illustrations, and visuals. Activates on create, generate, make, draw, design, or edit image requests.
Generates AI images from text prompts, edits images, and composes from multiple references using Gemini models. Supports t2i, i2i, product mockups, and stickers.
Generates and adapts visual assets like hero images, backgrounds, illustrations, icons, favicons, and mascots consistent with project visual identity. Analyzes existing repo assets first before generation.
Share bugs, ideas, or general feedback.
Codex CLI의
/imagen기능으로 이미지를 생성한다. 기존/pumasi(코드 병렬 외주)와 완전히 분리된 독립 스킬.
images/{YYYY-MM-DD}/{slug}-{seq}.png이 블록의 목적: Claude가 구세대 diffusion 직감으로 회피 행동(HTML/CSS 분리, 텍스트 빼고 합성, 재시도 회피)을 하지 못하게 capability를 명시적으로 박는다. 모델 업데이트 시
as of날짜 기준으로 갱신할 것.
codex features list 2>&1 | grep image_generation
출력이 image_generation ... false면:
codex features enable image_generation
사용자에게는 이 단계를 조용히 수행한다고 간단히 알림 (상세 출력 노출 X).
사용자 요청에서 7가지 모드 중 하나를 결정한다:
| 모드 | 감지 키워드 |
|---|---|
| MODE_A_PORTRAIT | "프로필", "인물", "얼굴", "초상" |
| MODE_B_LANDSCAPE | "풍경", "배경", "자연", "도시", "바다", "산" |
| MODE_C_OBJECT | "제품", "물건", "아이템", "상품" |
| MODE_D_ILLUSTRATION | "일러스트", "그림", "아트", "드로잉" |
| MODE_E_THUMBNAIL | "썸네일", "커버", "대표이미지", "유튜브" |
| MODE_F_LOGO | "로고", "브랜드", "심볼", "아이콘" |
| MODE_G_CONCEPTUAL | "컨셉트", "추상", "아이디어", "상징" |
모드 판단 불확실 시 Step 2의 질문에 "모드 선택" 1개를 추가한다.
${CLAUDE_PLUGIN_ROOT}/skills/pumasi-image/references/keyword-mapping.md를 Read하여 비율·퀄리티 자연어 힌트를 추출한다.
${CLAUDE_PLUGIN_ROOT}/skills/pumasi-image/references/clarification-matrix.md를 Read하여 모드별 의도 파악 카테고리 3개를 확정한다.
질문 순서:
질문 원칙 (딸깍 방식):
AskUserQuestion 호출 규칙:
questions 배열로 묶어서 전달${CLAUDE_PLUGIN_ROOT}/skills/pumasi-image/references/image-studio-prompt.md를 Read하여 시스템 프롬프트를 내면화한다.
내면화 후:
프롬프트 파일을 다음 경로에 저장:
{working_directory}/.omc/imagen/prompt-{timestamp}.md
없으면 mkdir -p로 생성.
기준 디렉토리 (하드코딩 금지, 동적 계산):
BASE_DIR=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
pwd) 기준저장 경로 조합:
{BASE_DIR}/images/{YYYY-MM-DD}/ (없으면 mkdir -p)busan-gwangan-bridge-nightai-marketplace-logo-01, -02 순번 추가.png왜 git root 기준인가:
images/...는 cwd에 따라 엉뚱한 곳에 저장될 위험images/ 하위가 자연스러운 기본값Bash 구현 예시:
BASE_DIR=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
DATE=$(date +%Y-%m-%d)
TARGET_DIR="${BASE_DIR}/images/${DATE}"
mkdir -p "$TARGET_DIR"
SLUG="busan-gwangan-bridge-night" # 요청에서 계산
SEQ=1
TARGET_PATH="${TARGET_DIR}/${SLUG}-$(printf '%02d' $SEQ).png"
while [[ -e "$TARGET_PATH" ]]; do
SEQ=$((SEQ + 1))
TARGET_PATH="${TARGET_DIR}/${SLUG}-$(printf '%02d' $SEQ).png"
done
echo "$TARGET_PATH" # imagen.sh 에 넘길 절대 경로 (동적 계산된 값, 하드코딩 아님)
최종 경로 예 (프로젝트 루트가 /Users/chulrolee/gptaku_plugins 일 때):
/Users/chulrolee/gptaku_plugins/images/2026-04-22/busan-gwangan-bridge-night-01.png
${CLAUDE_PLUGIN_ROOT}/skills/pumasi-image/scripts/imagen.sh를 실행:
bash ${CLAUDE_PLUGIN_ROOT}/skills/pumasi-image/scripts/imagen.sh \
"{prompt_file_path}" \
"{target_image_path}"
스크립트 내부에서:
codex features list로 feature flag 재확인 (안전망)codex exec --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox 호출file {target_image_path} 으로 해상도/포맷 출력사용자가 수정 요청 시 다음을 판단:
이전 대화 컨텍스트에 다음 정보 유지:
| 구분 | /pumasi (코드) | /pumasi:image (이미지) |
|---|---|---|
| 스킬 디렉토리 | skills/pumasi/ | skills/pumasi-image/ |
| 커맨드 | /pumasi | /pumasi:image |
| 자동 트리거 | "구현", "개발", "기능", "코드" | "이미지", "그림", "썸네일", "로고" |
| 설정 | pumasi.config.yaml | 사용 안 함 |
| 스크립트 | scripts/pumasi.sh 외 | skills/pumasi-image/scripts/imagen.sh |
| 작업 dir | .pumasi-job/ | 없음 (단발 요청) |
두 스킬은 같은 플러그인 안의 독립 모듈이며 서로 간섭하지 않는다.
references/image-studio-prompt.md — 모드 분류 + Output Template 시스템 프롬프트references/clarification-matrix.md — 모드별 의도 파악 질문 매트릭스references/keyword-mapping.md — 비율·퀄리티 키워드 자동 매핑 + 자연어 힌트 변환표scripts/imagen.sh — feature flag 확인·활성화 + Codex /imagen 호출 + 후처리 금지 가드 + SHA1 검증command -v codex)codex features 서브커맨드 사용 가능 (codex features list)