{
  "schema": "anu_v2.post_merge_smoke_evidence.v1",
  "decision_ts_utc": "2026-05-13T06:30:00Z",
  "audit_task": "task-2564",
  "audit_scope": "최근 6 머지된 PR (PR #111~#116)의 smoke + reconcile evidence 박제 현황 1:1 aggregate",
  "merged_prs": [
    {
      "task_id": "task-2558",
      "pr_number": 111,
      "merge_commit": "9a09ab3a8f9c3b35c1397aef0aa6a0e547e8671a",
      "merged_at_utc": "2026-05-12T14:52:54Z",
      "merged_by": "app/jeon-jonghyuk-taskctl-bot",
      "smoke_evidence": {
        "exists": true,
        "path": "memory/events/task-2558.smoke-evidence.json",
        "schema": "task.smoke_evidence.v1",
        "outcome": "probe_pass",
        "tests_summary": "2/2 PASS (smoke) + 50/50 PASS (regression)",
        "naming_canonical": false,
        "naming_note": "single file form, schema='task.smoke_evidence.v1' (non-canonical)"
      },
      "reconcile_evidence": {
        "exists": true,
        "path": "memory/events/task-2558.reconcile-evidence/reconcile.json",
        "schema": "task.reconcile.v1",
        "structure_canonical": false,
        "structure_note": "directory form (memory/events/task-2558.reconcile-evidence/reconcile.json), schema='task.reconcile.v1' (non-canonical)"
      }
    },
    {
      "task_id": "task-2559",
      "pr_number": 114,
      "merge_commit": "ea24281439e31f9fe4f892ef4e616557603ae135",
      "merged_at_utc": "2026-05-12T16:01:46Z",
      "merged_by": "app/jeon-jonghyuk-taskctl-bot",
      "smoke_evidence": {
        "exists": false,
        "gap": "memory/events/task-2559.smoke-evidence.json 박제 0"
      },
      "reconcile_evidence": {
        "exists": false,
        "gap": "memory/events/task-2559.reconcile-evidence.json 박제 0"
      }
    },
    {
      "task_id": "task-2559+1",
      "pr_number": 116,
      "merge_commit": "65fcd8678bc86daae4627d12bd7bedd7a8636a28",
      "merged_at_utc": "2026-05-12T16:56:59Z",
      "merged_by": "app/jeon-jonghyuk-taskctl-bot",
      "smoke_evidence": {
        "exists": true,
        "path": "memory/events/task-2559+1.smoke-evidence.json",
        "schema": "task.smoke_evidence.v1",
        "outcome": "PASS",
        "tests_summary": "31/31 PASS (test_bot_process_collector 22 + test_traffic_light_layer_signals 9)",
        "naming_canonical": false,
        "naming_note": "schema='task.smoke_evidence.v1' (non-canonical)"
      },
      "reconcile_evidence": {
        "exists": false,
        "gap": "memory/events/task-2559+1.reconcile-evidence.json 박제 0"
      }
    },
    {
      "task_id": "task-2560",
      "pr_number": 113,
      "merge_commit": "345b102025533702b6295785caa712d7b13f628c",
      "merged_at_utc": "2026-05-12T15:32:02Z",
      "merged_by": "app/jeon-jonghyuk-taskctl-bot",
      "smoke_evidence": {
        "exists": true,
        "path": "memory/events/task-2560.post-merge-smoke.json",
        "schema": "anu_v2.post_merge_smoke.v1",
        "outcome": "PASS",
        "tests_summary": "test_executor_scheduler_per_pr_isolation 7/7 PASS + anu_v2/tests 498/498 PASS",
        "naming_canonical": false,
        "naming_note": "filename='post-merge-smoke.json' (다른 task들은 'smoke-evidence.json' — 이름 drift)"
      },
      "reconcile_evidence": {
        "exists": true,
        "path": "memory/events/task-2560.reconcile-evidence.json",
        "schema": "anu_v2.reconcile_evidence.v1",
        "structure_canonical": true,
        "structure_note": "single file, schema='anu_v2.reconcile_evidence.v1' (canonical 추정)"
      }
    },
    {
      "task_id": "task-2561",
      "pr_number": 112,
      "merge_commit": "4fffc55b7431c739d0e86c97320d1c4be98e9374",
      "merged_at_utc": "2026-05-12T16:04:55Z",
      "merged_by": "app/jeon-jonghyuk-taskctl-bot",
      "smoke_evidence": {
        "exists": false,
        "intended_skip": true,
        "skip_reason": "task-2561 reconcile-evidence.json 내 post_merge_smoke.skip_reason 'INTENDED' 박제 (task-2562 reconcile preflight_2 확인)"
      },
      "reconcile_evidence": {
        "exists": true,
        "path": "memory/events/task-2561.reconcile-evidence.json",
        "schema": "anu_v2.reconcile_evidence.v1",
        "structure_canonical": true
      }
    },
    {
      "task_id": "task-2562",
      "pr_number": 115,
      "merge_commit": "9a651f375e29ca26d0304fd7a1d63b073e03ba55",
      "merged_at_utc": "2026-05-12T17:10:54Z",
      "merged_by": "app/jeon-jonghyuk-taskctl-bot",
      "smoke_evidence": {
        "exists": false,
        "embedded_in_reconcile": true,
        "embedded_path": "memory/events/task-2562.reconcile-evidence.json (post_merge_smoke 필드 통합)"
      },
      "reconcile_evidence": {
        "exists": true,
        "path": "memory/events/task-2562.reconcile-evidence.json",
        "schema": "anu_v2.reconcile_evidence.v1",
        "structure_canonical": true,
        "structure_note": "final_preflight_4 + post_merge_smoke 필드 통합 (분리 박제 X)"
      }
    }
  ],
  "schema_inventory": {
    "smoke_schema_variants": ["task.smoke_evidence.v1", "anu_v2.post_merge_smoke.v1"],
    "reconcile_schema_variants": ["task.reconcile.v1", "anu_v2.reconcile_evidence.v1"],
    "naming_inconsistency": [
      "filename: smoke-evidence.json (task-2558, task-2559+1) vs post-merge-smoke.json (task-2560)",
      "structure: reconcile-evidence/reconcile.json (directory, task-2558) vs reconcile-evidence.json (file, task-2560/2561/2562)"
    ]
  },
  "summary": {
    "total_prs": 6,
    "smoke_evidence_present": 3,
    "smoke_evidence_intended_skip": 1,
    "smoke_evidence_embedded_in_reconcile": 1,
    "smoke_evidence_gap": 1,
    "reconcile_evidence_present": 4,
    "reconcile_evidence_gap": 2,
    "canonical_naming_compliance_pct": 50
  },
  "verdict": "LIFECYCLE_PARTIAL — 핵심 자동화는 동작하지만 박제 file naming/schema canonicalization 미완. RC 확정 전 (a) reconcile 누락 2건 (task-2559, task-2559+1) 회고 박제, (b) smoke 누락 1건 (task-2559) 회고 박제 또는 INTENDED skip 명시, (c) smoke/reconcile schema canonical 통일 결정 필요.",
  "next_actions": [
    {"priority": "HIGH", "action": "task-2559 reconcile + smoke 회고 박제 (또는 INTENDED skip evidence)"},
    {"priority": "HIGH", "action": "task-2559+1 reconcile 회고 박제"},
    {"priority": "MEDIUM", "action": "smoke evidence canonical schema 결정: 'task.smoke_evidence.v1' vs 'anu_v2.post_merge_smoke.v1' 중 1통일"},
    {"priority": "MEDIUM", "action": "reconcile evidence canonical schema 결정: 'task.reconcile.v1' vs 'anu_v2.reconcile_evidence.v1' 중 1통일"},
    {"priority": "LOW", "action": "filename 통일 ('smoke-evidence.json' 권고)"}
  ]
}
