# QA — MASLDRetractionWatch-Kor

생성일: 2026-05-28
도메인: MASLD (대사성간질환) / 카테고리: 연구 알림 (목)

## 1. AST 파싱 점검
- `python3 -c "import ast; ast.parse(open('app.py').read())"` → OK
- `python3 -c "import ast; ast.parse(open('main.py').read())"` → OK
- `python3 -c "import ast; ast.parse(open('core.py').read())"` → OK

## 2. CLI 진입점 점검
- `python3 main.py --help` → 정상 (argparse usage 출력)
- `python3 main.py --data-test` → `{"records_loaded": 61, "after_masld_filter": 61, "sample_sr_included": 14, "guidelines": 3}`
- `python3 main.py --summary` → type/source/journal/publisher/lag/yearly 정상 출력
- `python3 main.py --top 5` → 최근 5건 정상
- `python3 main.py --cross-reference` → SR 14건 중 12건 영향, RoB2/PRISMA 권고 정상
- `python3 main.py --guideline-check` → KASL/AASLD/EASL 가이드라인 sanity 정상
- `python3 main.py --export-digest /tmp/test_digest.md` → 다이제스트 .md 정상 저장

## 3. Mock data 로드 테스트
- `data/retractions.json` → 61 record (5개 source 모두 분포)
  - Retraction Watch DB 30 / PubMed 16 / PubPeer 7 / Crossref event 4 / Journal notice 4
  - 유형: Retraction 35 / EoC 10 / Correction 16
- `data/sample_systematic_review.json` → 14 included papers
- `data/guidelines_cited.json` → 3 가이드라인 (KASL/AASLD/EASL)

## 4. 5개 핵심 기능 점검
1. 5-source 통합 ingest + MASLD 필터 → `core.matches_masld` + `dedup_records` 동작, 모든 record가 MASLD 키워드 매칭 통과.
2. SR/MA cross-reference → 14건 included 중 12건(85.7%) 영향, severity(Retraction 8/EoC 2/Correction 2) + RoB2·PRISMA·sensitivity 권고 자동 생성.
3. Author/lab 누적 + 패턴 → Park S-J 27건 (red), Kim J-H, Tanaka R 등 다중 red-flag 검출, ORCID 매핑, time cluster 표시, KASL/AASLD/EASL committee overlap 계산.
4. Journal/publisher/사유 분포 + 시계열 → 5개 학술지, 3개 publisher, 7개 사유, 연도별 timeseries, lag mean/median/min/max 통계.
5. 주간 다이제스트 + 가이드라인 sanity → Markdown 다이제스트 + KASL/AASLD/EASL 인용 retraction overlap 리포트 + docx export 함수 제공.

## 5. 디스클레이머 확인
- README, core.DISCLAIMER, Streamlit app.warning, 모든 CLI 명령 출력에 디스클레이머 포함.

## 6. 제약 준수
- 외부 네트워크 / 유료 API 호출 0 (모든 데이터는 로컬 JSON)
- LLM 호출 0 (전부 rule-based)
- 전역 패키지 설치 없음 (requirements.txt만 명시: streamlit / pandas / python-docx)
- Streamlit 외 CLI 진입점 별도 제공 (lazy import 적용)

## 7. 결과
**ALL CHECKS PASSED.**
