# P0-c Execution Contract — Phase 1 (Result Pickup/Report) 완료 테스트

상태명: `P0C_EXECUTION_CONTRACT_READY_ACTIVE_FALSE` (실행계약 = 코드 0·read-only 분석·조건 고정. 실제 실행은 Step 3 = 회장 별도 승인.)
작성: ANU 직접 (2026-06-29 KST). 근거: North Star 1장 §Phase 1 / v2.16 §35 / GPT 검토(260629) 경계 / 기존 limited pilot 자산.

## 0. 목적 (§19.1 = Phase 1)
이미 **완료된** 작업의 result/.done/report/envelope를 ANU가 canonical에서 **수거·표면화**하고, **PASS / HOLD / CALLBACK_MISSING** 중 하나로 회장에게 보고할 수 있는지 **1회 관측**한다. = "봇 끝 → ANU 자동 수거 → 회장 보고"의 실증.

## 1. ★ 범위 경계 (GPT 수용 — 가장 중요)
```text
- 새 task 위임 0.  (새 dispatch / 새 위임 루프 금지)
- 기존 limited pilot 산출물 / 이미 완료된 result artifact만 사용.
- 목표는 "새 위임 루프"가 아니라 "완료 결과를 ANU가 수거·표면화·분류할 수 있는가" 관측.
→ 이로써 Phase 1이 Phase 2/3(검증·auto-merge)로 번지지 않게 한다.
```

## 2. 사용 대상 후보 (기존 완료 result, read-only)
```text
- memory/reports/limited_pilot_phase1_phase1pilot260627/ (기존 pilot 산출물: result.json·driver_runs·PILOT_SUMMARY)
- memory/events/p0b_inbox/task-2778_a*.result.json (이미 완료된 task-2778_a 계열 result — 실재)
- memory/events/task-2778_a*.done.acked / 관련 report (이미 완료·ack된 terminal artifact)
※ 어느 것을 쓸지는 실행 시점에 확정. 새로 만들지 않는다.
```

## 3. 실행 방식 후보 (실제 실행은 Step 3)
```text
1차 후보(권장): surface 경로 — scripts/anu_terminal_artifact_surface.py (PR#258 머지분, read/manifest-only)로
   기존 완료 result/.done를 canonical manifest로 표면화 → scripts/anu_control_status.py(read-only)로
   PASS/HOLD/CALLBACK_MISSING 분류 보고. fire 0·write는 canonical manifest index만.
2차 후보(후순위): owner-pickup driver(dispatch.anu_pickup_driver) one-shot — 단 기존 pilot에서 schema_fail로
   owner-proof 전 quarantine된 이력 있음(PILOT_SUMMARY §2). owner-proof/schema 복잡성으로 P0-c 1차에선 제외 권장.
※ P0-c는 §19.1 "수거+보고"가 목적이므로 1차(surface+status) 경로가 더 직접적·안전. driver 경로는 Phase 1b로 분리.
```

## 4. 성공 조건 (10 — 전부 충족해야 P0-c PASS)
```text
1. 기존 limited pilot 산출물/완료 result 존재 확인
2. 신규 코드 변경 0
3. 신규 task dispatch 0
4. real fire 0 (REAL_FIRED total 불변)
5. systemd enable/install 0 (inactive·disabled 유지)
6. cron/daemon/always-on 0 (신규 cron 0)
7. one-shot 실행만 (recurring 0)
8. result/.done/report가 canonical에서 surface(manifest 생성 또는 확인)됨
9. 회장 보고가 PASS / HOLD / CALLBACK_MISSING 중 하나로 귀결
10. ACTIVE=false 유지 + 실행 후 flags/driver OFF 복귀
```

## 5. STOP 조건 (10 — 하나라도 나오면 실행 말고 `P0C_CONTRACT_STOP_REPORT`)
```text
- 새 설계 필요 / 새 코드 수정 필요 / 새 task 위임 필요
- callback real fire 필요 / systemd·cron·daemon 필요
- stale backlog consumption 필요 / production write 필요
- credential·key touch 필요 / merge·push 필요
- 기존 limited pilot 자산으로 관측 불가
```

## 6. 안전 불변 (실행 시 검증, ACTIVE=false 정책)
real fire 0 · callback delivery 0 · governor 미호출 · fixture/result 외 consumption 0 · self-key 0 · raw key 0 · canonical 코드 dirty 0 · systemd inactive·disabled · cron 0 · 실행 후 OFF 복귀(NOOP_DISABLED).

## 7. 기존 pilot 교훈 반영
기존 Phase 1 pilot(`PILOT_SUMMARY`)은 driver(owner-pickup) 경로로 갔다가 **schema_fail quarantine**으로 owner-proof 관측 실패. 회장 "성공" 아님·"실패" 아님(안전 불변은 전부 유지). → P0-c 1차는 **owner-proof 경로가 아니라 surfacing+status 보고 경로**로 좁혀, §19.1 "수거+보고" 자체를 먼저 관측. owner-proof/driver 경로는 별도(Phase 1b, 회장 승인).

## 8. 절차 / 상태명
```text
Step 2(현재) = 본 실행계약 작성 = 코드 0 · read-only · 조건 고정.  완료: P0C_EXECUTION_CONTRACT_READY_ACTIVE_FALSE
Step 3(회장 승인 후) = P0-c 실제 1회 실행(surface-only).
  성공 → ANU_CORE_PHASE1_RESULT_PICKUP_REPORT_OBSERVED_ACTIVE_FALSE → Phase 2 설계로.
  STOP조건 발생 → P0C_CONTRACT_STOP_REPORT (실행 안 함, 회장 보고).
  실행했으나 surfacing/보고 미도달 → P0C_PHASE1_NOT_OBSERVED (기존 pilot처럼 정직 보고, rollback 아님).
```

## 9. 금지 (계약·실행 공통)
새 task 위임 / 새 PR / 코드 수정 / hook 설치 / Stop hook·pre-push 착수 / strict / real fire / callback delivery / dev self-key / raw key / systemd enable·start / cron 신규 / driver always-on / merge·push / production activation / Phase 2·3 자동 진입 — 전부 금지.
