# task-2775+10 — PR #255 same-branch: limited_runtime+activation_intended 동시 충돌 fail-closed STOP exit-code 보정 (ACTIVE=false)

상태명: `TASK2775_PLUS10_CONFLICT_EXIT_CODE_MICROFIX_APPROVED_FOR_DEV2_ACTIVE_FALSE`
담당: dev2-team (PR #255 / branch `task/task-2775-dev2` 소유)
회장 승인: 2026-06-26 — **+10 micro-fix 1회 (fail-closed 의미를 exit code까지 맞추는 마감 보정).**
★ efficiency/O(N)/ledger scan 재발 0 → `LEDGER_COUNT_STRUCTURE_REDESIGN_REQUIRED` 트리거 미발동. HIGH 0 /
Critical 0 수용. 단 fresh MEDIUM 2건(driver + test, 사실상 1 finding) 남아 MERGE_CANDIDATE 미확정 → A안.
★ 이 승인은 **merge / activation / real fire / systemd enable·start / flag 생성 승인이 아님.** ACTIVE=false.

## 수정 대상 (Gemini fresh MEDIUM driver:2235 + test:1182)
`limited_runtime=True` + `activation_intended=True` **동시 True 의미 충돌** 경로가 현재 **fail-closed STOP이면서
`return 0`**이라, systemd/orchestrator/쉘이 exit code로 성공 판단할 때 **치명적 설정 충돌로 중단됐는데 정상
종료로 오인**(오류 감지·자동 재시작 미수행) → Gemini MEDIUM. 제안: `return 1`.

## 구현 원칙 (회장 verbatim)
- 동시 True 의미 충돌은 **계속 fail-closed STOP**이다.
- 이 경로에서 **scan / governor / launcher / preflight는 계속 0회**여야 한다.
- 단, **반환 코드는 0이 아니라 non-zero**로 바꾼다. **Gemini 제안대로 `return 1`을 우선 적용**.
- ★ 이 변경은 **오직 설정 충돌 경로에만** 적용. **정상 no-op / default-OFF / limited_runtime 정상 경로 /
  canary 경로의 exit code는 건드리지 말 것.**
- production `__main__` 경로는 `main(limited_runtime=True)`만 넘기므로 **동시 True에 도달하지 않는다는 기존 구조
  유지**.

## 범위 (엄수)
- **PR #255 같은 브랜치(`task/task-2775-dev2`) 위 commit 추가**. **새 PR 생성 금지**.
- expected_files **2개만**: `dispatch/anu_pickup_driver.py` · `tests/regression/test_limited_activation_bounds_2775.py`.
- **수정 금지**: preflight / **test-2760** / governor / runner / launcher / owner-proof / entrypoint·systemd /
  `.github/**` / `scripts/finish-task.sh` / production flag 파일.
- **금지**: merge / activation / real fire / `systemctl enable·start` / activation flag 생성 / canary /
  recurring / backlog consumption / **Gemini thread 임의 resolve** / **efficiency·reverse scan·ledger count 구조 재작업**.

## 필수 테스트 (test_limited_activation_bounds_2775.py)
- `main([], limited_runtime=True, activation_intended=True)`가 **`1`을 반환**.
- 해당 경로에서 **scan / governor / launcher / preflight 0회 유지**.
- 기존 fail-closed 의미충돌 테스트의 assertion을 **`rc == 1`로 업데이트**.
- `__main__` → `main(limited_runtime=True)` 경로 **무회귀**.
- limited_runtime 정상 경로 **무회귀**.
- default-OFF / legacy / canary 경로 **무회귀**.
- **+9 blank-line correctness 테스트 무회귀** · **+8 bounded reverse scan 테스트 무회귀** ·
  **+7 0644 / fail-closed 테스트 무회귀**.
- **2775 bounds 전체 PASS** · **test-2760 전체 PASS** · **2721 driver 인접 회귀 PASS** · `py_compile` PASS ·
  expected_files 밖 수정 **0**.

## 결과 보고 (필수)
- PR #255 head · base/head SHA · **diff 파일 수**.
- **return code 변경 위치**.
- 테스트 결과 · ACTIVE=false / real fire 0 증거 · **fresh-head Gemini 재리뷰 필요 여부**.

## ★ +10 이후 경로 (회장 verbatim)
+10 완료 후 다시 **ANU 독립검증 → fresh-head Gemini 재리뷰 → CI 확인** 순서. Gemini **High 0 / Critical 0 /
fresh Medium 0 / efficiency 0 + CI green**이면 → 다음은 **unresolved thread 정리 단계**. OUTDATED/stale-fresh
thread resolve는 **회장/OWNER 승인 전까지 임의 금지**.

## 완료 처리 + ANU callback (필수)
- 완료 시 `memory/events/task-2775+10.done` + `memory/reports/task-2775+10.md`.
- 봇 idle 전 **ANU callback 필수**. collector=ANU, owner_key=`c119085addb0f8b7`, self-key 금지. callback prompt
  UTF-8 **≤3900 bytes**, envelope 만(task_id·PR#255·new head sha·result_path·report_path·one-line). **merge 금지.**
- PASS 나와도 **머지 금지** — ANU 독립검증 → fresh-head Gemini 재리뷰 → CI 확인 → MERGE_CANDIDATE로만 보고.

## 진행
dev2는 설정 충돌 경로 exit-code 보정(return 0 → 1)·테스트(real fire 0)·로컬검증 후 branch push로
**PR #255 갱신**, 보고서 + .done + ANU callback으로 마감. ANU가 이후 독립검증/Gemini 재리뷰/CI 확인.

## allowed_resources (본 task의 capability)

```yaml
allowed_resources:
  paths:
    - "dispatch/anu_pickup_driver.py"
    - "tests/regression/test_limited_activation_bounds_2775.py"
    - "memory/reports/task-2775+10.md"
    - "memory/events/task-2775+10.done"
  forbidden_paths:
    - ".github/**"
    - "memory/events/*.cron-*"
    - "scripts/finish-task.sh"
    - "dispatch/anu_activation_preflight.py"
    - "tests/regression/test_*2760*.py"
    - "utils/spawn_safety_governor.py"
    - "dispatch/anu_result_pickup_runner.py"
    - "dispatch/anu_callback_launch_audit.py"
    - "dispatch/anu_owned_callback_enforcement.py"
    - "memory/state/p0b_driver_enabled"
    - "memory/state/p0b_callback_launch_enabled"
  commands:
    - "pytest"
    - "python3 -m py_compile"
    - "git"
    - "gh"
  merge_policy: "manual"
  ttl_hours: 24
```