Index
2026-09-21 — Progress

routine 온라인 P0~P3 구현 — 턴 기반 비용모형으로 견적 $212→$123

scene_bench | Online Execution Track — routine(type3), P0~P4

TL;DR

$123
본 런 견적(← $212)
726
확정 셀
4
발견·수정 결함
287
tests/exec 통과

1 배경 / 목적

사용자 결정 4건(routine 먼저 · 예산 restore식 재계산 · multi n≤4 · 헤드라인 per-answer GC)을 받아 파일럿까지 구현한다. 사용자가 결과를 디테일하게 볼 수 있어야 하므로 실패 사례 · 원문 로그 · 영상까지 파일럿 산출물에 포함시키는 것이 목표.

2 작업 내용

견적 재산정 — 이전 $212는 과대였다

restore 본 런 372행에서 턴 수를 다시 뽑아 비용 모형을 바꿨다. 답 개수로 선형 외삽했던 것이 틀렸다.

답 개수행평균 턴턴 상한$/턴초/턴
132123.250~57.007956
23638.160.006755
31548.560.006555

턴당 비용·시간이 답 개수와 무관하게 일정(편차 2% 이내)하고 턴은 TURN_CAP_MAX=60에서 포화 → 비용은 턴에 선형. 물체당 ≈16턴이라 60턴이면 3~4개가 한계 → 결정 A1(multi n≤4).

구현 (TDD — 순수 함수는 테스트 먼저)

가족 플러밍 7곳: --v1-families·V1_FAMILIES·플래너 화이트리스트에 routine 추가. task_family = "find" if auto_release else "restore"(불리언 역추론)를 명시 인자로 교체 — 3번째 가족을 표현할 수 없었다. 채점·예산: answers[].scoring=="result"가 pick으로 떨어지던 것을 place_on 분기로, dataset_step_budget routine 분기 = 5000 + 3500×(답-1). 씬 재구성 scene_edit.py 신규 272줄 + build_env(scene_edit=) 훅 — 생성기 모듈을 베끼지 않고 직접 작성(import 부작용 회피, 버전 드리프트 방지).

3 결과 (수치)

발견·수정한 결함 4건

#결함영향
①주입물 씬 메타 주입 시점매니페스트 4샤드 중 3개가 첫 컨텍스트에서 즉사(AttributeError in get_thor_name). synth_meta를 build_env 반환 후 넣어 이미 늦음 → init_scene 훅 안, base_cls.init_scene 앞으로 이동. 로컬 단일 컨텍스트 검증에서는 안 보임(스파이크 편이 우연히 통과)
②routine_multi 질의문 불일치데이터셋 원문과 --multi-items 문구 차이로 read_answer_key가 못 찾아 multi 전량 assert 사망 → query_text_of()가 정본 빌더 재사용
③제거 목록 원천is_static 메타가 데이터셋이 아니라 env에 있어 매니페스트는 빌드 1회 필요
④바디 정렬이 자식 바디까지 포함첫 산출 가구 28개(소품12루트+자식12+의자4바디) → 최상위만 남기니 가구 2개(스파이크 기록과 일치)
단계상태
P0 셀·예산·채점✅ 726칸 확정, 테스트 통과
P1 매니페스트🔄 4샤드 제출, 9/100 완료(계정 GPU 상한 71/72로 한 샤드씩)
P2 src 통합✅ 커밋 3건
P3 전수 검증⏸ 스크립트 완성, --dependency=afterok로 P1 뒤 자동 시작
P4 파일럿⏸ 셀 10칸 확정(direct 7 + multi 3), 견적 $2.28 / 5.2 GPU-h
별건: 워킹트리 test_nav0_physics.py 2건 실패는 내 변경이 아님 — git archive HEAD에서는 통과, 워킹트리에서만 실패(다른 세션의 미커밋 변경이 원인, 조율 전이라 손대지 않음)

4 Takeaway

의미

결함①은 단일 컨텍스트 검증이 못 잡는 종류였다(전수 제출이 진짜 게이트). 결함②는 "읽기 트랙과 온라인 입력이 같아야 한다"는 원칙의 사례 — 정본 빌더를 재사용하지 않았으면 multi 전량이 조용히 다른 조건으로 돌 뻔했다. 견적이 $212 → $123으로 내려가 승인받은 범위 안에 들어왔다.

5 Next Steps

미해결 한계

P1·P3은 큐 대기가 지배(core 계정 71/72 점유). 매니페스트 ≈2.4 GPU-h, 검증 ≈2.5 GPU-h.

다음 작업

P3 게이트 통과 편 확인 후 파일럿 제출(src를 tmp/routine_online/src_r1로 동결 복사 필요). freeze 정책 A/B는 P3에서 MODE=freeze 부분집합 재실행으로 결정. 파일럿 보고에 칸별 원문 턴 로그 · 키프레임 시트 · 시뮬 영상 · 복원/drift/렌더 수치 · 실패 케이스 3건 이상 · 본 런 견적 재측정 포함.