Resolve dcy-004 OQ-1~3 from trex-orbit reference
- OQ-1 asset_id: asset_id == portfolio_id — use the slot's portfolio_id
directly as the ledger path param (orbit ledger.py / migration 003 /
coordinator). No symbol mapping or asset lookup.
- OQ-2 durability: ledger outbox (work item) + retry loop, correlation_id
{asset_id}:{order_id}:{execution_id} dedup, outcome vocabulary
(completed/duplicate_completed/retryable_failure/conflict_blocked) —
orbit LedgerWriter pattern; recording decoupled from slot transition.
- OQ-3 exec data: deterministic execution_id (KIS
kis-daily-ccld:{ord_dt}:{brno}:{odno}:{tot_ccld_qty} / paper synth),
fee via BrokerPort calculate_fee, tax default 0.
All dcy-004 open questions answered; R-2/R-4 resolved. Remaining gates
(scope-defer confirm, portfolio-hub contract data, Confirmed By) left for
confirm-discovery.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>