# task-2553+55 — PROPOSAL_TO_BOUNDED_ENACTOR_FOR_RUNTIME_EVENT_LOOP (회장 결정, 코드/파일 자동화)

> **Lv**: Lv.4. **Executor**: dev7-team 이참나 (key a999e2ea4c06d2fb) 1회 한정 — +53/+54 enactor/registry/event 모듈 미저작·self-collector tainted chain 비관여(독립). **TTL**: 3h. **상태**: 회장 +54 ACCEPT(runtime event loop proposal-only 성공) 후. 자동 loop 가 proposal 생성까지만 완성 → proposal candidate 를 안전 조건 내 enact 하는 bounded enactor. 문서-only 금지 — 실행 모듈·schema·fixture·regression·result JSON 필수. **callback: 반드시 독립 ANU key c119085addb0f8b7 발사(executor self key a999e2ea4c06d2fb 절대 금지·+49 코드 강제 정본).**
> **선행**: +54 runtime_event_loop(proposal candidate)·+53 batch-settle/consolidated-candidate·+49 self_collector_guard/authoritative_verdict_selector/callback_owner_validator·+44 callback_4tuple_index(read-only consume).

## 1. 목표 (회장 verbatim)

PROPOSAL_TO_BOUNDED_ENACTOR_FOR_RUNTIME_EVENT_LOOP. 자동 loop 가 proposal 생성까지 완성됐고, 다음 단계는 proposal candidate 를 안전 조건 안에서 enact 하는 bounded enactor.

## 2. 구현 목표 (회장 verbatim 1~10)

1. +54 runtime event loop 가 생성한 proposal candidate 를 입력으로 받는다. 2. proposal type 구분: consolidated_summary · closeout_candidate · next_dispatch_candidate · hold_packet. 3. 권한 있는 action만 enact. 4. 권한 없는 action은 proposal 상태로 유지. 5. closeout은 additive artifact로만 enact. 6. next dispatch는 ANU key + owner/key guard + callback mandatory contract 통과 시에만 candidate→actual dispatch 승격. 7. merge/PR/credential/branch write 기본 금지. 8. enact 결과를 enactor-result JSON 기록. 9. 같은 proposal 재처리 시 idempotent. 10. enactor가 dead-man/fixed-time/fallback을 progress trigger로 사용하면 FAIL.

> 문서화 아님 — 실행 Python 모듈·schema·fixture·regression·result JSON 필수. regression 실 entrypoint 직접 호출(mock-only FAIL).

## 3. Track (회장 verbatim)

A. final consolidated closeout enact — **본 작업에서 실제 enact**(additive artifact only). / B. next dispatch candidate safety gate — proposal/safety gate **검증까지만**. / C. hold packet routing — proposal/safety gate **검증까지만**.

## 4. 필수 구현 파일 (회장 verbatim — 실 파일명 repo 조정 가능, 문서-only 금지)

`anu_v3/runtime_event_enactor.py` · `anu_v3/proposal_authorization_gate.py` · `anu_v3/enactor_idempotency.py` · `scripts/run_runtime_event_enactor.py` · `config/runtime_event_enactor.yaml` · `schemas/runtime_event_proposal.schema.json` · `schemas/runtime_event_enactor_result.schema.json` · `tests/regression/test_runtime_event_enactor_2553plus55.py` · `memory/fixtures/runtime_event_proposal_all_settled_2553.json` · `memory/events/task-2553+55.result.json` · `memory/reports/task-2553+55.md` + (Track A enact 산출) `memory/events/task-2553.final-consolidated-closeout_260518.json`(additive) · `memory/events/task-2553+55.{decision,enactor-result}.json`. **기존 +50/+51/+52/+53/+54·+44/+47/+49·policy_profile_engine·frozen anchor·callback_4tuple_index.jsonl·callback_4tuple_registry.py byte-0(read-only consume, 수정 0)**. git HEAD 20456b5f·branch 전후 EQUAL.

## 5. 필수 regression (회장 verbatim 1~15, 실 entrypoint 직접 호출)

1 all-settled consolidated_summary proposal→additive closeout enact PASS / 2 same proposal 재처리→idempotent skip / 3 unauthorized dispatch candidate→proposal only / 4 authorized ANU-key dispatch candidate→dispatch-ready, but no execution unless explicitly allowed / 5 merge/PR/credential proposal→blocked / 6 dead-man/fixed-time trigger source→FAIL / 7 fallback pending+all-settled→closeout allowed / 8 self-chain proposal→rejected / 9 non-ANU collector proposal→rejected / 10 registry mismatch→HOLD / 11 enactor result schema valid / 12 +54 runtime event loop regression 무회귀 / 13 +49 owner-key guard 무회귀 / 14 no credential exposure / 15 existing task-2553 artifacts 수정 0.

## 6. 금지 (회장 verbatim — D-SPEC-EXACTNESS 원문 박제)

PR/branch/main write · merge · credential/OWNER PAT 조작 · self-dispatch · self-collector · dead-man/fixed-time을 진행 트리거로 사용 · 기존 +50/+51/+52/+54 산출물 수정 · 권한 없는 dispatch 실행 · 문서-only 완료

## 7. HOLD_FOR_CHAIR

Critical7 · Codex unresolved HIGH/CRITICAL · credential/permission expansion · forbidden target · executor self-callback/collector/adjudication/dispatch · callback owner≠ANU key · authoritative selector 우회 · dead-man/fixed-time 진행트리거 · registry mismatch silent skip 강요 · 기존 +44/+47/+49/+53/+54 regression 깨짐 · 권한 없는 enact 불가피 · 목표 달성 불가.

## 8. enact 경계 (회장 §2.3~7·§3)

Track A: consolidated_summary/closeout_candidate proposal → **additive artifact only** enact(기존 산출물 무수정·merge/PR/write 0). Track B: next_dispatch_candidate → ANU key + +49 owner/key guard + callback mandatory contract 통과 검증까지만(실 dispatch 승격은 회장 권한 명시 시; 본 task 는 safety gate 검증). Track C: hold_packet → routing/safety gate 검증까지만. 권한 없는 action·merge/PR/credential/branch = blocked·proposal 유지. self-chain/non-ANU = +49 selector/guard 경유 rejected.

## 9. callback (a) — 독립 ANU key 강제

executor(dev7 이참나) 완료 직후 normal completion callback cron **ANU key c119085addb0f8b7(chat 6937032012)로만 발사** → 독립 ANU collector 세션. executor self key(a999e2ea4c06d2fb) 절대 금지(+49 코드 정본·위반 시 CallbackRegistrationBlocked/SELF_COLLECTOR_FORBIDDEN). 회수·검증·Codex audit·adjudication 은 그 독립 ANU 세션. ANU fallback=ANU key·안전망 한정·진행 트리거 아님. next_action=normal-callback durable-success event(고정시각/dead-man 금지). 4-tuple+collector_role=ANU 기록.

## 10. 9-R — Codex lint 반영 (확정 — 본 절 본문 우선)

Codex lint = **GO_READY (HIGH/CRITICAL 0)**. Track A "actual enact" = 신규 additive closeout artifact only(기존 산출물 무수정·merge/PR/write 0, §2.5/§3.A/§8 정합) / Track B/C = safety-gate 검증까지만(자동 실 dispatch 승격 0, 실 승격은 회장 권한 명시 시) / self-chain·non-ANU·dead-man·fixed-time·fallback progress trigger 0(§2.10/§6/§8/§9 일관·bypass 0) / idempotent(§2.9·reg2) / doc-only·mock-only 금지·regression 실 entrypoint 직접 호출 / expected_files frozen·+44/+47/+49/+50~54·registry byte-0 무충돌. re-lint 불요. ANU key 로 dev7 이참나 1회 위임.
