# BAT-043 Planning - Status: confirmed - Batch: BAT-043 - Profile: batch-lite ## Included REQ - REQ-007 (CHG-20260615-01) — rejected SellIntent 응답 additive `retryable: bool` ## Delivery Plan 1. `messaging_handlers.py` 에 core 소유 `_SELL_REJECT_RETRYABLE` 매핑 + helper(`_sell_retryable(reason)` — 미인식 기본 true, `bad_request:*`/terminal → false). 2. intent 응답 빌더: `intent_type=="sell"` 且 `status=="rejected"` 일 때만 `retryable` 부여. bad_request 조기반환 경로(sell 식별 가능 시)도 동일 적용. 3. 테스트 추가 + interface-contract 문서 정합. ## Dependencies - Internal: `messaging_handlers.make_intent_rpc_handler`(응답 빌더), `intents.py`(reason 어휘 — _admit_sell/_dedup). - External: trex-tsl 데몬(소비자, 별도 저장소) — 폴백 보유로 lockstep 불요. ## Design Gate - Design Required Before Implementation: no - Reason: 단일 additive 응답 필드 + 순수 매핑(dict). 구조/런타임 흐름/스키마 영향 없음. 계약 변화는 interface-contract 한 줄. design.md 불요(batch-lite). ## Milestones 1. 매핑 + helper + 응답 빌더 2. 테스트 + 문서 ## Risks - reason 어휘 drift: 매핑이 core 에 있어 새 reason 추가 시 함께 갱신(미인식 기본 true 가 안전망). — 매핑 테스트로 현행 reason 전수 커버. - bad_request 경로: sell 여부 판별 가능 지점에서만 retryable=false 부여(불명확하면 미부여 — 데몬 폴백).