# task-1335.1 완료 보고서

## SCQA

**S**: image_workflow.py에 3가지 다른 QC 점수 체계가 혼재되어 있었다 — Phase 0.5(5항목 10점), Phase 1.5(7항목 14점), Phase 3.5(10항목 100점).

**C**: 점수 체계 불일치로 Phase 간 QC 기준 비교가 어렵고, PASS 임계값의 의미가 Phase마다 달라 운영 혼란이 발생했다.

**Q**: 모든 QC 점수 체계를 100점 만점으로 통일하여 일관된 품질 기준을 확립할 수 있는가?

**A**: Phase 0.5(5항목×20점=100점)와 Phase 1.5(상위2항목 15점+하위5항목 14점=100점)를 100점 만점으로 전환 완료. Phase 3.5는 이미 100점이므로 미변경. pytest 43/44 통과(1건 기존 실패), pyright 에러 0건(1건 오탐 제외).

## 작업 내용

### 변경 사항

**1. Phase 0.5 브리프 QC: 10점 → 100점**
- BQ-01~BQ-05 각 2점 → 20점 (5항목×20점=100점)
- PASS: 80점 이상 (기존 8/10=80% 비율 유지)
- 조건부: 60~79점, 반려: 59점 이하

**2. Phase 1.5 기획 QC: 14점 → 100점**
- PQ-01(메시지 계층), PQ-02(감정적 훅): 각 15점 (상위 항목)
- PQ-03~PQ-07: 각 14점 (15×2 + 14×5 = 100점)
- 통과 임계값: 12/14(86%) → 86/100
- 조건부: 72~85점, 반려: 71점 이하
- `conditional_min = 72` 변수 도입 (판정 범위 비율 유지)

**3. ESCALATION_RULES**
- `plan_qc_immediate_pass`: 12 → 90 (86%→90% 즉시 PASS)
- `design_qc_immediate_pass`: 97 유지 (변경 없음)

**4. 워크플로우 오버뷰**
- Phase 0.5: "5항목 10점" → "5항목 100점"
- Phase 1.5: "7항목 14점" → "7항목 100점"

**5. 변경하지 않은 항목**
- Phase 3.5 DQ 10항목 100점 (이미 100점)
- Category B 카피 QC (이미 /100 형식)
- 로키 단독 평가 설정

### 테스트 업데이트
- 기존 테스트 3건 업데이트 (기대값 100점 기준 변경)
- 신규 테스트 8건 추가 (`TestScoreUnification100` 클래스)

## 생성/수정 파일 목록
- `/home/jay/workspace/prompts/image_workflow.py` (수정)
- `/home/jay/workspace/tests/test_image_workflow_v25.py` (수정)

## 테스트 결과
- pytest: 43/44 PASSED (1 FAILED)
- 실패 테스트: `TestDispatchWarning::test_warning_logic_exists` — 기존 실패, 본 작업 범위 외
- ⚠️ 기존 테스트 실패 1건 (본 작업 범위 외): TestDispatchWarning::test_warning_logic_exists
- 테스트 회귀: 없음 (작업 전후 동일한 1건 실패)

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **Phase 1.5 판정 범위 비현실적** — 기존 `threshold-2`/`threshold-3` 오프셋 방식이 100점에서 84~85점 범위로 좁아짐 → `conditional_min=72` 변수 도입, 비율 기반 환산 (10/14→72/100)
2. **Phase 1.5 항목 배점 불균등** — 7×14=98점으로 100점 부족 → 상위 2항목(PQ-01, PQ-02) 15점, 하위 5항목 14점으로 정확히 100점 달성
3. **Cycle 2 개선 기준 환산** — "+2점" → "+14점" 비율 환산 (2/14≈14.3%→14/100)

### 범위 외 미해결 (1건)
1. **TestDispatchWarning 기존 실패** — dispatch.py의 `_image_keywords` 로직 관련. 본 작업(점수 체계 통일)과 무관. dispatch.py 변경 금지 규칙 적용.

## 셀프 QC 체크리스트
- [x] 1. 영향 파일: image_workflow.py, test_image_workflow_v25.py (2개). dispatch.py 등 다른 파일 미변경
- [x] 2. 엣지 케이스: Phase 3.5(이미 100점) 미변경 확인, Cycle 4+ 정상 동작 확인
- [x] 3. 작업 지시 일치: 5항목×20점, 상위2항목 15점+하위5항목 14점, immediate_pass=90 모두 충족
- [x] 4. 에러 처리/보안: 점수 상수만 변경, 보안 이슈 없음
- [x] 5. 테스트 커버리지: 8개 신규 테스트로 100점 체계 검증 (Phase 0.5/1.5/3.5, 배점, 즉시 PASS, 오버뷰)
- [x] 6. 이슈 모두 해결: 3건 자체 해결, 1건 범위 외 사유 명시
- [x] 7. 코드 아키텍처: SOLID/DRY 위반 없음, conditional_min 변수로 매직넘버 제거
- [x] 8. 인터페이스 변경: 함수 시그니처 변경 없음 (내부 출력 형식만 변경)

## 모델 사용 기록
- 불칸(백엔드) / image_workflow.py 점수 체계 수정 / sonnet / -
- 아르고스(테스터) / 테스트 파일 업데이트 및 신규 테스트 추가 / sonnet / -
