# task-2620 — RUNTIME_CONTRACT_WIRING_AND_CRITICAL7_FALSE_POSITIVE_HARDENING (회장 직접 결정 · 회장-인가 신규 task)

> **Lv**: Lv.3. **Executor**: dev6-team 페룬 (key 1e41a2324a3ccdd0) 1회 한정 — task-2614 원 executor(dispatch_callback_contract 직접 인지). **TTL**: 3h. **분류**: 회장 명시 신규 chair-authorized task — BATCH_LEVEL_HOLD CLOSED_ALL_SETTLED 의 forward-candidate 3건(A=결선 audit·D=task-2614 H1/H2/H3·B=critical7 false-positive)을 묶어 진행. 문서-only 금지. **callback: 반드시 독립 ANU key c119085addb0f8b7(executor self key 1e41a2324a3ccdd0 절대 금지·+49 코드 정본).**
> **HOLD 정본 / 진입 근거**: `memory/events/callback_4tuple_index.jsonl` line 45(task-2614 HIGH 3 forward-candidate clarification) · `memory/events/task-2615.independent-collector-adjudication.json`(C7R3 literal-keyword false-positive). 회장 2026-05-20 직접 결정.

## 1. 목표 (회장 verbatim)

BATCH_LEVEL_HOLD 시스템이 **파일/테스트로만 존재하는 상태가 아니라 실제 dispatch/collector/runtime path 에 결선되어 있는지 검증**하고, **반복 false-positive 를 줄인다**.

## 2. 범위 (세 갈래·묶음 처리)

### §2.1 dispatch_callback_contract.py 실 결선 audit + 결선 (A)
- audit 대상: `dispatch.py`(존재 시) · `scripts/*` 중 dispatch/cron 등록 진입 · `cokacdir --cron` 발행 경유의 코드/스크립트(있다면) · 일상 위임 코드.
- **각 dispatch 사이트별** 다음 확인을 read-only 로 먼저 수행 후 결과를 `memory/events/task-2620.runtime-wiring-audit.json` 에 사이트당 행으로 기록(파일·라인·진입 함수·callback 계약 호출 여부·classification: WIRED / NOT_WIRED / OUT_OF_SCOPE_DOCUMENTED):
  1) normal completion callback(ANU key c119085addb0f8b7)이 **실제 호출**되는지
  2) ANU-key fallback safety-net 가 dispatch 시점에 등록되는지
  3) `assert_collector_key_is_independent_anu` 가 fail-closed 로 self-key collector/adjudication/dispatch 를 차단하는지
- audit 후 **결선 작업**: NOT_WIRED 사이트 중 **production 핵심 경로(dispatch.py / 메인 cron 등록 helper)** 만 최소-변경 additive 결선(import + 호출). 옵셔널/주변 스크립트는 OUT_OF_SCOPE_DOCUMENTED 로 명기(이번 task scope 외). 결선 변경은 **회장 강화원칙**(파일 존재만으로 PASS 금지) 충족.
- **결선 증거**: 결선 후 사이트 1개 이상에서 실 invoke trace 캡처(stdout/log)를 `memory/events/task-2620.wiring-runtime-trace.json` 에 기록. 파일 존재 단독 PASS 금지.

### §2.2 task-2614 H1/H2/H3 forward-candidate hardening (D)
- H1 **classify CONTRACT_OK edge**: contract 분류기의 경계조건(예: normal_present=True·fallback_present=True 인데 collector_key 누락 등 mixed-signal) 정확 분류로 hardening. fail-closed.
- H2 **evaluate input-coercion**: `dispatch_callback_contract.classify_dispatch_contract` / `evaluate` 의 입력값 강제(타입/형식/required key 검증) — 빈 dict·None·잘못된 type 입력 fail-closed.
- H3 **idempotency record-order**: `RecoveryWatcher.maybe_spawn` 의 idempotency 기록 순서를 atomic 보장(write-then-mark 가 아닌 atomic 1회 기록 후 분기) — 동시 호출·재시도 경계에서 중복 spawn 0 강화.
- 기존 `anu_v3/dispatch_callback_contract.py` minimal-edit additive(기존 contract API 시그니처 byte-0 — caller 영향 0).

### §2.3 critical7_classifier negation/context-aware false-positive 봉합 (B)
- 사례 fixture 박제: task-2611+2 SAFE precedence · **task-2615 C7R3 'credential write 0' REFUTATION 매칭** · 기타 doc/test 내 키워드 등장(설명/부정문/REFUTATION).
- 분류기 개선: literal keyword 매칭에 **negation/context preprocessor**(예: "0/no/없음/금지/forbidden/refute/false 동반 키워드", REFUTATION 문장 패턴) 적용해 false-positive 차단. 약화가드 불변: detection coverage 감소 0 · escalation route 변경 0(SAFE 방향만).
- 변경 범위: `anu_v3/critical7_classifier.py`(negation/context preprocessor·minimal additive) + 필요 시 `config/critical7_rules.yaml`(rule metadata에 context flag 추가, 7 family/우선순위 불변).
- regression: refutation false-positive 차단 케이스 + 기존 진성 Critical7 8/8 무회귀(약화 0) 동시 PASS.

### §2.C C 항목 — read-only telemetry 후보만 기록 (회장 명시)
- normal callback 미발사 근본원인은 본 task 수정 0. **read-only telemetry 후보**(어떤 지표·어디서 수집·임계·트리거)를 `memory/events/task-2620.callback-telemetry-candidate.read-only.json` 에 후보로만 기록(코드 변경 0·dispatch 0).

## 3. 필수

- py/schema/test/runtime path 기준 · 문서-only 금지 · regression PASS · Codex 재audit HIGH/CRITICAL 0 또는 non-Critical forward-candidate 명확 분류 · **actual runtime wiring 증거**(§2.1 trace 캡처) · self-chain 권위 금지 · independent ANU collector 만 authoritative · PR/merge/branch/main/credential write 금지 · git HEAD `20456b5f83fc039f2fd6f50f4b94095c29b41bfb`·branch `task/task-2553p1-f1-clean-replacement` 전후 EQUAL(ANU Layer-A no-git·커밋 0)
- `dispatch_callback_contract` API 시그니처 byte-0(caller 영향 0) · critical7_classifier 7 family/Critical7 우선순위/약화가드 byte-0 · detection coverage 감소 0 · escalation route 불변 · BATCH_LEVEL_HOLD CLOSED_ALL_SETTLED 산출물 byte-0(2610~2615 deliverable·ledger 기존 46행 append-only prefix unchanged)
- Codex 재audit HIGH/CRITICAL 0 일 때만 durable-success write-back(독립 ANU 가 수행)

## 4. expected_files allowlist (자기 deliverable 한정)

`anu_v3/dispatch_callback_contract.py`(H1/H2/H3 minimal hardening · API 시그니처 byte-0) · `anu_v3/critical7_classifier.py`(negation/context preprocessor minimal additive · 7 family/약화가드 byte-0) · `config/critical7_rules.yaml`(필요 시 context flag metadata 추가 한정·rule list/우선순위 byte-0) · `dispatch.py` 또는 메인 cron 등록 helper 중 **결선 핵심 1~2 사이트만**(additive 호출 추가·기존 동작 무회귀) · `tests/regression/test_dispatch_callback_contract.py`(H1/H2/H3 + wiring proof additive) · `tests/regression/test_critical7_classifier.py`(refutation false-positive 차단 + 기존 8/8 무회귀 additive) · `memory/events/task-2620.runtime-wiring-audit.json` · `memory/events/task-2620.wiring-runtime-trace.json` · `memory/events/task-2620.callback-telemetry-candidate.read-only.json` · `memory/events/task-2620.{decision,result}.json` · `memory/reports/task-2620.md`. 이 외 write 0. **BATCH_LEVEL_HOLD CLOSED_ALL_SETTLED 산출물 전부(task-2610~2615 + scripts/run_batch_hold_adjudicator.py + sample.*.json) byte-0 · Track A/B/C/D/E/F 산출물·Track C task-2619 산출물·기존 task-2553/2604 multitrack byte-0 · callback_4tuple_index.jsonl 기존 46행 byte-0 prefix(append-only)**. git HEAD·branch 전후 EQUAL.

## 5. 금지

Track C(task-2619 finish-task.sh/git_evidence) 수정 · zombie cron 정리 · 새 시스템 대형 확장 · 실제 PR open/merge · 기존 CLOSED_ALL_SETTLED 산출물 변조 · `dispatch_callback_contract` API 시그니처 변경(caller 영향) · critical7 7 family/우선순위/약화가드 약화 · detection coverage 손실 · escalation route 변경 · executor self-callback/self-collector/self-adjudication/self-dispatch · PR/branch/main write·merge·credential · premature write-back(독립 ANU Codex HIGH/CRITICAL 0 확정 전) · 문서-only/disposition-only 완료 · §2.C(callback 누락 근본 원인) 실수정.

## 6. HOLD_FOR_CHAIR

신규 Critical7 또는 shared invariant 파손, **또는 §2.3 negation/context preprocessor 가 detection coverage 손실/escalation route 변경을 야기함이 판명**될 때만 CHAIR_HOLD. 그 외 non-Critical 잔여는 AUTO_REMEDIATION 자동 수렴 계속(분류 후 멈춤 금지·회장 확인 대기 0). 단 동일 함수/file-boundary HIGH 가 3회 이상 반복되면 AUTO_REMEDIATION_LOOP_BOUNDARY_REVIEW 요약 보고(feedback-auto-remediation-loop-boundary-review 정합).

## 7. callback (a) — 독립 ANU key 강제 + recovery-only fallback safety-net (no-dual-purpose 정합)

완료 직후 normal completion callback **ANU key c119085addb0f8b7 로만 발사** → 독립 ANU collector 회수·검증·Codex 재audit·adjudication. dispatch 시점에 **recovery-only fallback safety-net(ANU key·cancel-on-success·진행 트리거 아님·final-report 책임 0·feedback-no-dual-purpose-watcher 정합)** 동시 등록(mandatory contract). collector adjudication durable-success 확정 즉시 fallback cancel-on-success 제거(노이즈 0). Codex 재audit HIGH/CRITICAL 0 일 때만 +53 durable-success write-back. **잔여 non-Critical HIGH 시 회장 보고 없이 task-2620+1 자동 수렴 계속**(단 동일 함수/file-boundary HIGH 3회 반복 시 loop-boundary review). executor self key 1e41a2324a3ccdd0 절대 금지(+49 정본). authoritative 판정원=독립 ANU only.

## 8. 완료 보고 (회장 8항목 verbatim)

1. **실제 결선 audit 결과** (각 사이트 WIRED/NOT_WIRED/OUT_OF_SCOPE_DOCUMENTED + runtime trace)
2. **false-positive 개선 결과** (refutation/negation 차단·진성 8/8 무회귀)
3. **task-2614 H1/H2/H3 처리 결과**
4. **regression 결과** (전수 PASS·기존 77 무회귀)
5. **Codex audit 결과** (HIGH/CRITICAL 0 또는 non-Critical forward-candidate 명확 분류)
6. **runtime dogfood 결과** (결선된 사이트 실 invoke trace)
7. **PR/merge/credential/write 0 증거** (git EQUAL · branch 불변 · commits 0)
8. **남은 backlog** (E/F/G/H 유지 상태·기타 forward-candidate)

## 9. 9-R (확정 — 본 절 본문 우선 · PRE-DISPATCH SPEC)

본 task md 는 dispatch 전 작업 명세(spec). 산출물 부재·baseline 일치 정상. lint 기준=spec 정합성(구현 검증 아님·feedback-spec-lint-not-implementation-check). 회장 직접 결정으로 BATCH_LEVEL_HOLD CLOSED_ALL_SETTLED 의 forward-candidate 3건(A/D/B)을 묶어 진행. 새 범위 추가 0(forward-candidate 의 결속) · py/schema/test/runtime path 기준 · 문서-only 금지 · actual runtime wiring 증거 강제 · dispatch_callback_contract API 시그니처 byte-0 · critical7 7 family/약화가드 byte-0 · detection coverage 감소 0 · escalation route 불변 · BATCH_LEVEL_HOLD CLOSED_ALL_SETTLED 산출물·Track A~F·Track C(task-2619 동결)·기존 task-2553/2604 byte-0 · callback_4tuple_index.jsonl prefix 46행 byte-0 · §C C 항목 실수정 금지(read-only telemetry 후보만) · premature write-back gate · mandatory normal callback + recovery-only fallback safety-net(no-dual-purpose) · self-* 금지 · ANU-key callback 정합 · loop-boundary review 정합. **ANU-Codex re-lint GO_READY 확정 후 dispatch**. ANU key 로 dev6 페룬 1회 위임.
