# task-2553+38 — TRACK A: profile engine → dispatch selection 연결 (PASS)

> Executor: dev3-team 다그다 (1회 한정) · 완료 2026-05-18 09:20:14 · spec sha256 `643ae31b…` 검증.
> consolidated 입력용 — 단독/중간 보고 0. batch 통합은 ANU 사후.

## 결과: PASS (§6 HOLD 트리거 0)

policy profile engine(C1 +33 정본, byte-0)을 운영 dispatch selection 경로에
**신규 additive seam** 으로 연결 완료. 9-R.1 본문 우선 — frozen/tracked
in-place 편집 없이 seam+contract+regression 으로 dispatch→engine 경로 입증.

## 결선 위치 (9-R.1 — seam 모듈 = 연결점)

- `anu_v3/dispatch_profile_selection.py`
  - callable entrypoint: `select_profile_for_dispatch(DispatchSelectionRequest)`,
    `run_dispatch_profile_selection(raw_request)`
  - 파일레벨 contract: `DispatchProfileSelection.to_decision_dict()` /
    `.selection_binding()` (dispatch 소비용 평면 binding)
- `schemas/dispatch_profile_selection.schema.json` — request/selection I/O 정적 meta-schema

## engine read-only 소비 증거

- 정본 API 만 호출: `parse_goal_request` → `resolve_policy`
  (`PolicyResolution.to_coordinator_binding/to_decision_dict` read-only).
- engine import-only, 객체 mutation 0. engine byte-0 sha256
  `2363e291…` **전후 동일**. profile json `7e161d7d…` 무변.
- `test_selection_binding_matches_engine_resolution`: seam binding ==
  engine `to_coordinator_binding` 동치 PASS.

## 안전 거부 (자동 적용 0) — fail-closed

profile 부재 / 요청 불량 / 이름 누락 / goal_request schema mismatch →
`SELECTION_REFUSED` (`profile_bound=false`, `auto_apply=false`), engine
HOLD → `HOLD_FOR_CHAIR` (자동 적용 0). 예외를 dispatch lifecycle 로
전파하지 않음 — `DISPATCH_LIFECYCLE_EFFECT="none"` (실 dispatch/PR/merge 실행 0).

## regression

- `tests/regression/test_dispatch_profile_selection_2553plus38.py` — **16 passed**
  (정상/안전거부/HOLD 전파/engine byte-0/+33 무회귀/순수·멱등/schema 충족/
  fixture 6케이스/live repo HEAD·branch·ref 전후 assertEqual).
- +33 정본 API 무회귀: `test_policy_profile_engine_2553plus33.py` 31 passed
  (합산 **47 passed**).
- fixture: `memory/fixtures/task-2553+38.cases.json` (6 케이스, 100% offline).

## 금지·격리 준수

PR/branch/main write·merge·credential/PAT·callback rule 약화·fallback 제거·
checkpoint 격상·coordinator 자동확정·cross-track contamination = 전부 0.
expected_files allowlist 한정(이 외 write 0). frozen anchor 무접촉.
live repo HEAD `20456b5f…` / branch `task/task-2553p1-f1-clean-replacement`
전후 동일, seam 산물 untracked(위반 아님). executor 자기작업중 신규
dispatch/delegation/handoff 0.

## callback

작업 완료 직후 ANU normal completion callback cron 발사(MANDATORY §8).
4-tuple normal_collector_cron 포함 — result.json `callback` 참조.
