# v2.13 마스터 doctrine 진척도 전수조사 (read-only) · 260619

기준 파일: `ANU_v3_v2_13_final_integrated_master_doctrine_260615(1).md` (51KB)
조사: 아누 / 2026-06-19 KST / canonical main **38ee0555** / **코드/실행 변경 0 (read-only)**
판정 축: doctrine 자신의 4축 — **IMPLEMENTED**(코드존재) → **VERIFIED**(테스트통과) → **WIRED**(런타임이 실제 호출) → **ACTIVE**(실 워크플로 사용)

---

## 한 줄 결론
doctrine의 **개념/계약 정의는 거의 완성(개념 100%)**, **§31 Phase-1 거버넌스 게이트 4종은 IMPLEMENTED+VERIFIED지만 NOT_WIRED(런타임 결선 0)** — doctrine 스스로 경고한 "코드 존재 ≠ 자동화 작동"의 표본. 반면 **실 운영 파이프라인(P0-B owner-pickup chain·event-strategy·callback governance stack)은 WIRED됨** — doctrine 스냅샷(wired:none)을 넘어 **canary VERIFIED/WIRED**까지 갔으나 **전 축 공통 의도적 ACTIVE=false 동결**.

> ★ **"WIRED 0"의 범위 (회장 질의 정정 2026-06-19)**: WIRED=0은 **§31 거버넌스 게이트 4종에만 한정**된 수치다. **시스템 전체 WIRED ≠ 0.** import+subprocess+sh+동적호출 전수 재검증 결과 — 게이트 4종을 호출하는 런타임 코드는 0건(등장처는 자기 정의 파일·memory artifact·git 커밋 메시지뿐, `classify_gate`도 진짜 호출 0이며 `gemini_cli_gate_check._classify_gate_mode`는 이름만 비슷한 별개 함수). 반대로 P0-a event-strategy(`anu_pickup_driver.py:1929` scan_live_inbox_once 실호출)·P0-B chain(canary 5축)·callback governance stack은 WIRED. 즉 **"거버넌스 게이트는 안 꽂힘 / 운영 파이프라인은 꽂힘 / 전 축 ACTIVE 0"**이 정확한 진술.

---

## 1. §31 Phase-1 게이트 머신 (doctrine의 중심 산출물)

| 산출물 | IMPLEMENTED | VERIFIED | WIRED | ACTIVE |
|---|---|---|---|---|
| `memory/schemas/goal_contract_schema.json` | ✓ | — | ✗ | ✗ |
| `dispatch/v2_13_gate.py` (classify_gate, 6 verdict enum) | ✓ | ✓ | **✗** | ✗ |
| `dispatch/control_db_guard.py` | ✓ | ✓ | **✗** | ✗ |
| `scripts/promotion_guard.py` | ✓ | ✓ | **✗** | ✗ |
| `scripts/correction_budget.py` | ✓ | ✓ | **✗** | ✗ |

- VERIFIED 증거: `tests/regression/test_v213_phase1_gate_2757.py` = **132 passed**.
- **NOT_WIRED 증거(결정적)**: 비-테스트 런타임 코드의 import = **0건**, `.claude/`·settings·hook의 게이트 호출 = **0건**. 즉 이 게이트들은 어떤 PreToolUse/dispatch/finish-task 경로에서도 **실제로 아무것도 막지 않는다**(shelf-ware).
- 함의: doctrine의 거버넌스 핵심(goal-contract gate / correction budget / control-DB guard / promotion self-approval guard)이 **코드로는 존재하고 테스트는 통과하나, 런타임 강제력 0**. doctrine 자신의 4축 언어로 "IMPLEMENTED+VERIFIED, WIRED=none, ACTIVE=none".

## 2. P0 로드맵 — owner-pickup / event-strategy (실 진척 집중 축)

- **P0-a event strategy redesign = WIRED**: `dispatch/anu_pickup_driver.py:1929` main이 `scan_live_inbox_once` 분기 실호출. systemd `anu-pickup.path`가 `p0b_inbox/task-*.result.json`만 감시(legacy 폭주 SYSTEMD_EVENT_STRATEGY_CONFLICT 해소). → doctrine §28 "blocked by event-strategy conflict" **해소됨**.
- **P0-b owner-pickup chain = canary VERIFIED/WIRED** (이번 세션, FROZEN):
  - owner_gate(PR#245) · callback_launch(PR#246, squash 38ee0555) 두 latent 시그니처 결함 순차 해소.
  - Layer A live processing / owner_fire 1-shot / real spawn delivery 1-shot 5축 canary end-to-end 검증(schedule 5A21DDDF FIRED→spawn→판정 SUCCESS→terminal callback delivery).
  - **단 bounded 1-shot pilot proof. ACTIVE=false**(5 flag OFF, systemd inactive, always-on delivery runner 미구현).
- 즉 P0는 doctrine 작성 시점 스냅샷(wired:none/active:none)을 **명확히 추월**, 그러나 production activation은 회장 동결.

## 3. 로드맵 P1–P5 (골격 존재, 결선/활성 부분)

- **P1 dispatch template guard**: `scripts/auto_merge.py` 존재. 단 `prompts/DIRECT-WORKFLOW.md`에 `gh pr merge` **1건 잔존**(완전 strip 아님).
- **P2 CI/Gemini watcher driver**: `scripts/ci_watch_handoff_runner.py` 존재 + owner_gemini_trigger 2개. matrix상 `owner_gemini_trigger = PARTIAL_MANUAL_PATH_VERIFIED / WIRED=dedicated_entrypoint_candidate`(상시 자동결선 아님).
- **P3 verified축 복구**: `anu_v3/authoritative_verdict_selector.py` 존재(IMPLEMENTED). 결선 별도 확인 필요.
- **P4 batch module**: `anu_v3/batch_hold_adjudicator.py` + `scripts/run_batch_hold_adjudicator.py` 존재(IMPLEMENTED).
- **P5 anu_v3 모듈**: `anu_v3/` 디렉토리 tracked(untracked 0).

## 4. 단일 state board (doctrine §3) 실태
`memory/state/automation_capability_matrix.json`(updated 2026-06-18) = 실 운영 capability 추적 중. 대표 항목:
- `callback_fallback_prune`: IMPLEMENTED✓ VERIFIED✓ WIRED=live_prune_success_gated_candidate **ACTIVE=false**.
- `owner_gemini_trigger`: PARTIAL_MANUAL_PATH_VERIFIED, **active=none**.
- 전반 패턴: **wired=none/candidate, active=none**가 지배적 → doctrine의 "거의 모든 capability가 ACTIVE 직전에서 동결" 상태를 정직하게 반영.

---

## 종합 판정 (회장 질문 "어느정도 진행?")
- **개념/계약/doctrine 문서화**: ~100% (doctrine 자체가 완결).
- **§31 Phase-1 거버넌스 게이트 4종**: IMPLEMENTED ~90% · VERIFIED ~80% · **WIRED 0(이 묶음 한정)** · ACTIVE 0%.
- **P0 owner-pickup/event-strategy**: IMPLEMENTED 高 · VERIFIED canary · **WIRED됨(event-strategy 실호출 / chain canary 5축)** · ACTIVE 0%(동결).
- **P1–P5**: 골격(IMPLEMENTED) 다수 존재 · WIRED/ACTIVE 부분적·candidate.
- → **전체 시스템 WIRED ≠ 0.** "WIRED 0"은 거버넌스 게이트 4종에만 적용. 운영 파이프라인은 결선됨. 공통 미달은 **ACTIVE 0**.

**핵심 피드백**: 진척의 무게중심이 "doctrine이 정의한 거버넌스 게이트를 런타임에 결선(WIRED)" 쪽이 아니라 "P0-B 한 축을 canary까지 검증"에 쏠려 있음. doctrine의 의도(전 시스템에 goal-contract/budget/control-DB 게이트를 강제)를 실현하려면, **다음 큰 미결선 작업 = §31 게이트 4종을 실제 dispatch/hook/finish-task 경로에 WIRE**하는 것(현재 IMPLEMENTED+VERIFIED라 결선만 남음). 단 이는 거버넌스 강제력 활성화이므로 회장 승인·단계적 wiring 필요(META_INFRA 동결선과 동일 성격).

**상태: 전수조사 read-only 완료. 코드/실행/flag 변경 0. P0-B FROZEN 유지.**
