dc1c8144, 09-11 11:55 UTC)가 하네스가 기대하는 입력 규격과 다름 — 정식 행엔 receptacle_class+instances[](uid)만 있고 gt_routine/routine_labels/leak_last_frame이 요구하는 answers[].holdout/room/surface·axes.k_evidence·leak_objects가 없음. meta.json에 방 이름도 없음scripts/build_routine_official.py 신설 — 읽기 전용 루트에 하네스 필드를 채운 queries.jsonl + symlink 자산 계층 생성stand_ 접두 body를 전부 "tv stand"로 오기(SideTable도 TVStand로 표시) — meta.surface_display 우선 조회로 해소, find/restore/resume 바이트는 불변tests/eval -k routine 33 passed — 하네스 코드 변경 0으로 이튿날(9/12) 5모델 격자 측정 착수사용자 지시(260912 00:40 KST): "routine is ready. plz check and ready for the eval". 정식 릴리즈는 HF main dc1c8144(09-11 11:55 UTC, 모든 type3 컨텍스트 끝에 테이블 복귀 꼬리를 붙여 질의 이미지 누출을 97/214→2/214로 줄인 버전)이고,
다른 세션이 미디어 39.95GB 수령·전수 검수까지 끝낸 상태였다(claude/260911/analysis-routine_dataset_e02c1f3d.md).
gt_routine/routine_labels/leak_last_frame이
answers[].holdout/room/surface·axes.k_evidence·leak_objects를 요구하는데 정식 행엔 receptacle_class+instances[](uid)만 있고,
meta.json에 방 이름조차 없다. 이대로는 로더가 KeyError로 죽는다.scripts/build_routine_official.py (원본 불변)읽기 루트 ~/datasets/scene-mem-benchmark-v1_dc1c8144_read/를 신설 — eval/index.json·README·stats.json 사본 +
하네스 필드를 채운 eval/routine/queries.jsonl + contexts/type3/<ctx>/(videos·traj.h5·states·subtasks.json은 symlink, meta.json만 사본).
memory_strategy._surface_wordstand_ 접두 body가 SideTable·TVStand 둘 다에 쓰여 접두사 표시가 "tv stand"로 오기되던 것을,
meta.surface_display[uid]를 우선 조회하도록 고쳤다(없으면 기존 접두사 표시로 폴백 → find/restore/resume 바이트 불변).
수정 후 100편 textlog 검사: "tv stand" 0회 · "side table" 135회.
scripts/run_routine_shards.sh(API, run_resume_shards 구조 재사용) · scripts/serve_eval_vllm_routine.sh(오픈, vLLM 동거 서빙).
컨텍스트 목록은 queries.jsonl에서 읽고, 기본 5전략(blind·textlog·frames·rf-v3·vis-pure, 사용자 결정 260907), writer v2 env는 inner_cmd에 직접 박는다.
| 항목 | 결과 |
|---|---|
| 어댑터 산출 행 수 | 314행 / 100편 — surface 10종 전부 어휘 안(side table 178·sofa 128·armchair 68·laundry basket 141·dining table 108·shelf 51·desk 48·countertop 10·coffee table 7·tv stand 4) |
| 방 커버리지 | 4종 전부 어휘 안, holdout 단어 22종 |
| k_evidence 분포 | {1: 91, 2: 113, 3: 89, 4: 21} |
| evidence_source 분포 | {self: 234, observed: 40, mixed: 40} |
| 누출 검증 | load_context + leak_last_frame 100편 관통 — direct 2/214 · multi 2/100 (선행 데이터 검수 수치와 일치 → 집계에서 자동 제외) |
| 테스트 | run_eval_routine --dry-run 2편 정상, 샤드 스크립트 dry-run 2샤드 정상, tests/eval -k routine 33 passed |
Routine은 데이터 확정부터 측정 착수까지 하네스 코드 변경 없이(어댑터 신설 + textlog 표시명 수정만으로) 갈 수 있음을 확인했다.
find/restore/resume 세 가족에서 이미 검증된 "어댑터 계층으로 데이터 포맷 변화를 흡수한다" 패턴이 네 번째 가족(routine)에서도 그대로 재현됐다 — 하네스 핵심 로직의 안정성을 보여주는 사례.
이 작업 직후(9/12) flash-3.7·luna·오픈 3종 제출이 이어져 routine_official_grid 5모델 결과로 이어졌다.
armchair/sofa 표기는 GT가 바디 기준이라, 모델이 "sofa"라고 답한 armchair 행은 오답 처리된다 — 발화 자체가 "armchair"라고 말하므로 정합이지만, 결과 해석 시 이 셀을 별도로 확인할 필요가 있다.
사용자 승인 후 flash-3.7·luna·오픈 3종 제출:
KST 9/12 버킷 견적: D(힌트) ≈$26 + flash ≈$38 + luna ≈$6 ≈ $70. 격자 생성기(grid_routine.py)·보관소 가족 추가는 결과 도착 후 — 결과는 260914-online_v2seed_rerun.html과 별개로
260907-260913/260912-routine_official_grid.html에 정리됨.