{
  "id": "OWNER_TRIGGER_DRY_RUN_LEDGER_CONTAMINATION",
  "kind": "hardening_backlog",
  "ts": "2026-06-05T23:45+09:00",
  "severity": "MEDIUM (운영 안전성, 기능 결함 아님)",
  "origin": "task-2729+1 PR#174 C안 owner_gemini_trigger 실행 중 ANU 운영 실수",
  "what_happened": "owner_trigger_entry trigger --dry-run 을 production workspace-root(/home/jay/workspace)로 실행 → memory/events/owner-trigger-audit.jsonl 에 result=PENDING/POSTED false 항목 기록(network 0인데 POSTED) → 후속 real fire 가 dedupe gate 에서 DEDUPED 처리되어 실제 /gemini review 미게시. 복구: head=062dacfd & ts=14:25 의 false 3줄 제거 + 백업(owner-trigger-audit.jsonl.bak-260605-2330) + correction marker(task-2729+1.owner-trigger-dryrun-audit-pollution-correction.json). 이후 real fire 정상 POSTED.",
  "root_cause": "dry-run(network 0)이 production dedupe ledger 에 POSTED/DEDUPED 상태를 남김. dry-run 이 audit-neutral 하지 않음.",
  "hardening_options": [
    "A. dry-run ledger 격리: dry-run 은 별도 temp ledger 경로 사용",
    "B. network 0 dry-run 의 ledger write 자체 금지 (audit-neutral)",
    "C. dry-run 항목에 result=DRY_RUN 마킹 + dedupe gate 가 DRY_RUN 무시"
  ],
  "ledger_safety_bundle": "owner_gemini_trigger dry-run ledger 격리 + pickup CAVEAT 2(ledger/marker 실패 처리)는 같은 ledger-safety 계열 → task-2717 Phase2 또는 task-2729+5 설계 input 으로 묶음",
  "prevention_lock": "P0-B lock 11(audit/dry-run/pilot isolated temp root 강제)이 본 사고 재발 방지용으로 추가됨 (회장 2026-06-05 승인)",
  "status": "BACKLOG (코드 수정 회장 승인 대기)"
}
