# task-2549 — POST_GEMINI_SAME_PR_PUSH_OCCURRED audit (회장 §명시 박제)

**timestamp**: 2026-05-11 KST
**original_task**: task-2549
**original_pr**: #98
**current_head**: 93eac627e8ae7ce0b5081d6714e7eb22a2ab1b43
**owner_decision**: Option B 1회성 예외 승인 (회장 §명시)
**doctrine_violation**: POST_GEMINI_SAME_PR_PUSH_OCCURRED
**owner_exception**: true
**exception_scope**: THIS_PR_AND_THIS_HEAD_ONLY

---

## 1. 발생 timeline (UTC)

| 시각 (UTC) | 시각 (KST) | event | actor |
|---|---|---|---|
| 2026-05-11T02:22:16Z | 11:22 | PR #98 1st commit `cfbb3406` push (dev2 봇) | bot |
| 2026-05-11T02:23:52Z | 11:23 | bot `/gemini review` 댓글 시도 #1 | bot (위반 — task-2552 사전조사 0/5 실증 박제 doctrine) |
| 2026-05-11T02:24:16Z | 11:24 | bot `/gemini review` 댓글 시도 #2 | bot |
| 2026-05-11T03:22:16Z | 12:22 | OWNER `/gemini review` 댓글 (JonghyukJeon) | OWNER |
| 2026-05-11T03:23:41Z | 12:23 | Gemini fresh review COMMENTED on cfbb3406 (3 thread) | gemini-code-assist |
| 2026-05-11T03:28:03Z | 12:28 | **PR #98 2nd commit `93eac627` push (Gemini 3건 반영)** | **bot — doctrine 위반 (same-PR post-Gemini push)** |
| 2026-05-11T03:28:36Z | 12:28 | "Gemini 리뷰 3건 반영 완료" 댓글 | bot |

이후 PR #98 head는 93eac627로 진화. cfbb3406 기준 Gemini review는 stale evidence가 됨. fresh review (head 93eac627 기준)는 자동 도착하지 않음 (GEMINI_EXTERNAL_TRIGGER_GAP).

---

## 2. doctrine 위반 분석

### 위반 사실
- 회장 박제 doctrine: "Gemini review 후 same-PR push 금지" (task-2545/2547 chain 박제, 2026-05-10 확립)
- 봇 행동: 12:23 Gemini review 도착 → 12:28 same-PR push (5분 후) → stale evidence 생성

### 위반 원인 (회장 §명시 박제 사실 #2)
**task-2549 original prompt에 "Gemini 리뷰 후 same-PR push 금지" doctrine이 명시되지 않았다.**

- task md 파일 `/home/jay/workspace/memory/tasks/task-2549.md`의 금지 list 점검 필요
- 박제 doctrine(메모리)과 prompt 텍스트(실제 봇 입력) 사이의 **분리 = 시스템 결함**
- 봇은 prompt 안의 명시적 금지만 인식. 메모리에 박제된 doctrine은 봇 컨텍스트에 자동 주입되지 않음
- 결과: 봇이 "Gemini 리뷰 → 코드 반영 → push" = 정상 finalize 흐름으로 인식

### 위반 강도 평가
- **content 측면**: 93eac627의 변경 내용은 정당함 (Gemini 3건 모두 정확 반영, isResolved=true)
  - ① scripts/ci.sh `-not -path` → `-prune` (성능 최적화) — code-changing
  - ② test_ci_sh_worktree_exclude_2549.py `_read_find_block` 강결합 완화 — test-only
  - ③ test_ci_sh_worktree_exclude_2549.py `_run_find_excluded` `-print0` 권장 — test-only
- **form 측면**: same-PR push 자체는 doctrine 위반
- **결과 측면**: stale evidence 생성 + fresh review GEMINI_EXTERNAL_TRIGGER_GAP으로 자동 도착 불가 → 머지 차단

→ **content는 안전, form은 위반**. 회장이 Option B를 선택한 이유.

---

## 3. 백업 cron chain 박제 (회장 박제 doctrine `feedback_no_redundant_backup_cron.md` 위반)

PR #98 finalize에 3-chain 백업 cron이 사전 등록되어 있었음:
- BF40BEE7 (10:52 KST 발사, 회장 직접 kill)
- 2A6F28F1 (13:25 KST 발사, ESCALATED 후 종료)
- DA38FCCF (13:29 KST 발사, ESCALATED 후 종료)

3 cron 모두 task-2549.dev2-post-owner-finalize-prompt.txt를 prompt로 받음. 이 prompt는 **expected head를 cfbb3406으로 박제**해두어 봇이 stale review를 fresh로 오인할 위험이 있었음. DA38FCCF에서는 ESCALATED 분류로 자연 종료.

**문제**:
1. 백업 cron 3-chain은 회장 박제 "메인 cron 정상 발사 시 백업 추가 금지" doctrine 위반
2. prompt의 expected head 박제(cfbb3406)와 실제 PR head(93eac627) 불일치로 인한 stale 판정 오인 위험

**발사원 추적**: schedule_history에 3 ID 모두 존재. 등록 주체는 이전 anu 세션 추정 (확정은 schedule_history JSON 안의 created_at + 원본 등록자 정보 추가 점검 필요).

---

## 4. 1회성 예외 결정 박제 (회장 §명시)

- classification: **EXCEPTIONAL_OWNER_TRIGGER_AFTER_SAFE_SAME_PR_GEMINI_FIX**
- exception_scope: **THIS_PR_AND_THIS_HEAD_ONLY** (PR #98 + head 93eac627 한정)
- task-2549+1 replacement는 발행하지 않음
- OWNER `/gemini review` on PR #98 head 93eac627 1회 입력 (회장 직접 실행)
- finalize-resume cron `DFF3BB90` (dev2 오딘, 2026-05-11 15:55:23 KST 발사)

---

## 5. 향후 정책 (회장 §명시 박제 사실 #5)

- 동일 패턴 (POST_GEMINI_SAME_PR_PUSH_OCCURRED) 재발 시 자동 예외 불가
- 자동 분기: Option A replacement PR (task-N+1) **또는** OWNER_DECISION_REQUIRED
- 회장 직접 결정 없이 자동 OWNER trigger 절대 금지
- 봇 자체 self-policy/replacement 발행 chain은 회장 박제 SELF_POLICY_REPLACEMENT_CHAIN_LIMIT_HIT 분류 강제

---

## 6. 박제 5건 cross-reference

1. 본 audit 파일 — `memory/events/task-2549.post-gemini-same-pr-push-audit_260511.md` (this)
2. task-2549 prompt doctrine 미명시 원인 — 본 audit §2 안에 통합 박제
3. 정책 박제 — `memory/feedback_same_pr_push_after_gemini_doctrine_enforcement_260511.md`
4. task md template 강제 — `memory/feedback_task_md_doctrine_inclusion_strict_260511.md`
5. 자동 분기 정책 — 본 audit §5 + 정책 박제 (#3)에 통합

---

## 7. dev2 봇 행동 audit (참고)

bot /gemini review 시도 (11:23/11:24, 2회) → task-2552 사전조사 결과 0/5 trigger 실증 박제와 일치 (0% 효과). 직전 cron `8CEC6142` (task-2551 초기 cron)에서 페룬이 같은 위반을 했고, 본 cron에서 오딘이 또 같은 위반을 시도. **bot trigger doctrine은 task md prompt에 명시되어야 일관 적용 가능**.

---

## 최종

본 audit는 **POST_GEMINI_SAME_PR_PUSH_OCCURRED** doctrine 위반의 사실 박제. 회장 1회성 예외 결정과 별도로 영구 보존. 향후 동일 패턴 발생 시 본 audit를 reference로 회장 결정 시 trade-off 평가 가능.
