# task-2553+58 — FALLBACK_ACCEPTANCE_CRITERION_FOR_NEXT_PILOT (TRACK C)

- **Executor**: dev4-team 비슈누 (key 7943afbe12c12f7d) 1회 한정
- **Spec**: `memory/tasks/task-2553+58.md` (sha256 `976d904d…ed9ea40f71`)
- **Batch**: 회장 4-track ABCD — Track C (Track A=+56 / B=+57 / C=+58 / D=+59)
- **Status**: EXECUTOR_IMPLEMENTATION_COMPLETE — 독립 ANU collector(ANU key `c119085addb0f8b7`) 회수/검증/Codex/adjudication/batch-coordination pending

## 1. 한 일

회장 §2 verbatim 기준("normal callback durable-success 이후 bound fallback 은 (a) cancel-on-success 제거 OR (b) registry NON_BLOCKING 명시 마크 — 마크 없이 발화 후 DUPLICATE_CALLBACK_IGNORED-only = 안전성 OK 지만 운영 품질 PASS 아님")을 **기계 판정 가능한 기준 + 스키마 + 실 entrypoint + regression** 으로 산출. 문서-only 아님.

## 2. 산출물 (§3, 9파일 — expected_files allowlist 전부)

1. `memory/events/fallback_acceptance_criteria.json` — `anu.fallback_acceptance_criteria.v1`. criterion a/b·anti_pattern·safety_invariant·decision_table·entrypoint·pilot_adoption·references.
2. `schemas/non_blocking_fallback_schema.json` — `task-2553+58.non_blocking_fallback_mark_v1`. draft-07, `additionalProperties:false`. owner_key/chat_id = ANU const, `normal_success_unchanged` const true, `progress_trigger` const false, `cancel_on_success_applied` const false.
3. `scripts/validate_fallback_acceptance_2553plus58.py` — 실 entrypoint. `evaluate_fallback_acceptance` / `validate_non_blocking_mark` / `check_criteria_schema_coherence` / `main`(read-only, 파일 write 0).
4. `tests/regression/test_fallback_acceptance_2553plus58.py` — 17 testcase, 실 entrypoint 직접 호출, mock-only FAIL 가드.
5. `memory/fixtures/task-2553plus58.cases.json` — observation 케이스 + 마크 fixture.
6. `memory/reports/pilot_acceptance_addendum.md` — 다음 pilot live acceptance criterion 정식 추가.
7. `memory/events/task-2553+58.decision.json` · `.result.json`
8. `memory/reports/task-2553+58.md` (본 문서)

## 3. 판정 로직 (회장 §2 → 기계화)

- `normal_success_unchanged != true` → **SAFETY_FAIL** (fail-closed, 기준 평가 이전)
- durable-success 미선행 / bound fallback 부재 → **NOT_APPLICABLE** (정당 recovery)
- (a) `cancel_on_success_applied` & 미발화 → **OPERATIONAL_PASS** `[a]`
- (b) NON_BLOCKING schema-valid + task_id·fallback_cron_id binding 일치 → **OPERATIONAL_PASS** `[b]`
- a·b 동시 → **OPERATIONAL_PASS** `[a,b]`
- 마크 無 + 발화 + `DUPLICATE_CALLBACK_IGNORED`/`NO-ACTION` only → **OPERATIONAL_QUALITY_FAIL** (회장 §2 anti_pattern — 안전성 OK, 품질 PASS 아님)

## 4. 검증

- `pytest tests/regression/test_fallback_acceptance_2553plus58.py -q` → **17 passed**
- +37 합산 → **36 passed** (교차 테스트 오염 0)
- `python3 scripts/validate_fallback_acceptance_2553plus58.py` → rc=0, coherence 12-check 전부 true, `writes_performed=0`, self_sample `[PASS, PASS, QUALITY_FAIL]`
- legacy 실 선례 매핑: `C7359B43(+50)`·`CD2E3ACC(+49)` 현 상태 → 정확히 `OPERATIONAL_QUALITY_FAIL` (inventory `findings.7` 정식 기준화 실증)

## 5. Invariants / 경계

- git HEAD `20456b5f…` · branch `task/task-2553p1-f1-clean-replacement` 전후 EQUAL
- frozen anchor byte-0 (pre==post): legacy-pending-fallback-inventory `20b727f2…`, +37 dup-ignored `7a5294dd…`, callback_4tuple_index.jsonl `388c2c9d…`, cancel_on_success_audit.schema `b5848b3f…`
- 신규 산출물 9건 전부 **untracked additive** (tracked 파일 수정 0)
- expected_files allowlist 외 write 0 · 실 cron 강제삭제 0 · 실 dispatch 0 · merge/PR/branch 0
- fallback/dead-man/fixed-time 진행 트리거 0 (schema `progress_trigger` const false 로 구조적 차단)
- executor self-* 0 — 회수·검증·Codex·adjudication·batch coordination 은 독립 ANU 세션 전담

## 6. callback (§7 (a))

완료 직후 normal completion callback cron 을 **독립 ANU key `c119085addb0f8b7`(chat 6937032012)로만** 발사. executor self key `7943afbe12c12f7d` 절대 금지(+49 코드 정본). next_action=normal-callback durable-success event. 그 독립 ANU 세션이 batch coordinator 로서 +44 registry Track A/B/C/D all-settled 시(자신 마지막) consolidated 통합 — 미충족 시 defer (고정시각/dead-man 금지).
