{
  "id": "COKACDIR_MESSAGE_DIRECT_SPAWN_FEASIBILITY_PENDING_ACTIVE_FALSE",
  "ts_kst": "2026-06-09 21:15 KST",
  "packet_doc": "memory/plans/p0b-pickup/cokacdir_message_direct_spawn_feasibility_packet_260609.md",
  "method": "read-only — cokacdir --help + 선별 strings. --message real invocation 0.",
  "critical_correction": "이전 2개 packet(direct_spawn_owner_proof_hybrid / implementation_readiness)의 '--message = scheduler_loop 우회 동기 spawn' 가설 하향. help 원문: '--message <TEXT> --to <BOT> --chat <ID> --key <HASH>' = 'Send message to another bot (internal use)' = bot-to-bot 내부 메시지(--to 필수). strings: handle_message→message file→scheduler_loop 처리 = --cron 과 동일 message-driven 경로. 우회 아님.",
  "15_items_summary": {
    "1_usage": "cokacdir --message '<TEXT>' --to <BOT> --chat <ID> --key <HASH> (internal use). --output-last-message 병용 추정",
    "2_bypass": "우회 안함(추정 HIGH). message file 작성→scheduler_loop 처리. 단 message file 생성 자체가 cycle 유발 활동→activity-independent 가능성(미검증)",
    "3_synchronous": "미확정. message file 작성이 cycle 즉시/동기 유발 불명. canary 검증 대상",
    "4_spawn_vs_inject": "strings 에 inline(기존 세션 주입) AND isolated(새 세션) 둘 다. --to 봇 세션설정 따름. wake=isolated 필요",
    "5_output_last": "세션 마지막 AI 메시지 회수. CANARY_ACK 회수에 사용 가능 추정",
    "6_logs": "--message TEXT=~/.cokacdir/messages message file 평문 저장. owner_key 제거(PR#196)면 prompt key 0→file key 0. --key=transient argv. --message 전용 로그 적재 미확정",
    "7_key_exposure": "prompt sanitize(owner_key 0) 전제면 노출 낮음. 단 --message 전용 로그 적재 미확정(확인 필요)",
    "8_isolated": "strings isolated path 존재. --message 가 isolated 명시 지정 가능한지 미확정. inline default 면 wake 부적합",
    "9_session_limit": "spawned=Claude Code 세션→prompt scope+PreToolUse hook 제한 가능. inline 이면 컨텍스트 혼입 위험→isolated 필수",
    "10_pretooluse_hook": "가능(세션 settings). --to 봇 설정/isolated 확보 시 적용",
    "11_anchor_S": "가능. --message 전 resolve_authoritative_owner(S)=OWNER_ANU 게이트. anchor S(미발사)로 owner-proof",
    "12_self_collector": "bot-to-bot(--to)→독립 ANU 봇 간. self-key 자가발사 아님. anchor S+owner-pin 시 self-collector 아님(조건부). --to 라우팅 ANU 봇 강제 필요",
    "13_dryrun": "--message=action→순수 dry-run 제한적. launcher 측 dry_run(argv/owner-proof/scope 경로만)은 가능",
    "14_patch_needed": "필요. launcher 에 --message 경로+isolated+--to 라우팅+owner-proof+scope/hook. patch 없이 바로 canary 불가",
    "15_difficulty_risk": "중-고. (a)bot-to-bot internal 의미라 wake-spawn 적합성 불확실 (b)scheduler_loop 우회 아님→activity-independence 미확정 (c)라우팅/isolated/hook 결선 (d)로그 hygiene 미확정. 리스크: scheduler_loop 경유면 B 와 동일 coupling 한계"
  },
  "verdict_honest": "--message 는 scheduler_loop 우회 동기 spawn 이 아님(하향). bot-to-bot internal·message-driven scheduler_loop 경유. activity-independent 미확정·coupling 위험 잔존. systemd path(detection 독립)+--message(cycle 자기-유발) 결합이 더 유망하나 둘 다 scheduler_loop 의존이라 근본 한계 가능. 더 근본적 비-cokacdir launch(옵션 D 고리스크) 재고 필요할 수 있음",
  "open_questions": ["(a) message file 생성이 scheduler_loop cycle 동기 유발 여부", "(b) --message isolated 모드 강제 가능 여부", "(c) --message prompt/key 로그 hygiene", "(d) --message scheduler_loop 경유 시 B 와 동일 coupling 한계"],
  "capability_matrix": {
    "direct_spawn_mechanism": "COKACDIR_MESSAGE_BOT_TO_BOT_SCHEDULER_LOOP_COUPLED (이전 '우회' 하향)",
    "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 생성", "--message real invocation"],
  "state_preserved": "canonical HEAD 75fdf540(task-2716) 무손상 / events 무변동 / p0b flags·epoch ABSENT / systemd anu-pickup not-found / S·B 잔존 0 / --message 미실행.",
  "verdict": "COKACDIR_MESSAGE_DIRECT_SPAWN_FEASIBILITY_PACKET_READY — --message=bot-to-bot internal·scheduler_loop 경유(우회 아님, 가설 하향). activity-independent 미확정. 다음=회장 방향 결정."
}
