# BAT-009: paper broker 튜닝 env 노출 (minor-change) - Status: release-candidate - Profile: batch-lite - Source Discovery: dcy-002 (REQ-010 데몬 설정 편의) — 동기는 dcy-003/REQ-011 e2e 시나리오 재현(Notes 참조) - Included REQ: REQ-010 (CHG-20260606-01, AC-5) - Excluded REQ: 없음 ## Summary - REQ-010 CHG-20260606-01 로 추가된 AC-5(paper broker 튜닝 env 노출)를 delivery 하는 minor-change batch-lite. REQ-011 AC-2 가 이미 요구하는 paper 더블의 결정적 시나리오(지연/부분/거부)를 데몬 재기동만으로 재현할 수 있도록, 기존 `PaperBroker` 생성자 knob 을 `.env`/OS env(`TREX_PAPER_FILL_AFTER_POLLS`/`TREX_PAPER_QTY_PER_POLL`/`TREX_PAPER_REJECT_SYMBOLS`)로 노출한다. 미설정이면 기존 `PaperBroker()` 동작과 byte-for-byte 동일(회귀 없음). ## Scope - In Scope: - `runtime/config.py`: `PaperBrokerConfig` frozen dataclass + `DaemonConfig.from_env()` 파싱(빈 문자열 → None/frozenset 정규화). - `runtime/daemon.py`: `_build_broker` paper 분기에서 `config.paper` 주입. - `.env.example`: paper 튜닝 키 3개 문서화(미설정=production-like 기본). - `tests/runtime/test_config_dotenv.py`: 기본값(test_paper_broker_defaults) + env 파싱(test_paper_broker_env_tuning). - Out of Scope: - PaperBroker 내부 체결 로직 변경(REQ-011 에서 이미 구현·검증). - kis broker 경로(`broker=kis` 시 paper config 무시). - 부분 매도(수량 일부) 등 신규 능력(별도 Discovery/REQ). ## Documents - Planning: [planning.md](./planning.md) - Design: none (batch-lite with no architecture impact) - Implementation: [implementation.md](./implementation.md) - Verification: [verification.md](./verification.md) ## Notes - minor-change: 기존 PaperBroker 생성자 인자를 config 표면으로 노출하는 additive 변경. BrokerPort 계약·슬롯 런타임 흐름 불변, design 불요. - 동기 출처: REQ-011(dcy-003) e2e 시나리오 재현 필요. REQ-010(dcy-002) 의 설정 로딩 메커니즘 위에 키를 얹는 형태라 REQ-010 change-req 로 귀속. - 구현 코드는 본 batch 생성 시점에 이미 working tree 에 존재(미커밋). verification stage 에서 단위테스트(166 pass) + e2e evidence(거부 롤백/지연/부분)를 verification.md 에 정리한다.