# CHANGELOG — DiaRescueMiner-Kor

## [2026-06-05]

### 수행 내용
- metabolic daily idea step2 아이디어 #1 "DiaRescueMiner-Kor" MVP 를 자기완결적으로 구현.
- 당뇨·합병증 중단(terminated/withdrawn) 신약 13종을 curated/synthetic 데이터로 구조화.
- (실패원인 축 → 부활 레버) 규칙기반 온톨로지로 ranked rescue 연구 가설 57개 생성 엔진 구현.
- why_stopped 자유텍스트 규칙기반 NLP 분류 + curated attribution 교차검증, 표적유효성(MR/동일표적) cross-check, 가설별 최소 confirmatory 연구(design·N·endpoint) 자동 초안, audit 근거추적 포함.
- CLI(main.py, 표준 라이브러리만), Streamlit UI(app.py), README, QA 작성 및 검수 완료.

### 주요 결정 사항
- main.py 를 **표준 라이브러리 전용**으로 설계 → streamlit/networkx 미설치 환경에서도 전체 기능 동작(제약 준수). app.py 만 streamlit 의존, networkx 는 optional(try/except, 미설치 시 텍스트 경로 대체).
- app.py 가 main.py 의 로직을 `import main as engine` 으로 재사용 → 로직 단일 출처(중복 제거).
- 모든 점수를 합성 데모값으로 명시하고, 약물명/중단사유만 공개 사실 기반으로 표기. 디스클레이머를 배너·help·README·UI 전면에 배치.

### 변경된 파일
- `main.py` — CLI 진입점 + 핵심 엔진(레지스트리/귀속/레버/ranking/최소설계/audit)
- `app.py` — Streamlit UI (main.py 로직 래핑)
- `data/terminated_programs.json` — 중단 약물 13종 curated/synthetic 데이터
- `README.md` — 목적/기능/실행법/출처/디스클레이머
- `QA.md` — 검수 로그(12 항목 PASS)

### 재현 방법
1. `python3 main.py --help` 로 옵션 확인
2. `python3 main.py --list` / `--summary` / `--top 8` / `--drug fasiglifam` / `--top 2 --json` 실행
3. (선택) streamlit 설치 후 `streamlit run app.py`
4. 검수: `python3 -c "import ast; ast.parse(open('main.py').read())"`, app.py 동일, 데이터 json.load
