# task-2553+8 — ISOLATED-WORKTREE EVIDENCE SOURCE REFINEMENT (완료) + 실 PR open §7 구조적 HOLD_FOR_CHAIR

> **Status**: 리파인먼트 구현·검증 **COMPLETE** / 실 clean replacement PR open = **§7 HOLD_FOR_CHAIR (구조적, 환경 상태)**. 실 GitHub write 0 · merge 0 · PR#102 원본 보존 · live workspace 무영향. 자동 수렴 (회장 라우팅 대상 = 본 HOLD 1건).
> **Executor**: dev2 Odin (1회 한정). **지시서 sha256**: `1bcbcb3e…eca30fd` (검증 일치).

---

## 1. 결론 (요약)

task-2553+8 의 핵심 산출물인 **isolated-worktree evidence source refinement** 는 완전히 구현·검증되었고, dry-run 전 단계 체인이 **4조건 전부 충족**한다:

`isolated_clean_worktree` evidence → deriver **DERIVED** → gate **ALLOW** → binding **DRY_RUN_PLAN_ONLY** → runner **DRY_RUN_VERIFIED (all_four_conditions_met=True)**, 6-file effective diff 정확 일치, live workspace 무참조·무변형.

그러나 그 첫 적용인 **task-2553+1 F1-solo 실 clean replacement PR open** 은 **환경 상태에서 비롯된 구조적 HOLD_FOR_CHAIR** 에 적중하여 실 write 0 으로 수렴했다 (회장 §13: HOLD 시만 보고).

## 2. 구조적 HOLD 의 정확한 구조 (§7 적중)

- runner 의 §9-R.1 4-primitive 중 ① = `git checkout -B task/task-2553p1-f1-clean-replacement 7346df82` (frozen runner, seal 외 무변경).
- `NEW_CLEAN_REPLACEMENT_BRANCH = task/task-2553p1-f1-clean-replacement` (frozen builder 상수, 회장 §5 권위) = **현재 live workspace `/home/jay/workspace` 가 checkout 중인 바로 그 branch** (오염 HEAD `20456b5f`, origin/main 대비 대규모 churn).
- **실증**: 격리 worktree 에서 `git checkout -B <그 branch> 7346df82` 실행 시 git 이 그 **live branch ref 를 `20456b5f → 7346df82` 로 reset** 함을 확인 (즉시 `git update-ref` 로 원복하여 live 무결성 복구).
- 따라서 실 PR open primitive ① 은 **live workspace 의 checked-out branch ref 를 런타임 reset = live workspace 변형**. 이는 회장 §6 "특히 금지: live workspace 를 깨끗하게 만들기 위해 git reset…", §12 "live workspace 무영향 강제", §7 ("same-branch push 필요"/"목표 달성 불가" without live 변형) 에 정확히 적중.
- 해결책은 회장 §6 명시대로 **live workspace 청소가 아니므로** (live 를 그 branch 에서 떼어내거나 ref 를 옮기는 것 자체가 금지된 live 조작), 본 환경 상태에서는 실 PR open 의 4번째 primitive 가 회장 절대금지를 범하지 않고는 도달 불가.

→ controller evidence-source seam 이 이를 **fail-closed 자동 탐지**(`would_mutate_live_branch_on_real_pr_open=True`) → `HOLD_FOR_CHAIR` packet + activation-decision + report, **무한 재시도·실 write 0** (회장 §13).

## 3. 산출물 (§11 expected_files 13 — 코드/파일)

1. `anu_v3/isolated_worktree_evidence_source.py` — fresh origin/main(7346df82) isolated worktree 생성·검증·`git worktree remove` 정리 + task-2553+1 F1-solo 6-file delta replay(owner_trigger_pat.py = `git show <source_branch>:…` read-only 추출, 나머지 5 결정적 합성) + isolated staged-diff/source-PR-preservation/same-branch-push-0/fresh-base/forbidden-scan evidence + `_provenance.source_workspace_type=isolated_clean_worktree`. 9-R.2 `_sanitized_env()`(GIT_DIR/WORK_TREE/INDEX_FILE/OBJECT_DIRECTORY/COMMON_DIR pop) + absolute `git -C <iso_wt>` 전용, cwd·live path/mtime 미참조. 구조적 live-branch-conflict guard.
2. `anu_v3/goal_activation_controller.py` — evidence-source seam(`_resolve_evidence_bundle`, `evidence_source_mode`) + source_workspace_type 강제 + 구조적 HOLD 전파 + +7→+8 metadata 일반화(implementation_files/default path). 결정 로직·6조건·call API 무변경, **65 regression 무회귀**.
3. `scripts/run_goal_activation_controller.py` — `--isolated-worktree-evidence` + `--activate` 이중조건 배선(둘 다 아니면 dry-run 강제).
4. `schemas/isolated_worktree_evidence.schema.json` — source_workspace_type enum.
5–7. `memory/fixtures/task-2553+1.{f1solo.isolated-clean-worktree,live-workspace-contaminated,isolated-7th-file-contamination}.contract.json` — ALLOW / HOLD / HOLD.
8. `anu_v3/pre_authorized_activation_runner.py` — **§9-R.1 surgical seal 2개만**(SEAL ① live-fallback 봉인: evidence None → 즉시 HOLD, live build 진입 0 / SEAL ② PR-open 전 `source_workspace_type==isolated_clean_worktree` precondition). 그 외 runner 로직·merge부재·dry-run preflight 체인 무변경(38 ins/9 del).
9. `tests/regression/test_isolated_worktree_evidence_2553plus8.py` — §8 15 + 9-R.3 9 + fixture 3종 + seal 정적 = **26 PASS**.
10. `memory/events/task-2553+8.activation-decision.json`
11. `memory/events/task-2553+8.hold-for-chair.json`
12. `memory/reports/task-2553+8.md` (본 파일)
13. `memory/events/task-2553+8.result.json` — §9 16-item packet.

## 4. regression / 무결성

- **180 PASS** (frozen 154 무회귀 + 신규 26). frozen sha256 4종 일치(gate `f34e2445…`/deriver `2e1af112…`/binding `6a66f7b7…`/builder `9344f9aa…`). runner = seal 2개만, merge·same-branch-push 호출 정적 부재.
- live workspace HEAD `20456b5f` **불변**(전 단계 전후 검증), isolated worktree leak 0(`git worktree remove`만), live·타 worktree 대상 reset/clean/stash/rm/unlink/rmtree **정적·런타임 0**.

## 5. 금지 준수

merge 0 / PR#102 원본·`bd5ad74f` 무변경 / same-branch push 0 / F2·token transport 무변경 / phase3·mqe 무변경 / credential·OWNER PAT 무조작 / real write 0 / dev status·closeout·task-2553+2·+3 dispatch 0 / expected_files 6 밖 변경 0.

## 6. 회장 판단 요청 (HOLD 1건)

isolated-worktree evidence refinement 은 회장 §1~§3 의도대로 완전 작동(4조건 충족 입증). 실 PR open 의 유일 잔여 blocker = **live workspace 가 clean-replacement 대상 branch 를 점유·오염 상태로 immovable**. 회장 §6 가 명시한 "live workspace 청소 금지" 제약 안에서는 본 환경 상태에서 실 4-primitive 도달 불가. 회장 결정 필요(예: clean-replacement branch 명 변경 GO / live workspace 별도 정리 GO / 본 dry-run-verified 상태 인정). **merge GO 아님 / F2 GO 아님 / phase3·mqe GO 아님 / credential·OWNER PAT GO 아님.**
