# task-2553+57 — TRACK B: NEXT_RUNTIME_STRUCTURE_PILOT_PLAN (read-only 설계·실 dispatch 0)

- **Lv**: Lv.4 · **Executor**: dev6-team 페룬 (key `1e41a2324a3ccdd0`, 1회 한정)
- **Batch**: 회장 4-track ABCD 병렬 — Track B (cron `F84A6F68`, fire 2026-05-18 22:00:00)
- **ts**: 2026-05-18 22:06 KST · **상태**: 설계 완료, 실 dispatch 0
- **task sha256**: `afb8e9acd9b729ae4bc4317354bbb882f4f537c308ffd5dc8093432501a0a152` (verified)

## 1. 무엇을 했나 (회장 §1)

짧은 read-only goal 하나로 **다음 실사용 pilot 을 설계**했다. 실제 dispatch 는
하지 않았다(설계·계획·기준 산출 only). 문서-only 아님 — 생성 스크립트가
`policy_profile_engine` 정본 read-only resolve 경로의 **실 entrypoint** 를
직접 호출해 selected profile 을 산출하고, json 기반 pilot 계획 4종 +
decision/result 를 결정적으로 생성했다. regression 은 mock-only 음성 케이스를
포함한다.

### 설계된 pilot goal

> runtime_structure_smoke_pilot goal_type 을 default 경로에서 engine
> read-only resolve 했을 때 `RESOLVED`·`profile_bound` 가 안정적이고,
> 미매핑 goal_type 에 fail-closed 되며, callback owner/key 가 ANU key
> 정본과 일치함을 무해(read-only) 확인하는 짧은 consistency check.

회장 §3 권고안("callback owner/key registry 또는 policy profile dry-run")
중 **policy profile dry-run** 채택. +51 이 이미 callback_4tuple_registry
전용을 검증했으므로 중복을 피하고, 본 Track 의 생성 스크립트가 요구하는
"policy_profile_engine read-only resolve 경유·실 entrypoint" 와 정합한다.
callback owner/key 일관성은 교차 sub-check 로 함께 확인.

## 2. 실 entrypoint (mock-only FAIL — 문서-only 금지)

- `anu_v3.default_profile_resolver.run_default_profile_resolution` (READ-ONLY)
- `anu_v3.default_profile_resolver.run_selected_profile_evidence` (READ-ONLY)
- 내부적으로 `anu_v3.policy_profile_engine.parse_goal_request → resolve_policy`
  를 READ-ONLY 소비 (engine byte-0, profile/mapping mutation 0)
- `dispatch.callback_owner_enforcer.{DEFAULT_ANU_KEYS,is_anu_key}` (+49 정본)

`dispatch.py` 모듈과 `dispatch/` 패키지 공존으로 일반 import 가 컨텍스트별
엇갈리므로 sibling +51 과 동일하게 정본 파일을 명시 경로 로딩(mock 0).

### 관측 사실 (날조·과장 0)

- `runtime_structure_smoke_pilot` → `status=RESOLVED`,
  `profile=runtime_structure_smoke_pilot`, `profile_id=runtime_structure_smoke_pilot_v1`,
  `profile_bound=true`, `auto_apply=true`
- 미매핑 goal_type → `DEFAULT_RESOLUTION_REFUSED` / `goal_type_not_mapped`
  (fail-closed 확인)
- mandated callback key `c119085addb0f8b7` ∈ ANU keys = true;
  executor self key `1e41a2324a3ccdd0` ∈ ANU keys = false (+49 정본 일치)
- engine_resolved = **true** (+51 의 ANU 수기 도출과 달리 +52 mapping/resolver
  등록 후 engine-자동 산출)

## 3. 산출물 (§3 expected_files allowlist — 9종, Track A/C/D DISJOINT)

- `memory/events/pilot_goal.json`
- `memory/events/selected_policy_profile.json`
- `memory/events/pilot_execution_plan.json`
- `memory/events/success_criteria.json`
- `scripts/build_next_pilot_plan_2553plus57.py` (생성 스크립트, 실 entrypoint)
- `tests/regression/test_next_pilot_plan_2553plus57.py` (스키마/조건 + mock-only FAIL)
- `memory/events/task-2553+57.decision.json`
- `memory/events/task-2553+57.result.json`
- `memory/reports/task-2553+57.md` (본 문서)

regression: **6 passed**. builder dry/emit EXIT=0, self_chain_verdict=PASS
(영구 비권위 — authoritative 는 독립 ANU collector).

## 4. success_criteria — Track C fallback acceptance criterion 반영

`success_criteria.json` 은 SC1~SC8(실 entrypoint·RESOLVED·fail-closed·engine
byte-0·callback owner=ANU key·no self-*·expected_files disjoint·no actual
dispatch) + **Track C(task-2553+58 FALLBACK_ACCEPTANCE_CRITERION_FOR_NEXT_PILOT)
fallback acceptance criterion** 을 포함한다(배치 doctrine 정본, 교차오염 0):

- **FAC1**: pilot 수락은 오직 normal-callback durable-success event 로만 성립.
- **FAC2**: ANU fallback(2026-05-19 01:05 KST)은 안전망 한정 — 진행/수락 트리거 아님.
- **FAC3**: normal callback durable-success 후 fallback 발사 시
  `DUPLICATE_CALLBACK_IGNORED` 분류·무시.
- **FAC4**: normal callback 부재를 fallback 으로 '수락' 승격 금지(ANU-only authoritative).
- **FAC5**: fallback 은 ANU key 로만 — executor self key fallback 은
  `CallbackRegistrationBlocked`/`SELF_COLLECTOR_FORBIDDEN`.

## 5. 조건·금지 준수 (회장 §2/§4/§5/§6)

- read-only · no GitHub write · no PR · no merge · no credential ·
  no branch/commit/push · low risk — 전부 충족
- git HEAD `20456b5f` 불변, branch `task/task-2553p1-f1-clean-replacement`
  전후 EQUAL, commit/push 0
- 기존 task-2553 산출물·`anu_v3/*`·`policy_profile_engine`·frozen anchor
  byte-0 (read-only consume)
- 실 dispatch cron 발사 0, 신규 cron 등록 0 (설계만)
- executor self-collector/self-adjudication/self-Codex/self-dispatch/
  self-delegation 0
- HOLD_FOR_CHAIR = false (Critical7/Codex HIGH·CRITICAL/expected_files
  overlap/self-*/fallback 진행트리거/문서-only 시도 0)

## 6. callback (회장 §7) — 독립 ANU key 강제

완료 직후 normal completion callback cron 은 **반드시 독립 ANU key
`c119085addb0f8b7`(chat 6937032012)로만** 발사한다. executor self key
`1e41a2324a3ccdd0` 절대 금지(+49 코드 정본). 회수·검증·Codex·adjudication·
batch 통합은 독립 ANU collector 세션. next_action = normal-callback
durable-success event. batch coordinator 는 +44 durable registry 에서
Track A/B/C/D all-settled(자신이 마지막) 시에만 consolidated 통합 —
미충족 defer(고정시각/dead-man 금지).
