## [2026-06-04]

### 수행 내용
- 항비만 SR 노후화 연구알림 오프라인 MVP "LivingSR-Staleness-Kor / 리빙에스알스테일니스코어" 구축.
- `main.py` CLI 구현: PICO 룰 기반 구조화, 검색일 이후 신규 적격 RCT 매칭(P/I/C/O 가중 토큰겹침), 신호등 노후화 등급, 미출판/중복 PROSPERO 등록 탐지, PICO 갭 맵.
- 합성 데모 데이터 `data/srs.json`(SR 4건), `data/trials.json`(RCT 6건) 작성.
- `README.md`, `QA.md`, 선택적 Streamlit `app.py` 작성.
- 4개 검증(ast.parse / --help / 데모·단일SR·갭 / 데이터 로드) 전부 1차 통과.

### 주요 결정 사항
- **stdlib only, 완전 오프라인**: 요구사항대로 외부 패키지/네트워크 없이 json/argparse/re/datetime/math만 사용. 재현성·검증 단순화.
- **투명 매칭**: 블랙박스 모델 대신 필드별 토큰 겹침 × 가중치(I=0.35 최대) + 임계값 0.45 + 설계/기간 inclusion 필터. 각 매칭에 P/I/C/O breakdown 출력해 근거 추적 가능.
- **데이터 설계**: SR-001/002가 신규 트라이얼로 노후 판정되도록, SR-003↔004를 동일 PICO 중복 등록으로, 갭(GLP-1×근감소성비만×근육량 등)이 존재하도록 의도적으로 구성. 검색일 이전·비RCT·off-topic 트라이얼을 넣어 필터 정확성도 검증.
- **app.py는 선택**: CLI를 정식 진입점으로 유지, Streamlit 미설치 시 graceful exit.

### 변경된 파일
- `main.py` - CLI 진입점 (전체 로직)
- `data/srs.json` - 합성 SR/PROSPERO 레코드
- `data/trials.json` - 합성 RCT 인덱스
- `README.md` - 목적/기능/실행법/검수체크리스트/데이터출처/디스클레이머
- `QA.md` - 검증 로그
- `app.py` - 선택적 Streamlit UI
- `CHANGELOG.md` - 본 파일

### 재현 방법
```
cd "2026-06-04-2-living-sr-staleness-kor"
python3 -c "import ast; ast.parse(open('main.py').read())"   # 1. 구문
python3 main.py --help                                       # 2. 사용법
python3 main.py                                              # 3a. 데모 (staleness alert)
python3 main.py --sr SR-001                                  # 3b. 단일 SR
python3 main.py --gaps                                       # 3c. PICO 갭
python3 -c "import json; json.load(open('data/srs.json')); json.load(open('data/trials.json'))"  # 4. 데이터
```
