uid 접두사 stand_가 TVStand 22개 + SideTable 15개 바디를 공유, datagen이 둘 다 "tv stand"로 발화(정당한 명명, 하네스가 지어낸 이름 아님) — 진짜 결함은 접두사 공유D2 분해(관련 카드) 중 GT "tv stand" 칸에서 어떤 이미지 전략도 .23을 못 넘는 것을 발견했다. 렌더해 보니 TV가 없는 원형 접이식 테이블·사이드 테이블이었다. 처음엔 "데이터셋은 stand라고만 부르고 'tv stand'는 하네스가 지어낸 이름"이라고 보고했는데, 사용자가 "왜 tv stand라 했는지 이유부터 확인"을 지시했다.
git log -S 확인: "stand": "tv stand"는 260813 파일럿부터 있었고 260819 v3 계약에서 vocab_v1.json으로 이동. datagen(scene-mem-gen/scene-mem-datagen) 확인 결과 scenario_gen.py:206의 NAME_FIX = {"TVStand": "tv stand", ...} — datagen 자신이 "tv stand"라고 부른다(내 첫 보고는 오류, 철회).
find 정답에 나온 stand_ 바디 37개 전부를 scene card와 대조(tmp/d2/stand_split.py) → 분류별 전 전략 채점 → 제외 시 헤드라인 영향 계산. 이어 사용자 지시("돌리기 전에 다른 접두사도 다 확인")로 tmp/vocab_audit/audit_surfaces.py·audit_objects.py로 가구·물체 접두사 전수(find v1.0/v1.2, restore v1.0/v1.1) 대조. 전부 $0.
| 진짜 분류 | n | blind | textlog | frames | rf-v3 | vis-pure | tagmem |
|---|---|---|---|---|---|---|---|
| TVStand | 24 | .250 | .500 | .375 | .333 | .375 | .417 |
| SideTable | 24 | .000 | .000 | .000 | .000 | .000 | .000 |
SideTable 답은 desk 16·coffee table 10·dresser 6·dining table 5 — 방만 보면 정상(frames .667·rf-v3 .625)인데 이름이 어휘에 없어서 물체 단위 채점이 전부 틀린다. 32B도 6전략 전부 0/24 동일.
| 전략 | flash 현행 → 제외 후 | 32B 현행 → 제외 후 |
|---|---|---|
| vis-pure | .497 → .520 | .214 → .224 |
| tagmem | .510 → .534 | .190 → .199 |
가구 접두사 16개 중 15개가 상류 분류와 1:1(diningtable→DiningTable 160바디, chair→Chair 108, countertop→CounterTop 71 등). stand만 TVStand 34 + SideTable 28 바디. 물체 접두사 43개는 뭉개짐 0이나, 어휘 표시 이름이 WordNet식이라 발화와 다른 것 8종 발견(kettle→boiler, spray bottle→atomizer 등) — flash 재질의율 영향 0.2%, 32B는 최대 50%(kettle)까지 오르나 전 전략 동일 조건이라 순위 영향 없음.
| tagmem − vis-pure | 현행 | A(제외) | B(수정, 낙관 상한) |
|---|---|---|---|
| 헤드라인(hidden 제외) | +.013 | +.014 | +.002 |
SideTable 24행 방 정답: rf-v3 15(.625)·frames 13(.542)·vis-pure 12(.500)·tagmem 6(.250, 최하) — 되살아나는 행에서 tagmem이 가장 약해 우위가 사실상 사라진다.
"tv stand"라는 이름 자체는 맞다. 고칠 것은 이름이 아니라 이름의 정본을 uid 접두사에서 scene card category로 옮기는 것(방 이름과 같은 교훈). 28행은 어떤 메모리로도 맞힐 수 없는 구조적 0점이며, 순위는 안 바꾸지만 전 전략의 절대 수치와 오라클 상한을 2pp가량 누른다. D2의 tagmem 열세와는 무관(전 전략 동일하게 0).
tagmem·rf-v3는 옛 어휘로 메모리를 이미 써 놨다(사이드 테이블을 "coffee table"/"desk"로 기록) — 읽기만 재측정하면 이미지 전략만 유리해져 텍스트 메모리에 불공정. 걸린 편 전체를 재ingest+전질의 재읽기해야 함(find 16/100편·109질의, restore 28/100편·171질의).
A안($0, 권장): SideTable 낀 행을 place_gradable=False로 재채점만. B안(정식): 어휘 v4 + 재ingest ≈$33(전량 ≈$130 대비), 32B $0 — 단 위 투영대로 tagmem 우위를 깎으므로 신중히 결정. `src/sbench_eval/facts.py`는 다른 세션이 미커밋 수정 중이라 구현 전 조율 필요.