{"ok":true,"meta":{"generatedAt":"2026-06-30T13:21:45.155Z"},"data":{"version":"tzv3-production-evidence-v1","endpoint":"/api/infrastructure/production-evidence","command":"npm run evidence:audit","script":"scripts/tzv3-production-evidence.mjs","configured":true,"relatedEndpoints":{"ciPolicy":"/api/infrastructure/ci-policy","launchChecklist":"/api/infrastructure/launch-checklist","clubHandoff":"/api/club/handoff-policy","ownerInputs":"/api/infrastructure/owner-inputs","secretRotation":"/api/infrastructure/secret-rotation","sourceControl":"/api/infrastructure/source-control","telegramHandoff":"/api/webhooks/telegram/setup-policy","scheduleProviderReconciliation":"/api/schedule/provider-reconciliation","productionGaps":"/api/readiness","publicOrigin":"/api/infrastructure/public-origin-policy"},"summary":{"blockingStageCount":14,"stageEvidenceCount":14,"evidenceCommandCount":111,"endpointCheckCount":55,"ownerInputCount":52,"missingRequiredEnvironmentCount":16,"evidenceBlockedStageCount":4,"contractFailureCount":0,"productionWarningCount":24},"contractReady":true,"productionCollectionReady":false,"productionBoundary":["This manifest proves the launch evidence plan is complete and no-write.","It does not claim production launch success until required env, public origin, and deployed-domain evidence are collected.","Run evidence:audit with --require-production after the final domain, website Vercel project, env, database, schedule tenant, CDN, and external providers are configured."],"safety":{"mode":"read-only","writes":false,"printsSecrets":false,"note":"Builds a launch evidence plan from existing checklist/gap data. It never writes deployment settings, DNS, database rows, schedule providers, media, reviews, or legal requests."},"stageEvidence":[{"stageId":"domain","order":1,"title":"Canonical production domain","status":"needs-deployed-evidence","ownerInputCount":3,"missingRequiredEnvironment":[],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run source:audit","verificationCommands":["npm run source:audit","npm run ci:audit","npm run github-ci:audit","npm run vercel:link:audit","npm run origin:audit -- --require-production","curl -s https://your-domain.example/api/infrastructure/source-control","curl -s https://your-domain.example/api/infrastructure/ci-policy","curl -s https://your-domain.example/api/infrastructure/public-origin-policy","curl -s https://your-domain.example/api/infrastructure/vercel-link","curl -s https://your-domain.example/robots.txt","curl -s https://your-domain.example/sitemap.xml","TZV3_BASE_URL=https://your-domain.example npm run seo:audit"],"endpointChecks":["/api/infrastructure/source-control","/api/infrastructure/ci-policy","/api/infrastructure/public-origin-policy","/api/infrastructure/vercel-link","/robots.txt","/sitemap.xml","/"],"commandKinds":["script","http-read"]},{"stageId":"schedule","order":2,"title":"Ready-made schedule connector","status":"needs-deployed-evidence","ownerInputCount":9,"missingRequiredEnvironment":[],"missingOptionalEnvironment":["NEXT_PUBLIC_SCHEDULE_EMBED_URL","NEXT_PUBLIC_SCHEDULE_WIDGET_URL","NEXT_PUBLIC_SCHEDULE_LANG","SCHEDULE_API_URL","SCHEDULE_API_TOKEN","SCHEDULE_AVAILABILITY_PATH","SCHEDULE_REQUEST_PATH"],"firstEvidenceCommand":"npm run schedule:provider-handoff","verificationCommands":["npm run schedule:provider-handoff","npm run schedule:provider-import-payload","npm run schedule:provider-reconciliation -- --require-production","npm run schedule:links:audit","npm run schedule:audit","curl -s https://your-domain.example/api/schedule/provider-handoff-policy","curl -s https://your-domain.example/api/schedule/provider-import-payload","curl -s https://your-domain.example/api/schedule/provider-reconciliation","curl -s https://your-domain.example/api/schedule/link-audit-policy","curl -I https://your-domain.example/schedule-preview?site=artesc&lang=en","curl -s https://your-domain.example/api/schedule/tenant-status","curl -s https://your-domain.example/api/schedule/status","curl -s 'https://your-domain.example/api/schedule/availability?profile=sofia'"],"endpointChecks":["/api/schedule/provider-handoff-policy","/api/schedule/provider-import-payload","/api/schedule/provider-reconciliation","/api/schedule/link-audit-policy","/schedule-preview?site=artesc&lang=en","/api/schedule/tenant-status","/api/schedule/status","/api/schedule/availability?profile=sofia"],"commandKinds":["script","http-read"]},{"stageId":"database","order":3,"title":"Production PostgreSQL and seed import","status":"missing-required-env","ownerInputCount":2,"missingRequiredEnvironment":["DATABASE_URL","ADMIN_API_TOKEN"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run database:seed-payload","verificationCommands":["npm run database:seed-payload","npm run database:audit","curl -s https://your-domain.example/api/database/bootstrap-policy","curl -s https://your-domain.example/api/database/audit-policy","curl -s https://your-domain.example/api/database/seed-payload","curl -s https://your-domain.example/api/health","curl -s https://your-domain.example/api/profiles"],"endpointChecks":["/api/database/bootstrap-policy","/api/database/audit-policy","/api/database/seed-payload","/api/health","/api/profiles"],"commandKinds":["script","http-read"]},{"stageId":"admin-security","order":4,"title":"Admin secrets and audit","status":"missing-required-env","ownerInputCount":2,"missingRequiredEnvironment":["ADMIN_API_TOKEN","ADMIN_SESSION_SECRET"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run admin:audit","verificationCommands":["npm run admin:audit","npm run secrets:rotation","curl -s https://your-domain.example/api/infrastructure/secret-rotation","curl -s https://your-domain.example/api/admin/session","curl -s https://your-domain.example/api/admin/security-audit-policy","Open https://your-domain.example/admin/profiles and confirm the editor is locked before login, then unlocked after POST /api/admin/session.","curl -s https://your-domain.example/api/admin/audit/policy"],"endpointChecks":["/api/infrastructure/secret-rotation","/api/admin/session","/api/admin/security-audit-policy","/admin/profiles","/api/admin/audit/policy"],"commandKinds":["script","http-read","manual-browser"]},{"stageId":"telegram-status","order":5,"title":"Telegram live-status workflow","status":"missing-required-env","ownerInputCount":3,"missingRequiredEnvironment":["TELEGRAM_WEBHOOK_SECRET","DATABASE_URL"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run telegram:handoff","verificationCommands":["npm run telegram:handoff","npm run telegram:audit","curl -s https://your-domain.example/api/webhooks/telegram/setup-policy","curl -s https://your-domain.example/api/webhooks/telegram/status","curl -s https://your-domain.example/api/status","curl -N --max-time 2 https://your-domain.example/api/status/stream"],"endpointChecks":["/api/webhooks/telegram/setup-policy","/api/webhooks/telegram/status","/api/status","/api/status/stream"],"commandKinds":["script","http-read"]},{"stageId":"vip-club","order":6,"title":"VIP Club verification workflow","status":"missing-required-env","ownerInputCount":3,"missingRequiredEnvironment":["VIP_CLUB_WEBHOOK_URL","VIP_CLUB_WEBHOOK_TOKEN"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run club:handoff","verificationCommands":["npm run club:handoff","npm run club:audit","curl -s https://your-domain.example/api/club/policy","curl -s https://your-domain.example/api/club/handoff-policy","curl -s https://your-domain.example/api/club/audit-policy","curl -I https://your-domain.example/club"],"endpointChecks":["/api/club/policy","/api/club/handoff-policy","/api/club/audit-policy","/club"],"commandKinds":["script","http-read"]},{"stageId":"media-cdn","order":7,"title":"Media storage and CDN delivery","status":"missing-required-env","ownerInputCount":5,"missingRequiredEnvironment":["NEXT_PUBLIC_MEDIA_CDN_URL","CLOUDFLARE_R2_BUCKET","CLOUDFLARE_R2_ACCESS_KEY_ID","CLOUDFLARE_R2_SECRET_ACCESS_KEY"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run media:public-urls","verificationCommands":["npm run media:public-urls","npm run media:audit","curl -s https://your-domain.example/api/media/public-url-policy","curl -s https://your-domain.example/api/media/video-policy","curl -s https://your-domain.example/api/media/enhancement-policy","curl -s https://your-domain.example/api/media/asset-manifest"],"endpointChecks":["/api/media/public-url-policy","/api/media/video-policy","/api/media/enhancement-policy","/api/media/asset-manifest"],"commandKinds":["script","http-read"]},{"stageId":"search-cache","order":8,"title":"Elastic search and Redis cache","status":"missing-required-env","ownerInputCount":5,"missingRequiredEnvironment":["ELASTICSEARCH_URL","ELASTICSEARCH_API_KEY","UPSTASH_REDIS_REST_URL","UPSTASH_REDIS_REST_TOKEN"],"missingOptionalEnvironment":["ELASTICSEARCH_INDEX"],"firstEvidenceCommand":"npm run search:bulk-payload","verificationCommands":["npm run search:bulk-payload","npm run search:audit","curl -s https://your-domain.example/api/search/policy","curl -s https://your-domain.example/api/search/index-manifest","curl -s https://your-domain.example/api/search/bulk-payload","curl -s 'https://your-domain.example/api/search?q=vip%20english'"],"endpointChecks":["/api/search/policy","/api/search/index-manifest","/api/search/bulk-payload","/api/search?q=vip%20english"],"commandKinds":["script","http-read"]},{"stageId":"reviews-seo","order":9,"title":"Real reviews and Review JSON-LD","status":"missing-required-env","ownerInputCount":3,"missingRequiredEnvironment":["DATABASE_URL","ADMIN_API_TOKEN"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run reviews:audit","verificationCommands":["npm run reviews:audit","curl -s https://your-domain.example/api/reviews/policy","curl -s https://your-domain.example/api/reviews/audit-policy","curl -s https://your-domain.example/api/seo/review-schema"],"endpointChecks":["/api/reviews/policy","/api/reviews/audit-policy","/api/seo/review-schema"],"commandKinds":["script","http-read"]},{"stageId":"pwa-push","order":10,"title":"PWA push provider and unsubscribe evidence","status":"needs-deployed-evidence","ownerInputCount":4,"missingRequiredEnvironment":[],"missingOptionalEnvironment":["NEXT_PUBLIC_VAPID_PUBLIC_KEY","PWA_PUSH_PROVIDER_URL","PWA_PUSH_PROVIDER_TOKEN"],"firstEvidenceCommand":"npm run pwa-push:audit","verificationCommands":["npm run pwa-push:audit","curl -s https://your-domain.example/api/pwa/push/policy","curl -s https://your-domain.example/api/pwa/push/audit-policy"],"endpointChecks":["/api/pwa/push/policy","/api/pwa/push/audit-policy"],"commandKinds":["script","http-read"]},{"stageId":"analytics","order":11,"title":"Web Vitals and analytics sink","status":"missing-required-env","ownerInputCount":3,"missingRequiredEnvironment":["WEB_VITALS_ENDPOINT_URL"],"missingOptionalEnvironment":["WEB_VITALS_ENDPOINT_TOKEN"],"firstEvidenceCommand":"npm run vitals:audit","verificationCommands":["npm run vitals:audit","curl -s https://your-domain.example/api/performance/vitals"],"endpointChecks":["/api/performance/vitals"],"commandKinds":["script","http-read"]},{"stageId":"legal","order":12,"title":"Legal pages and takedown contact","status":"missing-required-env","ownerInputCount":3,"missingRequiredEnvironment":["LEGAL_CONTACT_EMAIL"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"npm run legal:audit","verificationCommands":["npm run legal:audit","curl -s https://your-domain.example/legal","curl -s https://your-domain.example/api/legal/retention-policy","curl -s https://your-domain.example/api/legal/contact-policy","curl -s https://your-domain.example/api/legal/audit-policy"],"endpointChecks":["/legal","/api/legal/retention-policy","/api/legal/contact-policy","/api/legal/audit-policy"],"commandKinds":["script","http-read"]},{"stageId":"cloudflare","order":13,"title":"Cloudflare DNS, WAF, and monitoring","status":"needs-deployed-evidence","ownerInputCount":5,"missingRequiredEnvironment":[],"missingOptionalEnvironment":["CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_ZONE_ID","CLOUDFLARE_API_TOKEN","MIRROR_DOMAINS","MIRROR_TELEGRAM_ALERT_URL"],"firstEvidenceCommand":"npm run cloudflare:audit","verificationCommands":["npm run cloudflare:audit","curl -s https://your-domain.example/api/infrastructure/cloudflare/policy","curl -s https://your-domain.example/api/security/policy","curl -s https://your-domain.example/api/infrastructure/mirrors/check"],"endpointChecks":["/api/infrastructure/cloudflare/policy","/api/security/policy","/api/infrastructure/mirrors/check"],"commandKinds":["script","http-read"]},{"stageId":"final-qa","order":14,"title":"Final deployed-domain QA","status":"missing-required-env","ownerInputCount":2,"missingRequiredEnvironment":["DATABASE_URL","ADMIN_API_TOKEN","ADMIN_SESSION_SECRET","TELEGRAM_WEBHOOK_SECRET","VIP_CLUB_WEBHOOK_URL","VIP_CLUB_WEBHOOK_TOKEN","LEGAL_CONTACT_EMAIL","ELASTICSEARCH_URL","ELASTICSEARCH_API_KEY","UPSTASH_REDIS_REST_URL","UPSTASH_REDIS_REST_TOKEN","NEXT_PUBLIC_MEDIA_CDN_URL","CLOUDFLARE_R2_BUCKET","CLOUDFLARE_R2_ACCESS_KEY_ID","CLOUDFLARE_R2_SECRET_ACCESS_KEY","WEB_VITALS_ENDPOINT_URL"],"missingOptionalEnvironment":[],"firstEvidenceCommand":"TZV3_BASE_URL=https://your-domain.example npm run preflight:production","verificationCommands":["TZV3_BASE_URL=https://your-domain.example npm run preflight:production","npm run github-ci:audit","npm run secrets:rotation -- --require-production","npm run env:check:production","npm run origin:audit -- --require-production","npm run evidence:audit -- --require-production","curl -s https://your-domain.example/api/infrastructure/production-evidence","npm run admin:audit","npm run database:seed-payload","npm run database:audit","npm run cloudflare:audit","npm run media:public-urls","npm run media:audit","npm run pwa-push:audit","npm run legal:audit","npm run reviews:audit","npm run schedule:provider-handoff","npm run schedule:provider-import-payload","npm run schedule:provider-reconciliation -- --require-production","npm run schedule:links:audit","npm run schedule:audit","npm run search:bulk-payload","npm run search:audit","npm run telegram:handoff","npm run telegram:audit","npm run club:handoff","npm run vitals:audit","TZV3_BASE_URL=https://your-domain.example npm run readiness","TZV3_BASE_URL=https://your-domain.example npm run seo:audit","TZV3_BASE_URL=https://your-domain.example npm run load:smoke"],"endpointChecks":["/","/api/infrastructure/production-evidence"],"commandKinds":["script","http-read"]}],"evidenceQueue":[{"id":"domain-1","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"npm run source:audit","kind":"script","endpoint":null},{"id":"domain-2","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"npm run ci:audit","kind":"script","endpoint":null},{"id":"domain-3","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"npm run github-ci:audit","kind":"script","endpoint":null},{"id":"domain-4","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"npm run vercel:link:audit","kind":"script","endpoint":null},{"id":"domain-5","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"npm run origin:audit -- --require-production","kind":"script","endpoint":null},{"id":"domain-6","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"curl -s https://your-domain.example/api/infrastructure/source-control","kind":"http-read","endpoint":"/api/infrastructure/source-control"},{"id":"domain-7","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"curl -s https://your-domain.example/api/infrastructure/ci-policy","kind":"http-read","endpoint":"/api/infrastructure/ci-policy"},{"id":"domain-8","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"curl -s https://your-domain.example/api/infrastructure/public-origin-policy","kind":"http-read","endpoint":"/api/infrastructure/public-origin-policy"},{"id":"domain-9","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"curl -s https://your-domain.example/api/infrastructure/vercel-link","kind":"http-read","endpoint":"/api/infrastructure/vercel-link"},{"id":"domain-10","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"curl -s https://your-domain.example/robots.txt","kind":"http-read","endpoint":"/robots.txt"},{"id":"domain-11","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"curl -s https://your-domain.example/sitemap.xml","kind":"http-read","endpoint":"/sitemap.xml"},{"id":"domain-12","stageId":"domain","stageTitle":"Canonical production domain","order":1,"command":"TZV3_BASE_URL=https://your-domain.example npm run seo:audit","kind":"script","endpoint":"/"},{"id":"schedule-1","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"npm run schedule:provider-handoff","kind":"script","endpoint":null},{"id":"schedule-2","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"npm run schedule:provider-import-payload","kind":"script","endpoint":null},{"id":"schedule-3","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"npm run schedule:provider-reconciliation -- --require-production","kind":"script","endpoint":null},{"id":"schedule-4","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"npm run schedule:links:audit","kind":"script","endpoint":null},{"id":"schedule-5","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"npm run schedule:audit","kind":"script","endpoint":null},{"id":"schedule-6","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s https://your-domain.example/api/schedule/provider-handoff-policy","kind":"http-read","endpoint":"/api/schedule/provider-handoff-policy"},{"id":"schedule-7","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s https://your-domain.example/api/schedule/provider-import-payload","kind":"http-read","endpoint":"/api/schedule/provider-import-payload"},{"id":"schedule-8","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s https://your-domain.example/api/schedule/provider-reconciliation","kind":"http-read","endpoint":"/api/schedule/provider-reconciliation"},{"id":"schedule-9","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s https://your-domain.example/api/schedule/link-audit-policy","kind":"http-read","endpoint":"/api/schedule/link-audit-policy"},{"id":"schedule-10","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -I https://your-domain.example/schedule-preview?site=artesc&lang=en","kind":"http-read","endpoint":"/schedule-preview?site=artesc&lang=en"},{"id":"schedule-11","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s https://your-domain.example/api/schedule/tenant-status","kind":"http-read","endpoint":"/api/schedule/tenant-status"},{"id":"schedule-12","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s https://your-domain.example/api/schedule/status","kind":"http-read","endpoint":"/api/schedule/status"},{"id":"schedule-13","stageId":"schedule","stageTitle":"Ready-made schedule connector","order":2,"command":"curl -s 'https://your-domain.example/api/schedule/availability?profile=sofia'","kind":"http-read","endpoint":"/api/schedule/availability?profile=sofia"},{"id":"database-1","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"npm run database:seed-payload","kind":"script","endpoint":null},{"id":"database-2","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"npm run database:audit","kind":"script","endpoint":null},{"id":"database-3","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"curl -s https://your-domain.example/api/database/bootstrap-policy","kind":"http-read","endpoint":"/api/database/bootstrap-policy"},{"id":"database-4","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"curl -s https://your-domain.example/api/database/audit-policy","kind":"http-read","endpoint":"/api/database/audit-policy"},{"id":"database-5","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"curl -s https://your-domain.example/api/database/seed-payload","kind":"http-read","endpoint":"/api/database/seed-payload"},{"id":"database-6","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"curl -s https://your-domain.example/api/health","kind":"http-read","endpoint":"/api/health"},{"id":"database-7","stageId":"database","stageTitle":"Production PostgreSQL and seed import","order":3,"command":"curl -s https://your-domain.example/api/profiles","kind":"http-read","endpoint":"/api/profiles"},{"id":"admin-security-1","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"npm run admin:audit","kind":"script","endpoint":null},{"id":"admin-security-2","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"npm run secrets:rotation","kind":"script","endpoint":null},{"id":"admin-security-3","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"curl -s https://your-domain.example/api/infrastructure/secret-rotation","kind":"http-read","endpoint":"/api/infrastructure/secret-rotation"},{"id":"admin-security-4","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"curl -s https://your-domain.example/api/admin/session","kind":"http-read","endpoint":"/api/admin/session"},{"id":"admin-security-5","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"curl -s https://your-domain.example/api/admin/security-audit-policy","kind":"http-read","endpoint":"/api/admin/security-audit-policy"},{"id":"admin-security-6","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"Open https://your-domain.example/admin/profiles and confirm the editor is locked before login, then unlocked after POST /api/admin/session.","kind":"manual-browser","endpoint":"/admin/profiles"},{"id":"admin-security-7","stageId":"admin-security","stageTitle":"Admin secrets and audit","order":4,"command":"curl -s https://your-domain.example/api/admin/audit/policy","kind":"http-read","endpoint":"/api/admin/audit/policy"},{"id":"telegram-status-1","stageId":"telegram-status","stageTitle":"Telegram live-status workflow","order":5,"command":"npm run telegram:handoff","kind":"script","endpoint":null},{"id":"telegram-status-2","stageId":"telegram-status","stageTitle":"Telegram live-status workflow","order":5,"command":"npm run telegram:audit","kind":"script","endpoint":null},{"id":"telegram-status-3","stageId":"telegram-status","stageTitle":"Telegram live-status workflow","order":5,"command":"curl -s https://your-domain.example/api/webhooks/telegram/setup-policy","kind":"http-read","endpoint":"/api/webhooks/telegram/setup-policy"},{"id":"telegram-status-4","stageId":"telegram-status","stageTitle":"Telegram live-status workflow","order":5,"command":"curl -s https://your-domain.example/api/webhooks/telegram/status","kind":"http-read","endpoint":"/api/webhooks/telegram/status"},{"id":"telegram-status-5","stageId":"telegram-status","stageTitle":"Telegram live-status workflow","order":5,"command":"curl -s https://your-domain.example/api/status","kind":"http-read","endpoint":"/api/status"},{"id":"telegram-status-6","stageId":"telegram-status","stageTitle":"Telegram live-status workflow","order":5,"command":"curl -N --max-time 2 https://your-domain.example/api/status/stream","kind":"http-read","endpoint":"/api/status/stream"},{"id":"vip-club-1","stageId":"vip-club","stageTitle":"VIP Club verification workflow","order":6,"command":"npm run club:handoff","kind":"script","endpoint":null},{"id":"vip-club-2","stageId":"vip-club","stageTitle":"VIP Club verification workflow","order":6,"command":"npm run club:audit","kind":"script","endpoint":null},{"id":"vip-club-3","stageId":"vip-club","stageTitle":"VIP Club verification workflow","order":6,"command":"curl -s https://your-domain.example/api/club/policy","kind":"http-read","endpoint":"/api/club/policy"},{"id":"vip-club-4","stageId":"vip-club","stageTitle":"VIP Club verification workflow","order":6,"command":"curl -s https://your-domain.example/api/club/handoff-policy","kind":"http-read","endpoint":"/api/club/handoff-policy"},{"id":"vip-club-5","stageId":"vip-club","stageTitle":"VIP Club verification workflow","order":6,"command":"curl -s https://your-domain.example/api/club/audit-policy","kind":"http-read","endpoint":"/api/club/audit-policy"},{"id":"vip-club-6","stageId":"vip-club","stageTitle":"VIP Club verification workflow","order":6,"command":"curl -I https://your-domain.example/club","kind":"http-read","endpoint":"/club"},{"id":"media-cdn-1","stageId":"media-cdn","stageTitle":"Media storage and CDN delivery","order":7,"command":"npm run media:public-urls","kind":"script","endpoint":null},{"id":"media-cdn-2","stageId":"media-cdn","stageTitle":"Media storage and CDN delivery","order":7,"command":"npm run media:audit","kind":"script","endpoint":null},{"id":"media-cdn-3","stageId":"media-cdn","stageTitle":"Media storage and CDN delivery","order":7,"command":"curl -s https://your-domain.example/api/media/public-url-policy","kind":"http-read","endpoint":"/api/media/public-url-policy"},{"id":"media-cdn-4","stageId":"media-cdn","stageTitle":"Media storage and CDN delivery","order":7,"command":"curl -s https://your-domain.example/api/media/video-policy","kind":"http-read","endpoint":"/api/media/video-policy"},{"id":"media-cdn-5","stageId":"media-cdn","stageTitle":"Media storage and CDN delivery","order":7,"command":"curl -s https://your-domain.example/api/media/enhancement-policy","kind":"http-read","endpoint":"/api/media/enhancement-policy"},{"id":"media-cdn-6","stageId":"media-cdn","stageTitle":"Media storage and CDN delivery","order":7,"command":"curl -s https://your-domain.example/api/media/asset-manifest","kind":"http-read","endpoint":"/api/media/asset-manifest"},{"id":"search-cache-1","stageId":"search-cache","stageTitle":"Elastic search and Redis cache","order":8,"command":"npm run search:bulk-payload","kind":"script","endpoint":null},{"id":"search-cache-2","stageId":"search-cache","stageTitle":"Elastic search and Redis cache","order":8,"command":"npm run search:audit","kind":"script","endpoint":null},{"id":"search-cache-3","stageId":"search-cache","stageTitle":"Elastic search and Redis cache","order":8,"command":"curl -s https://your-domain.example/api/search/policy","kind":"http-read","endpoint":"/api/search/policy"},{"id":"search-cache-4","stageId":"search-cache","stageTitle":"Elastic search and Redis cache","order":8,"command":"curl -s https://your-domain.example/api/search/index-manifest","kind":"http-read","endpoint":"/api/search/index-manifest"},{"id":"search-cache-5","stageId":"search-cache","stageTitle":"Elastic search and Redis cache","order":8,"command":"curl -s https://your-domain.example/api/search/bulk-payload","kind":"http-read","endpoint":"/api/search/bulk-payload"},{"id":"search-cache-6","stageId":"search-cache","stageTitle":"Elastic search and Redis cache","order":8,"command":"curl -s 'https://your-domain.example/api/search?q=vip%20english'","kind":"http-read","endpoint":"/api/search?q=vip%20english"},{"id":"reviews-seo-1","stageId":"reviews-seo","stageTitle":"Real reviews and Review JSON-LD","order":9,"command":"npm run reviews:audit","kind":"script","endpoint":null},{"id":"reviews-seo-2","stageId":"reviews-seo","stageTitle":"Real reviews and Review JSON-LD","order":9,"command":"curl -s https://your-domain.example/api/reviews/policy","kind":"http-read","endpoint":"/api/reviews/policy"},{"id":"reviews-seo-3","stageId":"reviews-seo","stageTitle":"Real reviews and Review JSON-LD","order":9,"command":"curl -s https://your-domain.example/api/reviews/audit-policy","kind":"http-read","endpoint":"/api/reviews/audit-policy"},{"id":"reviews-seo-4","stageId":"reviews-seo","stageTitle":"Real reviews and Review JSON-LD","order":9,"command":"curl -s https://your-domain.example/api/seo/review-schema","kind":"http-read","endpoint":"/api/seo/review-schema"},{"id":"pwa-push-1","stageId":"pwa-push","stageTitle":"PWA push provider and unsubscribe evidence","order":10,"command":"npm run pwa-push:audit","kind":"script","endpoint":null},{"id":"pwa-push-2","stageId":"pwa-push","stageTitle":"PWA push provider and unsubscribe evidence","order":10,"command":"curl -s https://your-domain.example/api/pwa/push/policy","kind":"http-read","endpoint":"/api/pwa/push/policy"},{"id":"pwa-push-3","stageId":"pwa-push","stageTitle":"PWA push provider and unsubscribe evidence","order":10,"command":"curl -s https://your-domain.example/api/pwa/push/audit-policy","kind":"http-read","endpoint":"/api/pwa/push/audit-policy"},{"id":"analytics-1","stageId":"analytics","stageTitle":"Web Vitals and analytics sink","order":11,"command":"npm run vitals:audit","kind":"script","endpoint":null},{"id":"analytics-2","stageId":"analytics","stageTitle":"Web Vitals and analytics sink","order":11,"command":"curl -s https://your-domain.example/api/performance/vitals","kind":"http-read","endpoint":"/api/performance/vitals"},{"id":"legal-1","stageId":"legal","stageTitle":"Legal pages and takedown contact","order":12,"command":"npm run legal:audit","kind":"script","endpoint":null},{"id":"legal-2","stageId":"legal","stageTitle":"Legal pages and takedown contact","order":12,"command":"curl -s https://your-domain.example/legal","kind":"http-read","endpoint":"/legal"},{"id":"legal-3","stageId":"legal","stageTitle":"Legal pages and takedown contact","order":12,"command":"curl -s https://your-domain.example/api/legal/retention-policy","kind":"http-read","endpoint":"/api/legal/retention-policy"},{"id":"legal-4","stageId":"legal","stageTitle":"Legal pages and takedown contact","order":12,"command":"curl -s https://your-domain.example/api/legal/contact-policy","kind":"http-read","endpoint":"/api/legal/contact-policy"},{"id":"legal-5","stageId":"legal","stageTitle":"Legal pages and takedown contact","order":12,"command":"curl -s https://your-domain.example/api/legal/audit-policy","kind":"http-read","endpoint":"/api/legal/audit-policy"},{"id":"cloudflare-1","stageId":"cloudflare","stageTitle":"Cloudflare DNS, WAF, and monitoring","order":13,"command":"npm run cloudflare:audit","kind":"script","endpoint":null},{"id":"cloudflare-2","stageId":"cloudflare","stageTitle":"Cloudflare DNS, WAF, and monitoring","order":13,"command":"curl -s https://your-domain.example/api/infrastructure/cloudflare/policy","kind":"http-read","endpoint":"/api/infrastructure/cloudflare/policy"},{"id":"cloudflare-3","stageId":"cloudflare","stageTitle":"Cloudflare DNS, WAF, and monitoring","order":13,"command":"curl -s https://your-domain.example/api/security/policy","kind":"http-read","endpoint":"/api/security/policy"},{"id":"cloudflare-4","stageId":"cloudflare","stageTitle":"Cloudflare DNS, WAF, and monitoring","order":13,"command":"curl -s https://your-domain.example/api/infrastructure/mirrors/check","kind":"http-read","endpoint":"/api/infrastructure/mirrors/check"},{"id":"final-qa-1","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"TZV3_BASE_URL=https://your-domain.example npm run preflight:production","kind":"script","endpoint":"/"},{"id":"final-qa-2","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run github-ci:audit","kind":"script","endpoint":null},{"id":"final-qa-3","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run secrets:rotation -- --require-production","kind":"script","endpoint":null},{"id":"final-qa-4","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run env:check:production","kind":"script","endpoint":null},{"id":"final-qa-5","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run origin:audit -- --require-production","kind":"script","endpoint":null},{"id":"final-qa-6","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run evidence:audit -- --require-production","kind":"script","endpoint":null},{"id":"final-qa-7","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"curl -s https://your-domain.example/api/infrastructure/production-evidence","kind":"http-read","endpoint":"/api/infrastructure/production-evidence"},{"id":"final-qa-8","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run admin:audit","kind":"script","endpoint":null},{"id":"final-qa-9","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run database:seed-payload","kind":"script","endpoint":null},{"id":"final-qa-10","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run database:audit","kind":"script","endpoint":null},{"id":"final-qa-11","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run cloudflare:audit","kind":"script","endpoint":null},{"id":"final-qa-12","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run media:public-urls","kind":"script","endpoint":null},{"id":"final-qa-13","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run media:audit","kind":"script","endpoint":null},{"id":"final-qa-14","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run pwa-push:audit","kind":"script","endpoint":null},{"id":"final-qa-15","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run legal:audit","kind":"script","endpoint":null},{"id":"final-qa-16","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run reviews:audit","kind":"script","endpoint":null},{"id":"final-qa-17","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run schedule:provider-handoff","kind":"script","endpoint":null},{"id":"final-qa-18","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run schedule:provider-import-payload","kind":"script","endpoint":null},{"id":"final-qa-19","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run schedule:provider-reconciliation -- --require-production","kind":"script","endpoint":null},{"id":"final-qa-20","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run schedule:links:audit","kind":"script","endpoint":null},{"id":"final-qa-21","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run schedule:audit","kind":"script","endpoint":null},{"id":"final-qa-22","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run search:bulk-payload","kind":"script","endpoint":null},{"id":"final-qa-23","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run search:audit","kind":"script","endpoint":null},{"id":"final-qa-24","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run telegram:handoff","kind":"script","endpoint":null},{"id":"final-qa-25","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run telegram:audit","kind":"script","endpoint":null},{"id":"final-qa-26","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run club:handoff","kind":"script","endpoint":null},{"id":"final-qa-27","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"npm run vitals:audit","kind":"script","endpoint":null},{"id":"final-qa-28","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"TZV3_BASE_URL=https://your-domain.example npm run readiness","kind":"script","endpoint":"/"},{"id":"final-qa-29","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"TZV3_BASE_URL=https://your-domain.example npm run seo:audit","kind":"script","endpoint":"/"},{"id":"final-qa-30","stageId":"final-qa","stageTitle":"Final deployed-domain QA","order":14,"command":"TZV3_BASE_URL=https://your-domain.example npm run load:smoke","kind":"script","endpoint":"/"}],"requiredEvidenceCommands":["npm run ci:audit","npm run github-ci:audit","npm run source:audit","npm run vercel:link:audit","npm run secrets:rotation","npm run secrets:rotation -- --require-production","npm run origin:audit -- --require-production","npm run env:check:production","npm run database:seed-payload","npm run database:audit","npm run schedule:provider-handoff","npm run schedule:provider-import-payload","npm run schedule:provider-reconciliation -- --require-production","npm run schedule:links:audit","npm run schedule:audit","npm run media:public-urls","npm run media:audit","npm run legal:audit","npm run reviews:audit","npm run search:bulk-payload","npm run search:audit","npm run telegram:handoff","npm run telegram:audit","npm run club:handoff","npm run vitals:audit","npm run cloudflare:audit","TZV3_BASE_URL=https://your-domain.example npm run readiness","TZV3_BASE_URL=https://your-domain.example npm run seo:audit","TZV3_BASE_URL=https://your-domain.example npm run load:smoke"],"contractFailures":[],"productionWarnings":[{"check":"missing-required-env","detail":"DATABASE_URL"},{"check":"missing-required-env","detail":"ADMIN_API_TOKEN"},{"check":"missing-required-env","detail":"ADMIN_SESSION_SECRET"},{"check":"missing-required-env","detail":"TELEGRAM_WEBHOOK_SECRET"},{"check":"missing-required-env","detail":"VIP_CLUB_WEBHOOK_URL"},{"check":"missing-required-env","detail":"VIP_CLUB_WEBHOOK_TOKEN"},{"check":"missing-required-env","detail":"LEGAL_CONTACT_EMAIL"},{"check":"missing-required-env","detail":"ELASTICSEARCH_URL"},{"check":"missing-required-env","detail":"ELASTICSEARCH_API_KEY"},{"check":"missing-required-env","detail":"UPSTASH_REDIS_REST_URL"},{"check":"missing-required-env","detail":"UPSTASH_REDIS_REST_TOKEN"},{"check":"missing-required-env","detail":"NEXT_PUBLIC_MEDIA_CDN_URL"},{"check":"missing-required-env","detail":"CLOUDFLARE_R2_BUCKET"},{"check":"missing-required-env","detail":"CLOUDFLARE_R2_ACCESS_KEY_ID"},{"check":"missing-required-env","detail":"CLOUDFLARE_R2_SECRET_ACCESS_KEY"},{"check":"missing-required-env","detail":"WEB_VITALS_ENDPOINT_URL"},{"check":"public-origin-not-placeholder","detail":"NEXT_PUBLIC_MEDIA_CDN_URL: NEXT_PUBLIC_MEDIA_CDN_URL should not use example, localhost, loopback, or your-domain placeholders."},{"check":"public-origin-configured","detail":"NEXT_PUBLIC_MEDIA_CDN_URL: NEXT_PUBLIC_MEDIA_CDN_URL is required for production origin readiness."},{"check":"public-origin-unlinked","detail":".vercel/project.json: Run vercel link for the confirmed Artesc website project."},{"check":"next-action","detail":"npm run source:audit"},{"check":"next-action","detail":"npm run schedule:provider-handoff"},{"check":"next-action","detail":"Set DATABASE_URL, ADMIN_API_TOKEN"},{"check":"next-action","detail":"Set ADMIN_API_TOKEN, ADMIN_SESSION_SECRET"},{"check":"next-action","detail":"Set TELEGRAM_WEBHOOK_SECRET, DATABASE_URL"}]}}