[task-2731 finish-callback 강제 결선 — executor 완료 callback 코드강제] 너는 페룬(dev6). dev1/dev2 closeout 미완(callback 미발사) 구조 결함 해소. serial_only. 단일 지시서·필독: /home/jay/workspace/memory/tasks/task-2731-finish-callback-enforcement.md (sha256 7f5317dea08cf3d02bb8a7529bb623a7b2cd634de5f262f63a4a528cf8984401 무결성 확인). 이 md 그대로 수행·축약/재해석 금지. 설계 출처: memory/plans/p0b-pickup/finish_callback_enforcement_followup_task_packet_260610.md + task2731_finish_callback_enforcement_prep_packet_260610.md. base=main 95941e4e (CODE_ROOT=/home/jay/p0b-pickup-main). ★ worktree 반드시 .worktrees/task-2731-dev6 형태 명시 분기(CODE_ROOT 직접 체크아웃 금지). branch task/task-2731-dev6. 목표(ANCHOR): executor 가 callback 안 쏘고 죽어도 OS runner/collector 가 result.json 수거→collector_result/terminal marker/pickup.done 생성→ANU-owned callback launch 코드강제. dev bot prompt 의존 0·finish-task 끝단 단독 의존 0. callback=ANU key 강제·self-key 거부·audit jsonl. idempotency(result 1건 callback 1회). expected_files(좁힘): 신규 dispatch/anu_callback_launch_audit.py·dispatch/anu_finish_preflight.py·tests/test_anu_finish_callback_enforcement.py + 수정 dispatch/anu_result_pickup_runner.py(callback 결선)·dispatch/anu_pickup_driver.py(audit 호출)·result-json contract terminal_intent(코드 schema). systemd unit=파일/fixture/dry-run 검증만. owner-proof 재사용(수정0). 보고서 memory/reports/task-2731.md. ★ branch regex -rN/worktree mismatch/task-lock 마찰 우회는 anu_finish_preflight.py(신규)로 분리. 기존 guard 직접수정 최소. 금지: devbot prompt 수정 · credential/key 범위 확대 · ACTIVE=true · systemd install/enable/start · activation_epoch · production/legacy 처리 · 사후 callback 임의발사 · task-2730 재오픈 · PR #198/#199 조작 · canonical dirty cleanup · expected_files 밖 · merge · same-branch 오염 · finish-task 우회 성공을 완료로 과장 · owner-proof 핵심 변경 · spec 축약 · manual .done · same-PR post-Gemini push. 완료조건: ①expected_files 내부 diff ②fixture regression GREEN(isolated·canonical 0 touch) ③self-key callback 거부 검증 ④ANU-owned callback launch audit jsonl 생성 검증 ⑤result.json/collector_result/terminal marker/pickup.done idempotency ⑥branch -rN/worktree mismatch/task-lock 마찰 재현 테스트 통과 ⑦systemd install/enable/start 0 ⑧ACTIVE=false 유지 ⑨Codex 재lint(또는 동등 독립 정적검토) HIGH/CRITICAL=0 ⑩PR 생성 후 CI/Gemini gate. merge·activation=회장 승인 전 금지. fixture 필수: dev1(result+report 있고 .done/callback 미생성)·dev2(worktree mismatch+branch -r2+task-lock 마찰) 재현. PR open 시 CI_WATCH_HANDOFF. ★ finish/closeout 끝까지 완료(result.json+report+finish-task 정식 .done+ANU callback 전부 생성 후 종료). 단 본 task 구현 중엔 기존 수동 callback 경로 사용(자기 구현물로 자기 callback 금지). 완료 시 ANU key c119085addb0f8b7 callback(self-key 자가발사 금지)·envelope task_id·pr_number·result_path·report_path·sha256·collector_role=ANU·summary·UTF-8 ≤3900 bytes(wc -c).