# Spawn Safety Governor — bounded 1-shot harness (A안) 실행 결과 2026-06-24

**상태명**: `TASK2774_GOVERNOR_BOUNDED_1SHOT_HARNESS_A_PASS_PRE_ACTIVATION_ACTIVE_FALSE`
**성격**: pre-activation bounded proof (A안 no-code 함수단위). activation 아님 · ACTIVE=false 유지 · B(real canary) 미실행.

## 실행 조건 (회장 승인 A안)
- 사용 commit: **feea9dce** (PR#250 merge commit). 로컬 object store에 존재 → **강제 pull 불요/안 함**(local main 177792e5 유지).
- 실행 위치: detached temp worktree `/tmp/anu-1shot-feea9dce` + 시나리오별 `tempfile.mkdtemp()`. **코드 수정 0**.
- 실제 `dispatch.anu_result_pickup_runner.pickup_once` 를 시나리오마다 1회 직접 호출, `spawn_governor_fn`=evaluate_spawn 어댑터 주입. fire 탐지용 callback_launch_fn=SPY + owner_gate_fn=permissive.

## 결과 — 6/6 PASS (실제 pickup_once 경로)
| 시나리오 | pickup verdict | spawn(spy) | ledger reason |
|---|---|---|---|
| S1 terminal 아닌 result | SPAWN_GOVERNOR_BLOCKED | **0** | NON_TERMINAL |
| S2 재투입 | SPAWN_GOVERNOR_BLOCKED | **0** | DEDUP_HIT |
| S3 같은 task 반복(>LOOP_PER_TASK) | SPAWN_GOVERNOR_BLOCKED | **0** | LOOP_EXCEEDED |
| S4 rate 초과(시간당>5) | SPAWN_GOVERNOR_BLOCKED | **0** | RATE_EXCEEDED |
| S5 single-flight live | SPAWN_GOVERNOR_BLOCKED | **0** | SINGLEFLIGHT_LIVE |
| S6 ALLOW | CLOSEOUT_DONE(차단 아님) | 1(체인 1회 통과) | ALLOW |
- 모든 BLOCK/QUEUE → spawn_decisions.jsonl 에 reason 기록(silent drop 0).
- ALLOW → governor가 안 막고 기존 체인 1회 통과(temp 내 closeout, CLOSEOUT_DONE).
- ※ circuit-breaker는 회장 A 실행 6시나리오 목록 외(merged pytest 12/12 + 앞선 fail_rate 직접 재현으로 커버). rate gate(5)가 정상흐름서 먼저 막아 count-기반 circuit은 도달 불가 — 스키마 추측 회피.

## canonical write 0 (증명)
- before/after `find memory/events memory/state -type f` (10052 files) **diff 없음** → canonical memory/events·memory/state 무변경.
- closeout write(done marker·collector_result)는 result_dir(=temp) 기반 → 전부 temp. 시나리오별 temp ledger/counters/decisions.

## bounded 종료 / 불변식
- detached worktree 제거. temp 외 파일 쓰기 0. local main 177792e5(강제 sync 0)·origin/main feea9dce.
- ACTIVE=false 유지: p0b_driver_enabled 부재 · anu-pickup.service/path inactive.
- 이 결과만으로 matrix WIRED/ENFORCED/ACTIVE true 전환 **금지**(회장 명시).

## 다음 단계
- **B(real flag+systemd canary) 후보 = YES** — 단 회장 별도 승인 전 금지. B는 driver의 governor_fn 상시 결선(코드) + flag/systemd 1회 + teardown 설계가 선행.
- 강제 sync 필요 여부: 현 단계 불요. (B 또는 wired=true 운영 단계서 local↔origin sync는 별도축으로 회장 승인.)
