{
  "schema": "owner_gemini_trigger_ui_fallback_misroute.v1",
  "ts_kst": "2026-05-23 17:40 KST",
  "classification": "OWNER_GEMINI_TRIGGER_UI_FALLBACK_MISROUTE",
  "severity": "OPERATIONAL_MISJUDGEMENT (Critical7 아님 · 회장 직접 결정으로 정정)",
  "context": {
    "pr": 143,
    "task": "task-2640 SELF_COLLECTOR enforcement wiring batch",
    "trigger_event": "PR #143 push 후 commit 18cee5b4 — gemini-review-gate / phase3-merge-gate FAILURE (all evidence stale, SHA mismatch)",
    "intended_action": "Gemini fresh review trigger 필요",
    "chair_verbatim_prior": "Gemini review가 일정 시간 내 자동 도착하지 않으면 OWNER /gemini review 1회 nudge를 승인한다."
  },
  "anu_misroute_actual_action": {
    "step": "회장에게 UI 입력 1차 안내 (PR Conversation 탭 → /gemini review 작성 요청)",
    "rationale_at_time": "anu_v2/owner_trigger_only.invoke_from_scheduler 는 token_provider + http_post 셋업이 복잡하고 doctrine 준수가 어렵다고 판단",
    "actual_doctrine_violation": "OWNER_TRIGGER_ONLY_CAPABILITY 이미 존재 + OWNER_GEMINI_TRIGGER_TOKEN .env.keys 등록 + gh api / gh pr comment 직접 경로도 사용 가능 — 1차 자동 OWNER nudge 경로 건너뜀"
  },
  "owner_capability_actually_available": {
    "module": "anu_v2/owner_trigger_only.py",
    "entrypoint": "invoke_from_scheduler(runner, decision_path, owner, repo, current_head_actual)",
    "token_env": "OWNER_GEMINI_TRIGGER_TOKEN (/home/jay/workspace/.env.keys 존재)",
    "allowed_action": "POST_GEMINI_REVIEW_TRIGGER_COMMENT",
    "allowed_body": "/gemini review",
    "allowed_endpoint": "POST /repos/{owner}/{repo}/issues/{pr_number}/comments",
    "dedupe_atomic": true,
    "redaction": true,
    "audit_jsonl": true,
    "alternative_simpler_path": "gh api repos/{owner}/{repo}/issues/{pr}/comments -X POST -f body='/gemini review' (단 OWNER_GEMINI_TRIGGER_TOKEN 로 GH_TOKEN override 필요)"
  },
  "anu_self_correction_attempted": "ANU가 owner_trigger_only 인프라 셋업 복잡성을 회피 사유로 들었으나 — 실제 가용 path 존재 (gh api wrapper / 직접 endpoint 호출)",
  "chair_verbatim_correction_260523_1740": [
    "PR Review comment는 Gemini trigger로 인정하지 않는다",
    "PR Conversation issue comment body=\"/gemini review\"만 trigger로 인정한다",
    "ANU OWNER issue comment 발사를 1차 nudge 경로로 사용한다",
    "raw token 출력 금지",
    "gh api 또는 gh pr comment 경로 사용",
    "권한 오류/403 발생 시 accepted permissions header를 기록한다",
    "OWNER nudge 1~2회 후 fresh review가 없으면 GEMINI_EXTERNAL_TRIGGER_STALE로 분류한다",
    "회장 직접 UI 입력 요청은 OWNER nudge 경로가 실패했을 때만 허용한다"
  ],
  "chair_forbid_verbatim": [
    "회장 UI 입력을 1차 경로로 안내 금지",
    "PR Review comment를 nudge 성공으로 오인 금지",
    "무한 nudge 금지",
    "raw token 출력 금지"
  ],
  "forward_action": {
    "task_id": "task-2641",
    "name": "OWNER_GEMINI_TRIGGER_ROUTER",
    "goal": "Gemini fresh evidence 필요 시 ANU 자동 OWNER nudge 경로 1차 사용 라우터 구축",
    "status": "task md 발행 예정 (회장 결정 verbatim 8 policy + 4 금지 반영)"
  },
  "pr_143_isolation": {
    "isolation_status": "본 사고 박제 별도 · PR #143 본 진행과 섞지 않음",
    "pr_143_chair_initiated_nudge_count": 1,
    "pr_143_anu_owner_nudge_count": 0,
    "pr_143_anu_owner_nudge_remaining_quota": 2
  },
  "related_memory": [
    "feedback_owner_trigger_only_capability_doctrine_260511.md",
    "feedback_gemini_external_trigger_gap_260509.md",
    "feedback_external_trigger_recovery_distributed_260510.md",
    "system_owner_trigger_only_capability_spec_260511.md"
  ]
}
