## [2026-06-05]

### 수행 내용
- metabolic daily idea step2 아이디어 #3 "MASHGraveyardReframe-Kor" MVP를 자기완결적으로 구현.
- MASH 실패 trial 레지스트리(13종 curated/synthetic) + target-vs-trial 귀속 엔진 + 재설계 가설 ranked 생성 + 재포지셔닝 탐색.
- CLI(`main.py`, 표준 라이브러리만), Streamlit UI(`app.py`), 데이터(`data/mash_failures.json`), README, QA 문서 작성.

### 주요 결정 사항
- 핵심 로직(귀속·ranking·재설계)을 `main.py`에 두고 `app.py`가 `import main`으로 재사용 → 로직 단일화, streamlit 미설치 환경에서도 CLI로 완전 동작.
- 귀속을 단일 라벨이 아닌 3확률(target_invalid/trial_killed/safety_killed) 정규화 + mixed 임계(0.12)로 표현 → "표적이 죽었나 vs trial이 죽였나"를 확률적으로 판정.
- networkx는 app.py에서 선택적(import 실패 시 그래프 섹션만 비활성) → 의존성 강제 없음.
- 세부 수치는 합성·근사값임을 데이터 `_meta`와 모든 출력·README에 명시(의료 디스클레이머).

### 변경된 파일
- `main.py` — CLI 진입점 + 핵심 로직(표준 라이브러리만)
- `app.py` — Streamlit UI 래퍼(main 로직 재사용)
- `data/mash_failures.json` — 실패 MASH 약물 13종 curated 데이터
- `README.md` — 목적·기능·실행법·출처·디스클레이머
- `QA.md` — 검수 로그(13항목 PASS)

### 재현 방법
1. `cd projects/2026-06-05-3-mash-graveyard-reframe-kor`
2. `python3 main.py --help` 로 옵션 확인
3. `python3 main.py --summary` / `--top 8` / `--drug selonsertib --attribution` / `--reposition` / `--list` 실행
4. (선택) `streamlit run app.py` 로 UI 실행
