# task-2553+13 — POST_MERGE_SMOKE_HARNESS_ARTIFACT_RECONCILE_AND_CLOSEOUT (Track A)

- **상태**: DONE · HOLD 0 · Executor dev5-team 마르둑(key 109fa85250c6d46b) 1회 한정 · Lv.3
- **전제**: task-2553+12 = PR #128 BOT merge SUCCESS(mergeCommit `d08b8b0efa4d44fea99f1e5e391c1a18695e85f6`, 비가역) + post-merge smoke false-negative → POST_MERGE_HOLD
- **결과**: harness-artifact 분류 확정 + reconcile evidence + task-2553+1 closeout 를 **코드/파일 자동화(runner/JSON/evidence-gated)** 로 마감. 문서화-only 0.

## 1. 분류
post-merge smoke 실패 = **merge SUCCESS + 테스트 하네스 로더 false-negative**(NOT 머지코드 결함).
메커니즘: 테스트 `_load_otp()` 가 `importlib spec_from_file_location` exec 시 `sys.modules[name]=mod` 등록 생략 → Python 3.12 `@dataclass`(dataclasses.py:749 `sys.modules.get(cls.__module__).__dict__`) None 참조 → `AttributeError`. F1 3건(`_load_otp` 경유) FAIL / streaming 4건(`_load_otp_streaming` 경유) PASS.
입증: CI 11/11 SUCCESS + 격리 tarball(d08b8b0e) 2-branch 결정적 재현(미등록→AttributeError / 등록→IMPORT_OK True·is_duplicate_trigger·ALLOWED_COMMENT_BODY=='/gemini review').

## 2. reconcile (9-R.2, read-only, 단일 SHA observation window)
`reconcile_pass=true` — origin/main 이 mergeCommit **포함**(is-ancestor·rev-list, tip== 금지) / parent1..d08b8b0e diff = 6파일 일치 / `gh pr view 128`=MERGED·mergeCommit·mergedAt 일치 / PR#102 `bd5ad74f` OPEN 무변. 단일 `git fetch` 관측창 + pinned ref SHA·timestamp + raw gh snapshot 박제.

## 3. closeout (9-R.3 / 9-R.4)
- 단일 권위 sidecar `memory/events/task-2553+1.closeout.json`: 8 완료기준 키(merge_commit·merged_at·effective_diff_6·ci_11_pass·gemini_resolved·F1 RED→GREEN·F2 byte-identical·preserved tests 무수정) 전건 `proven=true`
- `task-2553+1.result.json`: 사전존재 23키 byte-무변형 + 결정적 포인터 key 비파괴 추가(atomic) — 동일 task 교정 재실행 idempotent
- `task-2553+1.md`: EOF closeout 섹션 append(기존 라인 무변경)
- `task-2553+1.done`: runner 가 git/gh source 8키 **독립 재계산** PASS 후에만 생성(evidence_consistent boolean 단독 신뢰 0). lifecycle `.done→.done.acked` 준수

## 4. ANU-Codex loop
batch(§3) → Codex lint 3-pass(CRITICAL 2/HIGH 1/MED 1 → 9-R refine 전부 해소) → **GO_READY** → dispatch(dev5 1회) → runner 실행(EXIT 0) → fail-closed regression 단위 ALL_PASS → Codex post-result audit(1차 DIVERGED → ANU 판정·교정 → 재감사 **CONVERGED**) → 최종 packet.

핵심 9-R 반영: 9-R.1(runner = Track A automation deliverable, 기존 코드 0 변경) · 9-R.2(contains-not-tip, 단일 SHA window) · 9-R.3(schema-safe 비파괴 append) · 9-R.4(.done = source 재계산 게이트) · 9-R.5(namespace 격리, Track B 인용 0).

## 5. 불변/금지
live `/home/jay/workspace` @ `task/task-2553p1-f1-clean-replacement` `20456b5f` 전후 assertEqual PASS. rollback/revert/force/rebase·admin override·PR#128 재수정·PR#102 원본·F2/phase3/mqe/_load_otp·production·test code·credential/OWNER PAT·evidence 없는 closeout·manual .done echo·workspace cleanup — 전부 0.

## 6. Track A 단독 완결
COMPLETE. 병행 Track B 완료 비대기 명시 — Track B artifact 회수·인용 0(오염 스캔 CLEAN). 분류 전제 고정(B 가 본 분류 비전복).

상세: `memory/reports/task-2553+13.closeout-packet.md` · 산출 §3 7종 = `memory/events/task-2553+13.*` / `task-2553+1.closeout.json` / `task-2553+1.done` / `scripts/run_post_merge_reconcile_closeout.py`.
