on_floor 또는 misplaced == "on_floor"인 답은 pick(들어야 성공)이 아니라 navigate_only(도달만 하면 성공)로 답 단위 강등sr_c_strict로 병기 — 비교 가능성 유지온라인 v5 bowls 질의(val_379__0, "Pick up all the bowls I moved earlier")의 두 번째 bowl은 컨텍스트 중 로봇이 "가다 떨어뜨린" 물체로 바닥에 놓여 있다(on_floor: true, z=0.08). 데이터셋(v0.7)은 질의 상단에 scoring: lifted·pickable: true를 붙여 두 물체 모두 "들어야 성공"으로 명세하지만, 재생 트랙에서 oracle(정답 위치, 접근 0.46m)과 textlog 둘 다 이 bowl을 2회 × 600스텝 실패했다.
사용자 판단(260822): "떨어져 있는 건 reach-only로 하는 게 맞다. 안 하면 무조건 fail이다." — 데이터가 형식적으로는 pick을 요구해도, 정책이 구조적으로 못 드는 바닥 물체를 계속 fail 처리하면 실행 SR이 메모리 신호가 아니라 조작 정책의 한계를 재는 지표로 오염된다. 마침 v1 데이터셋(다른 세션에서 생성)도 답별로 scoring: pick | navigate_only를 명세하고 있어, 이 계약에 v0.7도 맞추기로 했다.
단일 판정 소스를 질의 단위에서 답 단위로 내렸다 (commit 76a8e6e).
Stage C(재생 실행)는 navigate_only 답을 pick 시도 대상에서 제외한다. 온라인 트랙은 navigate 도착 시 GT 원위치까지의 거리로 답별 reached를 판정(online_success(answer_scoring=, reached_gt=))하도록 확장하고, 행에 success_strict / reached_gt / answer_scoring을 함께 기록해 두 방식을 비교할 수 있게 했다.
테스트 15개 추가(exec 스위트 103개 통과)로 회귀를 막고, 플랜 파일을 전량 재생성했다(tmp/exec_plans, 1,216 플랜·3,883 셀·id 동일 — scoring lifted 938 / reached_only 278, navigate_only 답 포함 플랜 284건, pick+floor 혼합 6건). 재생 트랙은 재실행 없이 기존 결과를 새 규칙으로 재집계만 했다(tmp/exec_summary, 옛 집계는 tmp/exec_summary_strict_backup_260822로 백업).
| 셀 | 옛 SR_C | 새 SR_C (바닥=reach) | Δ | 바닥 층(n=30) 옛→새 |
|---|---|---|---|---|
| oracle-loc | 0.647 | 0.658 | +0.011 | 0.80→0.93 |
| vis-pure@flash | 0.477 | 0.477 | 0 | 0.30→0.30 |
| frames-uniform@flash | 0.454 | 0.463 | +0.009 | 0.40→0.43 |
| textlog@flash | 0.290 | 0.296 | +0.006 | 0.33→0.40 |
| rollforward-v2@flash | 0.167 | 0.175 | +0.009 | 0.27→0.30 |
| 그 외 (sonnet 셀·blind) | Δ 0~+0.006 | |||
순위는 불변이다. 영향이 작은 이유: 바닥 답은 대부분 도달하면 이미 들려 있었고(바닥 pick의 P(lift|reached)가 높음), 애초에 바닥 답의 절대 수 자체가 적다(질의 353건 중 바닥 층은 30건).
온라인 v5 재판정: bowls 질의 = bowl#1 lifted + bowl#2 도달 0.70m(카운터탑 접근 포즈) → 새 규칙에서 ✓(옛 규칙에서는 ✗) → v5 최종 2/3(remote ✓, spatulas ✗ 조기 done). HTML 260822-online_first3_v5_turns.html TL;DR에 답별 채점 병기, 재생 리포트 260821-e2e_exec_sr_results.html 격자에도 (all-lift) 값을 병기했다.
"무엇을 성공으로 볼지"는 데이터가 정하지만, 데이터가 pickable로 표시해도 정책이 구조적으로 못 드는 바닥 물체를 pick 기준으로 채점하면 실행 SR이 정책 한계로 오염된다. 답별 채점(바닥=도달)은 메모리 벤치마크가 재고자 하는 "어디 있는지 기억하는가"에 더 가깝고, 옛 값은 sr_c_strict로 남겨 비교 가능성을 유지했다.
바닥 이외에 "구조적으로 못 드는" 답(예: 높은 선반)은 아직 이 규칙이 다루지 않는다 — v1 데이터셋의 pick_fail → navigate_only 강등 계약으로 전환하면 자동으로 흡수될 예정.
온라인 spatulas류의 조기 done(허위 완료 주장)이 남은 온라인 손실 축이다 — false-claim 지표를 추가하고, 1차 셀 실행(80질의 × {textlog, vis-pure, blind} × flash) 여부는 사용자 결정 대기.