{
  "schema_version": "anu_v2.replacement_lineage.v1",
  "task_id": "task-2547+1",
  "original_task": "task-2547",
  "original_pr": 95,
  "prior_head": "4dc32dc7c36873ac8f90ad8eac68dffca0a53998",
  "reason": "OWNER_AUTHORIZED_VALID_REGRESSION_FIX_AFTER_CHAIN_LIMIT",
  "classification": "SELF_POLICY_REPLACEMENT_CHAIN_LIMIT_HIT",
  "owner_decision_at": "2026-05-11",
  "owner_decision_by": "chair_explicit_Option_B",
  "owner_decision_summary": "Gemini fresh review v2가 PR #95 head 4dc32dc7 기준으로 도착, unresolved 4건 모두 code_changing. high 3건은 task-ID 제거/추출/commit prefix 정규식이 legacy multi-dot 미지원 (실제 사용례 task-2523.9 존재). false positive 강제 resolve 시 회귀 위험 높음 → Option B (corrected next replacement task) 승인.",
  "current_origin_main": "2bae7b7bd8f9fb816c6dcf2fef35d452529ce8fc",
  "previous_attempts_chain": [
    "task-2487 (PR #49/#50/#51/#52 stale base + scope contamination)",
    "task-2487+1 (chain replacement)",
    "task-2547 (PR #95 corrected clean replacement, ESCALATED #6 SELF_POLICY_REPLACEMENT_CHAIN_LIMIT_HIT after Gemini valid regressions)"
  ],
  "previous_pr_states": {
    "49": "OPEN MERGEABLE BEHIND (task-2487 series)",
    "50": "OPEN MERGEABLE BEHIND (task-2487 series)",
    "51": "OPEN MERGEABLE BEHIND (task-2487 series)",
    "52": "OPEN CONFLICTING DIRTY (task-2487 series)",
    "95": "OPEN BLOCKED (task-2547, Gemini fresh 4 unresolved at head 4dc32dc7)",
    "92": "CLOSED (task-2545)",
    "93": "CLOSED (task-2545+1)",
    "94": "CLOSED (task-2545+2)",
    "96": "MERGED (task-2545+3 terminal corrected replacement)"
  },
  "preservation_contract": {
    "PR_95_head_unchanged": true,
    "PR_49_head_unchanged": true,
    "PR_50_head_unchanged": true,
    "PR_51_head_unchanged": true,
    "PR_52_head_unchanged": true,
    "PR_92_state_CLOSED": true,
    "PR_93_state_CLOSED": true,
    "PR_94_state_CLOSED": true,
    "PR_96_state_MERGED": true,
    "no_force_push": true,
    "no_rebase": true,
    "no_close_reopen": true,
    "no_admin_override": true,
    "no_owner_PAT": true,
    "no_default_GH_TOKEN_fallback": true
  },
  "chain_continuation_policy": {
    "this_replacement_authorized": true,
    "next_chain_replacement_authorized": false,
    "next_action_if_more_gemini_code_changes": "ESCALATED SELF_POLICY_REPLACEMENT_CHAIN_LIMIT_HIT_V2 + OWNER_DECISION_REQUIRED",
    "auto_task_2547_plus_2_forbidden": true
  },
  "dispatch_status_history": [],
  "dispatch_status": {
    "stage": "OWNER_AUTHORIZED_VALID_REGRESSION_FIX_FINALIZED",
    "outcome": "MERGED",
    "ts": "2026-05-11T02:04:43+00:00",
    "retry_index": 0,
    "pr_number": 97,
    "pr_head": "75b6768d06bd3ba1e83f867ab9ccf51351a3fc11",
    "merge_commit": "ed8c1250e42593e25d163d5382563ff2f911344d",
    "merged_by": "app/jeon-jonghyuk-taskctl-bot",
    "merged_at": "2026-05-11T02:03:11Z",
    "smoke_pass": true,
    "smoke_evidence_path": "memory/events/task-2547+1.smoke-evidence",
    "reconcile_evidence_path": "memory/events/task-2547+1.reconcile-evidence",
    "owner_gemini_trigger_completed_at": "2026-05-11T01:59:50Z",
    "gemini_fresh_review_commit_id_match": true,
    "unresolved_threads_at_merge": 0,
    "ci_at_merge": "11/11 SUCCESS",
    "predecessor_pr": 95,
    "predecessor_pr_state_at_merge": "OPEN_AWAITING_CLOSE_AUTHORIZATION",
    "chain_terminal": true,
    "chain_limit_policy": "task-2547+1 이후 추가 code_changing 발견 시 자동 task-2547+2 발행 X (OWNER_DECISION_REQUIRED)",
    "finalize_cron": "post-OWNER-trigger idempotent re-verification (prior cron 36F27BF1 already executed §9/§10/§11/§12 markers)"
  }
}
