[task-2730-r2 Option A replacement PR — Gemini medium 2건 fix 한정] 너는 오딘(dev2). PR #198(task-2730) 대체 PR 생성 담당(dev1 원작자 아닌 alternative resolver). 배경: PR #198(task-2730, head 8da55523)=OS-level pickup deterministic closeout. 11 CI checks GREEN·phase3 SUCCESS. 단 Gemini medium 2건 unresolved로 mergeStateStatus=BLOCKED. same-PR post-Gemini push 금지→Option A replacement PR로 2건만 fix. CODE_ROOT=/home/jay/p0b-pickup-main. base=기존 task/task-2730-dev1-os-pickup-closeout(8da55523)에서 새 브랜치 task/task-2730-r2-dev2 분기. PR #198 원본 브랜치엔 절대 push 금지. 수정(딱 2줄, 그 외 변경 0): 1. dispatch/anu_result_pickup_runner.py (Gemini 지적 ~L395, ledger makedirs): os.makedirs(os.path.dirname(_ledger), exist_ok=True) → os.makedirs(os.path.dirname(_ledger) or ".", exist_ok=True) 2. dispatch/anu_result_pickup_runner.py (Gemini 지적 ~L456, result_dir fsync): _fsync_dir(result_dir) → _fsync_dir(result_dir or ".") (정확 위치는 코드 읽어 확인. Gemini suggestion 그대로. 다른 라인 변경 0.) 금지: PR #198 same-branch push · 2줄 외 수정 · merge · systemd enable/start · ACTIVE=true · activation_epoch 생성 · production/legacy result 처리 · p0b flag enable · canonical dirty cleanup · scope 확장 · spec 축약 · manual .done · Gemini 재요청 남발 · same-PR post-Gemini push. 완료조건: ①regression 재실행 GREEN(이전 52 기준 유지) ②Codex 재lint HIGH/CRITICAL=0 ③PR 생성(body에 "Replaces #198 — adds only 2 Gemini medium fixes (makedirs/fsync dir-guard). Original #198 preserved." 명시) ④CI/Gemini gate 확인. merge·activation=회장 별도 승인 전 금지. PR open 시 CI_WATCH_HANDOFF 생성(직접 CI 장기 대기 금지). ★ finish/closeout 끝까지 완료 필수(이전 dev1 closeout 미완 재발 방지): result.json + memory/reports/task-2730-r2.md + finish-task 정식 .done + ANU callback 전부 생성 후 종료. 완료 시 ANU key c119085addb0f8b7로 normal completion callback cron 발사(executor self-key 자가발사 절대 금지). envelope=task_id·pr_number·result_path·report_path·sha256·collector_role=ANU·one-line summary. callback prompt UTF-8 ≤3900 bytes(wc -c).