# 도면 읽기 이중화 — 두 모델이 얼마나 같게 읽나 (#92 6단계)

2026-08-27

## 왜 재고 시작했나

Codex 판정:

> geometry 이중화의 합의는 「좌표 평균 금지, 구조화 ID 합의」다.
> `marker ID 집합·kind·missing/extra` 가 같아야 하고 `row/col` 은 평균 대신
> `exact / adjacent / conflict` 로 기록한다.
> **인접 셀 허용은 양성 표본으로 경계를 잰 뒤에만.**

★그래서 **구현 전에 쟀다.** `exact` 만 통과시키는 계약을 두 모델 일치율도
 모르고 넣으면, 격자를 다르게 읽을 때 도면 읽기가 통째로 막혀
 파이프라인이 선다.

## 어떻게 쟀나

★**프로덕션 조립을 그대로 쓰고 모델만 바꿨다.** `_build_dossier_facts` /
 `_build_messages` / `_build_response_format` 을 직접 부른다 — 문안을 새로
 지으면 「나가는 것을 쟀다」고 말할 수 없다.

입력은 완주한 체크포인트에서 온다(도면 PNG · dossier · 격자).

    도구  backend/tools/prompt_measure/probe_floor_readback_agreement.py
    기록  artifact/20260827_floor_readback_agreement/agreement.json
    비용  $0.7332 (도면 8장 × 모델 2개)

## 결과

    도면 8장 · 본 마커 gemini-pro=111 · grok=111 · 공통 111

| 축 | 값 | |
|---|---|---|
| ID 집합 | **111/111**, 한쪽만 본 것 **0건** | 합의 가능 |
| kind | **111/111 (100%)** | 합의 가능 |
| 셀 정확 일치 | 41/111 (**37%**) | ★ |
| 셀 인접(±1) | 65/111 (59%) | |
| 셀 어긋남 | 5/111 (**5%**) | |

도면별로 정확 일치가 크게 흔들린다:

| 도면 | 마커 | 정확 | 인접 | 어긋남 |
|---|---|---|---|---|
| fp_l02_dining_hall | 14 | **1** | 13 | 0 |
| fp_old_house_main | 15 | 11 | 4 | 0 |
| fp_suv_cabin | 23 | 4 | 16 | **3** |
| fp_l08_forecourt | 12 | 3 | 8 | 1 |
| fp_l09_corridor | 10 | 6 | 4 | 0 |
| fp_l10_rest_area | 10 | 5 | 5 | 0 |
| fp_l11_conference_hall | 13 | 3 | 10 | 0 |
| fp_l12_detective_office | 14 | 8 | 5 | 1 |

★`fp_l02_dining_hall` 은 **14개 중 1개만** 정확히 같았다. `exact` 계약을
 넣었으면 그 도면 하나로 파이프라인이 섰을 것이다.

## 그래서 확정할 수 있는 것

    ID 집합·kind    합의를 **요구해도 된다** — 100% 다
    row/col        `exact` 를 요구하면 **안 된다** — 37% 다
                   `exact + adjacent` 로 보면 96%, 어긋남 5%

## 아직 못 정한 것 — 의논 대상

`adjacent` 일 때 **어느 값을 쓰나.** 평균은 금지다(Codex). 남은 길:

    (가) 결정적 규칙 — 한쪽 모델을 우선으로 못박는다. 공짜고 재현된다.
         대신 「왜 그쪽인가」의 근거가 없다.
    (나) 세 번째 판정 — 어긋난 마커만 다시 묻는다. 근거는 생기지만 돈이
         들고, 세 번째도 또 다르면 답이 없다.
    (다) 등급만 남기고 값은 지금대로 — 소비 쪽이 `agreement` 를 보고
         스스로 정한다. 가장 적게 바꾸는 길이다.

★**(다) 가 먼저다.** 지금 쓰는 값을 그대로 두고 **합의 등급을 덧붙이는**
 것은 되돌릴 수 있고, 하류가 실제로 그 등급을 쓰는지 한 판 보고 나서
 (가)/(나)를 정하면 된다. 반대로 값을 먼저 바꾸면 무엇이 나빠졌는지
 가릴 기준이 없다.

## 이 실측이 못 재는 것

- **어느 쪽이 맞나** — 두 모델이 같다는 것은 둘 다 맞다는 뜻이 아니다.
  정답은 도면 그림 자체이고, 그건 사람 눈이나 별도 판정이 있어야 한다.
- **도면 8장** 은 표본이다. 마커가 아주 많은 도면(23개짜리에서 어긋남 3)
  일수록 나빠지는 기울기가 보이지만, 8장으로 기울기를 못박지 않는다.
