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

1.8 KiB

id, status
id status
ac-0032 active

B-case auto-reconcile authoritative evidence와 eligibility

Criterion

reconcile_core_holdings는 하나의 성공한 broker balance snapshot에서 broker_qty > 0이고, 같은 scheduler refresh의 portfolio-hub item이 slot의 instance_key·portfolio_id·symbol과 일치하며 asset_quantity == broker_qty일 때만 B-case 자동 동기화를 검토한다. 별도 canonical cost-basis 응답은 같은 portfolio·symbol·current quantity를 증명하고, fetch 시각이 60초 이내이며, data_completeness_warning이 없고, 양의 finite cost_basis_per_unit과 수량×평단에 일치하는 양의 finite total_cost_basis를 제공해야 한다. 대상 slot은 holding, 미퇴역, broker dispatch/pending metadata 없음이어야 한다. 첫 구현에서 inactive, pending_buy, pending_sell, error, retired slot은 자동 동기화하지 않는다. 어느 evidence든 missing·stale·invalid·불일치이거나 read/set-warning가 실패하면 fail-closed하여 slot과 warning을 변경하지 않는다. Operator sync의 legacy/graceful-degrade 계약은 변경하지 않는다.

Verification

  • hub·broker 수량과 canonical cost-basis identity/current quantity가 모두 일치하는 holding만 통과한다.
  • hub/broker mismatch, cost-basis warning·stale·legacy-only·missing·non-finite·0 이하·identity mismatch·total mismatch는 모두 자동 변경 없이 B warning을 유지한다.
  • broker balance는 reconcile pass당 한 번만 읽고 판단과 write가 같은 snapshot을 사용한다.
  • pending/dispatch metadata, retired 또는 holding 외 상태는 fail-closed한다.
  • 기존 sync_slot_to_broker의 canonical/legacy diagnostics와 inactive onboarding 회귀 테스트는 그대로 통과한다.