Files
siloqy/prod/docs/UV_TESTNET_ARMING_CHECKLIST.md

3.4 KiB
Raw Blame History

UV TESTNET ARMING CHECKLIST — DARK → LIVE on BingX VST

For the operator. Execute top to bottom; every box is a stop-if-red. The integrator (Fable/successor) signs §12; only YOU execute §3.

§1 — Certification complete (integrator signs)

  • Gate A verdict PASS in prod/docs/uv_cert/GATE_AB_RUN_<ts>.md (Tier 1 + Tier 2 green; Tier 3a/3b drift-rates reported and explained). T10 merged.
  • Gate B verdict PASS (fuzz surface green, deterministic re-run identical).
  • T2P1 merged: journal writes verified against real DateTime64(3); raw scan surface (assets[], asset_prices[]) persisting per scan into dolphin_uv; creds never in URL.
  • Zinc soak healthy ≥24h on current main: region seq at scan cadence, TUI source:zinc, RSS flat (ram block), zero writes outside dolphin_uv (guard log).

§2 — Seam dry-run reviewed (integrator signs)

  • T9 merged: 3 injected intents fully mapped + journaled, ZERO venue calls (DARK default proven); u- prefix litmus green; mainnet-block mutation test green.
  • T12 merged: bridge inert-by-default proven; shadow-mode journal shows SUPPRESSED intents recorded during a live soak window — review that excerpt: are these the trades you'd want taken?
  • End-to-end DARK rehearsal: PRIME live scan → bridge (suppressed) → verify the would-have-been intent in dolphin_uv.exec_journal matches the journaled decision bit-for-bit.

§3 — Arming (OPERATOR ONLY, in this order)

  1. Create VST API keys on BingX testnet (never mainnet keys anywhere near this box's UV env). Fund the VST account.
  2. Place keys per T9's config seam (env/file per merged T9 README — keys never in git, never in the repo tree).
  3. Start the seam runner (uv_exec instance) STILL DARK — verify it authenticates, reads balances, places NOTHING. Check venue telemetry region populating.
  4. Write the arming file: echo "$(date -Iseconds) <your-initials>" > /root/uv-wt/prime-live/UV_PROMOTED.arm and set UV_PROMOTED=1 on the PRIME runner env; restart PRIME runner.
  5. FIRST TRADE WATCH: sit on the TUI for the first bridged intent → order. Verify on the venue: clientOrderId starts u-, size/leverage match the journaled intent, position appears in dolphin_uv.exec_journal with venue echo.
  6. Let it run ONE session. Review: every venue order has a matching BRIDGE row and journaled decision; PnL accounting sane vs venue statement.

§4 — Kill / rollback (know it BEFORE arming)

  • Instant stop: delete UV_PROMOTED.arm (bridge goes inert next scan) — no restart needed. Harder stop: kill the uv_exec runner (positions remain on venue — close via venue UI if needed; it is VST money).
  • Any anomaly (order without journal row, journal row without order, non-u- order, any write appearing outside dolphin_uv): kill first, forensics second, report on h5i.

Standing constraints while live

  • Gate C (live soak) is observation, not a pass/fail blocker — but the T8 stop-watcher ledger and the differ (PRIME still shadows BLUE — parity keeps being measured WHILE UV trades) are the instruments. Divergence trend = stand down and investigate.
  • BLUE remains untouched, unthrottled, unshadowed by any of this. If UV ever competes with BLUE for the same venue account: it must not — separate VST account, always.