id: E4
version: 5
bundle: overall
name: 글이 다 읽히지 않음
gold: false
status: fix
unit: component
sample:
  conditions:
  - O
  - O_v10
  - a1
  - a
  - c
  scope: top10
question: |
  이 컴포넌트의 글이 전부 읽히는가?
  안 읽힘으로 세는 것: 글 노드(binding 의 text 를 넣은 글 상자)의 글자가 상자나 도형 밖으로 나가 끊김, 다른 글이나 그림 뒤에 가려짐, 글끼리 겹쳐 글자가 섞임, 배경 도형과 섞여 글자 모양이 안 보임, page_yaml 에 값이 있는데 그 값이 들어갈 자리(표의 칸, 막대나 점의 값 라벨 자리, 항목 상자)가 비어 보임.
  글 노드만 본다: 사진이나 장식 그림 속 글자(팻말, 화면 캡처, 그림 안 문구)는 글 노드가 아니라 템플릿 그림이라, 잘리거나 흐려도 세지 않는다. 장식 도형이 글자 끝에 살짝 닿아도 글자 모양이 그대로 읽히면 세지 않는다. 글자 일부가 실제로 가려져 무슨 글자인지 알 수 없을 때만 가림이다.
  빈 자리 판정: 비어 보이는 자리가 있으면 page_yaml 에서 그 자리에 들어갈 값을 찾는다. page_yaml 은 이 장(이 컴포넌트)을 만드는 데 들어간 YAML 몫이고, binding 의 text 가 이 컴포넌트에 실제로 넣은 글이다. page_yaml 의 값(표의 행 칸 값, 항목 이름, 설명)이 binding 에도 그림에도 없고 그 자리가 비어 있을 때만 센다. page_yaml 자체에 그 칸 값이 없어(빈 칸, 행이 열보다 짧음) 비어 보이는 것은 원본과 같은 모습이라 세지 않는다. page_yaml 의 값이 모두 들어갔는데 템플릿 칸이나 상자가 남아 빈 채 보이는 것은 템플릿이 질의보다 큰 남는 칸 문제(R4 몫)라 세지 않는다.
  important: 안 읽히는 글이 제목, 항목 이름, 수치 같은 핵심 글이다. partly: 설명 일부, marker 숫자, 보조 글이다. readable: 전부 읽힌다.
  세지 않는 것: 한글과 일본어의 글자 단위 줄바꿈(「냉동창/고」, 「관/객」, 「제/안」)과 줄 끝 조사 분리는 읽히면 결함이 아니다(단어 분절은 D9 가 따로 센다). 표와 차트에 값, 범례, 축 라벨이 표시되지 않는 디자인(원본 템플릿 대부분이 그렇다)은 그렇게 그려진 것이라 결함이 아니다. 글자 축소, 색 대비(옅은 글자색), 임시 문구와 템플릿 글(E3 몫), 경계 밖 요소(차트와 그 범례, 다른 카드)의 글, 줄 사이 간격과 여백은 보지 않는다.
  빈 자리를 근거로 partly 나 important 로 답하려면 page_yaml 에 있는데 결과에 없는 값을 그대로 인용하고, 결과에서 그 값이 들어갈 빈 칸이나 빈 자리(몇째 행 몇째 칸, 어느 막대)를 가리킨다. 가리킬 빈 자리가 없으면 세지 않는다. page_yaml 의 열 머리글(columns), 그리고 행 값 가운데 열 수를 넘는 여분 값은 빠진 값으로 세지 않는다. 표는 열 머리글 수에 맞춰 읽은 행 칸 값이 기준이다.
inputs:
- page_yaml
- binding
- result_thumb
answers:
  kind: categorical
  options:
  - key: readable
    label: 다 읽힘
  - key: partly
    label: 일부 안 읽힘
  - key: important
    label: 중요한 글이 안 읽힘
defect:
  bad:
  - partly
  - important
aggregate: ratio
truth:
  kind: human
allowed:
- 페이지 완성 여부(컴포넌트 밖 여백, 페이지 제목 유무, 다른 영역의 빈 자리)는 보지 않는다. 평가 대상은 컴포넌트다.
- 글자 축소(70% 까지)는 그 자체로 결함이 아니다. 줄인 뒤 읽히는지만 본다.
- 한글, 일본어의 글자 단위 줄바꿈과 줄 끝 조사 분리는 읽히면 결함이 아니다. 단어 분절은 D9 몫이다.
- 색 대비(옅은 글자색, 배경색과 글자색)는 평가 범위 밖이다(색상 대치 미적용).
- 표와 차트에 값, 범례, 축 라벨이 표시되지 않는 것은 결함이 아니다. 원본 템플릿 차트 대부분이 값을 붙이지 않아 원본과 동등하다(유저 결정 10/27, 원본 동등 기준 10/13).
- 사진이나 장식 그림 속 글자는 글 노드가 아니다. 대치는 글 노드에만 글을 넣고 그림은 원본 템플릿 그대로라, 그림 속 글자의 잘림은 원본과 같은 모습이다(원본 동등 기준 10/13, 기준은 추출 · 검색 · 대치에 쓰는 정보만). 장식 도형이 글자 끝에 닿아도 글자 모양이 읽히면 「안 읽힘」이 아니다.
- 열 머리글과 열 수를 넘는 여분 값은 빠진 값이 아니다. 머리글은 칸 값이 아니고, 여분 값은 열 머리글 수에 맞춰 읽는 표 해석(E1 점검 절차 1)에서 칸이 없는 값이다. 빈 자리 결함은 결과에 값이 들어갈 칸이 있는데 빈 경우라(decided_1027g) 가리킬 칸이 없으면 결함이 아니다.
- 빈 자리는 그 장의 page_yaml 에 값이 있는데 결과에서 빠진 경우만 결함이다(decided_1027g). page_yaml 자체의 빈 칸은 원본과 같은 모습이라 결함이 아니고, page_yaml 값이 다 들어갔는데 남는 템플릿 칸이 빈 채 보이는 것은 R4(남는 칸) 몫이다(유저 결정 10/27).
sources:
- 22-overall-cards.md §1 E4(옛 judge agent_5)
- 22-overall-cards.md §2(D8, D9 의 컴포넌트 단위 합)
- eval/human/PACKET_INSTRUCTIONS.md(라벨러 전제 2, 디자인은 범위 밖)
- 30-human-truth-fable.md(라벨러 규칙: 한글 글자 단위 줄바꿈 제외, 색 대비 제외)
threshold:
  basis: a1
  value: null
model:
  default: gpt-6-luna
  current: gpt-6-luna
reps: 5
measure:
  kind: two_stage
  note: 모든 단위에 같은 규칙을 쓰는 하나의 측정기다. 1단은 gpt-6-luna 추론 low 로 단위마다 2회, 두 답이 갈리면 셋째 답, 최빈 답이 결함이면 2단으로 넘긴다. 1단 무결함은 무결함이다. 2단은 같은 질문을 같은 모델 추론 medium 으로 3회 묻고, 3회의 최빈 답(집계기 규칙, 동률이면 보기 순서 readable 먼저)이 결함일 때만 결함이다. 2단을 거친 단위는 2단 답만 센다.
  stage1:
    reasoning: low
    reps: 2
    tiebreak_rep: 1
  stage2:
    on: stage1_defect
    reasoning: medium
    reps: 3
    defect_if: modal_in_bad
observe_only: false
purpose: "컴포넌트의 글이 끊김, 가림, 겹침, 배경과 섞임 때문에 읽히지 않거나, 그 장의 page_yaml 에 있는 값이 결과에서 빠져 값 자리가 비어 보이는 일을 잡는다. 넣은 글이 읽히지 않으면 시각 요약이 아니다(기본품질 13 1.1). 결과 그림으로 읽힘을 보고 빈 자리만 page_yaml 과 binding 으로 값이 있었는지 확인한다. 한글 글자 단위 줄바꿈, 글자 축소, 옅은 글자색, 값을 붙이지 않는 차트 디자인, page_yaml 자체의 빈 칸은 원본과 동등해 결함이 아니다(원본 동등 기준 10/13). 남는 템플릿 칸은 R4 가 잰다. 읽혀도 원본 표현이 깨진 것은 T1, T3, D8 이 따로 잰다(기본품질 19 4절)."
changelog:
- 'v2 (2026-10-20): Fable 라벨 150 단위 대비 거짓 양성 28 진단. (c) 라벨러 규칙 「한글 글자 단위 줄바꿈은 분절이 아니다」가 질문에 없어 「냉동창/고」 같은 줄 끝 분절을 partly 로 답한 것이 25 건. 세는 것과 세지 않는 것을 적고 allowed 에 글자 단위 줄바꿈과 색 대비 제외를 넣었다. 거짓 음성 2 가운데 차트에 값, 범례가 없는 장을 important 로 세도록 적었다.'
- 'purpose 추가(10/24)'
- 'v3 (2026-10-27): 유저 결정 10/27. 「표와 차트에 값, 범례, 축 라벨이 없어 어느 항목이 얼마인지 읽을 수 없음」을 세는 목록에서 빼고 「세지 않는 것」으로 옮겼다. 원본 컴포넌트 차트 대부분이 값을 붙이지 않아 원본 동등 기준(유저 10/13)으로 결함이 아니다. 66 문서 원인 묶음 chart-no-values 가 v2 운영 2,000 양성 615 였다. 값 자리(표의 칸, 막대 라벨 자리)가 있는데 비어 보이는 것(empty-value)과 끊김, 가림, 겹침, 배경과 섞임은 그대로 결함이다. important 의 예에서 「차트의 값이나 범례」를 뺐다. 같은 차트의 다른 막대나 점에는 값이 붙었는데 일부만 빈 것을 값 자리 비어 보임의 예로 적었다.'
- 'v4 (2026-10-27): 빈 자리는 page_yaml 에 값이 있는데 결과에서 빠진 경우만 센다(유저 결정 10/27, decided_1027g). page_yaml 자체의 빈 칸은 세지 않고, 남는 템플릿 칸은 R4 몫으로 뺐다. 입력에 page_yaml 과 binding 을 더했다.'
- 'v5 (2026-10-27): 글 노드만 본다(사진, 장식 그림 속 글자는 세지 않음, 장식 도형이 닿아도 읽히면 세지 않음). 빈 자리 근거는 결과의 빈 칸을 가리켜야 하고, page_yaml 의 열 머리글과 열 수를 넘는 여분 값은 빠진 값이 아니다.'
- 'v5 측정 방식 (2026-10-27): 질문은 그대로 두고 2단 측정기로 바꿨다(measure). 1단 low 에서 결함인 단위만 medium 3회로 다시 묻고 최빈 답이 결함일 때만 결함이다. 1단에서 가장자리에 닿은 글자, 글자 단위 줄바꿈을 잘림으로 보는 거짓 양성이 남아서다.'
