{
  "id": "CONTROLLED_REAL_WAKE_CANARY_PILOT_MINIMAL_KEY_HYGIENE_READY_ACTIVE_FALSE",
  "ts_kst": "2026-06-09 02:50 KST",
  "base": "origin/main a311bd69",
  "threat_reassessment_accepted": "raw key = 심각 보안사고 아님 → OPERATIONAL_LOG_KEY_LITERAL_HYGIENE_BACKLOG 강등. private GitHub PR diff + 로컬 schedule_history 모두 직접 공개 노출 아님(회장 자산 선침해 후 2차 발견). 키 = 로컬 cokacdir 봇 토큰(외부 클라우드 자격증명 아님).",
  "policy": {
    "pr_diff_raw_key": "hard gate 유지(저비용 보험 — GitHub 제3자 신뢰경계)",
    "local_log_hygiene": "backlog 강등",
    "past_515_schedule_history_45_system_prompt": "자동삭제·자동수정·증거훼손 금지, backlog 보존",
    "v2plus_defenses": "response redaction filter / post-audit grep gate / 세션 hook = backlog 이관(즉시 구현 0)"
  },
  "minimal_patch_candidate": {
    "locus": "dispatch/anu_owned_callback_enforcement.py::_build_envelope_prompt",
    "change": "f\"owner_key={anu_key}\", 1줄 제거. 나머지 envelope 필드 유지.",
    "no_fingerprint": "owner_key_fp / sha(key) / key-derived id 추가 금지(회장 verbatim)",
    "anu_key_param": "시그니처 유지(호출부 무변경, 미사용 인자) — owner proof 는 cron-history",
    "owner_proof_unaffected": "resolve_authoritative_owner/OwnerProbe cron-history --key 실조회 — prompt owner_key 텍스트 미사용(코드 주석 확인). 무손상",
    "implementation": "ANU 직접 코딩 금지 → 봇 위임 task + PR + gate(PR diff raw key 0 hard) + merge. 회장 별도 승인 후."
  },
  "canary_resume_conditions_10": [
    "최소 hygiene patch(owner_key 제거)만",
    "owner_key_fp/key-derived id 추가 0",
    "scan_once(isolated_root, paths=[fixture]) 경로 유지(driver.main() 미사용)",
    "dry_run=False 1회",
    "real spawn 최대 1회(dedupe fail-closed)",
    "legacy result.json 140 스캔·이동·삭제·quarantine 0",
    "ACTIVE=false / systemd enable 0 / activation_epoch(canonical) 0",
    "task-2716 branch 수정 0",
    "callback prereg Phase B 착수 0",
    "canonical write 최대 1건 = task-PILOTCANARY-<ts>.canary-ack.json"
  ],
  "canary_packet": {
    "fixture": "task-PILOTCANARY-<ts>.result.json (isolated /tmp/p0b_pilot_<ts>/)",
    "scan_once": "scan_once(temp_root, paths=[fixture], launcher_fn=build_launcher_fn(temp))",
    "real_callback_spawned_verify": "cron-history + schedule_history fire + (선택) 회장 Telegram canary ack",
    "raw_key_gate_relaxed": "patch 후 wake prompt owner_key 부재 → prompt raw key 0 grep 1회. 로컬 log 잔여 = backlog(canary PASS 차단 안 함)",
    "rollback": "rm -rf /tmp/p0b_pilot_<ts> + canonical ABSENT 재확인"
  },
  "execution_order": "(a) 최소 hygiene patch = 봇 위임 task→PR→gate(PR diff raw key 0)→merge (b) merge 후 canary 1회 실행. 전부 회장 별도 go 후.",
  "packet_doc": "memory/plans/p0b-pickup/minimal_key_hygiene_patch_and_canary_resume_packet_260609.md",
  "state_preserved": "real spawn 0 / cron 발사 0 / scan_once 호출 0 / canonical write 0 / temp root 0 / production patch 0 / commit 0 / PR 0 / 과거 log 무변동. pickup chain IMPLEMENTED/VERIFIED/WIRED candidate/ACTIVE=false 유지.",
  "forbidden_now": ["production patch 적용", "commit", "PR", "real wake", "cron spawn", "systemd 변경", "ACTIVE=true", "activation_epoch 생성", "과거 log 자동삭제·수정"],
  "verdict": "CONTROLLED_REAL_WAKE_CANARY_PILOT_MINIMAL_KEY_HYGIENE_READY_ACTIVE_FALSE (후보+packet 준비, 구현/실행 0)"
}
