{
  "id": "TASK2730_CODE_LIFECYCLE_CLOSED_ACTIVE_FALSE",
  "ts_kst": "2026-06-10 09:05 KST",
  "task_2730_lifecycle": {
    "code_validity": "CLOSED (main 95941e4e)",
    "pr199": "MERGED, mergeCommit 95941e4e",
    "pr198": "CLOSED, superseded_by_PR199, branch preserved",
    "code_root": "clean origin/main 95941e4e",
    "p0b_flags": "ABSENT",
    "systemd": "미설치",
    "active": "false",
    "production_activation_gate": "HARD BLOCK"
  },
  "deliverable_this_turn": "finish-callback 강제 결선 후속 task packet (read-only). memory/plans/p0b-pickup/finish_callback_enforcement_followup_task_packet_260610.md",
  "packet_summary": {
    "goal": "executor 완료 시 ANU-owned callback/terminal state/collector result 가 코드 경로로 강제(executor 세션 생존 무관·dev bot prompt 의존 0·finish-task 끝단 의존 단독 0)",
    "principle": "result.json 존재=executor 완료 신호. callback 책임 executor→OS runner 이관. deterministic closeout",
    "5axis": "(1)OS-level runner systemd path+timer 활동독립 (2)collector owner-proof read-only+deterministic closeout 4-outcome (3)result-json contract callback_schedule_created:false+relay_hints+terminal_intent (4)terminal marker ledger→collector_result→pickup.done 3중 idempotency (5)callback launch audit 코드강제+audit jsonl·self-key 거부·executor_session_independent",
    "recurrence_prevention": "worktree path mismatch(.worktrees 경로 강제+guard 일치) / branch regex -rN·+N 인식 / task-lock 마찰 우회(result.json 수거 lock 독립) / callback 미발사(finish-task 의존 제거·OS runner 강제)",
    "acceptance_9": "executor callback 미발사 후 종료→runner 수거·callback launch / prompt callback 지시0 동작 / finish-task 마찰시 동작 / worktree·branch·lock fixture 수거 / owner-proof read-only / ANU key self-key 거부+audit / result 1건 callback 1회 idempotent / green CLOSEOUT_DONE wake0 / ACTIVE=false no-op",
    "fixtures": "dev1(result+report 있고 .done/callback 미생성) / dev2(result+worktree mismatch+branch -r2+lock 마찰) / callback-absent / self-key / active-false",
    "executor_proposal": "P0-b 경험 제3 dev(dev6 페룬 권장·dev1/dev2 당사자 회피) 또는 회장 지정. serial_only=true(systemd single-flight·flock·audit 직렬·dedupe race 방지). dispatch 시 .worktrees 경로 명시 강제",
    "out_of_scope": "ACTIVE=true / systemd install / production queue 처리 — 범위 밖. 구현=코드+regression(isolated)+dry-run. 실 설치/flag/epoch/production=별도 activation 승인",
    "forbidden_at_impl": "dev bot callback 자가생성·self-key callback·사후 callback·canonical reset/clean/stash·owner-proof 핵심 변경·ACTIVE=true/systemd/epoch·production/legacy·expected_files 밖·spec 축약·manual .done·same-PR post-Gemini push"
  },
  "retained_separated_items": ["dev1/dev2 closeout 미완 반복", "dev2 ANU normal callback 미발사", "TERMINAL_STATE_CALLBACK_CONTRACT(본 packet)", "canonical dirty(task-2729+4 잔여·미cleanup)", "relay-path hygiene backlog(item7/10)", "smoke checkout WARN"],
  "forbidden_compliance": "코드 수정 0·새 PR 0·dispatch 0·merge 0·ACTIVE=true 0·systemd install 0·activation_epoch 0·production queue 0·canonical dirty cleanup 0·사후 callback 0·task-2730 재오픈 0·PR #198/#199 추가 조작 0",
  "capability_matrix": {
    "task_2730": "CODE_LIFECYCLE_CLOSED",
    "finish_callback_packet": "READY (read-only 설계·미발행)",
    "activation": "FORBIDDEN_UNTIL_CHAIR",
    "ACTIVE": "false", "production_activation_gate": "HARD BLOCK"
  },
  "state_preserved": "main 95941e4e / PR #198 CLOSED superseded(branch 보존) / PR #199 MERGED / CODE_ROOT main 95941e4e / canonical HEAD 75fdf540 무손상 / p0b flags ABSENT / systemd NOT installed.",
  "next": "지시대로 packet 작성 후 보고만·다음 작업 0·회장 대기.",
  "verdict": "TASK2730_CODE_LIFECYCLE_CLOSED + FINISH_CALLBACK_ENFORCEMENT_PACKET_READY — task-2730 lifecycle 완결(code MERGED·PR198 closed superseded·PR199 merged·CODE_ROOT normalized·ACTIVE=false). 후속 packet read-only: executor 완료 시 callback 코드 강제(5축 분리·dev1/dev2 fixture·acceptance 9·serial_only·범위밖 명시). 발행/dispatch/구현=회장 별도 결정. 보고만·대기."
}
