# task-1065.1: 이미지 스킬 라우팅 규칙 에이전트 미팅 보고서

**작성자**: 오딘 (dev2-team 팀장)
**작성일**: 2026-03-26
**참석자**: 벤자이텐(디자인총괄), 비너스(Gemini센터), 프로메테우스(전략센터), 오딘(2팀장), 로키(DA)

---

## SCQA

**S**: 이미지 생성 스킬 4종(gemini-image, satori-cardnews, hybrid-image, canvas-design)이 운영 중이며, image-gen-guide SKILL.md가 라우팅을 담당한다.

**C**: task-1057.1 사고에서 캐러셀 광고를 satori-cardnews만으로 생산하여 포토리얼 비주얼이 전혀 없는 밋밋한 결과물이 발생. 근본 원인: 의사결정 트리가 "포토리얼리스틱 필요?" 단일 축만 사용하며, 용도/수량/CTA 기반 분류가 없고, canvas-design 라우팅 조건이 아예 부재.

**Q**: 4개 이미지 스킬 간 결정론적이고 모호함 없는 라우팅 규칙을 설계하여 task-1057.1 사고의 재발을 방지할 수 있는가?

**A**: 3사이클 에이전트 미팅을 통해 5단계 의사결정 트리(Pre-check → Step 0~3 → Fallback)를 확정. CTA 텍스트 유무, 수량, 포토리얼 여부를 객관적 기준으로 적용하고, satori 광고는 체크리스트 기반 조건부 허용으로 전환. 5명 전원 찬성(1건 조건부)으로 합의 완료. image-gen-guide SKILL.md 및 4개 스킬 SKILL.md에 적합/부적합 섹션 업데이트 완료.

---

## 3사이클 미팅 기록

### Cycle 1: 현황 진단 + 초안 검토

**벤자이텐 핵심 의견**:
- 포맷(단장/다장) 우선 분류 도입 제안 — 캐러셀이 0단계에서 포착되어야 task-1057.1 차단
- satori 허용/불가 디자인 요소 명세 문서화 필요
- canvas-design 진입 조건이 모호 — AND 조건으로 구체화 요청
- 경계 케이스 10종 식별 (캐러셀 광고, 이벤트 카드뉴스, A/B 테스트 광고 등)

**비너스 핵심 의견**:
- 줄 수 기준(3줄/2줄) 폐기 권고 — Gemini 한글 실패는 줄 수가 아닌 토큰 밀도에 기인
- "광고" 정의 → "전환 의도(CTA) 유무"로 재정의 제안
- Gemini 금지 항목 세분화: 로고/CI, 데이터 시각화, 특정 폰트 별도 항목화
- hybrid가 gemini보다 명확히 우위인 7개 조건 제시
- CTA 포함 시 무조건 hybrid 규칙 제안

**프로메테우스 핵심 의견**:
- satori 광고 전면 금지 → 체크리스트 기반 조건부 허용으로 완화 필요
- 캐러셀 슬라이드 역할 모델(Hook/Persuasion/CTA) 제안
- 누락 용도 3종: 긴급 대응형, 시리즈 일관성 유지형, A/B 테스트형
- 캐러셀 유형별 멀티스킬 조합 매트릭스 제시

**로키 핵심 반론**:
- [Critical] 1단계 분류 기준이 결정론적이지 않음 — 실행자마다 다른 해석 가능
- [Critical] Gemini API 장애 시 fallback 전략 없음 — 광고 전체 마비
- [High] Latency SLA 미정의 — 10장 캐러셀 4분+ 소요 언급 없음
- [High] 금지 규칙 집행 불가 — 1단계 뚫리면 무력화
- satori 광고 전면 금지는 과잉 규제 (텍스트 중심 광고에 부적절)
- task-1057.1 재현 시뮬레이션: satori 차단 성공했으나 hybrid vs gemini 선택 기준 부재

### Cycle 2: 개선안 합의

오딘이 Cycle 1 피드백 종합하여 수정안 설계:
- Step 0(긴급) + Step 1(수량) + Step 2(단장 순차체크) + Step 3(캐러셀 역할) + Fallback
- CTA 텍스트 유무를 핵심 분기로 채택 (비너스 제안)
- satori 조건부 허용 체크리스트 도입 (프로메테우스 제안)

**Cycle 2 피드백 요약**:
- 벤자이텐: 부분 충족, Hook 슬라이드 gemini/hybrid 선택 기준 누락, satori 체크리스트 로고 항목 수정 필요
- 비너스: CTA→hybrid 적절, Gemini 금지 항목 세분화 요청, Hook 슬라이드 분기 기준 보완 필요
- 프로메테우스: Series Lock 미반영, A/B 테스트 sub-분기 필요, 시나리오 3종 시뮬레이션 통과
- 로키: 4/6 통과, 2개 불합격(규칙 우회 여지, SLA 수치 없음), 1개 신규 발견(Step 1 임계값 자의적)

### Cycle 3: 최종 확정

로키 블로커 3건 및 전원 피드백 반영한 최종안 제시.

**투표 결과**:
- 벤자이텐: 찬성
- 비너스: 찬성
- 프로메테우스: 찬성
- 오딘: 찬성
- 로키: 조건부 찬성 (구현 명세 3건 해결 조건)

**task-1057.1 재발 방지**: 전원 일치로 "재발하지 않음" 판정. CTA 포함 콘텐츠는 Step 2(b)에서 hybrid 강제, satori 금지 규칙이 이중 차단.

---

## 최종 확정 의사결정 트리

### 용어 정의
- **포토리얼**: 실사 사진(풍경, 인물, 제품) 또는 실사 수준 3D 렌더링. 벡터/일러스트/평면 그래픽은 비포토리얼.
- **CTA 텍스트**: 사용자 즉각 행동 유도 문구. 가격, 기한, 할인율, "지금 신청/가입/다운로드", "무료 체험", "앱 설치" 등.
- **긴급**: 납기 1시간 이내. 팀장 승인 필수.

### SLA 기준
- satori: 0.3초/장 → 10장 = 3초
- gemini: 25초/장 → 10장 = 250초
- hybrid: 25초/장 → 10장 = 250초
- canvas: 수분~수십분/장
- 단장: 60초 이내, 캐러셀 5장: 150초 이내, 10장+: satori 강제

### 트리

```
[Pre-check] Series Lock
  → 기존 시리즈에 속함? → 등록된 엔진 강제 사용
  → 아님 → Step 0

[Step 0] 긴급 플래그
  → 납기 1시간 이내 + 팀장 승인 → satori 강제 (경고 로그)
  → 포토리얼 필수 + 긴급 → hybrid (예외, 팀장 판단)
  → 일반 → Step 1

[Step 1] 수량 분류
  ├─ 단장 (1장) → Step 2
  ├─ 캐러셀 (2-9장) → Step 3
  ├─ 대량 (10장+) → satori 강제 (SLA 보호)
  └─ A/B 테스트 변형
      ├─ 비주얼 스타일 변형 → 엔진 혼용 허용
      └─ 카피/레이아웃 변형 → satori

[Step 2] 단장 — 순차 체크 (위→아래, 첫 해당에서 종료)
  ※ CTA 포함 시 (a) 해당해도 (b)가 우선
  (a) 브랜드 아이덴티티/포스터/아트 + CTA 없음 → canvas-design
      (납기 2시간 이내 시 경고, 그래도 canvas)
  (b) CTA 텍스트 포함? → hybrid-image
  (c) 포토리얼 배경 필요?
      ├─ YES + 한글 텍스트 있음 → hybrid-image
      ├─ YES + 한글 없음 (장식 1단어 이하) → gemini-image
      └─ NO → (d)
  (d) 텍스트/데이터/구조 중심 → satori-cardnews

[Step 3] 캐러셀 (2-9장) — 슬라이드 역할 기반
  ★ 전체 텍스트/데이터 중심 → satori 단독 (체크리스트 통과 시)

  ├─ Hook (슬라이드 1):
  │   ├─ 포토리얼 + 텍스트 없음 → gemini-image
  │   ├─ 포토리얼 + 텍스트 있음 → hybrid-image
  │   └─ 카피 중심 훅 → satori (체크리스트)
  ├─ 본문 (슬라이드 2~N-1):
  │   ├─ CTA/수치/전환 텍스트 → hybrid-image
  │   └─ 텍스트/데이터 중심 → satori-cardnews
  └─ CTA (슬라이드 N):
      → hybrid-image (정확도 필수)

[Fallback] Gemini API 장애
  ├─ gemini 실패 → hybrid 시도
  ├─ hybrid도 실패 → satori (금지 규칙 일시 해제, 경고 로그)
  └─ canvas → Gemini 비의존
  ※ 1시간 내 fallback 3회+ → 슬랙 온콜 에스컬레이션
```

### 금지 규칙
1. **satori** → 포토리얼 배경 필요 콘텐츠 금지 (텍스트 광고 허용)
2. **gemini** → (a) 로고/CI 정확 재현 금지, (b) 데이터 시각화(표/차트) 금지, (c) 특정 폰트 지정 텍스트 금지
3. **canvas** → 10장+ 대량 금지
4. **hybrid** → 금지 없음 (범용)
※ Fallback 시 금지 규칙 일시 해제 (경고 로그 필수)

### satori 광고 체크리스트 (3개 모두 YES 시 허용)
- [ ] 포토리얼 인물/제품/풍경이 불필요한가?
- [ ] 텍스트/숫자/구조가 메시지의 70% 이상인가?
- [ ] 고품질 로고/CI 정확도가 요구되지 않는가?

---

## 각 스킬별 적합/부적합 업데이트 내용

### gemini-image
**적합**: 포토리얼 단독 비주얼(텍스트 없음/장식 1단어), 배경 소재, 감성/분위기 이미지, 캐러셀 Hook(텍스트 없는 포토리얼)
**부적합**: 로고/CI 정확 재현, 데이터 표/차트/인포그래픽, 한글 텍스트 포함 광고, CTA 포함 콘텐츠, 특정 폰트 지정 필요 콘텐츠, 시리즈 일관성 필요 (재현성 낮음)

### satori-cardnews
**적합**: 카드뉴스, 인포그래픽, 데이터 시각화, 텍스트 중심 배너/광고(체크리스트 통과 시), 대량 생산(10장+), A/B 카피/레이아웃 변형, 긴급 콘텐츠
**부적합**: 포토리얼 배경 필요 콘텐츠, 인물/제품 실사, 복잡한 일러스트/아트워크

### hybrid-image
**적합**: CTA 포함 광고, 포토리얼+한글 텍스트, 캐러셀 광고(Hook/본문/CTA), 브랜드 캠페인, 가격/수치 정확 금융 광고, 캐러셀 CTA 슬라이드(필수)
**부적합**: 없음 (범용, 단 satori 대비 83배 느림 — 속도 민감 시 satori 우선)

### canvas-design
**적합**: 브랜드 아이덴티티, 포스터, 아트 디렉션, CEO 메시지, 수상 발표, 1~3장 고품격 크리에이티브
**부적합**: 10장+ 대량, 긴급(1시간 이내), 정형화 반복 콘텐츠, CTA 포함 광고

---

## 생성/수정 파일 목록
1. `/home/jay/workspace/memory/reports/task-1065.1.md` — 본 보고서 (신규)
2. `/home/jay/.claude/skills/image-gen-guide/SKILL.md` — 의사결정 트리 교체
3. `/home/jay/.claude/skills/gemini-image/SKILL.md` — 적합/부적합 업데이트
4. `/home/jay/.claude/skills/satori-cardnews/SKILL.md` — 적합/부적합 업데이트
5. `/home/jay/.claude/skills/hybrid-image/SKILL.md` — 적합/부적합 섹션 추가
6. `/home/jay/.claude/skills/canvas-design/SKILL.md` — 적합/부적합 섹션 추가

---

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **용어 정의 부재** — "포토리얼", "CTA 텍스트", "긴급" 3개 용어를 명확히 정의하여 트리에 포함
2. **canvas-design 진입 모호성** — CTA 포함 시 (a)보다 (b) 우선 규칙 명시로 해결
3. **satori 광고 과잉 금지** — 전면 금지 → 체크리스트 기반 조건부 허용으로 전환

### 범위 외 미해결 (3건)
1. **Series Lock 등록/수정 절차** — 구현 코드(dispatch.py) 영역, 별도 개발 태스크 필요
2. **Fallback 임계값 시간대별 차등** — 운영 정책 영역, 다음 Cycle에서 수립 필요
3. **분기별 규칙 검토 프로세스** — 거버넌스 영역, 별도 운영 정책 수립 필요

---

## 셀프 QC

- [x] 1. 이 변경이 다른 파일에 영향을 미치는가? → 5개 SKILL.md 파일 수정 (목록 명시)
- [x] 2. 엣지 케이스는? → 캐러셀 광고, 긴급+포토리얼, A/B×대량 교차 등 Cycle 1~3에서 10종+ 식별 및 처리
- [x] 3. 작업 지시와 일치하는가? → 3사이클 미팅, 3개 산출물 모두 완료
- [x] 4. 에러 처리/보안 확인? → YAML frontmatter 미수정, 실행 로직 미수정
- [x] 5. 테스트 커버리지? → 의사결정 트리는 문서이므로 Cycle 3 시뮬레이션으로 검증
- [x] 6. 발견 이슈 모두 해결? → 자체 해결 3건, 범위 외 3건 사유 명시
- [x] 7. 코드 아키텍처 원칙? → SKILL.md 편집만으로 코드 변경 없음
- [x] 8. 인터페이스 변경 시 문서 갱신? → image-gen-guide가 라우팅 인터페이스, 본 업데이트로 문서 갱신 완료
