Index
2026-09-04 — Plan

Routine(type3) task — naive plan v0 (TidyBot형 정리 규칙)

scene_bench 데이터 생성 · 4가족 중 마지막 D Routine · 생성기 관점 초안

TL;DR

0
새 primitive
2
규칙/편
6
유닛/편 (k=3×2)
1062
닫힌 수납처 2종+ 집
5
결정 대기

1 배경 / 목적

4가족 중 D Routine만 데이터가 없다. 사용자 제안은 TidyBot형: 정리 규칙을 컨텍스트로 보여주고 "이 옷 정리해"(direct) 또는 "식탁 위 다 치워"(stateful)를 시킨다. scene_bench 쪽에는 이미 Routine의 Direct/Stateful 분기(증거 출처 축)와 데이터팀 전달 요건(rule·evidence[]·holdout·any_instance_ok·반사실 짝)이 정리돼 있고, TidyBot 벤치 형식(64 시나리오: 수납처 2 · seen 4~10 · unseen 4~10 · 규칙 문장)도 확인했다.

없는 것: 캔 에셋 없음 · 쓰레기통 투입(DISCARD)은 2026-08-11 문법에서 제거. v0에서 뺀다.

2 설계 초안

[컨텍스트] 규칙 2개 (예: 음식→냉장고, 천→서랍장 서랍). 규칙별 유닛 k=3, 두 규칙 교차. U1 "Put the apple on the counter in the fridge." U2 "Put the towel on the bed in the dresser." … 로봇이 실제로 옮긴다 → 증거 = 자기 실행 (격자 D①). 컷 없음, 끝은 standby. [평가] 시작 상태 = 끝 상태 + 홀드아웃 teleport (Restore ② 장치 재사용) Direct "Put this away." 로봇 앞 홀드아웃 1개 → 정답 = 수납처 클래스 any_instance + 닫힘 Stateful "Clear the dining table." 식탁 위 홀드아웃 2×2 (+미끼 1, 선택) → 물체별 정답, 진행 추적 [쌍둥이] 같은 집·같은 홀드아웃·규칙 값 뒤집음 (음식→냉장고 / 음식→서랍) → A6 짝 채점

규칙 풀 (v0)

상위 클래스증거 하위 카테고리홀드아웃수납처 값 후보 2개
FOODApple · Potato · EggTomato · BreadFridge / Dresser 서랍
CLOTHClothHand_Towel (1종, 공급 확인)Dresser 서랍 / Hamper(주입)
DISHCup · BowlMug · PlateDresser 서랍 / Fridge
GADGETRemote · CellphoneAlarm_ClockDresser 서랍 / SideTable 서랍
TOILETRYSoap_BottleSpray_BottleDresser 서랍 / Fridge

불변식 6개

① 증거 k≥3·반례 0 ② 홀드아웃 하위 카테고리 컨텍스트 미등장 ③ 질의 시점 증거 비가시(수납처 닫힘, 열린 채 끝나면 폐기) ④ 쌍둥이 필수·blind ≤ 1/K ⑤ 지시문이 규칙을 안 흘림(cue ablation은 형제 행) ⑥ 목적지 수납처에 빈 칸이 남아야 함.

코드 변경 지도

파일무엇규모
routine_gen.py (신규)규칙 샘플러(클래스·값·쌍둥이) · 주입 명세 · 지시 스케줄. resume_gen 골격 import~500줄
resume_stage.py 공용화소스 상면 n+1 배치 · Hamper 자리 · 목적지 칸 store_ok 실측소~중
run_scene_mem.pyroutine 서브커맨드 (= resume 실행기 − cut/stop)소
tools/prestage_routine.py · pack_routine.py사전 패스 · contexts/type3 팩 (사본)소
tools/build_routine_queries.py (신규)teleport 명세 · 정답 · 쌍둥이 링크 · 미끼~400줄
하네스(scene_bench)routine 채점(칸 안+닫힘, any_instance, abstain) · teleport 시작 상태 · rule_stmt 추출중 (평가팀)

3 근거 수치

항목실측
닫힌 수납처 공급 (train gate 1600채)Dresser 1590채 · Fridge 1538채 · 두 종류 이상 1062채
carry 등급 배우Apple 18 · Potato 27 · Egg 30 · Cloth 9 · Cup 26 · Bowl 16 · Remote 3 · Cellphone 7 · Soap_Bottle 28
Hamper 주입Laundry_Hamper_1_1 검증됨 (입구 62 cm · 삽입 IK 82/83)
type2 실측 (재사용 가정)완주 중앙 49분 · 성공률 큐 17% / bench25 47% · pack 0.56~0.72 GB/편
비용 (100편 = 쌍둥이 50짝, 성공률 30%)≈330 시도 · 1-GPU 6슬롯 잡 ≈55 잡·시간 · 저장 ≈60 GB pack
핵심: 수납처를 닫힌 곳으로 제한 + 홀드아웃을 미등장 하위 카테고리로 + 쌍둥이 편, 이 셋이면 Routine이 메모리 벤치 공리(A1·A5·A6, 규칙 1·2)를 통과한다.
리스크: FOOD→Fridge는 상식과 겹쳐 짝 반대편(→서랍)이 부자연스럽다. 파일럿에서 blind를 재고 값을 조정한다. Hand_Towel·Bread는 1종뿐이라 홀드아웃 공급 확인 필요.

4 Takeaway

의미

Routine은 새 조작 능력 없이 기존 생성기 두 층(type1 store_in, type2 순차 지시)의 조합으로 만들 수 있다. 신규 코드는 계획 샘플러·질의 빌더·팩 3개이고, 나머지는 사본/공용화다.

5 Next Steps

결정 대기 5건

① v0 증거 출처: D① 자기 실행만 vs D② 관찰 병행 ② 수납처: 닫힌 곳만 vs 열린 상면 포함 ③ 규칙 수 2 vs 3 ④ Stateful 미끼(기권 행) 포함 여부 ⑤ 캔/쓰레기통 제외 확인.

결정 후

docs/ROUTINE_TASK_PLAN.md 정식 계획서 → 환경 복원(경로·sbatch·molmospaces 패치본) → val 3채 계획 → prestage → 카메라 끄고 1편 → 2~3편 + 질의 → scene_bench Tier-A blind/oracle 확인 → 물량.

이관 누락 추가 발견

datagen_out/resume/coverage/press_cov_*.jsonl이 묶음에 없음. type2 press task 재생성에 필수(routine에는 불필요).