# DR-001 1차 심사

**총점 17/30 · 판정: `KILLED-LLM`**

심사 방식: 적대적 LLM 심사관이 원본 데이터로 **파이프라인을 독립 재현**해 검증.
이후 **작성자(Claude)가 동일 난수·동일 음성표본으로 재검증**해 지적 3건을 전부 확인했다.

| 항목 | 점수 | 근거 |
|---|---|---|
| 신규성 | 3 | 구문검색 표·선행 2건 URL은 실재. 그러나 게이트 문서가 목록한 겹침 큰 3편을 §3에서 누락했고, 5편이 **초록만 읽은 상태**임을 밝히지 않았다 |
| 데이터 실재성 | 4 | 사다리 전 단계가 원본 재현과 **정확히 일치**. 감점: 결측 컬럼 부재, §7의 "노드 229,750"이 CSV에 없음 |
| **결과 정직성** | **1** | **§6 숫자가 내부적으로 성립하지 않는다.** 아래 §2 참조 |
| 지도교수 적합 | 3 | ML/DL 축과 데이터는 맞으나 **GNN을 쓰지 않았고**, 아웃소싱·조직통제 축과 접점 없음 |
| 40p 확장성 | 3 | 형식은 갖췄으나 **1단계 진단이 틀렸다.** 문제는 음성표본 난이도가 아니라 버그였다 |
| AI로 보이는가 | 3 | 폴더명이 약속한 GNN이 없다. 실체는 14개 수작업 피처 + sklearn 표 분류 |

**자동 실격 6조: 미발동.** 표 숫자는 CSV와 반올림 범위에서 전부 일치했다.
다만 §6 표2가 `t3` 14행 중 10행만 싣고 **두 번째 음수 변수 `p_parents`(−0.00024)를 무언급 삭제**한 것은 선택적 제시로 기록한다.

---

## 죽일 이유 — 작성자 재검증으로 전부 확인됨

### 1. "그래프 지표 중요도 0"은 발견이 아니라 **구성상 항등식**

`run.py`가 자식 쪽 이웃을 학습 그래프에서만 계산한다. 테스트 자식은 정의상 2026년 이후 생성이므로
학습 그래프에 존재할 수 없다 → **모든 테스트 쌍에서 이웃집합이 공집합인 것이 수학적으로 보장된다.**

**작성자 재검증 (동일 난수, 테스트 174,624쌍):**

| 변수 | 고유값 | 분산 | 0비율 |
|---|---|---|---|
| `common_neighbors` | **1** | **0.000000** | **100.0%** |
| `adamic_adar` | **1** | **0.000000** | **100.0%** |
| `jaccard` | **1** | **0.000000** | **100.0%** |
| `c_parents_prior` | **1** | **0.000000** | **100.0%** |

→ 순열 중요도가 정확히 0.0000, 표준편차 정확히 0.0000인 것은 **상수를 섞었기 때문**이다.
§1 헤드라인("그래프 위상 지표는 작동하지 않았다")과 §7의 forest 설명은
**자기가 만든 상수를 데이터의 성질로 오독**한 것이다.

더 나쁜 것: §8의 "그래프 신호가 없었으므로 GraphSAGE로 올라가는 것이 정당화되지 않았다"는
**깨진 피처 정의를 근거로 GNN을 포기한 순환논증**이다.

### 2. 모형이 자기 입력변수 하나보다 나쁘다 — 파이프라인이 깨졌다

**작성자 재검증, 동일 테스트셋 단일 변수 AUC:**

| 변수 | 단일 AUC | vs 모형 B (0.5928) |
|---|---|---|
| `p_downloads` | **0.8469** | ★ 훨씬 높음 |
| `p_likes` | **0.8173** | ★ |
| `same_license` | 0.6922 | ★ |
| `same_task` | 0.6669 | ★ |
| `p_age_days` | 0.3643 | 무작위보다 나쁨(반예측) |
| **모형 B (위 전부 포함)** | **0.5928** | — |

→ 부스팅 모형이 자기 입력변수 하나보다 AUC 0.25 낮을 수 없다.
**§6 표1 네 줄, §1의 결론, §8의 "AUC 0.593은 낮다"까지 전부 무효다.**
원인은 시간분할에서의 분포 시프트로 추정되나 확정하지 않았다.

### 3. 음성 표본이 차수 가중 vs 균등 추출로 어긋났다

양성은 엣지 단위라 **차수 가중**(자식 5,550개 부모는 5,550번 등장),
음성 부모는 **중복 없는 집합에서 균등 추출**.

**작성자 재검증 (테스트, 부모 out-degree):**

| | 평균 | 중앙값 | 0비율 |
|---|---|---|---|
| 양성 | 132.10 | **0.0** | 54.2% |
| 음성 | 3.54 | **1.0** | 32.9% |

→ 중앙값이 **역전**돼 있다. 순열 중요도 −0.0193은 여기서 나온다.
§1·§7의 "선호적 연결 통념이 성립하지 않았다"는 **음성 추출기 설계의 부산물**이다.

---

## 살릴 방법 (약 3일)

| # | 할 것 | 소요 |
|---|---|---|
| 1 | 음성 표본을 양성의 **부모 차수 분포에 맞춰** 추출 (degree-matched) 또는 **동일 부모·다른 자식**. 자식도 같은 분기로 시기 맞춤 | 0.5일 |
| 2 | 테스트에서 **상수가 되지 않는** 그래프 피처로 교체 — 부모의 조상·형제 집합, 루트 동일 여부, 계보 깊이, 2-hop, Katz/PPR. **테스트셋 분산 ≠ 0을 사전 assert로 강제** | 1일 |
| 3 | 모든 피처에 **as-of 시점 부여**. `p_age_days` 기준을 각 쌍의 자식 생성일로. `likes`/`downloads`는 사후 스냅샷이므로 분리하거나 §8에 명시 | 0.5일 |
| 4 | **부모 단위 클러스터 부트스트랩** (`RIGOR_BAR` 명시 요구인데 안 했다) | 0.5일 |
| 5 | §6 표2를 `t3` **전 행**으로 교체 + **단일 변수 AUC 표**를 하한선으로 병기 | 0.5일 |

**§9 1단계(1주)에 지금 착수하는 것은 반대.** 진단이 틀렸으므로 1주를 태우고도 같은 자리다.

---

## ★ `same_license` 2위는 발견인가 인공물인가 — **인공물이다**

**1. 파생이 라이선스를 상속하는 것은 기계적 사실이다.**
실측: 양성 쌍에서 양쪽 라이선스 보유 시 **83.1%가 일치**, 음성은 41.2%.
HF 모델카드 템플릿이 base model 카드를 복사하고, Llama·Gemma 계열은 파생 라이선스 승계가 **의무**다.
→ "파생이면 라이선스가 같다"는 **파생의 정의에 가까운 성질**이지 가설이 아니다.

**2. 사후 측정 변수다.** `license`는 2026-08-07 스냅샷이고, 자식이 그 라이선스를 갖게 된
**이유가 파생됐기 때문**이다. post-treatment variable이며 시점상 누수다.

**3. "2위"라는 순위 자체가 무의미하다.** `same_task`도 0.6669로 거의 같다.
라이선스가 특별한 게 아니라 **"부모와 자식이 닮았다"를 재는 지표는 전부 이 패턴을 낸다.**
게다가 순위가 나온 D 모형은 죽일 이유 1·2로 오염돼 있다.

→ **§10 3번 질문과 부록 5·6번 문장은 지금 상태로 교수님께 가져가면 안 된다.**
"그건 파생하면 당연히 따라오는 거 아닌가"에 답할 말이 없다.

### 다만 라이선스 방향 자체는 유효하다 — 질문을 뒤집으면

- ✗ "라이선스 동일 여부가 파생을 예측하는가" → 상속이라 동어반복
- ○ **"부모 라이선스의 제약 강도가 파생의 양·다양성·확산 속도와 어떻게 연관되는가"**
  → 부모 속성만 쓰므로 사후 변수가 아니고, 종속변수가 노드 수준이라 쌍 샘플링 문제도 우회.
  **지도교수의 조직통제 축에 정면으로 붙는다**
- ○ **"언제 파생 모델이 부모 라이선스를 이탈하는가"** (상속하지 않은 16.9%)
  → 동어반복이 아니고 통제 메커니즘의 실패 사례로 IS 문헌에 걸린다

**이 셋 중 어디로 갈지는 사용자·지도교수 결정 사항이다.**
