stand_가 TVStand(find 32·restore 76)와 SideTable(38·65)을 한 이름으로 합쳐 답 어휘에 side table이 없다 — 모델이 그렇게 답하면 버려졌다. 규칙 기반 구제로 find v1.0 158행·v1.2 79행·restore 62행 복구.grading._place_key가 위치 다중집합만 비교하고 category를 버려 GT {컵→주방,책→침실}에 {컵→침실,책→주방}이 통과 — 정규화 후 대응 보정으로 21행 강등.dresser는 기각 유지 — 씬카드 확인 결과 restore 54/54·find 80/82가 그 방에 실제로 존재하는 dresser(진짜 정답 후보 오답).사용자가 인스펙터를 보다가 세 가지를 짚었다 — 전부 실재하는 결함이었다.
추가로 "rf-v3만 교차를 안 했다"는 지적으로 교차 실험의 공백도 확인했다(별도 카드 rfv3_selfwrite_cross_injection_ab 참조).
모델 원문에 side table 317회·nightstand 164회 등장. "어휘에 없어 가장 가까운 것으로 매핑한다"고 명시한 행 102개 중 정답 1개.
로그는 결과 종류(ok/failed/failed_no_place/failed_dropped/failed_not_seen)는 구분하지만 최종 안착 위치를 문장에 안 넣는다. 실패 67건 중 바닥은 16건뿐이고 나머지는 출발지·목적지·인접 가구에 남는데, 모델은 일관되게 "실패→바닥"으로 추론한다. 실제로 바닥인 failed_dropped는 12건 중 11건 정답 — 해석을 뒷받침한다. subtasks.json에 outcome·on_floor·settled_xyz가 이미 있다(편 단위, 정답 참조 불필요)지만 고치려면 재측정이 필요하고 오라클 상한만 움직이므로 기술만 하기로 결정.
| 가족 | R2 구제(↑) | 대응 강등(↓) |
|---|---|---|
| find v1.0 | 158 | 5 |
| find v1.2 | 79 | 15 |
| restore | 62 | 8 |
| resume·routine | 0 | 0 |
flash 기준 본표 변화: find tagmem .514→.522·오라클 .476→.485 / restore tagmem .186→.190·오라클 .447→.468. 실측 부풀림(③)은 작다 — 전 모델·전 전략 합 21행, 칸별 최대 −3.7pp, 대부분 0행.
1. oracle(textlog)은 "장면 GT"가 아니라 "로봇 자신의 행동 로그"다. 오답의 83~88%가 D2(남이 옮긴 것)이고 이는 설계상 대조군이다. acted에서 틀리는 건 실질적으로 실패 조작 하나뿐(29/30).
2. 이름 모호성(stand_ 접두사)은 두 트랙에서 서로 다른 증상으로 나타났다 — 온라인 실행에서는 접지 차단(260921 카드, 170/1490칸), 오프라인 채점에서는 답 거절(이번 카드, 102행 중 101 오거절). 같은 근본 원인이 트랙마다 다른 수정을 요구했다.
3. 대응 채점 결함은 실측 영향이 작다(21행) — 우선순위는 낮지만 evaluate-dont-optimize 원칙상 발견 즉시 고치는 것이 맞다.
textlog_lines_v2에 실패 후 최종 위치를 추가하는 것은 미적용 — 재측정이 필요하고 오라클 상한만 이동해 우선순위가 낮다.
보정 되돌리기 옵션 유지: SBENCH_FIX_BINDING=0 SBENCH_R2_TIGHT=0 후 --family 재실행(원값은 각 행 scores.place_set_raw). 온라인 트랙 핸드오프 claude/260921/handoff-online_eval_readtrack_fixes.md에 tv stand 앵커 모호성과 textlog 시드의 같은 결함이 정리돼 있음 — 다음 스냅샷 작업 전 확인.