# Backlog Item 3 — PR #147 SPAWN_VISIBILITY_GUARD Canonical Promotion Separation Packet (★ spec only · 실 처리 0)

- task: task-2666 (Track D-1)
- chair_authorization_id: `CHAIR-AUTH-BACKLOG-SEPARATION-PACKET-20260525-JJONGS-TRIAGE-001`
- scope: PR #147 merge vs 폐기 분석 + CI/Gemini 현황 + 의존 task 확인 (★ 실 merge/폐기 0)
- ttl_hours: 48

## 1. Current State (★ git ls-remote + read_only_reference 직접 확인)

- PR number: **#147**
- state: **OPEN** (★ task md verbatim)
- title (★ commit 박제): `SPAWN_VISIBILITY_GUARD canonical promotion Phase 1`
- source commit sha: `2de8118e85040f76e99c47600263eea863d6a271` (★ `git ls-remote refs/pull/147/head` 확인)
- merge ref: `5cc91c4d45ff7eb8754514b1e73346f7e84d534a` (★ `refs/pull/147/merge`)
- source branch: `task/task-2659-dev6` (★ origin 반영 · `remotes/origin/task/task-2659-dev6`)
- source task: task-2659 (★ branch label) · 산출물 source = task-2658 (★ read_only_reference `task-2658.spawn-visibility-guard-implemented-chair-verified-260525.json`)
- changed files: 6 (★ task md verbatim)

## 2. Source Task Lineage (★ read_only_reference 박제)

`memory/events/task-2658.spawn-visibility-guard-implemented-chair-verified-260525.json` (★ chair_verified):
- `chair_authorization_id_verbatim`: `CHAIR-AUTH-SPAWN-VISIBILITY-20260525-JJONGS-GUARD-001`
- `chair_final_judgment_verbatim`: `SPAWN_VISIBILITY_FALSE_NEGATIVE_PREVENTION_GUARD_IMPLEMENTED`
- `regression_pass_count`: `7/7 PASS (★ required 6 + bonus 1)`
- `forbidden_action_count`: 0
- `commit_push_pr_merge_count`: 0 (★ task-2658 실행 단계의 commit/push/PR 0 · PR #147은 task-2658 산출물의 별도 promotion 단계)
- `live_settings_json_change`, `dispatch_py_change`, `pretooluse_runtime_change`, `axis_1_2_runtime_change`, `axis_3_canary_scale_aware_guard_module_change`: 전부 ZERO

## 3. Affected Paths (★ task-2658 report 기준 10 path 중 PR #147 6 files 추정)

task-2658 report `changed_files` 10건:
```
utils/anu_spawn_visibility_guard/__init__.py
utils/anu_spawn_visibility_guard/path_resolver.py
utils/anu_spawn_visibility_guard/source_collector.py
utils/anu_spawn_visibility_guard/status_classifier.py
utils/anu_spawn_visibility_guard/timeout_gate.py
tests/anu_spawn_visibility_guard/__init__.py
tests/anu_spawn_visibility_guard/test_regression_6.py
memory/events/task-2658.spawn-visibility-guard-result-260525.json
memory/reports/task-2658.md
memory/events/task-2658.done
```

★ PR #147 6 files 추정: `utils/anu_spawn_visibility_guard/*` 5 + `tests/anu_spawn_visibility_guard/test_regression_6.py` 1 = **6** (★ memory/events|reports artifact는 staging 제외 가능성 · 실 PR scope 확인은 본 task 범위 외 · 회장 결정 시 `gh pr view 147 --json files` 직접 조회)

## 4. Merge vs 폐기 분석

### Merge 정당성 (★ 우세)
1. task-2658 chair_verified 산출물 (★ 회장 verbatim SPAWN_VISIBILITY_FALSE_NEGATIVE_PREVENTION_GUARD_IMPLEMENTED)
2. ANU 공통 도구로 main 반영 합리 (★ task-2657 사고 재발 차단 · false negative prevention)
3. 본 모듈은 **observer/judgment layer 한정** — PreToolUse runtime / Axis 1·2 runtime / dispatch.py / live settings.json / hooks / axis_3_canary_scale_aware_guard 전부 ZERO 변경 → **production runtime 영향 0**
4. 신규 디렉토리 `utils/anu_spawn_visibility_guard/` + `tests/anu_spawn_visibility_guard/` — 기존 파일 변경 0 → merge conflict 위험 LOW
5. regression 7/7 PASS (★ R1~R6 + R3-bonus)

### 폐기 정당성 (★ 부재)
- 회장 verbatim 폐기 지시 없음
- 회장 chair_verified 산출물 (★ chair_acceptance_basis_verbatim_12)

### 결론
**★ Merge 권장** (★ 본 task 범위 외 · 회장 결정 시 적용)

## 5. CI/Gemini 현황

- ★ 본 packet 작성 시점 직접 조회 0 (★ allowed_resources commands에 `gh` 미포함 + task md "실 처리 0" anchor)
- ★ 회장 결정 시 점검 절차:
  1. `gh pr checks 147` — CI status (★ pass/fail/pending 확인)
  2. `gh api repos/Jeon-Jonghyuk/dev_workspace/pulls/147/reviews` — Gemini 리뷰 존재 + High severity 미수정 0건 확인
  3. `gh pr view 147 --json mergeable,mergeStateStatus` — mergeable=MERGEABLE + mergeStateStatus=CLEAN 확인
- ★ task-2658 report `이슈 1`: Pyright LSP `utils.anu_spawn_visibility_guard` import 미해결 (★ false positive · py_compile 통과로 해소). PR Gemini 리뷰가 동일 false positive 제기 가능 → **dismiss 사유 사전 준비** 권장 (★ `[DISMISS] Pyright LSP false positive · worktree 디렉터리 미인덱스 사유 · py_compile + pytest 7/7 PASS evidence`)

## 6. 의존 Task 매핑

| task | 관계 | 상태 |
| --- | --- | --- |
| task-2657 | Axis 3 canary scale-aware guard (★ 본 guard 직접 사유 · false negative 사고 원천) | chair_verified IMPLEMENTED |
| task-2658 | SPAWN_VISIBILITY_FALSE_NEGATIVE_PREVENTION_GUARD source | chair_verified IMPLEMENTED |
| task-2659 | promotion branch task (★ PR #147 source branch label) | task md scope 외 (★ 별도 확인 필요) |
| task-2660 | (★ 본 packet Item 2 · SUPERSEDED by PR #148) | superseded |
| task-2661 | (★ PR #148 merged) | merged |

★ PR #147 merge가 진행되더라도 **Axis 3 canary observer chain RUNNING 자동선언 0** anchor 강제 — task-2658 marker `axis_3_canary_status_unchanged_anchor` 유지.

## 7. Recommended Action Sequence (★ 본 task 범위 외 · 회장 결정 위임)

1. 회장 verbatim PR #147 merge 결정 수신
2. `gh pr checks 147` + `gh api .../reviews` 사전 점검
3. Gemini High 미수정 0 확인 (★ 또는 dismiss 사유 박제 후 수정 0건 0 강제)
4. `gh pr merge 147 --squash --delete-branch` (★ auto-merge label 부착 0 anchor)
5. merge commit sha → result marker 박제 (★ task-2658 marker `anu_spawn_visibility_guard_canonical_promotion_merged` 후속)
6. **Axis 3 RUNNING 자동선언 강제 0** 재확인

## 8. forbidden_action_count

**0**. 실 PR merge / 폐기 / Gemini 리뷰 요청 — 전 0. 본 packet 작성만.

## 9. ANCHOR 6 점검

ANCHOR-1~6 모두 ✅ — Track A-1 (PR #149) / B-1 (Axis 3 observer chain) / C-1 (v3.6 shadow-mode) 파일 충돌 0.
