Go / No-Go
Deployability Preflight
Single money-readiness view for live paid beta. This page reads command-center decisions, billing, support, legal, cloud, release, launch-site, and validation gates.
Current Verdict
Billing rehearsalNext Critical Blockers
Task board- Business Legal: Complete attorney/accountant review or explicitly mark the paid-beta review approved.
- Payments Licensing: Keep test mode for rehearsal, then set live mode only when all legal/support/Stripe gates are ready.
- Payments Licensing: Deploy the billing backend and save its HTTPS base URL.
- Payments Licensing: Create the Stripe webhook endpoint against the hosted backend.
- Payments Licensing: Configure Stripe Customer Portal and mark this yes after test cancellation works.
- Payments Licensing: Set STRIPE_SECRET_KEY in the deployment secret store or this shell before live-money preflight.
- Payments Licensing: Set STRIPE_WEBHOOK_SECRET in the deployment secret store or this shell before live-money preflight.
- Payments Licensing: Set NYRA_STRIPE_PRICE_PRO_MONTHLY in the deployment secret store or this shell before live-money preflight.
Action Queue
Open queue CSV| Severity | Lane | Owner | Status | Dashboard Page | Field | Upload Slot | Next Step |
|---|---|---|---|---|---|---|---|
| P0 | Business Legal | User | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.attorneyReviewStatus |
legal-review | Mark Approved only after attorney/accountant review clears paid beta. |
| P0 | Payments Licensing | User + Codex | User + Codex gated | pages/billing-rehearsal.html | billingRehearsal.mode |
stripe-screenshots | Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass. |
| P0 | Payments Licensing | User | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.backendBaseUrl |
cloud-handoff | Enter the hosted billing backend HTTPS base URL. |
| P0 | Payments Licensing | User | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.webhookEndpointUrl |
stripe-screenshots | Enter the Stripe webhook endpoint URL after it is created. |
| P0 | Payments Licensing | User | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.customerPortalConfigured |
stripe-screenshots | Mark yes after Customer Portal cancellation, invoices, and payment methods are tested. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: STRIPE_SECRET_KEY |
cloud-handoff | Set STRIPE_SECRET_KEY in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: STRIPE_WEBHOOK_SECRET |
cloud-handoff | Set STRIPE_WEBHOOK_SECRET in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY |
cloud-handoff | Set NYRA_STRIPE_PRICE_PRO_MONTHLY in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_BILLING_SUCCESS_URL |
cloud-handoff | Set NYRA_BILLING_SUCCESS_URL in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_BILLING_CANCEL_URL |
cloud-handoff | Set NYRA_BILLING_CANCEL_URL in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_BILLING_RETURN_URL |
cloud-handoff | Set NYRA_BILLING_RETURN_URL in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_LICENSE_API_TOKEN |
cloud-handoff | Set NYRA_LICENSE_API_TOKEN in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_LICENSE_SIGNING_SECRET |
cloud-handoff | Set NYRA_LICENSE_SIGNING_SECRET in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Payments Licensing | User | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET |
cloud-handoff | Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| P0 | Support Ops | User | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.supportInboxConfirmed |
domain-email | Create the support inbox, send a test ticket, reply, and mark confirmed. |
| P0 | Cloud Platform | User | Waiting on user | pages/cloud.html | cloudMigration.accountReady |
cloud-handoff | Confirm the Cloudflare account that will host the dashboard and API. |
| P0 | Cloud Platform | User | Waiting on user | pages/cloud.html | cloudMigration.d1DatabaseId |
cloud-handoff | Paste the Cloudflare D1 database ID. |
| P0 | Cloud Platform | User + Codex | Waiting on user | pages/cloud-mobile-bridge.html | mobileBridge.workerUrl |
cloud-handoff | Enter the deployed HTTPS NyrA mobile bridge Worker URL. |
| P0 | Cloud Platform | User + Codex | Secret store | pages/cloud-mobile-bridge.html | mobileBridge.secretStatus |
cloud-handoff | Set the Worker bridge token secret and mark the mobile bridge secret status. |
| P0 | Cloud Platform | User + Codex | Secret store | pages/cloud-mobile-bridge.html | mobileBridge.providerSecretStatus |
cloud-handoff | Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge. |
| P0 | Cloud Platform | User + Codex | Waiting on user | pages/cloud-mobile-bridge.html | mobileBridge.r2BucketName |
cloud-handoff | Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics. |
| P0 | Cloud Platform | User + Codex | Waiting on user | pages/cloud-mobile-bridge.html | mobileBridge.androidReleasesBucketName |
cloud-handoff | Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates. |
| P0 | Cloud Platform | User + Codex | Waiting on user | pages/cloud-mobile-bridge.html | mobileBridge.androidApkR2Key |
cloud-handoff | Upload the current APK to R2 and enter its object key. |
| P0 | Release Ops | User + Codex | User + Codex gated | pages/cloud-mobile-bridge.html | mobileBridge.bundledBridgeUrl |
cloud-handoff | Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence. |
| P0 | QA | User + Codex | User + Codex gated | pages/cloud-mobile-bridge.html | mobileBridge.lastPhoneSelfTest |
phone-evidence | Run a phone bridge self-test against the deployed Worker and record the result. |
| P0 | Release Ops | User + Codex | User + Codex gated | pages/release-package.html | releasePackage.signingStatus |
code-signing | Upload or generate signed/store-trusted release evidence after the signing path is chosen. |
| P1 | Visual Assets | Codex | Codex queued | pages/visuals.html | visualProduction.finalScreenshotsApproved |
product-screenshots | Capture and approve current product screenshots after the shipping UI and billing/support flows are final. |
Blocker Table
| Severity | Lane | Owner | Requirement | Next Step |
|---|---|---|---|---|
| P0 | Business Legal | User | Attorney/accountant review approved for paid beta | Complete attorney/accountant review or explicitly mark the paid-beta review approved. |
| P0 | Payments Licensing | User + Codex | Billing rehearsal mode set to live for final money preflight | Keep test mode for rehearsal, then set live mode only when all legal/support/Stripe gates are ready. |
| P0 | Payments Licensing | User | Hosted billing backend HTTPS URL saved | Deploy the billing backend and save its HTTPS base URL. |
| P0 | Payments Licensing | User | Stripe webhook HTTPS endpoint saved | Create the Stripe webhook endpoint against the hosted backend. |
| P0 | Payments Licensing | User | Customer Portal configured for cancellation, invoices, and payment methods | Configure Stripe Customer Portal and mark this yes after test cancellation works. |
| P0 | Payments Licensing | User | Deployment env has live Stripe secret key beginning with sk_live_ | Set STRIPE_SECRET_KEY in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has Stripe webhook signing secret beginning with whsec_ | Set STRIPE_WEBHOOK_SECRET in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has Stripe monthly Price ID beginning with price_ | Set NYRA_STRIPE_PRICE_PRO_MONTHLY in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has HTTPS checkout success URL | Set NYRA_BILLING_SUCCESS_URL in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has HTTPS checkout cancel URL | Set NYRA_BILLING_CANCEL_URL in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has HTTPS Customer Portal return URL | Set NYRA_BILLING_RETURN_URL in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has long random license API token | Set NYRA_LICENSE_API_TOKEN in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has long random license signing secret | Set NYRA_LICENSE_SIGNING_SECRET in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has long random Android APK download ticket secret | Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET in the deployment secret store or this shell before live-money preflight. |
| P0 | Support Ops | User | Support inbox roundtrip confirmed | Create/secure the support inbox, send a test ticket, reply, and mark confirmed. |
| P0 | Cloud Platform | User | Cloudflare account ready | Confirm the Cloudflare account that will host the dashboard/API. |
| P0 | Cloud Platform | User | D1 database ID saved | Create the D1 database and save the returned database ID. |
| P0 | Cloud Platform | User + Codex | Hosted mobile bridge Worker URL saved | Deploy the mobile bridge Worker on a stable HTTPS URL and save it in the dashboard. |
| P0 | Cloud Platform | User + Codex | Mobile bridge token secret configured | Set NYRA_MOBILE_BRIDGE_TOKEN in the Worker secret store and mark the status. |
| P0 | Cloud Platform | User + Codex | Mobile bridge full swarm provider secrets configured | Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge. |
| P0 | Cloud Platform | User + Codex | Mobile support-log R2 bucket saved | Create the SUPPORT_LOGS R2 bucket and save the bucket name. Recommended bucket: nyra-mobile-support-logs. |
| P0 | Cloud Platform | User + Codex | Android releases R2 bucket saved | Create the ANDROID_RELEASES R2 bucket and save the bucket name. Recommended bucket: nyra-android-releases. |
| P0 | Cloud Platform | User + Codex | Hosted Android APK route configured | Upload the current APK to R2 or save a stable HTTPS APK URL. Recommended R2 key: alpha/0.1.0-alpha.72/NyrA.apk. |
| P0 | Release Ops | User + Codex | Android paid-beta build points at stable bridge URL without bundled shared token | Deploy the stable mobile bridge, move customer auth off the bundled alpha token, then rebuild Android from that bridge evidence. |
| P0 | QA | User + Codex | Physical phone bridge self-test passed | Run and record a physical-phone bridge self-test against the deployed Worker. |
| P0 | Release Ops | User + Codex | Paid beta installer is signed or store-trusted | Produce signed/store-trusted release evidence before paid beta customers install. |
| P1 | Visual Assets | Codex | Launch visuals use current shipping app screenshots | Capture and approve product screenshots after the final UI/billing/support flows match the shipping build. |
Run This Gate
npm run deployability:preflight
npm run test:deployability-preflight
This preflight does not print secrets. Secret checks only report whether required live payment variables are present and shaped correctly.
NyrA Deployability Preflight
Generated: 2026-06-17T22:58:55.329Z
Verdict
No-Go Live Money
- Readiness: 4%
- P0 blockers: 26
- P1 blockers: 1
- Total blockers: 27
Next Critical Blockers
- Business Legal: Attorney/accountant review approved for paid beta -> Complete attorney/accountant review or explicitly mark the paid-beta review approved.
- Payments Licensing: Billing rehearsal mode set to live for final money preflight -> Keep test mode for rehearsal, then set live mode only when all legal/support/Stripe gates are ready.
- Payments Licensing: Hosted billing backend HTTPS URL saved -> Deploy the billing backend and save its HTTPS base URL.
- Payments Licensing: Stripe webhook HTTPS endpoint saved -> Create the Stripe webhook endpoint against the hosted backend.
- Payments Licensing: Customer Portal configured for cancellation, invoices, and payment methods -> Configure Stripe Customer Portal and mark this yes after test cancellation works.
- Payments Licensing: Deployment env has live Stripe secret key beginning with sk_live_ -> Set STRIPE_SECRET_KEY in the deployment secret store or this shell before live-money preflight.
- Payments Licensing: Deployment env has Stripe webhook signing secret beginning with whsec_ -> Set STRIPE_WEBHOOK_SECRET in the deployment secret store or this shell before live-money preflight.
- Payments Licensing: Deployment env has Stripe monthly Price ID beginning with price_ -> Set NYRA_STRIPE_PRICE_PRO_MONTHLY in the deployment secret store or this shell before live-money preflight.
Blocker Table
| Severity | Lane | Owner | Requirement | Evidence | Next Step |
|---|---|---|---|---|---|
| P0 | Business Legal | User | Attorney/accountant review approved for paid beta | attorneyReviewStatus=Not approved | Complete attorney/accountant review or explicitly mark the paid-beta review approved. |
| P0 | Payments Licensing | User + Codex | Billing rehearsal mode set to live for final money preflight | billingRehearsal.mode=test | Keep test mode for rehearsal, then set live mode only when all legal/support/Stripe gates are ready. |
| P0 | Payments Licensing | User | Hosted billing backend HTTPS URL saved | backendBaseUrl=blank | Deploy the billing backend and save its HTTPS base URL. |
| P0 | Payments Licensing | User | Stripe webhook HTTPS endpoint saved | webhookEndpointUrl=blank | Create the Stripe webhook endpoint against the hosted backend. |
| P0 | Payments Licensing | User | Customer Portal configured for cancellation, invoices, and payment methods | customerPortalConfigured=No | Configure Stripe Customer Portal and mark this yes after test cancellation works. |
| P0 | Payments Licensing | User | Deployment env has live Stripe secret key beginning with sk_live_ | STRIPE_SECRET_KEY=missing | Set STRIPE_SECRET_KEY in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has Stripe webhook signing secret beginning with whsec_ | STRIPE_WEBHOOK_SECRET=missing | Set STRIPE_WEBHOOK_SECRET in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has Stripe monthly Price ID beginning with price_ | NYRA_STRIPE_PRICE_PRO_MONTHLY=missing | Set NYRA_STRIPE_PRICE_PRO_MONTHLY in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has HTTPS checkout success URL | NYRA_BILLING_SUCCESS_URL=missing | Set NYRA_BILLING_SUCCESS_URL in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has HTTPS checkout cancel URL | NYRA_BILLING_CANCEL_URL=missing | Set NYRA_BILLING_CANCEL_URL in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has HTTPS Customer Portal return URL | NYRA_BILLING_RETURN_URL=missing | Set NYRA_BILLING_RETURN_URL in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has long random license API token | NYRA_LICENSE_API_TOKEN=missing | Set NYRA_LICENSE_API_TOKEN in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has long random license signing secret | NYRA_LICENSE_SIGNING_SECRET=missing | Set NYRA_LICENSE_SIGNING_SECRET in the deployment secret store or this shell before live-money preflight. |
| P0 | Payments Licensing | User | Deployment env has long random Android APK download ticket secret | NYRA_ANDROID_DOWNLOAD_TICKET_SECRET=missing | Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET in the deployment secret store or this shell before live-money preflight. |
| P0 | Support Ops | User | Support inbox roundtrip confirmed | supportInboxConfirmed=No | Create/secure the support inbox, send a test ticket, reply, and mark confirmed. |
| P0 | Cloud Platform | User | Cloudflare account ready | accountReady=No | Confirm the Cloudflare account that will host the dashboard/API. |
| P0 | Cloud Platform | User | D1 database ID saved | d1DatabaseId=blank | Create the D1 database and save the returned database ID. |
| P0 | Cloud Platform | User + Codex | Hosted mobile bridge Worker URL saved | workerUrl=blank | Deploy the mobile bridge Worker on a stable HTTPS URL and save it in the dashboard. |
| P0 | Cloud Platform | User + Codex | Mobile bridge token secret configured | secretStatus=blank | Set NYRA_MOBILE_BRIDGE_TOKEN in the Worker secret store and mark the status. |
| P0 | Cloud Platform | User + Codex | Mobile bridge full swarm provider secrets configured | providerSecretStatus=blank | Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge. |
| P0 | Cloud Platform | User + Codex | Mobile support-log R2 bucket saved | r2BucketName=blank; suggested=nyra-mobile-support-logs | Create the SUPPORT_LOGS R2 bucket and save the bucket name. Recommended bucket: nyra-mobile-support-logs. |
| P0 | Cloud Platform | User + Codex | Android releases R2 bucket saved | androidReleasesBucketName=blank; suggested=nyra-android-releases | Create the ANDROID_RELEASES R2 bucket and save the bucket name. Recommended bucket: nyra-android-releases. |
| P0 | Cloud Platform | User + Codex | Hosted Android APK route configured | androidApkR2Key=blank; hostedApkUrl=blank; suggestedR2Key=alpha/0.1.0-alpha.72/NyrA.apk | Upload the current APK to R2 or save a stable HTTPS APK URL. Recommended R2 key: alpha/0.1.0-alpha.72/NyrA.apk. |
| P0 | Release Ops | User + Codex | Android paid-beta build points at stable bridge URL without bundled shared token | dashboardBundledBridgeUrl=blank; apkDefaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes | Deploy the stable mobile bridge, move customer auth off the bundled alpha token, then rebuild Android from that bridge evidence. |
| P0 | QA | User + Codex | Physical phone bridge self-test passed | status=PHONE_SELF_TEST_NEEDS_REVIEW; passed=no; surface=phone; supportLogId=2026-06-16T05-27-52-391Z-dbe5c0c4-27b2-481b-998c-b09ad21ef53b; lastPhoneSelfTest=Failed evidence review 2026-06-16T05:27:51.911Z: surface=phone; passed=no; 7 pass / 4 warn / 0 fail; supportLogId=2026-06-16T05-27-52-391Z-dbe5c0c4-27b2-481b-998c-b09ad21ef53b. Next action: Open Android Accessibility and enable NyrA Phone Control so NyrA can tap, type, swipe, and inspect the phone when asked. | Run and record a physical-phone bridge self-test against the deployed Worker. |
| P0 | Release Ops | User + Codex | Paid beta installer is signed or store-trusted | signingStatus=Unsigned internal alpha evidence only | Produce signed/store-trusted release evidence before paid beta customers install. |
| P1 | Visual Assets | Codex | Launch visuals use current shipping app screenshots | finalScreenshotsApproved=No | Capture and approve product screenshots after the final UI/billing/support flows match the shipping build. |
Action Queue
Machine-readable blocker actions are generated at docs/launch_command_center/deployability-blockers.csv.
| Id | Status | Dashboard Page | Dashboard Field | Upload Slot | Next Step |
|---|---|---|---|---|---|
| legal-review | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.attorneyReviewStatus | legal-review | Mark Approved only after attorney/accountant review clears paid beta. |
| billing-live-mode | User + Codex gated | pages/billing-rehearsal.html | billingRehearsal.mode | stripe-screenshots | Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass. |
| billing-backend-url | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.backendBaseUrl | cloud-handoff | Enter the hosted billing backend HTTPS base URL. |
| billing-webhook-url | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.webhookEndpointUrl | stripe-screenshots | Enter the Stripe webhook endpoint URL after it is created. |
| customer-portal | Waiting on user | pages/billing-rehearsal.html | billingRehearsal.customerPortalConfigured | stripe-screenshots | Mark yes after Customer Portal cancellation, invoices, and payment methods are tested. |
| env-stripe_secret_key | Secret store | pages/billing-rehearsal.html | deployment secret store: STRIPE_SECRET_KEY | cloud-handoff | Set STRIPE_SECRET_KEY in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| env-stripe_webhook_secret | Secret store | pages/billing-rehearsal.html | deployment secret store: STRIPE_WEBHOOK_SECRET | cloud-handoff | Set STRIPE_WEBHOOK_SECRET in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| env-nyra_stripe_price_pro_monthly | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY | cloud-handoff | Set NYRA_STRIPE_PRICE_PRO_MONTHLY in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| env-nyra_billing_success_url | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_BILLING_SUCCESS_URL | cloud-handoff | Set NYRA_BILLING_SUCCESS_URL in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| env-nyra_billing_cancel_url | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_BILLING_CANCEL_URL | cloud-handoff | Set NYRA_BILLING_CANCEL_URL in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| env-nyra_billing_return_url | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_BILLING_RETURN_URL | cloud-handoff | Set NYRA_BILLING_RETURN_URL in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |
| env-nyra_license_api_token | Secret store | pages/billing-rehearsal.html | deployment secret store: NYRA_LICENSE_API_TOKEN | cloud-handoff | Set NYRA_LICENSE_API_TOKEN in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard. |