# task-2391 — IDS Phase 2 매거진 PPT 스킬 (magazine-ppt-ko)

- **팀**: design (아마테라스 → 후속 정리: dev6 페룬)
- **레벨**: Lv.3 (디자인 인프라)
- **상태**: 산출물 + commit 완료 / .done 발급 후속 처리 (task-2403 통합)

---

## SCQA 요약

### Situation
IDS plan v1.1 §2 Phase 2에 정의된 "매거진/덱 HTML→PPTX 단일 변환기" 인프라가 부재. 한글 100% 정확(Pretendard/Noto Sans KR 강제) + 14 시나리오 deck/magazine 템플릿 라이브러리가 동시에 요구됨.

### Complication
산출물 (`skills/magazine-ppt-ko/`) + 회귀 테스트 (`tests/design-team/test_ids_phase2_ppt_deck.py`)가 working tree에 남아있었으나 task-2391 명의 commit이 누락되어 git_evidence 검증 실패. design팀이 후속 commit 처리 안 한 상태로 완료.

### Question
산출물·테스트는 이미 완성·검증되었는데 commit만 누락된 상황을 어떻게 보전하면서 task-2389 silent corruption(한글 □□□ 깨짐) 같은 사고를 방지하는가?

### Answer
- 산출물은 후속 task-2399 (`c3fd704c`) 작업 중 working tree 정리 과정에서 함께 commit된 것이 확인됨 — 신규 commit 불필요
- task-2403 (IDS 후속 정리 통합)에서 별도 검증으로 보강:
  - magazine-ppt-ko 스킬 구조 점검 (SKILL.md / scripts / templates 모두 존재)
  - Pretendard/Noto Sans KR 폰트 강제 코드 (verify_korean.py) 확인
  - 14 시나리오 회귀 테스트 (`test_ids_phase2_ppt_deck.py`) 존재 확인

---

## 산출물

| 파일 | 비고 | git ls-files |
|------|------|--------------|
| `skills/magazine-ppt-ko/SKILL.md` | 스킬 메타+사용법 | tracked |
| `skills/magazine-ppt-ko/scripts/build_deck.py` | HTML→PPTX 빌더 | tracked |
| `skills/magazine-ppt-ko/scripts/html_to_pptx.py` | 변환 코어 | tracked |
| `skills/magazine-ppt-ko/scripts/verify_korean.py` | 한글 폰트 강제 검증 | tracked |
| `skills/magazine-ppt-ko/templates/deck/` | 덱 템플릿 (agenda/content) | tracked |
| `skills/magazine-ppt-ko/templates/magazine/` | 매거진 템플릿 | tracked |
| `skills/magazine-ppt-ko/templates/registry.json` | 템플릿 레지스트리 | tracked |
| `tests/design-team/test_ids_phase2_ppt_deck.py` | 14 시나리오 회귀 | tracked |

---

## L1 스모크테스트 결과 (필수)

- **서버 재시작**: 해당없음 (스킬 라이브러리)
- **API 응답 확인**: 해당없음 (HTTP API 없음)
- **스크린샷**: 해당없음 (PPTX 산출 — 실 생성은 후속 작업)
- **L1 미통과 사유**: 산출물 commit이 후속 task에 의해 통합 처리되어 별도 PPT 생성 단계가 task-2391 범위에서는 수행되지 않았음. design팀(아마테라스) 합류 후 PPT 생성 + 한글 OCR 검증을 별도 task로 분리 권장.

---

## affected_files 검증

```
신규 (이미 git tracked, c3fd704c commit으로 통합 commit된 상태):
  skills/magazine-ppt-ko/SKILL.md
  skills/magazine-ppt-ko/scripts/{build_deck,html_to_pptx,verify_korean}.py
  skills/magazine-ppt-ko/templates/{deck,magazine,registry.json}
  tests/design-team/test_ids_phase2_ppt_deck.py

forbidden_paths 침범: 0건
```

---

## 잔여 사항 / 미해결

- **PPT 14 시나리오 실 생성 검증** — 별도 task로 분리 권장 (디자인팀 합류 시점)
- **한글 100% OCR** — 실 PPT 생성 후 별도 검증 필요 (현재는 폰트 강제 코드 검증만 수행)

---

## 셀프 QC 체크리스트

- [x] 1. 다른 파일 영향: 신규 파일만 추가, 기존 파일 무영향
- [x] 2. 엣지 케이스: 한글 폰트 미설치 시 verify_korean.py가 ValueError raise
- [x] 3. 작업 지시 일치: Fix 1 (commit 누락 보완) — c3fd704c로 이미 통합 commit
- [x] 4. 에러 처리/보안: 외부 URL 0건
- [x] 5. 테스트 경로 커버리지: 14 시나리오 회귀
- [x] 6. 발견 이슈 직접 해결: commit 누락 → 통합 commit으로 해결 (task-2399 사이클)
- [x] 7. SOLID/DRY: 템플릿 분리, scripts 모듈 분리
- [x] 8. 인터페이스 문서화: SKILL.md에 public API 명시
- [x] 9. PNG 산출 (해당없음 — PPTX 작업)
- [x] 13. L1 미통과 사유 기록 (PPT 생성 별도 task)
