# 외부 근거 (external-facts)

**우리가 통제하지 않는 시스템의 동작 규칙 중, 우리 판단이 그 위에 서 있는 것들.**

지문·축·그룹화 판정은 「이 값은 운영자가 못 바꾼다」 같은 **외부 사업자의 정책**을 전제로 한다.
그 전제가 조용히 바뀌면 판정이 통째로 무효가 되는데, 코드도 데이터도 그걸 알려주지 않는다.
그래서 **전제를 따로 적어두고 확인일을 붙인다.**

## 여기 들어가는 것 / 안 들어가는 것

| | |
|---|---|
| 들어간다 | 외부 사업자가 **문서로 밝힌** 동작 규칙. Cloudflare 의 NS 배정, X 의 id 발급 방식, IPFS 게이트웨이 정책 |
| 들어간다 | 그 규칙이 **우리 어떤 판단을 떠받치는지** |
| 들어간다 | **「없다」는 사실도.** 어떤 값이 계정을 안 가리킨다는 것도 판단을 떠받친다 — 안 적어두면 같은 축을 또 시도한다 |
| 안 들어간다 | 우리 코드·스키마 동작 → `guides/social-recording/` |
| 안 들어간다 | 소셜별 필드가 실제로 뭐가 오는지 → `guides/audit-sources/` |
| 안 들어간다 | 실험 결과·측정치 → `docs/experiments/` |

**기본은 「저쪽이 그렇게 한다고 «말했다»」다.** 「우리 데이터에서 그렇게 보인다」는 실험 폴더 몫이고,
둘을 섞으면 무엇이 근거였는지 못 가린다.

예외 둘 — **표시하고** 쓴다:

- **문서와 실측이 어긋날 때.** 그 자체로 중요한 사실이라 여기 적는다
- **사업자가 아무것도 안 밝혔을 때.** 「없다」를 증명하려면 실측밖에 없다.
  `vercel-hosting.md` 가 그 경우다 — 근거가 실측뿐이라는 걸 문서 머리에 적어야 한다.
  이때도 **판단이 무너지는 조건**(3절)은 반드시 쓴다. 그게 이 폴더의 존재 이유다

## 파일 규칙

파일 하나 = 사업자 하나 × 주제 하나. 아래 다섯 절을 **반드시** 갖는다.

```
1. 한 줄        — 이 문서가 지키는 전제
2. 사실         — 출처 URL 과 함께. 원문 인용은 짧게, 나머지는 우리말로
3. 우리 판단     — 이게 무너지면 무엇이 무효가 되는지
4. 아직 모르는 것 — 문서에 없어서 확인 못 한 것. 빈칸으로 두지 말 것
5. 갱신 이력     — 날짜 · 무엇이 바뀌었나 · 확인한 사람
```

## 다시 볼 조건

정기 점검은 안 한다 — 안 지켜지고, 안 바뀐 걸 확인하는 데 시간을 쓴다.
**아래 중 하나가 생기면 그때 본다:**

- 그 축으로 판정한 결과가 **실측과 어긋나기 시작할 때**
- 그 사업자의 제품이 바뀌었다는 소식이 들릴 때
- 확인일로부터 **1년**이 지난 문서를 다시 근거로 쓰려 할 때

각 문서 머리의 `확인일` 이 그 기준이다.

## 목록

| 문서 | 무엇을 떠받치나 |
|---|---|
| [dns-provider-axes.md](./dns-provider-axes.md) | **어느 DNS 제공자에서 이 방법이 되나.** 7곳을 널 모델로 검정 — Cloudflare 뿐이다. 새 제공자를 축으로 쓰려 하기 전에 여기부터 |
| [cloudflare-nameservers.md](./cloudflare-nameservers.md) | NS 쌍을 「운영자 식별자」로 쓰는 근거 (F-02 · F-03 그룹화) |
| [vercel-hosting.md](./vercel-hosting.md) | Vercel 은 계정 흔적이 «없다». 대신 프로젝트 이름 누출로 F-04. 제공자별 「NS 로 묶을 수 있나」 표 포함 |
