# callback_authority_gate fixtures — INDEX

task-2646 CALLBACK_REGISTRATION_AUTHORITY_GATE  
8 fixtures (회장 verbatim 7 + 정정 1 — 2026-05-24)

## 회장 verbatim 정책 인용

> "모든 callback 등록 경로를 단일 helper로 통합하고, actual schedule owner key가 ANU key인지 등록 직후 검증한다."

> "ANCHOR-1: envelope collector_key 텍스트가 ANU key여도 actual schedule owner key가 self-key면 FAIL"
> "ANCHOR-2: callback registration helper 단일화 · dispatch.py + direct cron 양 경로 결선"
> "ANCHOR-3: 4 source 교차확인 (schedule_history + cron-history + envelope + result artifact)"
> "ANCHOR-4: one-shot cron fire 후 cron-list 0이어도 missing 단정 금지"
> "ANCHOR-5: self-key callback NON_AUTHORITATIVE · 삭제 금지 · 독립 재검증 대체"
> "ANCHOR-6: task-2644 9CAB9D33 self-key FAIL ↔ task-2645 EBEF96C8 ANU key PASS 실증 fixture 강제"

> "★ 정정 (2026-05-24): direct cron 자체 금지 아님. helper contract + actual owner 검증 포함 시 허용."

## 8 fixture 요약 표

| # | 디렉토리 | 시나리오 | expected.state | verdict | ANCHOR |
|---|---|---|---|---|---|
| 1 | fixture_01_task_2644_self_key_fail | task-2644 9CAB9D33 실 사건 — self-key | NON_AUTHORITATIVE_SELF_COLLECTOR | FAIL | 1,5,6 |
| 2 | fixture_02_task_2645_anu_key_pass | task-2645 EBEF96C8 실 사건 — ANU key | OWNER_KEY_VERIFIED | PASS | 4,6 |
| 3 | fixture_03_envelope_anu_actual_self_mismatch | envelope=ANU but actual=self-key | OWNER_KEY_MISMATCH | FAIL | 1 |
| 4 | fixture_04_cron_list_zero_history_exists | cron-list=0 + schedule_history present | CRON_LIST_AUTODELETED_FIRED | PASS | 4 |
| 5 | fixture_05_cron_list_zero_history_absent | cron-list=0 + 4 source 모두 absent | CALLBACK_MISSING | FAIL | 3,4 |
| 6 | fixture_06_direct_cron_no_helper_raw_self_key | both paths=False (helper bypass) | REGISTRATION_HELPER_BYPASSED | FAIL | 2 |
| 7 | fixture_07_dispatch_path_with_helper_pass | dispatch_path=True + ANU owner | OWNER_KEY_VERIFIED (via DISPATCH_SUBMITTED_UNVERIFIED) | PASS | 2 |
| 8 | fixture_08_direct_cron_with_helper_actual_owner_verified_pass | direct_cron_path=True + ANU (정정) | OWNER_KEY_VERIFIED | PASS | 2 |

## 각 fixture 구조

```
fixture_XX_<name>/
  evidence.json    — 입력 (envelope + observed owner + cron-history + schedule_history + result_artifact)
  expected.json    — 기대 결과 (state, verdict, authority_marker)
  PROVENANCE.md    — 회장 verbatim 인용 + fixture 의도 + 사고 매핑
```
