# A0 후보의 행선지 — 소리 없이 사라지는 후보 0건

> 2026-08-30 · Codex 요구로 만든 **추적되는 증거**.
> ★raw 산출은 `artifact/` 에 있는데 그 디렉토리는 **gitignore** 다. 그래서
> 되짚을 좌표를 여기에 남긴다. **SOT 는 disposition 산출과 체크포인트**이고,
> artifact 는 증거일 뿐이다.
>
> ★그리고 그 23개는 이제 **추적되는 시험 fixture** 다 —
> `backend/tests/fixtures/grounding/a0_recovered_97375a4b.json` (entity_merge 까지
> 함께 담은 self-contained 판). 「23행을 잰다」가 손 측정이 아니라 자동 끝점이다.
>
> ★정정: 체크포인트의 `candidate_ledger` 를 **읽는 코드는 아직 없다.**
> offline 재생기는 같은 함수로 **재구축**한다. 이 칸은 나중에 사람이 되짚기
> 위한 기록이다.

## 이 판이 무엇이었나

`grounding_a0` 를 **유료로 한 번** 돌렸다. 도구가 게이트를 저장보다 먼저 세워
산출을 잃었고, Opik trace 에서 복구했다. **다시 안 샀다.**

| | |
|---|---|
| 대상 | `da049582/97375a4b` (1983년 늦가을 · 검증 원고 1,352자) |
| Opik trace | `06a93c25-2ed6-715e-8000-9443cb15f3d7` |
| 모델 | `gpt-5.6-sol` |
| A0 팩 | `grounding_a0/2.202608301300` |
| 결과 | 후보 **23개** · 지어낸 인용 **0건** |
| raw artifact | `artifact/20260830_a0_binding/a0_candidates_97375a4b.json` |
| 그 파일 SHA-256 | `267089931ff3dc2cbfe76ec39cf76ae2920238e11fb19511f1a2bda9f6a61260` |

★이 원고는 **검증용 1.3KB** 다. 실제 에피소드 대표성은 없다 — 이것으로 정한
수를 「실제 에피소드로 쟀다」로 쓰면 안 된다.

## 무엇이 문제였나

`carry_reasons` 는 **엔티티**를 센다. 후보를 안 센다. 그래서 어느 엔티티도
안 부른 후보는 **아무 데도 안 남고 사라졌다** — 23개 중 장부에 나타난 것이
2개뿐이었다.

## 다섯 갈래 (Codex)

후보 하나하나가 정확히 하나로 간다. **합이 안 맞으면 선다.**

| 갈래 | 무엇 | 고칠 곳 |
|---|---|---|
| `carried` | 기존 엔티티에 붙었다 | — |
| `promoted` | base owner 인데 엔티티가 없다 → **A0 신원 그대로 승격** | — |
| `deferred` | facet owner — 뒤 producer 가 가진다 | 그 producer |
| `contested` | 두 엔티티가 한 후보를 가져갔다 | 결속 규칙 |
| `unresolved` | 결속에 **걸렸다 실패**했다(ambiguous·duplicate) · 모르는 owner | 결속 규칙 |

★`promoted` 와 `deferred` 를 가르는 이유는 **고칠 곳이 다르기** 때문이다.
facet 을 승격하면 §2-6.5 producer 가 만들 때 **같은 대상이 둘**이 된다.

★compound 엔티티가 여러 후보를 한 행으로 뭉개도 **임의 병합하지 않는다** —
Codex 가 준 둘(별도 승격 / unresolved) 중 **unresolved** 를 골랐다. 두 후보가
「서로 다른 두 대상」인지 「같은 것을 두 번 적은 것」인지 **기계적으로 못 가르고**,
승격하면 같은 것을 두 번 조사할 수 있다 — 그건 돈이다. 그리고 프로덕션 사슬
시험이 이미 「못 붙인 것을 분류기에 보내지 않는다」를 계약으로 잡고 있었다.

★이름 유사도·부분문자열 확장은 **하지 않았다.** 결속기는 그대로다.

## 실측 — 고치기 전후

| | 전 | 후 |
|---|---|---|
| 장부에 잡힌 후보 | 2 / 23 | **23 / 23** |
| subject 수 | 7 | **14** |
| 원고 기반 subject | 2 | **9** |

    23 = carried 2 · promoted 7 · deferred 14 · contested 0 · unresolved 0
    deferred 내역 = location_part 10 · outlook 4

## 아직 안 닫힌 것

- **원고 기반이 9개**다. §4b 표본을 **9개로 확정**했다 — 모자란 몫은
  `deferred` 14개이고 facet producer(§2-6.5)가 생겨야 풀리는데, **표본 수 때문에
  그 유료 단계를 앞당기지 않는다**(Codex). `batch=12` 는 후보에서 뺐다 —
  9개를 한 묶음으로 보내는 것은 12-subject 검증이 아니다. 논리 호출 **19회**.
- `entity_merge` 이름이 원문 표기가 아니라 **LLM 합성 서술**이라 결속이
  안 되는 것은 그대로다. 이 판은 그것을 **고친 것이 아니라 보이게 만든 것**이다
