# task-2506 PR #56 base 동기화 + 자동 머지 (회장 승인 2026-05-08)

- 작업 유형: **PR base sync (merge from main, no rebase) + auto-merge if conditions met**
- 작업 레벨: **Lv.2** (git merge + push + auto-merge)
- 담당: **4팀 비슈누 (dev4)**
- 우선순위: **★★ blocking — queue position 2**
- Track: **task-2506 / PR #56 CLEAN 마무리 + auto-merge**
- 일시: 2026-05-08
- 회장 결정: 2026-05-08 직접 명시 (PR #57 머지 후 PR #56 진입 + 자동 머지 조건)

## ⚠️ 본 task의 본질 — 회장 명시

> PR #57 머지로 PR #56이 BEHIND. origin/main 7c648edd 기준으로 PR #56 branch를 **merge 방식**(rebase/force 금지)으로 동기화. 자동 머지 조건 충족 시 회장 추가 승인 없이 머지.

## 회장 명시 절차 (절대 준수)

### 1. fetch & checkout
```bash
cd /home/jay/workspace/.worktrees/task-2506-dev4  # 또는 비슈누 worktree
git fetch origin
git checkout <task-2506 branch>  # PR #56 branch
git status  # working tree clean 확인
```

### 2. main을 PR branch에 merge (회장 §3 — rebase 금지)
```bash
git merge origin/main --no-edit
```
- conflict 발생 시 → **즉시 중단 + 보고** (코드 변경 금지)
- conflict 없으면 다음 단계

### 3. push (회장 §3 — force push 금지)
```bash
git push origin HEAD
```

### 4. CI 11/11 재확인
- `gh pr view 56 --json statusCheckRollup` — 모든 check SUCCESS 확인
- 1건이라도 fail 시 즉시 중단 + 보고

### 5. effective diff 재검증
- `git diff origin/main...HEAD` 결과가 **task-2506 허용 2파일** 내인지 확인
  - 허용: `teams/shared/verifiers/critical_gap.py`, `tests/regression/test_critical_gap_*.py` (또는 task-2506.md에 명시된 파일)
- 허용 외 파일 발견 시 즉시 중단 + 보고
- forbidden path 0건 확인

### 6. Gemini threads 재확인
- `gh api graphql` 로 unresolved threads 조회
- unresolved 0건 확인 (현재 2/2 RESOLVED 상태 유지)
- 재발 시 즉시 중단 + 보고

### 7. mergeStateStatus = CLEAN 확인
- `gh pr view 56 --json mergeStateStatus` → CLEAN
- BEHIND/DIRTY/BLOCKED 시 즉시 중단 + 보고

### 8. 자동 머지 조건 게이트 (회장 명시 10건 모두 충족 시 자동 머지)

| # | 조건 | 검증 명령 |
|---|---|---|
| 1 | queue 선두 (PR #57 머지 완료) | `gh pr view 57 --json state` → MERGED |
| 2 | effective diff == expected_files | step 5 |
| 3 | forbidden path 0 | step 5 |
| 4 | CI all SUCCESS | step 4 |
| 5 | Gemini thread 0 unresolved | step 6 |
| 6 | mergeStateStatus CLEAN | step 7 |
| 7 | HEAD SHA lock 일치 | push 전후 SHA 동일 |
| 8 | no override required | task-2506.md에 override flag 없음 |
| 9 | no force push / rebase / admin override / manual .done | git push 로그 확인 |
| 10 | post-merge smoke 정의됨 | step 9 |

### 9. post-merge smoke 정의
- target: `teams/shared/verifiers/critical_gap.py` 4축 차단 회귀 테스트
- 회귀 테스트 파일: task-2506.md 또는 PR #56 spec에 명시된 회귀 테스트
- main 머지 후 main에서 회귀 테스트 실행 → PASS 확인

### 10. 자동 머지
**위 10 조건 모두 충족 시**:
```bash
gh pr merge 56 --squash --delete-branch
# admin override 금지 (--admin 플래그 절대 사용 금지)
# force 금지
```

### 11. post-merge smoke 실행
```bash
git fetch origin
cd <main worktree>
git pull --ff-only origin main
python3 -m pytest <task-2506 회귀 테스트> -v
```
- PASS 시 → .done 발행 + 보고서 작성
- FAIL 시 → 즉시 회장 보고 (자동 rollback 금지, 회장 결정 대기)

## 즉시 중단 + 회장 보고 트리거 (회장 명시)

다음 중 **어느 하나라도 발생** 시 즉시 작업 중단하고 회장 보고:
- merge conflict
- effective diff 오염 (허용 2파일 외 변경)
- forbidden path 발생
- CI failure (1건이라도 SUCCESS 외)
- Gemini unresolved 재발
- post-merge smoke failure

자동 rollback / force push / admin override / manual .done 모두 절대 금지.

## allowed_resources

```yaml
allowed_resources:
  read_only_paths:
    - "memory/tasks/task-2506*"
    - "memory/feedback/feedback_merge_topology_gate_260508.md"
    - "memory/events/task-2503+1*"
    - "memory/task-timers.json"
    - ".env.keys"
  paths:
    - "memory/tasks/task-2506*"
    - "memory/reports/task-2506*"
    - "memory/events/task-2506*"
    - "teams/shared/verifiers/critical_gap.py"  # PR #56 head에 포함된 base
    - "tests/regression/test_critical_gap_*.py"
  forbidden_actions:
    - "rebase"
    - "force push"
    - "admin override (gh pr merge --admin)"
    - "manual .done 생성 전 머지"
    - "required CI bypass"
    - "main 직접 push"
    - "허용 2파일 외 수정"
    - "automatic rollback"
    - "PR #55 / PR #57 수정"
    - "PR #57 머지 commit revert"
```

## 완료 조건

1. ✅ PR #56 branch base = origin/main(7c648edd) merge로 동기화
2. ✅ conflict 0건 (있으면 즉시 중단 보고)
3. ✅ effective diff 허용 2파일 내
4. ✅ forbidden path 0
5. ✅ CI 11/11 SUCCESS
6. ✅ Gemini thread 0 unresolved
7. ✅ mergeStateStatus = CLEAN
8. ✅ 회장 명시 10 조건 모두 충족 시 squash merge (admin/force 금지)
9. ✅ post-merge smoke PASS
10. ✅ .done 발행 + 보고서 작성

## 시스템 3문서 참조

- 본 task 모체: `memory/tasks/task-2506.md`
- 정책 본체: `memory/feedback/feedback_merge_topology_gate_260508.md`
- amendment 보호: `memory/feedback/feedback_amendment_not_enforced_260508.md`
- queue 컨텍스트: PR #57 머지 완료(7c648edd), PR #56 queue 2, PR #55 queue 3 대기
