# QA 검수 로그 — DMRepurpRank-Kor

빌드 일자: 2026-05-15
빌드 위치: `projects/2026-05-15-1-dm-repurp-rank-kor/`

## 환경
- Python 3.9+
- numpy 2.0.2 / pandas 2.3.3 / scipy 1.13.1 (선택 — 실 구현은 stdlib만 사용)

## 검수 명령 및 결과

| # | 명령 | 결과 | 비고 |
| - | - | - | - |
| 1 | `python3 -c "import ast; ast.parse(open('main.py').read())"` | ✅ SYNTAX OK | 구문 오류 없음 |
| 2 | `python3 main.py --help` | ✅ | argparse usage + 옵션 + 예시 + 디스클레이머 모두 출력 |
| 3 | `python3 main.py --top 10` | ✅ | Top 10 ranking 표 + reference(메트포르민) line + 디스클레이머 출력 |
| 4 | `python3 main.py --summary` | ✅ | 도구 개요·기능·CLI·데이터 요약 + 50개 약물 카운트 |
| 5 | `python3 main.py --card 텔미사르탄` | ✅ | KR 이름 인식 → 5축 점수 + narrative + KDDF/IIT proposal block + 디스클레이머 출력 |
| 6 | `python3 main.py --export-json /tmp/dm_test.json` | ✅ | JSON 작성 + Python `json.load()` parse 성공, 50 candidates, 9 sources, tool=DMRepurpRank-Kor |

## 실측 출력 요약

### `--top 10` Top 5 (composite 기준)
| 순위 | 약물(KR) | 약물(EN) | MR | CMAP | TGT | RWE | VIA | COMP |
| - | - | - | - | - | - | - | - | - |
| 1 | 페노피브레이트 | Fenofibrate | 100.0 | 78.2 | 93.0 | 93.9 | 100.0 | 93.03 |
| 2 | 피오글리타존유사체 | Pioglitazone-analog | 100.0 | 84.0 | 100.0 | 97.2 | 65.0 | 92.75 |
| 3 | 텔미사르탄 | Telmisartan | 100.0 | 76.0 | 87.1 | 92.2 | 100.0 | 91.07 |
| 4 | 카나키누맙 | Canakinumab | 100.0 | 73.8 | 76.6 | 93.8 | 55.0 | 84.32 |
| 5 | 미노사이클린 | Minocycline | 98.7 | 63.0 | 64.8 | 88.2 | 100.0 | 82.81 |
| REF | 메트포르민 | Metformin | 100.0 | 86.5 | 100.0 | 98.6 | 100.0 | 97.03 (참조) |

→ 약리학적으로 알려진 fenofibrate (PPAR-α, lipid → glucose 메타볼릭), telmisartan
  (AGTR1 + PPAR-γ partial agonist), IL-1β 억제 (canakinumab — CANTOS 부분 시그널),
  tetracycline 계열 (MMP9, gut microbiome) 등이 상위에 정렬되어 사전 지식과 부합.

### 의학적 디스클레이머 노출 위치 (필수)
- ✅ `README.md` 최상단 quote block + 하단 재고지
- ✅ `main.py --help` epilog 마지막 줄
- ✅ `main.py --top` 표 하단
- ✅ `main.py --summary` 하단
- ✅ `main.py --card` 마지막 섹션
- ✅ `--export-json` envelope 의 `disclaimer` 필드

## 재현 명령

```bash
cd "projects/2026-05-15-1-dm-repurp-rank-kor"
python3 -c "import ast; ast.parse(open('main.py').read())"
python3 main.py --help
python3 main.py --top 10
python3 main.py --summary
python3 main.py --card 텔미사르탄
python3 main.py --export-json /tmp/dm_test.json
```

## 알려진 이슈

- 1차 빌드 시 `print_summary()`의 f-string 안에서 `{DRUG_N}` placeholder가 NameError를
  발생시켜 즉시 patch (f-string → 일반 문자열 + `drug_n` 변수). 재실행 후 정상.
- 2회 재시도 한도 내 1회 fix 로 통과.

## 최종 상태

**PASS** — 6/6 명령 정상 통과. 의학적 디스클레이머 6개 위치에 모두 노출.
50개 합성 약물 후보 ranking + JSON export + 한국어 hypothesis card 생성 모두 동작.
