{
  "status_id": "bridge-reconciliation-cards-20260520",
  "generated_at_utc": "2026-06-05T22:10:09Z",
  "source": "bridge_public_live_status_generator",
  "card_count": 15,
  "overall_state": "public_safe_reconciliation_cards_ready",
  "claim_boundaries": {
    "rpc_freshness_is_public_value_movement": false,
    "rpc_freshness_is_product_runtime_ibc": false,
    "rpc_freshness_is_destination_admission": false,
    "rpc_freshness_is_native_vault_activation": false,
    "rpc_freshness_is_sell_redeem_swap_or_public_exit": false,
    "rpc_freshness_is_wrapper_minting": false
  },
  "cards": [
    {
      "card_id": "node_rpc",
      "label": "Node RPC",
      "severity": "green",
      "state": "live_rpc_reachable_not_catching_up",
      "source_refs": [
        "https://bridge.uquad.org/rpc/status",
        "ops/generate-public-bridge-live-status.py"
      ],
      "safe_public_claim": "Bridge public RPC is fresh for the named node-status proof.",
      "bridge_action": "Continue public status observation only.",
      "must_not_infer": [
        "product value movement",
        "destination admission",
        "host finality"
      ]
    },
    {
      "card_id": "public_data_reconciliation",
      "label": "Website / Chain Reconciliation",
      "severity": "green",
      "state": "reconciled_public_no_value_claim",
      "source_refs": [
        "ops/public-bridge/data/bridge-stats.json",
        "ops/public-bridge/data/bridge-live-status.json"
      ],
      "safe_public_claim": "Public website data matches live node status while no-value claims stay closed.",
      "bridge_action": "Keep serving public status.",
      "must_not_infer": [
        "website outranks chain state",
        "public proof opens execution"
      ]
    },
    {
      "card_id": "route_runtime",
      "label": "Route Runtime",
      "severity": "sleep",
      "state": "closed_no_public_value_movement",
      "source_refs": [
        "BRIDGE_PRODUCT_ACCEPTANCE_JOURNEY_20260520.md",
        "BRIDGE_ROUTE_OUTPUT_DENOM_LAW.md"
      ],
      "safe_public_claim": "Bridge route runtime is closed for public value movement.",
      "bridge_action": "Refuse route-success claims until route, payment, packet, host, and receiver receipts exist.",
      "must_not_infer": [
        "public value movement",
        "product-runtime IBC",
        "destination admission",
        "host execution",
        "production native-vault activation"
      ]
    },
    {
      "card_id": "packet_ack_finality",
      "label": "Packet / Ack / Finality",
      "severity": "sleep",
      "state": "waiting_for_product_runtime_ibc_receipts",
      "source_refs": [
        "BRIDGE_DATA_PRODUCT_CATALOG_20260520.md",
        "BRIDGE_IBC_TESTNET_READINESS.md"
      ],
      "safe_public_claim": "No product packet ack/finality claim is open on this public surface.",
      "bridge_action": "Wait for a route-linked packet receipt, terminal ack/timeout, and finality proof before claiming completion.",
      "must_not_infer": [
        "packet delivery is destination admission",
        "pending packet is finality",
        "transport proof is product IBC"
      ]
    },
    {
      "card_id": "terminal_state_receipts",
      "label": "Terminal State Receipts",
      "severity": "green",
      "state": "terminal_receipts_seeded_and_searchable",
      "source_refs": [
        "/data/bridge-terminal-receipt-backing.json",
        "/bridge/terminal-state/receipt-search",
        "bridge/terminal_state_receipt/v1"
      ],
      "safe_public_claim": "Seeded refused, quarantined, and recovered terminal receipts are searchable on the resident chain.",
      "bridge_action": "Use these receipts as bounded public evidence labels only; keep route, host, payment, and destination claims closed until their own receipts exist.",
      "must_not_infer": [
        "receipt is value movement",
        "receipt is destination admission",
        "receipt is host execution",
        "receipt mutates the original fact"
      ]
    },
    {
      "card_id": "destination_handoff",
      "label": "Destination Handoff",
      "severity": "green",
      "state": "packet_backed_receiver_ack_visible",
      "source_refs": [
        "/data/bridge-destination-handoff-backing.json",
        "/bridge/native-acquisition/receiver-ack/resident-native-liquidity-purchase-infra-usdc-20260522T022152Z",
        "/bridge/ibc/product-packet-plan/resident-packet-plan-infra-usdc-receiver-20260522T0306Z"
      ],
      "safe_public_claim": "Packet-backed receiver acknowledgement is visible on the resident chain with exact receiver contract and no Bridge-side destination, accounting, host execution, custody, wrapper, or sell-path claims.",
      "bridge_action": "Keep receiver admission and accounting receiver-owned; repeat this proof with a real counterparty-emitted packet before widening the claim.",
      "must_not_infer": [
        "destination handoff is value movement",
        "destination handoff is receiver accounting",
        "destination handoff is host execution",
        "destination handoff is Bridge custody",
        "destination handoff is wrapper minting",
        "destination handoff is sell/redeem/swap",
        "resident packet evidence is an external counterparty packet"
      ]
    },
    {
      "card_id": "transport_relayer",
      "label": "Transport Relayer",
      "severity": "amber",
      "state": "service_active_recent_error_logs_observed_partial_measurements",
      "source_refs": [
        "/data/bridge-relayer-health.json",
        "bridge-osmo-hermes.service",
        "BRIDGE_OBSERVABILITY_CONTRACT_20260520.md"
      ],
      "safe_public_claim": "Scoped transport relayer service is active but recent error-like logs require review.",
      "bridge_action": "Treat relayer path as degraded until packet backlog/gas-float receipts and recent-error review are clean.",
      "must_not_infer": [
        "relayer is buyer",
        "relayer is custodian",
        "relayer grants destination admission"
      ]
    },
    {
      "card_id": "relayer_backlog",
      "label": "Relayer Backlog",
      "severity": "sleep",
      "state": "pending_packet_probe_failed_or_not_clear",
      "source_refs": [
        "/data/bridge-relayer-health.json",
        "BRIDGE_OBSERVABILITY_CONTRACT_20260520.md"
      ],
      "safe_public_claim": "Relayer backlog measurement is unavailable or not clear.",
      "bridge_action": "Do not claim backlog-clear status from service activity alone.",
      "must_not_infer": [
        "active service means backlog clear",
        "packet pending state is finality",
        "transport proof is product IBC"
      ]
    },
    {
      "card_id": "relayer_gas_float",
      "label": "Relayer Gas Float",
      "severity": "sleep",
      "state": "gas_float_low_or_unobserved",
      "source_refs": [
        "/data/bridge-relayer-health.json",
        "BRIDGE_ROUTING_FEE_SETTLEMENT.md"
      ],
      "safe_public_claim": "Relayer gas-float measurement is unavailable or below threshold.",
      "bridge_action": "Do not claim gas solvency or reimbursement closure from service activity alone.",
      "must_not_infer": [
        "relayer gas is route liquidity",
        "reimbursement is settlement",
        "gas float grants custody"
      ]
    },
    {
      "card_id": "relayer_provider_path",
      "label": "Relayer Provider Path",
      "severity": "green",
      "state": "counterparty_rpc_recent_error_threshold_clear",
      "source_refs": [
        "/data/bridge-relayer-health.json",
        "bridge-osmo-hermes.service",
        "BRIDGE_OBSERVABILITY_CONTRACT_20260520.md"
      ],
      "safe_public_claim": "Recent Hermes provider-error threshold is clear for the relayer path.",
      "bridge_action": "Continue observation.",
      "must_not_infer": [
        "provider availability is destination admission",
        "provider access proves packet delivery",
        "provider payment proves truth"
      ]
    },
    {
      "card_id": "relayer_provider_fallback",
      "label": "Relayer Provider Fallback",
      "severity": "amber",
      "state": "fallback_candidate_ready_not_activated",
      "source_refs": [
        "/data/bridge-relayer-health.json",
        "polkachu_osmosis_testnet_public_rpc_index"
      ],
      "safe_public_claim": "A public fallback RPC candidate is reachable and fresh, but Hermes has not been repointed.",
      "bridge_action": "Require an explicit provider-change receipt before activating fallback in Hermes config.",
      "must_not_infer": [
        "fallback probe is activation",
        "fallback provider is destination admission",
        "fallback endpoint is host truth by itself"
      ]
    },
    {
      "card_id": "provider_health",
      "label": "Provider Health",
      "severity": "amber",
      "state": "public_rpc_fresh_host_provider_quorum_pending",
      "source_refs": [
        "https://bridge.uquad.org/rpc/status",
        "BRIDGE_RPC_PROVIDER_PAYMENT_LEDGER.md"
      ],
      "safe_public_claim": "The public Bridge RPC provider path is fresh for node status.",
      "bridge_action": "Keep provider truth limited to the observed node-status lane; host-native lanes still need their own provider/finality proofs.",
      "must_not_infer": [
        "paid provider proves truth",
        "endpoint access proves host finality",
        "provider health authorizes value movement"
      ]
    },
    {
      "card_id": "settlement_liability",
      "label": "Fees / Settlement",
      "severity": "green",
      "state": "external_fee_settlement_receipts_visible",
      "source_refs": [
        "/data/bridge-fee-settlement-backing.json",
        "/bridge/native-acquisition/fee-external-settlement-receipt/{receipt-id}",
        "BRIDGE_ROUTING_FEE_SETTLEMENT.md",
        "BRIDGE_NATIVE_ACQUISITION_FEE_SPEND_LAW.md"
      ],
      "safe_public_claim": "Provider-invoice, Infra-memory, and host-gas external settlement receipts are visible with authorized spend and service/order backing while bank movement, custody, pricing, reserve, foundation, and destination-admission claims remain closed.",
      "bridge_action": "Treat these as settlement observations only; keep external payment rail activation and receiver/local accounting separate.",
      "must_not_infer": [
        "fee recognition is bank movement",
        "spend authorization is settlement",
        "settlement grants custody",
        "settlement activates external payment rail",
        "settlement is reserve backing",
        "settlement is foundation distribution"
      ]
    },
    {
      "card_id": "infra_export",
      "label": "Infra Export",
      "severity": "amber",
      "state": "Three Infra epoch export wires acknowledged",
      "source_refs": [
        "BRIDGE_SOURCE_OF_TRUTH_REGISTRY_20260520.md",
        "BRIDGE_DATA_PRODUCT_CATALOG_20260520.md"
      ],
      "safe_public_claim": "Bridge has prior Infra wire acknowledgement labels.",
      "bridge_action": "Keep Infra memory claims limited to named export receipts and stale labels.",
      "must_not_infer": [
        "Infra memory is Bridge authority",
        "export ack is destination admission"
      ]
    },
    {
      "card_id": "public_refresh_timer",
      "label": "Public Refresh Timer",
      "severity": "green",
      "state": "bridge-public-live-status.timer=active",
      "source_refs": [
        "bridge-public-live-status.timer",
        "bridge-public-live-status.service"
      ],
      "safe_public_claim": "Public live-status refresh is timer-backed.",
      "bridge_action": "Refresh public status and mark stale/degraded when the generator cannot reconcile.",
      "must_not_infer": [
        "timer freshness is product execution",
        "timer freshness is value movement"
      ]
    }
  ]
}
