Index
2026-05-20 — Progress

Sub-Project A 종료 — 병합 + HARD STOP + Option B + HF Push

memer | scene-mem Sub-project A §9-5 최종 마무리

TL;DR

사용자 "병합 + HF push" 승인 → oracle→canonical 로컬 병합 완료. 그러나 defect-13(emit_fine_subtasks의 _segment_turns가 door-grounding 없이 COUNT만 계산, byte-identity 12/24 FAIL)이 A3 zero-trust gate에 정확히 차단됨. defect-13 수정(A3 24/24 PASS) 후 task_subtasks.json ← oracle 교체가 재현성 계약 위반(HARD STOP)build_task_subtasks() SoT로 재현 불가. Option B: baseline 복원 + oracle 별도파일 + emit에 --task-subtasks 인자. HF additive push commit 7676aa4b(fine_subtasks 858 + manifest). 221 tests passed. Sub-project A 데이터 파이프라인 완전 종료.

221
tests passed
858
fine_subtasks HF
7676aa4b
HF commit
24/24
A3 gate
HARD STOP
재현성 계약

1 배경/목적 (왜)

B1 side-by-side(baseline 88.36% → oracle 89.42%)로 oracle 데이터의 B1 비회귀 + 물리 정확성 향상이 입증됐다. §9-5 = 이 결과를 바탕으로 oracle을 canonical로 병합하고, HF dataset(Keh0t0/scene-mem-benchmark)에 fine_subtasks를 additive push하는 단계.

단계별 zero-trust gate가 설계대로 모든 불충실 push를 차단하고, 마지막에 재현성 계약 위반을 정확히 적발하여 안전한 Option B로 수렴하는 과정.

2 작업 내용 (어떻게)

Phase 1 — 로컬 병합 (가역·완료)

mv data/scene_mem_v2 → data/scene_mem_v2_baseline_pre_oracle (sha256: 28b4bc75/37590604) mv data/scene_mem_v2_oracle → data/scene_mem_v2 (sha256: 88b5e193/45f1c6b6) # task_subtasks도 동일: baseline → _baseline_pre_oracle, oracle → canonical emit_fine_subtasks --dry-out ./tmp/fine_emit_oracle → 858 파일 + manifest

Defect-13 발견 및 수정

A3 gate(test_byte_identity_against_jsonl) 24개 중 12 FAIL. 근본원인: _segment_turnsresolve_subtasks(door 없음, manifest 없음)로 per-segment COUNT만 계산 → canonical이 oracle(door-grounded, segment당 turn 수 상이)이면 슬라이스 경계 어긋남. defect-12 패턴 3번째.

수정: emit_fine_subtasks에 --init-state-manifest 추가 + _seg_turn_countbuild_turns_for_test 3-way 디스패치 미러 (per-test door machine 스레딩, manifest 있을 때 resolve_subtasks_with_doors). A3 gate 24/24 PASS.

HARD STOP — 재현성 계약 위반

test_manual_subtasks_v2.py 13 FAILdata/task_subtasks.json ← task_subtasks_oracle 교체가 안전 golden 위반. 확인: build_task_subtasks()(SoT = AST + manual_subtasks.json) == pre-merge baseline(True), == oracle disk(False, 163 task rds 차이). oracle task_subtasks는 기본 SoT로 재현 불가 → 260516 설계대로 HARD STOP.

Option B 실행 (사용자 결정: "되돌리고 door는 별도파일")

단계내용검증
1. task_subtasks.json 복원baseline(1e1db30d) 복원build_task_subtasks()==disk True, 148 passed
2. oracle 별도파일 유지task_subtasks_oracle.json 그대로emit에 --task-subtasks 인자로 참조
3. 테스트 faithful 갱신emit/eval 테스트가 oracle spec+manifest로 검증weakening 아님 — 실 산출물 반영
4. 로컬 mirror oracle emit858 fine_subtasks + manifest (fine 92.29% / composite 7.71%)benchmark 원본 불변(additive)
5. 전 suite221 passed, 0 failed

HF Additive Push

huggingface_hub.upload_folder( allow_patterns=["fine_subtasks_manifest.json", "data/*/videos/fine_subtasks.json"], delete_patterns=None # additive only ) → commit 7676aa4b37f3fb94df7469de8728cdb78036fa78 (Keh0t0/scene-mem-benchmark dataset, private)

3 결과 (수치)

최종 상태 요약

항목상태검증
전 테스트221 passed, 0 failedmanual_subtasks 148 + emit A3 24 + decomp + eval_scoring
로컬 data/scene_mem_v2oracle door-grounded (A3 검증)sha256 88b5e193/45f1c6b6
task_subtasks.json재현가능 baseline (안전 golden GREEN)build_task_subtasks()==disk True
task_subtasks_oracle.json별도 door spec 유지emit에 --task-subtasks로 참조
baseline 백업완전복원가능 (_baseline_pre_oracle)sha256 28b4bc75/37590604 일치
HF fine_subtasks858개 + manifest additive 반영commit 7676aa4b, SMOKE byte-identical
HF benchmark 원본subtasks.json 858 / eval_spec.json 858 불변additive only
B1 m188.36% → 89.42% (+1.06pp)orchestrator 독립 재카운트

Gate 체인 통과 이력

A3 zero-trust gate가 defect-13(emit 불충실)을 설계대로 차단 → 수정 후 24/24 PASS → 그러나 재현성 golden이 더 깊은 계약 위반 적발 → Option B로 정확히 수렴. 3겹 zero-trust가 순차적으로 올바른 결정을 강제했다.

4 Takeaway

Sub-project A 데이터 파이프라인 완전 종료. 260516 첫 설계부터 260519 defect-11 fix, 260520 §9-5 HF push까지의 결함 13개 체인이 마무리됐다.

HARD STOP의 의미 — safety golden의 올바른 역할

defect-13 수정 후 "A3 24/24 PASS니까 push 가능"으로 보였으나, 260516에 작성한 test_manual_subtasks_v2.py golden이 더 깊은 위반(SoT 재현성)을 잡았다. golden은 편의상 완화하는 것이 아니라 근본정정해야 할 때의 신호다. 기존 선례(260516에서도 신규 검증이 놓친 걸 기존 golden이 잡음)가 이번에도 반복됐다 — golden 설계의 적절성 입증.

Option B가 가장 작은 변경으로 계약을 유지하면서 oracle 데이터를 HF에 반영하는 올바른 경로였다.

5 Next Steps