Files
trex-core/.proofline/criteria/ac-0022.md
T

1.7 KiB

id, status
id status
ac-0022 active

strategy slots RPC broker-authoritative holding quantity

Criterion

trex.slots.req.<instance>의 holding 슬롯 qty는 요청한 instance에 결합된 KIS account broker holdings(hldg_qty)를 authoritative source로 사용해야 한다. daily_slot.qty와 portfolio-hub 집계값은 각각 slot_quantity, asset_quantity 진단 필드로 분리 유지한다. broker 수량을 확보하지 못했거나 freshness 허용시간을 초과하면 core/hub mirror fallback 없이 qty=null, qty_source="unavailable", broker_quantity_available=false, broker_quantity_captured_at=null을 반환해 전략이 fail-closed하도록 해야 한다. confirmed broker zero는 qty=0, qty_source="broker"로 unavailable과 구분되어야 한다. 이 read path는 주문 submit/cancel, ledger write, slot lifecycle mutation을 유발하지 않아야 한다.

Verification

  • 성공 조건: mismatch fixture(broker=440, slot=435, hub=435)에서 holding row가 qty=440, slot_quantity=435, asset_quantity=435, qty_source="broker"를 반환한다. broker zero fixture는 qty=0으로 유지된다.
  • 실패·경계 조건: broker unavailable/stale fixture에서 qty가 slot/hub 값으로 대체되면 FAIL이다. 이 경우 qty=null과 명시적 unavailable metadata를 반환해야 한다.
  • 격리 조건: 다중 instance 테스트에서 각 trex.slots.req.<instance>는 해당 instance account snapshot만 참조하며 타 instance broker/snapshot/slot 데이터가 섞이지 않아야 한다.
  • 비침습 조건: slots RPC 호출 전후로 slot 상태 전이, broker mutation, ledger write side effect가 없어야 한다.