{
  "id": "HOLD_FOR_CHAIR_CANARY_RAWKEY_IN_ENVELOPE_PROMPT",
  "ts_kst": "2026-06-09 00:40 KST",
  "base": "origin/main a311bd69",
  "status": "실행 0 — 회장 실행 승인 받았으나, 실행 전 정합성 확인에서 raw-key 노출 blocker 발견 → fail-closed HOLD (실행 중단)",
  "blocker": {
    "id": "CANARY_BLOCKED_RAW_KEY_IN_ENVELOPE_PROMPT",
    "finding": "scan_once 경로(lock #3)는 pickup_once → anu_runner_pickup_and_fire(prompt=None) → callback_prompt = _build_envelope_prompt(result). _build_envelope_prompt 는 `owner_key={anu_key}` 줄에 raw ANU key 리터럴을 포함(envelope-only prompt).",
    "exposure_path": "이 prompt 가 build_anu_owned_callback_request 로 `cokacdir --cron \"<prompt>\" --key <key>` argv 가 되고, cokacdir 가 cron body(prompt)를 schedule_history/<id>.log + registry 에 저장 + spawned ANU 세션에 전달 → raw ANU key 가 operational log(/home/jay/.cokacdir/schedule_history)에 기록되고 검증 시 우리가 그 로그를 read.",
    "violates": ["회장 lock #8 (raw key / full argv 출력 0)", "중단조건 #3 (raw key 또는 full argv 노출)", "standing constraint 'raw ANU key 로그/envelope 노출 0'"],
    "connects_to_existing_backlog": "이는 이전 기록한 CALLBACK_REGISTRAR_ENVELOPE_KEY_FIELD_HYGIENE + OPERATIONAL_LOG_KEY_LITERAL_HYGIENE_BACKLOG 가 canary 실 발사 시 hard blocker 로 현실화된 것. (registrar 기본 envelope 가 owner_key field 포함)"
  },
  "lock_conflict": "lock #3(scan_once 직접 호출 — prompt 주입 불가) ↔ lock #8(raw key 0) 가 현 코드(_build_envelope_prompt owner_key 리터럴)에서 양립 불가. scan_once 경로 canary 는 raw key 노출 필연.",
  "launcher_redaction_scope_clarification": "launcher 의 argv redaction(argv_len only)은 launcher 자신의 LaunchRecord/로그에만 적용. cokacdir 가 cron body(prompt with owner_key)를 schedule_history 에 저장하는 것은 별개 — launcher redaction 으로 막지 못함.",
  "why_not_executed": "회장 실행 승인은 raw key 0 lock #8 + 중단조건 #3 전제. 실행 시 그 전제 위반 확정 → 사전 fail-closed HOLD 가 정합. 추측/강행 0.",
  "chair_decision_options": {
    "A_relax_owner_key_in_envelope": "owner_key 가 이미 cron --key 와 동일 키이고 ANU-owned envelope 설계 필드이므로, schedule_history 내 owner_key literal 을 NET-NEW 노출 아님으로 회장이 명시 수용 → 단 schedule_history(/home/jay/.cokacdir) 에 raw key 잔존은 사실. 우리 markers/report 에는 0 보장.",
    "B_path_b_explicit_prompt": "anu_runner_pickup_and_fire(prompt=<owner_key 없는 minimal canary>) 직접 호출(scan_once 우회) → lock #3 수정 필요(회장 승인). prompt 통제로 raw key 0 가능하나 scan_once 경로 충실도 일부 손실.",
    "C_envelope_redaction_fix": "_build_envelope_prompt 의 owner_key 를 redact/sha 로 (production 코드 수정 — 별도 task, 현재 금지). 후속 hardening.",
    "D_hold": "raw key 노출 미해소 시 canary 실행 보류. real_callback_spawned 미검증 유지."
  },
  "recommendation": "회장 결정 필요. ANU 단독 판단 회피(raw key + lock 충돌 = 회장 영역). 무수정·무실행 유지.",
  "no_action_taken": "temp root 생성 0, scan_once 호출 0, real spawn 0, cron 발사 0, canonical/temp write 0. pickup chain ACTIVE=false 유지.",
  "verdict": "HOLD_FOR_CHAIR"
}
