{
  "id": "CONTROLLED_REAL_WAKE_CANARY_PILOT_HOLD_PREFLIGHT_RAW_KEY_IN_ENVELOPE_PROMPT",
  "ts_kst": "2026-06-09 01:10 KST",
  "base": "origin/main a311bd69",
  "classification": "PRE_CANARY_PREFLIGHT_BLOCKED_RAW_KEY_HYGIENE (pilot 실패 아님 — preflight 차단)",
  "anu_assessment_of_chair_decision": {
    "option_A_reject": "동의 — owner_key raw 가 schedule_history/cron body 에 남는 것을 NET-NEW 아님으로 수용 시 raw-key-0 원칙 형해화. (우리 markers 0 ≠ cokacdir operational log 0)",
    "option_B_reject_now": "동의 — scan_once 우회는 production 경로(scan_once→pickup_once→envelope prompt) 미검증 → 검증 의미 약화",
    "option_C_adopt_packet_only": "동의 — 설계→승인→실행 doctrine 준수. 신중",
    "escalation_opinion": "★ 이 owner_key 노출은 canary 한정 아니라 production real wake 전체의 구조적 결함(실 wake 발사마다 schedule_history raw key 적재). hardening 을 'canary 재개용'에서 'pickup chain ACTIVE 전환 필수 선결 보안조건'으로 격상 권고. (회장 결정 강화 방향)"
  },
  "preflight_finding": {
    "blocker": "scan_once 경로 wake prompt = _build_envelope_prompt 가 owner_key={anu_key} raw literal 포함 → cokacdir cron body → schedule_history/registry 적재 + spawned 세션 전달",
    "evidence_owner_proof_independent": "resolve_authoritative_owner/OwnerProbe 는 cokacdir --cron-history --key ANU_KEY(ownership-checked) 실조회로 owner 판정 — prompt owner_key 텍스트 미신뢰(TRUST 제거). → prompt owner_key 줄 redundant, 제거 안전",
    "evidence_schedule_history_stores_prompt": "grep owner_key= /home/jay/.cokacdir/schedule_history → 69 파일 현존 + prompt 필드 full 저장 → launcher redaction(argv_len) 이 cokacdir 적재 못 막음 실증"
  },
  "hardening_packet": {
    "doc": "memory/plans/p0b-pickup/envelope_prompt_raw_key_hygiene_hardening_packet_260609.md",
    "locus": "dispatch/anu_owned_callback_enforcement.py::_build_envelope_prompt (1함수 surgical)",
    "minimal_change": "owner_key={anu_key} 줄 제거 또는 owner_key_fp=sha256(key)[:12] fingerprint 치환(역산 불가)",
    "owner_proof_preserved": "cron --key 바인딩 + cron-history 교차검증으로 유지(prompt owner_key 미사용)",
    "scan_once_path_preserved": "YES — prompt 빌더 내용만 정화, 경로 무변경 (lock #3 유지)",
    "open_item": "cokacdir 가 --key argv flag 값을 schedule_history 에 별도 적재하는지 = 별도 확인+회장 판정(prompt body raw key 0 은 본 hardening 으로 보장)",
    "verification": "regression(prompt raw key 0 / owner proof 무손상 / envelope 필드 유지) + grep(dry-run prompt raw key 0) + dry-run(real spawn 0)",
    "re_canary_conditions": "PR merged + dry-run prompt raw key 0 실증 + owner proof regression PASS + --key open item 회장 판정 + 재-preflight → 회장 canary 재승인"
  },
  "state_preserved": "real spawn 0 / cron 발사 0 / scan_once 호출 0 / canonical write 0 / temp root 생성 0. pickup chain IMPLEMENTED/VERIFIED/WIRED candidate/ACTIVE=false 유지.",
  "forbidden_now": ["즉시 patch", "production 코드 수정", "commit", "PR", "real wake", "cron spawn", "systemd 변경", "ACTIVE=true", "activation_epoch 생성"],
  "report_scope": "hardening packet 까지만 (회장 verbatim)",
  "verdict": "ENVELOPE_PROMPT_RAW_KEY_HYGIENE_HARDENING_PACKET_READY (구현 0, 회장 승인 대기)"
}
