{
  "id": "DIRECT_SPAWN_HYBRID_IMPLEMENTATION_READINESS_PENDING_ACTIVE_FALSE",
  "ts_kst": "2026-06-09 20:55 KST",
  "packet_doc": "memory/plans/p0b-pickup/direct_spawn_hybrid_implementation_readiness_packet_260609.md",
  "key_mechanism_finding": "cokacdir --message 플래그('Send message to AI', --output-last-message 동반) = --cron(scheduler_loop 종속) 과 달리 AI 세션 직접/동기 메시지 주입 경로. direct spawn 후보=cokacdir --message로 scheduler_loop 우회. 동기·activity-independent 여부는 canary 검증대상",
  "16_items_summary": {
    "1_argv": "cokacdir --message '<scope prompt>' --chat 6937032012 --key <ANU>[+--output-last-message/isolated]. launch_wake subprocess.run 재사용, --cron→--message 분기",
    "2_key_raw0": "--key argv flag only, 로그/ledger/마커 key literal 0(argv_len only, owner_key 제거 PR#196). schedule_history 미경유. 단 --message 다른 로그 적재 별도 확인",
    "3_S_lifecycle": "생성(cron +먼미래 ANU)→검증(resolve_authoritative_owner=OWNER_ANU)→cleanup(즉시 cron-remove 잔존0). 수명=단일 wake 한정",
    "4_S_no_fire": "--at +1d↑(due 전)+짧은 수명 즉시 remove 이중보장",
    "5_fail_closed": "OWNER_ANU 아님→direct spawn 0+abort+S cleanup(verify_collector_authoritative fail-closed 재사용)",
    "6_non_anu_stale_missing": "non-ANU→OWNER_NOT_ANU spawn0 / stale→envelope staleness REJECT spawn0 / missing→QUERY_FAILED spawn0. 전부 보수 spawn0",
    "7_dedupe": "pickup_once dedupe ledger fail-closed 재사용+done marker→real spawn 1회 idempotent",
    "8_prompt_min": "envelope-only(owner_key 0)+scope directive. _build_envelope_prompt 재사용",
    "9_session_limit": "prompt scope 화이트리스트+단일 result.json+callback enforcement+raw key hygiene+forbidden 명시",
    "10_pretooluse_hook": "spawned 세션 PreToolUse hook: git reset/clean/stash/dispatch/gh pr/.done/.env.keys read 차단. isolated settings. 작동 실패시 spawn 거부",
    "11_canonical_write_cap": "머신러리 0+collector 단일 task scope guard+canary ≤1 ack. 초과=post-spawn audit+HOLD. hook 보강",
    "12_legacy_queue_0": "scan_once(paths=[단일 result])→canonical 광역 비스캔. 128 무변동. queue 미터치",
    "13_rollback_orphan": "S cron-remove 잔존0+세션 종료확인+orphan process scan·정리+dedupe/done idempotent+temp 격리+실패 abort",
    "14_regression_dryrun": "regression(OWNER_ANU 미확인/비-ANU/stale/missing→spawn0 / dedupe / scope hook / raw key 0 / 머신러리 write 0 / --message argv 정합)+dry-run(dry_run=True 실 미실행, 경로만)",
    "15_canary_recheck": "구현+PR merge 후 1회(반복금지): --message direct spawn quiet 즉시 spawn(activity-independent)+OWNER_ANU+CANARY_ACK+ack외 0+write≤1+S cleanup+duplicate0+raw key0",
    "16_remaining_gates": ["--message activity-independent 실증", "--message prompt/key 로그 hygiene", "owner-proof+self-collector 아님 최종확인", "scope/hook/write 상한", "duplicate0 idempotent", "detection 결선(systemd path)", "real wake 승인(회장)", "legacy 128 NOOP"]
  },
  "open_questions_before_impl": ["(a) --message 동기/activity-independent spawn 여부", "(b) --message prompt/key 로그 적재 hygiene", "(c) --message inline vs isolated(wake=isolated 적합)"],
  "implementation_scope": "locus=anu_pickup_wake_launcher.py(--message direct 경로+--cron 분기)+owner-proof 재사용+PreToolUse hook settings. 신규 owner 로직 0. expected_files 최소(launcher+hook+regression+report). 난이도 중-고",
  "capability_matrix": {
    "direct_spawn_mechanism": "COKACDIR_MESSAGE_FLAG_CANDIDATE (미검증 동기성)",
    "direct_spawn_hybrid": "IMPLEMENTATION_READINESS_DESIGN (미구현)",
    "wake_fire_activity_independence": "NOT_YET_VERIFIED",
    "ACTIVE": "false", "production_activation_gate": "HARD BLOCK"
  },
  "forbidden_now": ["production activation", "ACTIVE=true", "systemd 설치", "daemon restart", "추가 canary 실행", "production queue 처리", "direct spawn 구현", "PR 생성"],
  "state_preserved": "canonical HEAD 75fdf540 무손상 / events 128 / p0b flags·epoch ABSENT / systemd not-found.",
  "verdict": "DIRECT_SPAWN_HYBRID_IMPLEMENTATION_READINESS_PACKET_READY — direct spawn=cokacdir --message(scheduler 우회 후보)+owner-proof=cron-history anchor S+fail-closed+scope/hook/dedupe. open question (a)(b)(c) 구현 전 read-only 확인 필요. 구현/canary=회장 별도 승인"
}
