{
  "schema_version": "anu_v2.recovery_decision.v1",
  "task_id": "task-2539+1",
  "pr_number": 91,
  "runner": "merge_queue_executor",
  "classification": "MERGEABLE_RECOVERY",
  "current_head": "d843a72329c1122f7a7d85f2b3c1ed53f4588e29",
  "base_branch": "main",
  "expected_files": [
    "anu_v2/post_merge_smoke_runner.py",
    "anu_v2/tests/test_post_merge_smoke_runner_2539.py",
    "anu_v2/fixtures/post_merge_smoke_pass_task_2524.json",
    "anu_v2/fixtures/post_merge_smoke_warn_to_pass_task_2537.json"
  ],
  "effective_diff_files": [
    "anu_v2/fixtures/post_merge_smoke_pass_task_2524.json",
    "anu_v2/fixtures/post_merge_smoke_warn_to_pass_task_2537.json",
    "anu_v2/post_merge_smoke_runner.py",
    "anu_v2/tests/test_post_merge_smoke_runner_2539.py"
  ],
  "effective_diff_stat": "4 files changed, 1159 insertions(+), 0 deletions(-)",
  "forbidden_path_count": 0,
  "checks": {
    "success": 9,
    "failure": 0,
    "pending": 2,
    "failed_checks": ["gemini-review-gate", "phase3-merge-gate"],
    "pending_checks": ["gemini-review-gate", "phase3-merge-gate"],
    "rerun_run_id": "25630882010",
    "rerun_triggered_at": "2026-05-10T15:35:39Z",
    "note": "Initial 14:12Z run failed (no Gemini evidence yet). Gemini review arrived 15:06:50Z on current head. Bot re-ran failed gates at 15:35Z."
  },
  "gemini": {
    "evidence_exists": true,
    "evidence_commit": "d843a72329c1122f7a7d85f2b3c1ed53f4588e29",
    "evidence_fresh": true,
    "evidence_submitted_at": "2026-05-10T15:06:50Z",
    "threads_total": 2,
    "threads_unresolved": 0,
    "threads_resolved_via_triage": 2,
    "triage_classification": "style_only_no_code_change",
    "triage_actions": [
      "PRRT_kwDORcJVSM6A6HoJ: replied + resolved (assert vs if/raise + task_id path traversal — defense-in-depth; -O mode unused; task_id internally controlled)",
      "PRRT_kwDORcJVSM6A6HoK: replied + resolved (evidence chat_id assert — redundant after caller-side validation)"
    ]
  },
  "mergeability": {
    "merge_state_status": "BLOCKED",
    "merge_state_status_note": "Will resolve to CLEAN once re-run gates complete SUCCESS",
    "behind": false,
    "clean": false,
    "ahead_count": 2,
    "behind_count": 0
  },
  "classification_reason": [
    "Gemini evidence exists on current head d843a72329c1122f7a7d85f2b3c1ed53f4588e29",
    "Gemini evidence is fresh (commit_id == current_head, not stale)",
    "External trigger is not required (OWNER /gemini review already executed at 15:05:21Z, response received at 15:06:50Z)",
    "Gemini unresolved threads: 2 medium-priority style suggestions, classified style_only and resolved via triage",
    "Recovery proceeds through auto_gemini_triage → gate rerun → BOT squash merge"
  ],
  "allowed_actions": [
    "AUTO_GEMINI_TRIAGE",
    "RESOLVE_FALSE_POSITIVE_OR_STYLE_ONLY_THREADS",
    "RUN_REGRESSION",
    "SYNC_BASE_WITHOUT_REBASE",
    "VERIFY_CHECKS",
    "BOT_SQUASH_MERGE",
    "RUN_POST_MERGE_SMOKE",
    "WRITE_RECONCILE_EVIDENCE"
  ],
  "forbidden_actions": [
    "WAIT_FOR_NEW_GEMINI_REVIEW",
    "BOT_GEMINI_REVIEW",
    "EMPTY_COMMIT",
    "CLOSE_REOPEN",
    "FORCE_PUSH",
    "REBASE",
    "ADMIN_OVERRIDE",
    "EXPECTED_FILES_AMENDMENT",
    "TASK_2545_PR_92_MIXIN",
    "ORIGINAL_TASK_2539_CONTAMINATED_DIFF_REUSE"
  ],
  "next_runner": "auto_gemini_triage",
  "critical_7": {
    "is_critical": false,
    "categories": []
  },
  "mismatch_reason": "",
  "external_trigger_required": false,
  "created_at": "2026-05-10T15:35:39Z"
}
