# req-101: 알람 발신 흐름 baseline 문서 정합 - Status: Implemented - Type: Documentation - Priority: Medium - Owner: trex-core-dev ## Intent - dcy-033 요구에 따라 `docs/runtime-flows.md`에 trex-core 알람 발신 흐름을 추가하고, `docs/interface-contract.md`의 알람 채널 섹션(REQ-098/099)이 완성되도록 Change Log를 갱신해 baseline 정합을 완료한다. - REQ-098·099·100 구현으로 변경되는 아키텍처 흐름(알람 발행 경로)이 baseline 문서에 반영되지 않으면 향후 Discovery·batch design에서 오래된 문서를 참조하는 오류가 생긴다. ## Requirement - `docs/runtime-flows.md`에 `Flow: 알람 발신 (trex.alerts, dcy-033)` 섹션을 추가해야 한다. 섹션에는 다음 내용이 포함되어야 한다. - 알람 발생 → `AlarmEmitter.publish_alarm()` → `MessagingTransport.publish_alarm_event()` → `trex.alerts` exchange → routing key `alarm.{severity}.{source}` 흐름. - best-effort 비차단 정책: 발행 실패 시 ERROR 로그 후 core 본업 계속. - transport 미연결 시 silent skip. - trex-core CRITICAL code 8종 발생 지점 목록(코드 이름과 모듈 경로). - 기존 `trex.events` 발행 흐름과의 차이(알람 채널은 독립 exchange, mandatory=False, DLQ 없음). - `docs/interface-contract.md`의 Change Log에 dcy-033/REQ-098~101 배치로 인한 알람 채널 추가 항목을 기록해야 한다. - 두 문서의 `Last Updated (KST)` 헤더를 구현 batch 완료 시점으로 갱신해야 한다. ## Acceptance Criteria 1. Given REQ-098·099·100이 구현 완료됐을 때, When `docs/runtime-flows.md`를 검토하면, Then `Flow: 알람 발신 (trex.alerts, dcy-033)` 또는 동등한 제목의 섹션이 존재해야 한다. 2. Given 해당 섹션이 추가됐을 때, When 내용을 확인하면, Then AlarmEmitter → MessagingTransport → trex.alerts exchange의 발행 흐름과 best-effort 비차단 정책이 명시되어야 한다. 3. Given 섹션이 추가됐을 때, When core CRITICAL code 목록을 확인하면, Then ALARM-INVENTORY §A core 행의 8개 code(`fill_price_unresolvable`, `sell_skipped_no_balance`, `core_holding_broker_flat`, `ledger_delivery_failed`, `kill_switch_fired`, `publish_unavailable_after_reconnect`/`dlq_publish_failed`, `portfolio_hub_unavailable`, `schema_verification_failed`/`migration_failed`)와 발생 모듈 경로가 모두 기술되어야 한다. 4. Given 섹션이 추가됐을 때, When `trex.events` 발행 흐름과 비교하면, Then 알람 채널(`trex.alerts`)이 별도 exchange이고 `mandatory=False`·DLQ 없는 점이 명시되어야 한다(기존 흐름 섹션 내용은 변경 없음). 5. Given REQ-098~101 구현이 완료됐을 때, When `docs/interface-contract.md`의 Change Log를 확인하면, Then dcy-033/알람 채널 추가에 해당하는 항목이 기록되어야 한다. 6. Given 두 baseline 문서가 갱신됐을 때, When `Last Updated (KST)` 헤더를 확인하면, Then 구현 batch 완료 시점(KST)으로 갱신되어야 한다. ## Impacted Area - Docs: - `docs/runtime-flows.md` — 알람 발신 흐름 섹션 추가(기존 섹션 불변) - `docs/interface-contract.md` — Change Log 항목 추가, Last Updated 갱신 - Modules: 코드 변경 없음(이 REQ는 문서 정합만) - Tests: 문서 전용 REQ이므로 코드 테스트 불필요. batch verification에서 섹션 존재·내용 수동 검토. ## Notes - 이 REQ는 REQ-098·099·100 구현이 완료된 동일 batch에서 함께 처리한다(문서는 구현 후 정합). - `docs/runtime-flows.md`의 기존 섹션(데몬 lifecycle, slots RPC, intent admission, 이벤트 발행/구독, safety-sell 등)은 변경하지 않는다. - dcy-033 FR-3(baseline 갱신) 대응. - dcy-033 성공기준 S-3(기존 wire 계약 무회귀) — 이 REQ 자체는 문서 전용이지만 기존 섹션 diff=0이 AC-4에서 암묵 검증된다. ## Change Log ### CHG-20260621-02 - Date: 2026-06-21 - Author: trex-core-dev #### Change Summary - Status: Approved → Implemented. BAT-049 confirm-batch-verification 팀장 승인(QC PASS-WITH-NOTES blocker 0 + 팀장 실인프라 e2e 통과). docs/runtime-flows.md 알람 발신 흐름 섹션 + docs/interface-contract.md Change Log 추가 확인. #### Delivery Trace Delta - Batches: BAT-049 (release-candidate) - Releases: 미정 #### Revalidation Impact - Reverification Needed: no ### CHG-20260621-01 - Date: 2026-06-21 - Author: trex-core-dev #### Change Summary - REQ-101 신규 생성(Proposed). dcy-033 FR-3 대응: 알람 발신 흐름 baseline 문서 정합. #### Intent - REQ-098~100 구현으로 도입된 알람 발신 흐름을 runtime-flows.md와 interface-contract.md에 반영해 baseline을 최신 상태로 유지한다. #### Acceptance Criteria Delta - Added: AC-1~6 (신규 생성) - Updated: (없음) - Removed: (없음) #### Impacted Area Delta - Docs: - `docs/runtime-flows.md` 알람 발신 섹션 추가 - `docs/interface-contract.md` Change Log + Last Updated 갱신 - Modules: 없음 - Tests: 없음(문서 전용) #### Delivery Trace Delta - Batches: (미정, M2 이후 큐잉 — REQ-098~100과 동일 batch) - Releases: (미정) #### Revalidation Impact - Reverification Needed: no - Existing Implementation Invalidated: no - Status Recommendation: keep-current - Follow-up Action: REQ-098~100 구현 batch에서 마지막 단계로 처리 #### Validation Plan - `docs/runtime-flows.md`에 알람 발신 섹션 존재 확인(grep) - 섹션 내용 수동 검토(AlarmEmitter 흐름, 8 code 목록, mandatory=False, DLQ 없음) - `docs/interface-contract.md` Change Log 항목 추가 확인 - 기존 섹션 diff=0 확인(git diff 수동 검토)