{
  "marker_version": "v1",
  "marker_type": "pr156_runtime_code_valid_but_artifact_contaminated_260527",
  "recorded_at": "2026-05-27T14:25:00+09:00",
  "recorded_by": "ANU_chair_facing_session",
  "source_attribution": "RECEIVED_INBOUND_THIS_SESSION (★ 회장 verbatim PR #156 재분류 + artifact contamination doctrine)",

  "status_chair_verbatim": "PR156_RUNTIME_CODE_VALID_BUT_ARTIFACT_CONTAMINATED",
  "merge_policy_chair_verbatim": "merge 금지 유지",

  "reclassification_chair_verbatim": {
    "not": "session propagation 코드 실패",
    "is": "same-PR artifact push 로 인한 stale/drift contamination",
    "facts": [
      "dd09f520 watcher 판단(11/11 SUCCESS)은 당시 기준 실제 truth 였음 (★ ANU live 확인: dd09f520 taskctl-state-guard SUCCESS x2)",
      "stale 직접 원인 = dev7 후속 artifact commit 1d02bfd6 (memory/ 6개 · 코드 0 · watcher fire 8분 후)",
      "기능 코드(helper/prompt/finish-task/session propagation) 건전",
      "실패 원인 = runtime code 와 artifact(memory/reports/envelope/plans) 혼합 push"
    ]
  },

  "anu_prior_analysis_accepted": "memory/events/pr156-direct-live-readonly-analysis-260527.json (★ 회장이 본 분석을 인정하고 재분류 확정 · 단 verdict 를 SUPERSEDED_OR_REWORK 보다 ARTIFACT_CONTAMINATION 으로 정밀화)",

  "doctrine_added_chair_verbatim": "feedback_runtime_code_artifact_separation_doctrine_260527.md (★ 시스템 전역 박제 · runtime code PR ↔ artifact/report PR 혼합 절대 금지)",

  "next_step_chair_verbatim": "fresh PR 재추출 준비 (★ 준비 단계 · dispatch 아직 아님 · chair_authorization_id 발급 대기)",

  "fresh_pr_principles_chair_verbatim": [
    "runtime/session propagation code only",
    "artifact 0",
    "report/envelope/3docs 0",
    "same-PR post-review push 0",
    "PR #155 enforcement 절대 보존",
    "Gemini fresh review 기준 최신 head 고정",
    "runtime code clean green 상태만 watcher 대상",
    "artifact 생성은 별도 흐름 또는 merge 후 lifecycle 로 분리"
  ],

  "forbidden_chair_verbatim": [
    "PR #156 same-PR 추가 push",
    "artifact 재추가",
    "stale watcher 재사용",
    "dispatch.py 전역 수정",
    "merge 강행",
    "PR #156 억지 수정"
  ],

  "pr155_enforcement_preserved_confirmed": true,
  "forbidden_action_count": 0,
  "forbidden_actions_avoided": [
    "PR #156 push 0", "artifact 재추가 0", "merge 0", "watcher 재dispatch 0",
    "dispatch.py 변경 0", "code 수정 0", "thread resolve 0", "rerun 0"
  ],

  "linked_markers": [
    "memory/events/pr156-direct-live-readonly-analysis-260527.json",
    "memory/feedback_runtime_code_artifact_separation_doctrine_260527.md",
    "memory/reports/watcher-freshness-truth-contract-packet-260527.md",
    "memory/events/task-2697.release-watcher-report-stale-invalidated-260527.json"
  ]
}
