# QA log – DMConfLateBreaker-Kor

## 2026-05-21 – Build #1 (auto)

### 검수 결과
- [PASS] `python3 -c "import ast; ast.parse(open('app.py').read())"` → `app.py: AST OK`
- [PASS] `python3 -c "import ast; ast.parse(open('cli.py').read())"` → `cli.py: AST OK`
- [PASS] `data/conferences.json` JSON load
- [PASS] `data/abstracts.json` JSON load
- [PASS] `data/publications.json` JSON load
- [PASS] `data/kol_seed.json` JSON load
- [PASS] `python3 cli.py --summary` 출력 정상
- [PASS] `requirements.txt` pinned versions: streamlit==1.36.0, pandas==2.2.2, python-docx==1.1.2, ics==0.7.2

### CLI summary 출력
```
Conferences loaded     : 7
Total abstracts        : 47
Korean-author abstracts: 26
KOL seed entries       : 10
Session type breakdown : {'late-breaker': 14, 'plenary': 5, 'oral': 12, 'poster': 9, 'symposium': 7}
Per-conference counts  : {'ADA2026': 11, 'EASD2026': 11, 'ENDO2026': 6,
                           'ICE2026': 6, 'IDF2025': 4, 'KDA2026S': 6, 'KSCRD2026': 3}
Next embargo lift      : 2026-06-05T10:00:00+09:00 (T-14d 20h 16m)
```

### 의도 부합 점검
- 5개 핵심 기능 모두 구현 (수집·정규화 / 관심영역+한국 KOL / embargo countdown+ICS /
  dedup+PubMed lag / digest 미리보기 + docx).
- 외부 네트워크 호출 0, 외부 유료 API 0.
- 디스클레이머가 README 상단 + 모든 Streamlit 탭 footer + ICS 이벤트 description +
  digest 헤더에 포함됨.
- 합성 데이터 50건 목표 → 실제 47건 (목표치 -3, 충분히 다양한 학회/세션 타입/토픽
  분포 확보; 한국 저자 26건으로 목표 8~12건 상회).

### 비고
- `requirements.txt` 의 패키지는 전역 설치하지 않음(가상환경 사용 가정).
- streamlit 미설치 시 `python3 app.py` 자동 CLI 폴백.
