# QA Log — ObesityResponderSubpheno

**날짜**: 2026-05-08
**빌드 경로**: `/Users/sangjoonpark/claude daily project/2026 metabolic daily idea/projects/2026-05-08-2-obesity-responder-subpheno/`
**카테고리**: 연구 아이디어 생성 → Python CLI

## 검수 결과

| # | 단계 | 명령어 | 결과 | 비고 |
|---|---|---|---|---|
| 1 | 구문검증 | `python3 -c "import ast; ast.parse(open('main.py').read())"` | 통과 | "SYNTAX OK" |
| 2 | help | `python3 main.py --help` | 통과 | argparse 옵션 9개 노출 |
| 3 | top N | `python3 main.py --top 5` | 통과 | 총 3,456 cell, 미탐색 3,407 cell, top 5 출력 + 디스클레이머 |
| 4 | card | `python3 main.py --card` | 통과 | top cell(post-bariatric regain × GLP-1RA × 24wk × rebound) 한국어 카드 출력 |
| 5 | protocol | `python3 main.py --protocol` | 통과 | SPIRIT 6a~31 12개 항목 한국어 protocol skeleton |
| 6 | proposal | `python3 main.py --proposal` | 통과 | KHIDI/NRF/NIH/Novo/Lilly/BI/Amgen/Pfizer 호환 abstract |
| 7 | JSON 8개 | `python3 -c "import json; json.load(open('data/X.json'))"` 8회 | 통과 | corpus/drug_classes/guidelines/korean_cohorts/labels/maintenance/subphenotypes/time_buckets 모두 OK |
| 8 | subpheno | `python3 main.py --subpheno hepatic_predominant_mash` | 통과 | 288 cell 중 미탐색 284 cell, 상위 10개 출력 |
| 9 | drug | `python3 main.py --drug glp1_gip_dual` | 통과 | 288 cell 중 미탐색 281 cell, 상위 10개 출력 |
| 10 | 디스클레이머 | grep | 통과 | README.md 본문 + main.py 모든 출력 함수 말미에 한국어 디스클레이머 문구 노출 |

## 기능 매핑 (step1 명세 5 ↔ 구현)

1. RCT/RWE ETL + KM digitize → `data/corpus.json` 약 50개 mock + `km_digitized` 플래그
2. 4D ontology + 정규화 → `build_cells()` 12 × 12 × 6 × 4 = 3,456 cell, `score_cell()` 정규화
3. 미탐색 cell ranking + novelty + KR cohort suitability → `published_count_for_cell()`, `expected_count()`, `korean_feasibility()`, `iit_acceptance()`, `priority`
4. feasibility + 라벨/가이드라인 cross-link → `data/labels.json`, `data/guidelines.json`, `--drug`/`--subpheno` 출력에서 KR status 표시
5. 한국어 hypothesis card + protocol skeleton + proposal → `cmd_card()`, `cmd_protocol()`, `cmd_proposal()`

## 의학적 디스클레이머 위치

- `README.md` "디스클레이머 (필수)" 섹션
- `main.py` `DISCLAIMER_KO` 상수 → 모든 사용자 대면 명령(`top`, `subpheno`, `drug`, `card`, `protocol`, `proposal`, `summary`)의 끝에 출력
- `main.py` 모듈 docstring 상단

## 외부 의존성

- 표준 라이브러리만 사용 (argparse, json, math, os, sys, typing). 외부 네트워크 호출 0, 외부 유료 API 0, 전역 패키지 설치 0.

## 한 줄 요약

✅ 빌드 완료
