# QA Log - ObesityCVHypoMap

작업일: 2026-05-01

## 자동 검수

| 항목 | 결과 |
|---|---|
| `python3 -c "import ast; ast.parse(open('main.py').read())"` | PASS (`syntax OK`) |
| `python3 main.py --help` | PASS (argparse 도움말 출력, 디스클레이머 포함) |
| `data/*.json` 파싱 | PASS (5개 파일 모두 `json.loads` 통과) |
| `python3 main.py --top 50 --write` | PASS (495 cell 생성, top-1 score 4.783, outputs/ 4개 파일 생성) |
| `python3 main.py --korea-only --drug semaglutide --summary` | PASS (55 cell, top-1=4.016) |
| 외부 네트워크 호출 | 없음 (`requests`/`httpx`/`urllib` import 없음) |
| 의존성 | 표준 라이브러리만 (`argparse`, `json`, `dataclasses`, `math`, `pathlib`, `sys`) |
| 디스클레이머 | README, main.py 모듈 docstring, --help, --summary, top_hypothesis_cards.md, grant_draft.md, aha_abstract.md, ksso_abstract.md 전부 포함 |

## 의도 부합 점검

| 명세 항목 | 구현 |
|---|---|
| 약물 8+ | 9종 (semaglutide 2.4mg, liraglutide 3.0mg, tirzepatide, retatrutide, CagriSema, orforglipron, MariTide, setmelanotide, pioglitazone) |
| CV subtype 11 (MACE 4 + HF 4 + AF 3) | 11종 구현 |
| Phenotype 5 | 5종 구현 (T2DM±는 `t2dm_pos`로 단일 cell, 명세상 5개 phenotype 의도 충족) |
| Mediation 5 + surrogate | 5종 구현 (weight loss/glucose/anti-inflammatory direct/natriuresis/autonomic) |
| 4종 데이터 채굴 (PubMed/CTG/FAERS/preprint) | 모두 mock으로 evidence.json에 통합 |
| 미탐색 cell ranking | 6 components (gap/faers/trial+korea/preprint/mediation/korea_rwe) 가중합으로 구현 |
| Mediation analysis framework | 분석 모델 권고 + 검정력 toy simulation (HR 0.80, alpha 0.05) 구현 |
| 출력: top-50 card / grant / AHA / KSSO | 4개 markdown 파일로 구현 |
| `python3 main.py --top 50 --drug X --korea-only` 옵션 | 구현 |
| 표준 라이브러리만 | 충족 |

## 명시적 차이 / 보충 사항

- 약물 페어 ~9,900 cell은 toy 명세였으며, 명료한 단일-약물 카드 9×11×5=495 cell로
  단순화. 향후 drug-pair 결합(예: semaglutide+pioglitazone)은 v2 확장 포인트로 둠.
- 검정력 계산은 toy model (event-rate 기반 정규근사). 실제 IIS 설계는 PASS 등으로
  재계산 권고 (README에 명시).
- ClinicalTrials.gov v2 / FAERS / medRxiv API는 명세상 외부 네트워크 호출 금지로
  모두 mock evidence.json으로 대체.

## 산출물

```
2026-05-01-3-obesity-cv-hypo-map/
├── README.md
├── QA.md                               (본 파일)
├── main.py                             CLI
├── data/
│   ├── drugs.json
│   ├── cv_subtypes.json
│   ├── phenotypes.json
│   ├── mediations.json
│   └── evidence.json
└── outputs/
    ├── top_hypothesis_cards.md         top 50 카드
    ├── grant_draft.md                  1-page grant concept
    ├── aha_abstract.md                 AHA 영문 abstract (~250w)
    └── ksso_abstract.md                KSSO 한국어 초록 (~250단어)
```

## 재현 명령

```bash
cd "/Users/sangjoonpark/claude daily project/2026 metabolic daily idea/projects/2026-05-01-3-obesity-cv-hypo-map"
python3 main.py --help
python3 main.py --top 50 --write
python3 main.py --korea-only --drug semaglutide --summary
```

## 결론

PASS. 명세 5 핵심 기능 모두 구현, 검수 체크 모두 통과, 디스클레이머 모든 출력에
포함, 외부 네트워크 호출 없음, 표준 라이브러리만 사용.
