# task-1159.1 완료 보고서

## S - Situation
디자인팀이 이미지 생성 시 3종 스킬(satori-cardnews, hybrid-image, gemini-image) 중 적합한 것을 수동 선택하고 있다.

## C - Complication
사람 판단에 의존하여 메타 광고 배너를 satori-cardnews(카드뉴스용)로 제작하는 실수가 발생했다. 광고 배너에는 포토리얼 배경이 필요하므로 hybrid-image 또는 gemini-image를 써야 한다.

## Q - Question
작업 유형에 따라 최적 이미지 스킬을 자동 추천하는 라우터를 구현하여 스킬 선택 실수를 방지할 수 있는가?

## A - Answer
`/home/jay/workspace/tools/image-skill-router.py` CLI 도구를 구현했다. 14개 작업 유형 그룹, 키워드 기반 순서 매칭, 긴급 모드/대량 생성 강제 전환, 금지 규칙 경고를 포함한다. pytest 50개 테스트 전체 통과, pyright 에러 0건.

---

## 작업 내용

### 구현: image-skill-router.py
- **라우팅 테이블**: 14개 작업 유형 그룹, 소문자 정규화 키워드 매칭
- **핵심 함수**: `route_skill(task_type, urgent, count)` → dict 반환
- **dispatch.py 연동 함수**: `get_skill_recommendation(task_desc)` → 스킬 이름 반환 (매칭 실패 시 hybrid-image 기본값)
- **CLI**: `--type`, `--urgent`, `--count`, `--json` 옵션
- **금지 규칙**: satori → 포토리얼 경고, gemini → 데이터 시각화 경고
- **우선순위**: 키워드 매칭 → 금지 경고 → 수량 강제 → 긴급 강제

### 테스트: test_image_skill_router.py
- 50개 테스트, 7개 클래스
- 기본 라우팅 12개, urgent 모드 5개, 대량 생성 5개, 미매칭 4개, 출력 구조 9개, get_skill_recommendation 5개, CLI 통합 6개, parametrize 4개

## 생성/수정 파일 목록
- `/home/jay/workspace/tools/image-skill-router.py` (신규, 328줄)
- `/home/jay/workspace/tools/tests/test_image_skill_router.py` (신규, 389줄)

## 테스트 결과
- pytest: 50 passed / 0 failed (0.30초)
- pyright: 0 errors, 0 warnings, 0 informations

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **"네이버 GFA Smart" 매칭 실패** — 키워드에 "네이버 gfa smart" 추가 (기존에는 "네이버 gfa smart channel"만 있어 부분 매칭 안 됨)
   - 수정: `image-skill-router.py:79` 키워드 리스트 확장
2. **"SNS 홍보 이미지" 매칭 실패** — 키워드에 "sns 홍보 이미지", "sns 이미지" 추가
   - 수정: `image-skill-router.py:37` 키워드 리스트 확장
3. **테스트의 미사용 import (Path)** — pyright 경고. 불필요한 `from pathlib import Path` 제거
   - 수정: `test_image_skill_router.py:25` 해당 줄 삭제

### 범위 외 미해결 (2건)
1. **디자인팀 CLAUDE.md 수정** — 범위 외 사유: 디자인팀 디렉토리(`/home/jay/workspace/teams/design/`)가 존재하지 않음. 디자인팀은 비너스(횡단조직)가 관리하므로 별도 조율 필요
2. **dispatch.py에 image-skill-router 연동 로직 삽입** — 범위 외 사유: dispatch.py는 전체 시스템 코어 파일(49KB)로, design 팀 위임 시 `get_skill_recommendation()` 호출 코드를 삽입하려면 아누의 코드 리뷰가 필요. `get_skill_recommendation()` 함수는 이미 import 가능한 상태로 준비 완료

## 비고
- 디자인팀 프롬프트에 "이미지 생성 전 반드시 `python3 /home/jay/workspace/tools/image-skill-router.py --type <작업유형>` 실행" 규칙을 추가하려면, 디자인팀 CLAUDE.md 생성 또는 dispatch.py의 design 팀 프롬프트 수정이 필요합니다.
- `get_skill_recommendation(task_desc)` 함수를 dispatch.py에서 `from tools.image_skill_router import get_skill_recommendation`으로 import하면 바로 연동 가능합니다. 단, 파일명에 하이픈이 있어 `importlib`을 사용해야 합니다.
