---
task_id: task-2701+1
type: plan
scope: task
created: 2026-05-28
updated: 2026-05-28
status: completed
---

# 계획서: task-2701+1 — PHASE B: LOCAL_MAIN preserve-then-align 실행

**task**: task-2701+1 (Phase B · Phase A = task-2701 read-only 분석의 후속 실행)
**목표**: Phase A에서 확정한 옵션 1(preserve-then-align)을 회장 승인 하에 **실제 실행**하여 로컬 main을 origin/main과 정합시키고, 0바이트 truncate 2파일을 정본 복원하며, 손실 0을 증거로 남긴다.
**승인**: 제이회장 2026-05-28 verbatim — `CHAIR-AUTH-TASK-2701-PHASE-B-PRESERVE-THEN-ALIGN-LOCAL-MAIN-20260528-JJONGS-EXECUTE-001`
**완료 목표 토큰**: `LOCAL_MAIN_DIVERGENCE_CLEANUP_EXECUTION_COMPLETE`
**근거**: memory/tasks/task-2701+1.md + Phase A 보고(memory/reports/task-2701.md)

---

## 목표

Phase B (mutating · 고위험): preserve-then-align 절차를 verbatim 13단계 순서대로 실행한다.
- 핵심 mutating: `git reset --hard origin/main` (보존 선행 후에만)
- 산출물: 보존 branch + dirty patch/archive + manifest + Phase B 보고서

## 범위

### 포함
- origin/main 최신 SHA 확인 + ahead/behind/dirty 재측정 + ahead 6 reachable 재확인
- 보존 branch 생성 (`task-2701-local-main-preserve` @ f14b3850)
- dirty 콘텐츠/소스 patch/archive 보존 (memory/backups/task-2701-dirty.patch 등)
- truncate 2파일(replacement_pr_runner.py 718줄 · test 493줄) HEAD/origin 정본 sha256 기록
- 데몬 tracked dirty 재발 방지 적용 (skip-worktree local + gitignore/write-path 분리안 문서화)
- `git reset --hard origin/main` 실행 (보존 후)
- reset 후 truncate 2파일 복원 + ahead/behind 정합 + dirty 안정화 검증
- 손실 0 증거 manifest + Phase B 보고서

### 제외 (금지)
- 보존 branch 없이 reset / git clean / dirty 일괄 stash / 보존 전 파일 삭제
- main push
- PR #158/#159/#160 / task-2700 stale branch / task-2700+1 branch 수정
- manual .done 생성 / G4 marker 삭제

## 위임 계획

- Phase B 실행: **dev2-team Odin (팀장)** — Lv.3 고위험 git mutating 정합. 되돌리기 어려운 reset --hard를 verbatim 13단계 순서로 정밀 실행해야 하며, 각 단계 검증이 핵심. 팀원(Sonnet) 위임 시 단계 누락/오판 위험 큼. 코딩이 아닌 인프라 정합 판단 → 팀장 직접 수행이 워크플로우(설계/검토/통합은 팀장)에 부합. Phase A 동일 컨텍스트.

## 검증 기준

- ahead 6 reachable: `git for-each-ref --contains <sha> refs/remotes/origin` → 6/6 origin 도달 (reset 전/후)
- 보존: 보존 branch HEAD == f14b3850, dirty patch 파일 존재 + 비어있지 않음
- truncate 복원: reset 후 replacement_pr_runner.py = 718줄(sha256 95809c89...), test = 493줄(sha256 57ebdc51...)
- 정합: reset 후 ahead/behind = 0/0
- 재발 방지: 데몬 tracked 파일이 git status에서 dirty로 재노출되지 않음
- forbidden_action_count = 0 (금지 행위 0건)
