BOOKING_AUDIT_BASE_URL=https://your-domain.example
BOOKING_INTERNAL_API_TOKEN=...
BOOKING_SMOKE_SHORT_TERM_PROPERTY_ID=approved-test-property
npm run booking:production-smoke -- --require-ready --report-file=reports/booking-production-smoke.json
npm run booking:production-smoke -- --env-file=.env.production --require-ready --report-file=reports/booking-production-smoke.json
默认模式要求 env_file_loaded 通过或运行环境已直接注入变量,booking_env_readiness 显示 required env groups 全部 ready,并且目标环境不能配置 BOOKING_SANDBOX_GATEWAYS;source=database、Google Places / Maps 已配置、discovery_provider_live 通过、三类库存 API 有房源、first_screen_contract_routes 证明短租 / 中租 / 长租首屏契约路由通过、booking_integration_contracts_manifest 完整、短租 short_term_ari_gateway_live 有真实 availability/rate、ops_inbox_internal、ops_inbox_recovery_samples、order_processing_short_term_package、order_processing_mid_term_package、order_processing_long_term_package、analytics_summary_internal、ops_alert_configured、ops_alert_webhook_configured、ops_alert_email_backup_configured、status_webhook_configured、PMS gateway dry run、pms_gateway_mid_term_operations_tasks、pms_gateway_long_term_operations_tasks、payment gateway dry run、payment_gateway_short_term_authorization、payment_gateway_mid_term_quote_authorization、payment_gateway_long_term_application_fee_authorization、payment_gateway_long_term_move_in_authorization、payment_gateway_short_term_capture、payment_gateway_short_term_pms_failure_void、payment_gateway_mid_term_booking_failure_void、payment_gateway_long_term_move_in_void、payment_webhook_signed_event、guest_notification_configured、guest_notification_account_queue_configured、guest_email_notification_configured、guest_sms_notification_configured、document storage dry run、长租 provider dry run、long_term_provider_webhook_screening_result 和 long_term_provider_webhook_lease_packet 都能用内部 token 验证。production_smoke_check_coverage 必须通过,证明 smoke 报告包含所有默认上线检查;production_smoke_plan_ready 必须通过,证明 planGapSummary.readyForLaunchProven=true。ops_inbox_recovery_samples 必须证明短租 capture / conversation / cleaning failure、payment void、PMS handoff、screening、lease 和中长租 operations task failure 都会进入正确 owner queue,并带有 critical priority、nextAction、checklist 和 actionLinks。order_processing_*_package 必须证明短租、中租、长租单笔记录能打开 owner queue、handoff、nextActions、eventTimeline 和人工恢复入口;没有 live record 时要验证 authenticated not-found contract。analytics_summary_internal 还必须满足 coverageTypes.has("short_term")、coverageTypes.has("mid_term")、coverageTypes.has("long_term") 和 coverageShapeOk,也就是每个租赁类型都返回 requiredEvents、missingEvents 和 complete。需要验证 storage object API 时,在 approved test window 加 --document-storage-live-test,输出应包含 document_storage_live_object。--allow-sandbox-gateways 只允许本地演练,不能附到上线工单。--report-file 会把完整 JSON 证据包写到指定文件,附到上线工单;--env-file 只输出加载状态和 key 数量,不打印 secret 值。