# task-1245.1 완료 보고서
> 이미지 제작 워크플로우 v2 — QC 게이트 시스템 설계 + 문서화 + 코드화

---

## SCQA

**S**: 광고 배너 v1~v6이 연속 실패하여 6번의 수정 사이클을 소모했다. 10사이클 에이전트 미팅(task-1199.1)에서 근본 원인이 분석되었으나 구현되지 않았다.

**C**: QC 게이트 없이 직접 제출하는 프로세스가 동일 실패(글자 겹침, 텍스트 중복, 빈 공간)를 반복시키고 있으며, 실패 노하우가 축적되지 않아 같은 실수가 매번 재발한다.

**Q**: 2단계 QC 게이트 + 노하우 축적 시스템을 설계하고 코드화하여 이미지 제작 실패 반복을 구조적으로 차단할 수 있는가?

**A**: 5Phase 워크플로우(Phase 0 브리프 검증 → Phase 1 카피 기획 → Phase 2 카피 QC → Phase 3 디자인 실행 → Phase 4 디자인 QC) + 이중 조건 에스컬레이션 + 인간 최종 승인 체계를 설계했다. 3문서 + 코드(`image_workflow.py`, 547줄) + 노하우 초기 파일 + 에이전트 미팅 2사이클 만장일치를 달성했다. pyright 에러 0건, 기능 테스트 11개 전체 통과.

---

## 작업 내용

### 1. 3문서 작성
- **계획서**: Phase 0~4 상세 설계, QC 기준표(카테고리 A 5종/B 5종), FAIL enum 9종, 이중 조건 에스컬레이션, 인간 최종 승인 규칙, 세션 관리
- **맥락노트**: v1~v6 실패 분석, 대안 검토(A~D), 설계 결정 DR-1~DR-9, 10사이클 미팅 인사이트
- **체크리스트**: 14개 항목 중 13개 완료 (1개는 향후 dry-run 검증)

### 2. 에이전트 미팅 (Lv.4 필수)
- **참석자**: 아프로디테(마케팅), 페이토(카피), 아마테라스(디자인), 마아트(QC), 로키(레드팀)
- **사이클**: 2사이클로 만장일치 달성
- **핵심 합의**: Phase 0 추가, QC A/B 카테고리 분리, 이중 조건 에스컬레이션, 인간 최종 승인 필수, B 가중치 프로파일 이원화, Phase 3 중간 시안 체크포인트

### 3. 코드화
- `prompts/image_workflow.py` 신규 생성 (547줄)
  - Phase 0~4 프롬프트 생성 함수
  - QC 기준 상수 (카테고리 A 5종, B 5종, FAIL enum 9종)
  - 에스컬레이션 체크 함수 (`check_escalation`)
  - 프로파일별 가중치 시스템 (conversion/brand)
- `memory/specs/design-qc-knowhow.md` 초기 파일 (v1~v6 기반 8항목)

### 4. dispatch.py `--workflow` 옵션 검토
- 검토 결과: dispatch.py argparse에 `--workflow` 옵션 추가 + `image_workflow.py` 라우팅 로직 연동이 필요
- 권장: 별도 작업(Lv.2)으로 분리하여 구현 (dispatch.py 변경은 전체 팀에 영향)

---

## 산출물 파일 목록

- `/home/jay/workspace/memory/specs/image-workflow-v2-plan.md`
- `/home/jay/workspace/memory/specs/image-workflow-v2-context.md`
- `/home/jay/workspace/memory/specs/image-workflow-v2-checklist.md`
- `/home/jay/workspace/memory/specs/design-qc-knowhow.md`
- `/home/jay/workspace/prompts/image_workflow.py`
- `/home/jay/workspace/memory/meetings/task-1245.1-meeting-cycle1.md`
- `/home/jay/workspace/memory/meetings/task-1245.1-meeting-cycle2.md`

---

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **pyright 미사용 import 경고** — `Path`, `Optional` import 제거 (`prompts/image_workflow.py:12-13`)
2. **FAIL enum 코드-계획서 불일치** — 코드의 FAIL_CATEGORIES를 계획서 기준 9종으로 통일 (마아트 QC 지적)
3. **Phase 0 필수 필드 코드-계획서 불일치** — 코드의 브리프 필드를 4종→5종으로 확장하여 계획서와 통일 (마아트 QC 지적)

### 범위 외 미해결 (1건)
1. **dispatch.py `--workflow` 옵션 구현** — 범위 외 사유: dispatch.py 변경은 전체 팀에 영향이 있어 별도 Lv.2 작업으로 분리 권장

---

## 셀프 QC 체크리스트

- [x] 1. 다른 파일 영향: image_workflow.py 신규 생성, 기존 파일 미수정 — 영향 없음
- [x] 2. 엣지 케이스: check_escalation 빈 리스트/잘못된 phase 처리 확인 (테스트 통과)
- [x] 3. 작업 지시 일치: 3문서 + 에이전트 미팅(만장일치) + 코드화 — 전체 완료
- [x] 4. 에러 처리/보안: ValueError로 필수 파라미터 검증
- [x] 5. 테스트: pyright 에러 0건, 기능 테스트 11건 전체 통과
- [x] 6. 이슈 직접 해결: 3건 해결 (미사용 import, FAIL enum 불일치, Phase 0 필드 불일치)
- [x] 7. 코드 아키텍처 원칙: 단일 책임 원칙 준수 (이미지 워크플로우 전용 모듈)
- [x] 8. 인터페이스 변경: 신규 파일이므로 기존 인터페이스 미변경

---

## 마아트 독립 검증

- **1차 판정**: NEEDS WORK — FAIL enum 5종 불일치 + Phase 0 필드 불일치
- **수정 후**: FAIL enum 9종 계획서 기준 통일, Phase 0 필드 5종 통일
- **재검증**: pyright 에러 0건, 기능 테스트 전체 통과, FAIL enum 계획서-코드 일치 확인

---

## 에이전트 미팅 요약

2사이클 만장일치 달성. 상세: `memory/meetings/task-1245.1-meeting-cycle1.md`, `memory/meetings/task-1245.1-meeting-cycle2.md` 참조.

**핵심 합의 사항:**
- Phase 0(브리프 검증 게이트) 추가
- QC 카테고리 A(자동 5종) + B(수동 5종) 분리, PASS: A 전항목 + B 70%
- FAIL enum 9종 고정
- 이중 조건 에스컬레이션 (동일 FAIL 2연속 OR 카피 5회/디자인 3회 상한)
- 인간 최종 승인 필수 (SLA 2시간, 위임 승인 규칙)
- B 가중치 프로파일 이원화 (전환 최적화 / 브랜드 인지도)
- Phase 3 중간 시안 체크포인트 (게이트 아님)

---

## QC 자동 검증 결과

```json
{
  "pyright_check": "PASS (0 errors, 0 warnings)",
  "style_check": "PASS (black formatted)",
  "test_runner": "SKIP (관련 테스트 파일 0개, 수동 기능 테스트 11건 통과)",
  "file_check": "PASS (7개 산출물 파일 존재 확인)"
}
```
