{
  "schemaVersion": 1,
  "generatedAt": "2026-07-18T13:47:12.290Z",
  "status": "AGENT_DISPATCH_WAITING_ON_HANDOFFS",
  "label": "Agent Dispatch Waiting On Handoffs",
  "counts": {
    "departments": 18,
    "waitingDepartments": 18,
    "assignedActions": 1507,
    "p0Actions": 947,
    "handoffBlockers": 835,
    "automationCount": 11
  },
  "dailyBrief": {
    "status": "WAITING_ON_HANDOFFS",
    "label": "Waiting On Handoffs",
    "codexQueueCount": 9,
    "dashboardUpdateQueueCount": 0,
    "deployabilityQueueCount": 4,
    "userQueueCount": 3,
    "secretQueueCount": 0,
    "handoffDeltaQueueCount": 0,
    "cloudBootstrapPackQueueCount": 14,
    "hostedAlphaStatus": "Hosted Alpha Ready",
    "hostedAlphaQueueCount": 2,
    "modelBenchmarkStatus": "Model Benchmark Complete",
    "modelBenchmarkQueueCount": 1,
    "cloudflareDiscoveryQueueCount": 2,
    "supportOpsPackQueueCount": 9,
    "versionControlPackQueueCount": 3,
    "publicLaunchConfigQueueCount": 7,
    "decisionRecommendationQueueCount": 14,
    "collaborationWorkspaceQueueCount": 12
  },
  "handoffDeltaPack": {
    "status": "HANDOFF_DELTA_NO_CHANGES",
    "label": "Handoff Delta No Changes",
    "changedRows": 0,
    "newlyReadyForCodexReview": 0
  },
  "automation": {
    "status": "AUTOMATIONS_PAUSED_BY_OPERATOR",
    "label": "Automations Paused By Operator",
    "requiredActive": 0,
    "requiredFound": 11
  },
  "departments": [
    {
      "id": "command-center-intake",
      "name": "Command Center Intake",
      "cadence": "Daily 8:15 AM",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Read saved dashboard fields, uploads, notes, cloud run logs, and handoff scans, then route newly cleared blockers.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "handoff-readiness.json",
        "handoff-delta-pack.json",
        "handoff-action-pack.json",
        "daily-command-brief.json",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run intake:scan",
        "npm run handoff:delta",
        "npm run handoff:pack",
        "npm run daily:brief"
      ],
      "currentAssignment": "Automation Loop",
      "nextAction": "Keep the command center, daily brief, agent dispatch pack, and build queues current until paid launch gates clear.",
      "blockerCount": 85,
      "actions": [
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Agent Dispatch",
          "title": "Automation Loop",
          "status": "Tracking",
          "action": "Keep the command center, daily brief, agent dispatch pack, and build queues current until paid launch gates clear.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.requestedNextBuild",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "4. Support Process",
          "title": "Support runbook and inbox setup docs exist",
          "status": "Ready",
          "action": "Keep support categories, evidence rules, response targets, canned replies, and inbox setup docs current with the shipping product.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.runbookStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness",
          "noGoRule": "No paid beta without a written support process for install, activation, billing, cancellation, privacy, and computer-control tickets."
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Dashboard collaboration workspace",
          "status": "Ready",
          "action": "Dashboard now exposes saveable handoff fields, Launch Setup Wizard, Daily Agents page, cloud/app-version/visual state, and command-center collaboration checks so it can function as the shared workspace between user and Codex",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Collaboration handoff console",
          "status": "Ready",
          "action": "Collaboration page renders the live deployability blocker queue as exact user handoffs with dashboard page field upload slot status and next action so decisions and files can be entered in one operating space",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Intake readiness scanner",
          "status": "Ready",
          "action": "npm run intake:scan generates handoff-readiness.json handoff-readiness.csv HANDOFF_READINESS.md and the Handoff Readiness dashboard page from saved fields uploads secret-store presence and deployability blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Command-center state concurrency guard",
          "status": "Ready",
          "action": "Shared command-center JSON writes now use atomic replacement and a lock-backed update path; npm run test:command-center-concurrency verifies overlapping deployability and intake agent runs keep both dashboard status blocks valid",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Deploy Pack",
          "status": "Ready",
          "action": "Cloud Deploy Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Cloudflare resource targets safe placeholder commands D1/R2/Worker/Pages setup sequence first cloud sync commands and no-secret rules from the cloud deploy preflight",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud API URL available for sync",
          "status": "post-deploy",
          "action": "After deploy, set NYRA_COMMAND_CENTER_API_URL in a temporary shell before cloud sync.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud API token available for sync",
          "status": "post-deploy",
          "action": "After deploy, set NYRA_COMMAND_CENTER_TOKEN in a temporary shell only; never write it to repo files.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "5. First Cloud Sync",
          "title": "Cloud API URL available for sync",
          "status": "post-deploy",
          "action": "After Worker deployment, set NYRA_COMMAND_CENTER_API_URL in a temporary shell and the browser Cloud Connection URL field.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Verify",
          "title": "Refresh Cloudflare discovery",
          "status": "Open",
          "action": "Rerun discovery after any Cloudflare dashboard or Wrangler resource change so the command center stays current.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.notes",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Cloudflare API tokens, Worker bearer tokens, recovery codes, Stripe secrets, private keys, and password material must stay in Wrangler secrets, Cloudflare dashboard secret stores, browser localStorage, or a temporary shell only. This discovery pack stores non-secret resource names/IDs and redacted account context only."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE SECRET KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE WEBHOOK SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA STRIPE PRICE PRO MONTHLY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING SUCCESS URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING CANCEL URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING RETURN URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE API TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE SIGNING SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA MOBILE BRIDGE TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA OPENAI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANTHROPIC API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GEMINI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GROK API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANDROID DOWNLOAD TICKET SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud Worker Secret Nyra Command Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Store this only in the current shell or browser Cloud Connection control; clear it after use and never commit it."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "5. First Cloud Sync",
          "title": "Cloud API token available for sync",
          "status": "post-deploy",
          "action": "Set NYRA_COMMAND_CENTER_TOKEN in a temporary shell using the same private value as NYRA_COMMAND_TOKEN after the Worker secret is created.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ]
    },
    {
      "id": "nyra-builder",
      "name": "NyrA Builder",
      "cadence": "Every 6 hours",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Advance the highest-value unblocked desktop paid-beta task and keep AI-swarm model routing evidence current after handoffs and no-go rules are checked.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "src/",
        "electron/",
        "docs/release/",
        "launch_todos.csv",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run model:benchmark:refresh",
        "npm run test:model-benchmark",
        "npm run release:candidate:preflight",
        "npm run test:release-candidate-preflight",
        "npm run command-center:build"
      ],
      "currentAssignment": "Windows installer version",
      "nextAction": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
      "blockerCount": 70,
      "actions": [
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "4. Support Process",
          "title": "Support runbook and inbox setup docs exist",
          "status": "Ready",
          "action": "Keep support categories, evidence rules, response targets, canned replies, and inbox setup docs current with the shipping product.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.runbookStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness",
          "noGoRule": "No paid beta without a written support process for install, activation, billing, cancellation, privacy, and computer-control tickets."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Engineering",
          "title": "Production license auth model",
          "status": "Ready",
          "action": "Checkout-session claim plus device-scoped access token flow is implemented locally; deploy backend and connect live Stripe webhooks before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Release package evidence",
          "status": "Ready",
          "action": "Release runbook release notes known issues rollback plan release-manifest and SHA256SUMS generation are wired into clean build; command center release package page renders manifest checksums signing status and blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Dashboard collaboration workspace",
          "status": "Ready",
          "action": "Dashboard now exposes saveable handoff fields, Launch Setup Wizard, Daily Agents page, cloud/app-version/visual state, and command-center collaboration checks so it can function as the shared workspace between user and Codex",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Deployability preflight",
          "status": "Ready",
          "action": "Single live-money go/no-go preflight now generates deployability-snapshot.json deployability-blockers.csv DEPLOYABILITY_PREFLIGHT.md dashboard page blocker table action queue and daily-agent evidence from command-center state and environment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version path",
          "status": "Saved different value",
          "action": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
          "dashboardPage": "pages/app-version.html",
          "dashboardField": "appVersion.mobileCompanionBoundary",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Agent Dispatch",
          "title": "Automation Loop",
          "status": "Tracking",
          "action": "Keep the command center, daily brief, agent dispatch pack, and build queues current until paid launch gates clear.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.requestedNextBuild",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Model Benchmark",
          "priority": "P1",
          "owner": "Codex",
          "lane": "AI Swarm",
          "title": "Model benchmark evidence stays current",
          "status": "Model Benchmark Complete",
          "action": "Refresh model evidence when provider stack or routing changes; winner gemini; pass/fail/skipped 31/1/0; fast: anthropic claude-haiku-4-5-20251001; deep: openai gpt-5.6-sol; coding: grok grok-4.5; research: openai gpt-5.6-sol; creative: openai gpt-5.6-sol; vision: gemini gemini-3.5-flash; agentic: gemini gemini-3.5-flash; safety: openai gpt-5.6-sol.",
          "dashboardPage": "pages/model-benchmark.html",
          "dashboardField": "aiProviders.modelBenchmark",
          "uploadSlot": "",
          "verificationCommand": "npm run model:benchmark:refresh && npm run test:model-benchmark",
          "noGoRule": "This benchmark informs routing and product claims. Paid launch still requires stable cloud deployment, customer auth, billing, support, legal, and release-trust gates. Do not market best-model claims without current benchmark evidence plus runtime routing/status proof."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "5. Other Visual Evidence",
          "title": "Android alpha83 responsive Command surface",
          "status": "Blocked",
          "action": "Refresh after each mobile Command surface or autonomous-run layout change.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Trusted installer evidence clears release candidate",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "5. Other Visual Evidence",
          "title": "Android alpha83 responsive Command surface",
          "status": "Blocked",
          "action": "Refresh after each mobile Command surface or autonomous-run layout change.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Trusted installer evidence clears release candidate",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ]
    },
    {
      "id": "cloud-platform",
      "name": "Cloud Platform",
      "cadence": "Daily 2:30 PM",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Move the dashboard and billing backend toward Cloudflare Pages, Worker API, D1, R2, Access, cron, and cloud sync.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "cloud/command-center-worker/",
        "cloud/command-center-pages/",
        "cloud-bootstrap-pack.json",
        "cloudflare-handoff-discovery.json",
        "cloud-deploy-pack.json",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run cloudflare:discover",
        "npm run cloud:bootstrap:pack",
        "npm run cloud:command-center:deploy:preflight",
        "npm run cloud:command-center:deploy:pack",
        "npm run cloud:command-center:pages:check"
      ],
      "currentAssignment": "sync non secret config",
      "nextAction": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
      "blockerCount": 82,
      "actions": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Legal policy packet",
          "status": "Ready",
          "action": "Privacy Terms EULA Refund/Cancellation Security and Legal Review Packet drafts now exist as repo files command-center pages and a Word review packet",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Dashboard collaboration workspace",
          "status": "Ready",
          "action": "Dashboard now exposes saveable handoff fields, Launch Setup Wizard, Daily Agents page, cloud/app-version/visual state, and command-center collaboration checks so it can function as the shared workspace between user and Codex",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Deploy Pack",
          "status": "Ready",
          "action": "Cloud Deploy Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Cloudflare resource targets safe placeholder commands D1/R2/Worker/Pages setup sequence first cloud sync commands and no-secret rules from the cloud deploy preflight",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud API URL available for sync",
          "status": "post-deploy",
          "action": "After deploy, set NYRA_COMMAND_CENTER_API_URL in a temporary shell before cloud sync.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud API token available for sync",
          "status": "post-deploy",
          "action": "After deploy, set NYRA_COMMAND_CENTER_TOKEN in a temporary shell only; never write it to repo files.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "5. First Cloud Sync",
          "title": "Cloud API URL available for sync",
          "status": "post-deploy",
          "action": "After Worker deployment, set NYRA_COMMAND_CENTER_API_URL in a temporary shell and the browser Cloud Connection URL field.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Verify",
          "title": "Refresh Cloudflare discovery",
          "status": "Open",
          "action": "Rerun discovery after any Cloudflare dashboard or Wrangler resource change so the command center stays current.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.notes",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Cloudflare API tokens, Worker bearer tokens, recovery codes, Stripe secrets, private keys, and password material must stay in Wrangler secrets, Cloudflare dashboard secret stores, browser localStorage, or a temporary shell only. This discovery pack stores non-secret resource names/IDs and redacted account context only."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Verify",
          "title": "Refresh Cloudflare discovery",
          "status": "Open",
          "action": "Rerun discovery after any Cloudflare dashboard or Wrangler resource change so the command center stays current.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.notes",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Cloudflare API tokens, Worker bearer tokens, recovery codes, Stripe secrets, private keys, and password material must stay in Wrangler secrets, Cloudflare dashboard secret stores, browser localStorage, or a temporary shell only. This discovery pack stores non-secret resource names/IDs and redacted account context only."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE SECRET KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE WEBHOOK SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA STRIPE PRICE PRO MONTHLY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING SUCCESS URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING CANCEL URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING RETURN URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE API TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE SIGNING SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA MOBILE BRIDGE TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA OPENAI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANTHROPIC API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GEMINI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GROK API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANDROID DOWNLOAD TICKET SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud Worker Secret Nyra Command Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Store this only in the current shell or browser Cloud Connection control; clear it after use and never commit it."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the private command-center Worker API.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:deploy",
          "noGoRule": "Do not deploy with placeholder D1 ID or placeholder ALLOWED_ORIGIN."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center pages",
          "status": "Waiting on prior gates",
          "action": "Deploy the command-center dashboard artifact to Cloudflare Pages.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:pages:deploy",
          "noGoRule": "Protect dashboard access before storing real business records or user files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy billing worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the billing Worker after test-mode payment rehearsal inputs are complete.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:deploy",
          "noGoRule": "Do not expose live checkout while deployability preflight still reports P0 live-money blockers."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "first cloud roundtrip",
          "status": "Waiting on prior gates",
          "action": "Prove cloud command-center state can be pushed, scanned, safely ingested, and read back.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health && npm run cloud:command-center:push && npm run cloud:command-center:scan && npm run cloud:command-center:ingest && npm run cloud:command-center:roundtrip",
          "noGoRule": "Use only temporary shell env vars for NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "5. First Cloud Sync",
          "title": "Cloud API token available for sync",
          "status": "post-deploy",
          "action": "Set NYRA_COMMAND_CENTER_TOKEN in a temporary shell using the same private value as NYRA_COMMAND_TOKEN after the Worker secret is created.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe webhook secret",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_WEBHOOK_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra stripe price pro monthly",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_STRIPE_PRICE_PRO_MONTHLY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing success url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_SUCCESS_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing cancel url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_CANCEL_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing return url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_RETURN_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license api token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_API_TOKEN for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra mobile bridge token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_MOBILE_BRIDGE_TOKEN for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra openai api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_OPENAI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra anthropic api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANTHROPIC_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra gemini api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GEMINI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra grok api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GROK_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "command center migrations",
          "status": "Waiting on prior gates",
          "action": "Apply command-center D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_command_center --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not apply migrations to the wrong Cloudflare account or placeholder database ID."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "billing migrations",
          "status": "Waiting on prior gates",
          "action": "Apply billing D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_billing --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not run live billing until Stripe test-mode and legal/support gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "7. First Sync",
          "title": "mobile phone self test after deploy",
          "status": "Waiting on prior gates",
          "action": "Ingest and verify a physical-phone self-test after the deployed bridge replaces the temporary tunnel.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run phone:self-test:ingest && npm run test:phone-self-test-ingest",
          "noGoRule": "Do not clear the physical-phone gate from web-surface evidence; it must come from the installed Android app."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_TOKEN",
          "status": "Waiting on private token",
          "action": "Cloudflare command-center Worker secret. Setup command placeholder: npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production. Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the private command-center Worker API.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:deploy",
          "noGoRule": "Do not deploy with placeholder D1 ID or placeholder ALLOWED_ORIGIN."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center pages",
          "status": "Waiting on prior gates",
          "action": "Deploy the command-center dashboard artifact to Cloudflare Pages.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:pages:deploy",
          "noGoRule": "Protect dashboard access before storing real business records or user files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy billing worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the billing Worker after test-mode payment rehearsal inputs are complete.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:deploy",
          "noGoRule": "Do not expose live checkout while deployability preflight still reports P0 live-money blockers."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "first cloud roundtrip",
          "status": "Waiting on prior gates",
          "action": "Prove cloud command-center state can be pushed, scanned, safely ingested, and read back.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health && npm run cloud:command-center:push && npm run cloud:command-center:scan && npm run cloud:command-center:ingest && npm run cloud:command-center:roundtrip",
          "noGoRule": "Use only temporary shell env vars for NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe webhook secret",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_WEBHOOK_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra stripe price pro monthly",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_STRIPE_PRICE_PRO_MONTHLY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing success url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_SUCCESS_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing cancel url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_CANCEL_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing return url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_RETURN_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license api token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_API_TOKEN for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra mobile bridge token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_MOBILE_BRIDGE_TOKEN for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra openai api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_OPENAI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra anthropic api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANTHROPIC_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra gemini api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GEMINI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra grok api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GROK_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "command center migrations",
          "status": "Waiting on prior gates",
          "action": "Apply command-center D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_command_center --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not apply migrations to the wrong Cloudflare account or placeholder database ID."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "billing migrations",
          "status": "Waiting on prior gates",
          "action": "Apply billing D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_billing --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not run live billing until Stripe test-mode and legal/support gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "7. First Sync",
          "title": "mobile phone self test after deploy",
          "status": "Waiting on prior gates",
          "action": "Ingest and verify a physical-phone self-test after the deployed bridge replaces the temporary tunnel.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run phone:self-test:ingest && npm run test:phone-self-test-ingest",
          "noGoRule": "Do not clear the physical-phone gate from web-surface evidence; it must come from the installed Android app."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_TOKEN",
          "status": "Waiting on private token",
          "action": "Cloudflare command-center Worker secret. Setup command placeholder: npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production. Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "mobile-bridge",
      "name": "Mobile Bridge",
      "cadence": "Every 6 hours",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep Android, hosted bridge, phone support logs, APK update routing, and physical phone self-tests aligned with the desktop app.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "cloud/mobile-bridge-worker/",
        "docs/HOSTED_UPDATES_AND_LOGS.md",
        "docs/launch_command_center/cloud-mobile-bridge.html",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run alpha:hosted:check",
        "npm run test:hosted-alpha-control",
        "npm run cloud:mobile-bridge:check",
        "npm run test:cloud-mobile-bridge",
        "npm run test:mobile-runtime-bridge-status",
        "npm run test:android-alpha-release"
      ],
      "currentAssignment": "Hosted alpha phone test stays green",
      "nextAction": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
      "blockerCount": 3,
      "actions": [
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Typed IPC hardening",
          "status": "Ready",
          "action": "Preload bridge now uses allowlisted invoke send and listen channels, store-key allowlist, payload shape and size validation, unsafe URL protocol blocking, and sanitized listener events; typed IPC static/runtime tests are wired into clean build",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Deploy Pack",
          "status": "Ready",
          "action": "Cloud Deploy Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Cloudflare resource targets safe placeholder commands D1/R2/Worker/Pages setup sequence first cloud sync commands and no-secret rules from the cloud deploy preflight",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        }
      ]
    },
    {
      "id": "payments-licensing",
      "name": "Payments Licensing",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep Stripe, checkout, Customer Portal, billing Worker, webhooks, license activation, and entitlement gates deployment-ready.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "payment-launch-pack.json",
        "server/",
        "cloud/billing-worker/",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run payment:launch-pack",
        "npm run test:payment-launch-pack",
        "npm run billing:live-preflight -- --mode test --allow-blocked"
      ],
      "currentAssignment": "Shipping visuals",
      "nextAction": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
      "blockerCount": 62,
      "actions": [
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Engineering",
          "title": "Production license auth model",
          "status": "Ready",
          "action": "Checkout-session claim plus device-scoped access token flow is implemented locally; deploy backend and connect live Stripe webhooks before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Engineering",
          "title": "Paid feature entitlement gate",
          "status": "Ready",
          "action": "Main-process IPC gate now blocks API swarm chat voice realtime screen capture computer control file/app control and developer terminal unless an active cached license remains inside offline grace; denied paid actions return NYRA_PRO_REQUIRED; checkout and activation stay reachable",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "High-impact action approval gate",
          "status": "Ready",
          "action": "Main-process gate returns NYRA_HIGH_IMPACT_APPROVAL_REQUIRED for payment credential account-changing destructive system-setting installer/script data-sharing and developer-terminal risks; normal runs show an Electron approval dialog and automated runs deny deterministically",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE SECRET KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE WEBHOOK SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA STRIPE PRICE PRO MONTHLY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING SUCCESS URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING CANCEL URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING RETURN URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE API TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE SIGNING SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA MOBILE BRIDGE TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA OPENAI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANTHROPIC API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GEMINI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GROK API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANDROID DOWNLOAD TICKET SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud Worker Secret Nyra Command Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Store this only in the current shell or browser Cloud Connection control; clear it after use and never commit it."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Payments",
          "title": "Configure Customer Portal",
          "status": "Open",
          "action": "Enable cancellation, invoices, payment methods",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy billing worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the billing Worker after test-mode payment rehearsal inputs are complete.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:deploy",
          "noGoRule": "Do not expose live checkout while deployability preflight still reports P0 live-money blockers."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe webhook secret",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_WEBHOOK_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra stripe price pro monthly",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_STRIPE_PRICE_PRO_MONTHLY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing success url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_SUCCESS_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing cancel url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_CANCEL_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing return url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_RETURN_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license api token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_API_TOKEN for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "billing migrations",
          "status": "Waiting on prior gates",
          "action": "Apply billing D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_billing --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not run live billing until Stripe test-mode and legal/support gates pass."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Payments",
          "title": "Configure Customer Portal",
          "status": "Open",
          "action": "Enable cancellation, invoices, payment methods",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy billing worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the billing Worker after test-mode payment rehearsal inputs are complete.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:deploy",
          "noGoRule": "Do not expose live checkout while deployability preflight still reports P0 live-money blockers."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe webhook secret",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_WEBHOOK_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra stripe price pro monthly",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_STRIPE_PRICE_PRO_MONTHLY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing success url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_SUCCESS_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing cancel url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_CANCEL_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing return url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_RETURN_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license api token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_API_TOKEN for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "billing migrations",
          "status": "Waiting on prior gates",
          "action": "Apply billing D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_billing --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not run live billing until Stripe test-mode and legal/support gates pass."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ]
    },
    {
      "id": "secret-store-ops",
      "name": "Secret Store Ops",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep required Stripe, billing, command-center, cloud, and license secrets named, routed, verified, and out of repo files.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "secret-store-pack.json",
        "SECRET_STORE_PACK.md",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run secret:pack",
        "npm run test:secret-pack",
        "npm run daily:brief"
      ],
      "currentAssignment": "sync non secret config",
      "nextAction": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
      "blockerCount": 75,
      "actions": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Engineering",
          "title": "Production license auth model",
          "status": "Ready",
          "action": "Checkout-session claim plus device-scoped access token flow is implemented locally; deploy backend and connect live Stripe webhooks before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Engineering",
          "title": "Paid feature entitlement gate",
          "status": "Ready",
          "action": "Main-process IPC gate now blocks API swarm chat voice realtime screen capture computer control file/app control and developer terminal unless an active cached license remains inside offline grace; denied paid actions return NYRA_PRO_REQUIRED; checkout and activation stay reachable",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "High-impact action approval gate",
          "status": "Ready",
          "action": "Main-process gate returns NYRA_HIGH_IMPACT_APPROVAL_REQUIRED for payment credential account-changing destructive system-setting installer/script data-sharing and developer-terminal risks; normal runs show an Electron approval dialog and automated runs deny deterministically",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Consent and memory controls",
          "status": "Ready",
          "action": "First-run consent step Settings Privacy & Consent panel NYRA_CONSENT_REQUIRED main-process enforcement local privacy export and memory/log deletion are implemented for mic camera screen computer control third-party AI local memory and passive context log",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Intake readiness scanner",
          "status": "Ready",
          "action": "npm run intake:scan generates handoff-readiness.json handoff-readiness.csv HANDOFF_READINESS.md and the Handoff Readiness dashboard page from saved fields uploads secret-store presence and deployability blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Deploy Pack",
          "status": "Ready",
          "action": "Cloud Deploy Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Cloudflare resource targets safe placeholder commands D1/R2/Worker/Pages setup sequence first cloud sync commands and no-secret rules from the cloud deploy preflight",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE SECRET KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret STRIPE WEBHOOK SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA STRIPE PRICE PRO MONTHLY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING SUCCESS URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING CANCEL URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA BILLING RETURN URL",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE API TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE SIGNING SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA MOBILE BRIDGE TOKEN",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA OPENAI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANTHROPIC API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GEMINI API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA GROK API KEY",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANDROID DOWNLOAD TICKET SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud Worker Secret Nyra Command Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Store this only in the current shell or browser Cloud Connection control; clear it after use and never commit it."
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud API URL available for sync",
          "status": "post-deploy",
          "action": "After deploy, set NYRA_COMMAND_CENTER_API_URL in a temporary shell before cloud sync.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "Codex",
          "lane": "",
          "title": "Cloud API token available for sync",
          "status": "post-deploy",
          "action": "After deploy, set NYRA_COMMAND_CENTER_TOKEN in a temporary shell only; never write it to repo files.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "5. First Cloud Sync",
          "title": "Cloud API URL available for sync",
          "status": "post-deploy",
          "action": "After Worker deployment, set NYRA_COMMAND_CENTER_API_URL in a temporary shell and the browser Cloud Connection URL field.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "5. First Cloud Sync",
          "title": "Cloud API token available for sync",
          "status": "post-deploy",
          "action": "Set NYRA_COMMAND_CENTER_TOKEN in a temporary shell using the same private value as NYRA_COMMAND_TOKEN after the Worker secret is created.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe webhook secret",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_WEBHOOK_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra stripe price pro monthly",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_STRIPE_PRICE_PRO_MONTHLY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing success url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_SUCCESS_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing cancel url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_CANCEL_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing return url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_RETURN_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license api token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_API_TOKEN for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra mobile bridge token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_MOBILE_BRIDGE_TOKEN for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra openai api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_OPENAI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra anthropic api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANTHROPIC_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra gemini api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GEMINI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra grok api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GROK_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_TOKEN",
          "status": "Waiting on private token",
          "action": "Cloudflare command-center Worker secret. Setup command placeholder: npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production. Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "command token secret",
          "status": "Waiting on prior gates",
          "action": "Set the private command-center API bearer token through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not paste this token into dashboard fields, repo files, Markdown, CSV, screenshots, or chat."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe secret key",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_SECRET_KEY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret stripe webhook secret",
          "status": "Waiting on prior gates",
          "action": "Set STRIPE_WEBHOOK_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra stripe price pro monthly",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_STRIPE_PRICE_PRO_MONTHLY for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing success url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_SUCCESS_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing cancel url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_CANCEL_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra billing return url",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_BILLING_RETURN_URL for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license api token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_API_TOKEN for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra mobile bridge token",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_MOBILE_BRIDGE_TOKEN for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra openai api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_OPENAI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra anthropic api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANTHROPIC_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra gemini api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GEMINI_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra grok api key",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_GROK_API_KEY for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_TOKEN",
          "status": "Waiting on private token",
          "action": "Cloudflare command-center Worker secret. Setup command placeholder: npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production. Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "marketing-visuals",
      "name": "Marketing Visuals",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep screenshots, diagrams, launch copy, safe claims, demo scripts, ads, and campaign materials aligned with the shipping app.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "visual-production-pack.json",
        "MARKETING_CAMPAIGN_KIT.md",
        "docs/launch_site/",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run visuals:pack",
        "npm run marketing:kit",
        "npm run test:visual-production-pack"
      ],
      "currentAssignment": "Shipping visuals",
      "nextAction": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
      "blockerCount": 60,
      "actions": [
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Typed IPC hardening",
          "status": "Ready",
          "action": "Preload bridge now uses allowlisted invoke send and listen channels, store-key allowlist, payload shape and size validation, unsafe URL protocol blocking, and sanitized listener events; typed IPC static/runtime tests are wired into clean build",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Dependency security audit",
          "status": "Ready",
          "action": "Upgraded Electron to 42.3.0, electron-builder to 26.8.1, Vite to 8.0.14, Vite React plugin to 6.0.2, and Vite Electron plugins to 1.0.0; clean build now reports 0 npm audit vulnerabilities",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Dashboard collaboration workspace",
          "status": "Ready",
          "action": "Dashboard now exposes saveable handoff fields, Launch Setup Wizard, Daily Agents page, cloud/app-version/visual state, and command-center collaboration checks so it can function as the shared workspace between user and Codex",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Collaboration handoff console",
          "status": "Ready",
          "action": "Collaboration page renders the live deployability blocker queue as exact user handoffs with dashboard page field upload slot status and next action so decisions and files can be entered in one operating space",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Intake readiness scanner",
          "status": "Ready",
          "action": "npm run intake:scan generates handoff-readiness.json handoff-readiness.csv HANDOFF_READINESS.md and the Handoff Readiness dashboard page from saved fields uploads secret-store presence and deployability blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "File SC LLC if chosen",
          "status": "In progress",
          "action": "Porter Labs LLC SC registration is in progress via uploaded ZenBusiness evidence; formation date still not issued",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANDROID DOWNLOAD TICKET SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "5. Other Visual Evidence",
          "title": "Android alpha83 responsive Command surface",
          "status": "Blocked",
          "action": "Refresh after each mobile Command surface or autonomous-run layout change.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "first cloud roundtrip",
          "status": "Waiting on prior gates",
          "action": "Prove cloud command-center state can be pushed, scanned, safely ingested, and read back.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health && npm run cloud:command-center:push && npm run cloud:command-center:scan && npm run cloud:command-center:ingest && npm run cloud:command-center:roundtrip",
          "noGoRule": "Use only temporary shell env vars for NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "File SC LLC if chosen",
          "status": "In progress",
          "action": "Porter Labs LLC SC registration is in progress via uploaded ZenBusiness evidence; formation date still not issued",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "5. Other Visual Evidence",
          "title": "Android alpha83 responsive Command surface",
          "status": "Blocked",
          "action": "Refresh after each mobile Command surface or autonomous-run layout change.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "first cloud roundtrip",
          "status": "Waiting on prior gates",
          "action": "Prove cloud command-center state can be pushed, scanned, safely ingested, and read back.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health && npm run cloud:command-center:push && npm run cloud:command-center:scan && npm run cloud:command-center:ingest && npm run cloud:command-center:roundtrip",
          "noGoRule": "Use only temporary shell env vars for NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "qa-release",
      "name": "QA Release",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep release trust, installer evidence, app version, release-candidate preflight, and QA matrix gates honest.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "release-trust-pack.json",
        "release-candidate-preflight.json",
        "QA_LAUNCH_MATRIX.md",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run release:trust:pack",
        "npm run release:candidate:preflight",
        "npm run test:qa-launch-matrix"
      ],
      "currentAssignment": "Windows installer version",
      "nextAction": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
      "blockerCount": 31,
      "actions": [
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "4. Support Process",
          "title": "Support runbook and inbox setup docs exist",
          "status": "Ready",
          "action": "Keep support categories, evidence rules, response targets, canned replies, and inbox setup docs current with the shipping product.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.runbookStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness",
          "noGoRule": "No paid beta without a written support process for install, activation, billing, cancellation, privacy, and computer-control tickets."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Release package evidence",
          "status": "Ready",
          "action": "Release runbook release notes known issues rollback plan release-manifest and SHA256SUMS generation are wired into clean build; command center release package page renders manifest checksums signing status and blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "High-impact action approval gate",
          "status": "Ready",
          "action": "Main-process gate returns NYRA_HIGH_IMPACT_APPROVAL_REQUIRED for payment credential account-changing destructive system-setting installer/script data-sharing and developer-terminal risks; normal runs show an Electron approval dialog and automated runs deny deterministically",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version path",
          "status": "Saved different value",
          "action": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
          "dashboardPage": "pages/app-version.html",
          "dashboardField": "appVersion.mobileCompanionBoundary",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Agent Dispatch",
          "title": "Automation Loop",
          "status": "Tracking",
          "action": "Keep the command center, daily brief, agent dispatch pack, and build queues current until paid launch gates clear.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.requestedNextBuild",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE SIGNING SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Trusted installer evidence clears release candidate",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Trusted installer evidence clears release candidate",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "version-control",
      "name": "Version Control",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep Git, GitHub remote, CI workflow, branch/tag strategy, release evidence, and backup/archive status traceable before paid beta.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "version-control-pack.json",
        "VERSION_CONTROL_PACK.md",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run version:control-pack",
        "npm run test:version-control-pack",
        "npm run daily:brief"
      ],
      "currentAssignment": "App version path",
      "nextAction": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
      "blockerCount": 35,
      "actions": [
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version path",
          "status": "Saved different value",
          "action": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
          "dashboardPage": "pages/app-version.html",
          "dashboardField": "appVersion.mobileCompanionBoundary",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Collaboration handoff console",
          "status": "Ready",
          "action": "Collaboration page renders the live deployability blocker queue as exact user handoffs with dashboard page field upload slot status and next action so decisions and files can be entered in one operating space",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "GitHub repo creation or push path available",
          "status": "Waiting on handoff",
          "action": "Authenticate GitHub CLI or save an existing remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No paid beta release until source history can be pushed to the chosen GitHub repository."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Repository Baseline",
          "title": "GitHub remote or repo URL saved",
          "status": "Waiting on handoff",
          "action": "Save the intended GitHub repository owner/name or remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No public paid release until the source repo and release evidence location are known."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Stripe identity/tax setup",
          "status": "Waiting on tax/pricing",
          "action": "Use Porter Labs LLC and porterlabz.com for Stripe identity after tax decision, price, portal, and legal review clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "GitHub repo creation or push path available",
          "status": "Waiting on handoff",
          "action": "Authenticate GitHub CLI or save an existing remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No paid beta release until source history can be pushed to the chosen GitHub repository."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Repository Baseline",
          "title": "GitHub remote or repo URL saved",
          "status": "Waiting on handoff",
          "action": "Save the intended GitHub repository owner/name or remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No public paid release until the source repo and release evidence location are known."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Stripe identity/tax setup",
          "status": "Waiting on tax/pricing",
          "action": "Use Porter Labs LLC and porterlabz.com for Stripe identity after tax decision, price, portal, and legal review clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "business-legal",
      "name": "Business Legal",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Track LLC/entity, tax, support contact, policies, legal review, and public compliance handoffs without making legal commitments.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "legal policy drafts",
        "handoff-action-pack.json",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run deployability:preflight",
        "npm run handoff:pack",
        "npm run test:policy-readiness"
      ],
      "currentAssignment": "Shipping visuals",
      "nextAction": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
      "blockerCount": 50,
      "actions": [
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "4. Support Process",
          "title": "Support runbook and inbox setup docs exist",
          "status": "Ready",
          "action": "Keep support categories, evidence rules, response targets, canned replies, and inbox setup docs current with the shipping product.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.runbookStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness",
          "noGoRule": "No paid beta without a written support process for install, activation, billing, cancellation, privacy, and computer-control tickets."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Legal policy packet",
          "status": "Ready",
          "action": "Privacy Terms EULA Refund/Cancellation Security and Legal Review Packet drafts now exist as repo files command-center pages and a Word review packet",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "File SC LLC if chosen",
          "status": "In progress",
          "action": "Porter Labs LLC SC registration is in progress via uploaded ZenBusiness evidence; formation date still not issued",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Stripe identity/tax setup",
          "status": "Waiting on tax/pricing",
          "action": "Use Porter Labs LLC and porterlabz.com for Stripe identity after tax decision, price, portal, and legal review clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Cloud",
          "title": "Approve billing backend host and secrets",
          "status": "Open",
          "action": "Choose container host and backend domain, create private secret values, choose an absolute mounted persistent entitlement path or managed database path, then provide webhook URL/secret through the dashboard without committing secrets",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "File SC LLC if chosen",
          "status": "In progress",
          "action": "Porter Labs LLC SC registration is in progress via uploaded ZenBusiness evidence; formation date still not issued",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal",
          "title": "Attorney review",
          "status": "Open",
          "action": "Review docs/policies drafts and NyrA_Legal_Review_Packet.docx before publishing policies or taking live payments",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Stripe identity/tax setup",
          "status": "Waiting on tax/pricing",
          "action": "Use Porter Labs LLC and porterlabz.com for Stripe identity after tax decision, price, portal, and legal review clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Cloud",
          "title": "Approve billing backend host and secrets",
          "status": "Open",
          "action": "Choose container host and backend domain, create private secret values, choose an absolute mounted persistent entitlement path or managed database path, then provide webhook URL/secret through the dashboard without committing secrets",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "support-ops",
      "name": "Support Ops",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep support inbox, diagnostics, refund/cancellation rehearsal, customer support macros, and escalation paths ready.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": [
        "support-ops-pack.json",
        "SUPPORT_OPS_PACK.md",
        "docs/support/",
        "support command-center page",
        "team_updates.csv"
      ],
      "safeCommands": [
        "npm run support:ops-pack",
        "npm run test:support-ops-pack",
        "npm run test:support-readiness",
        "npm run test:support-diagnostics-runtime",
        "npm run payment:launch-pack"
      ],
      "currentAssignment": "Redacted support diagnostics export exists",
      "nextAction": "Keep Settings diagnostics export available and redacted before every release candidate.",
      "blockerCount": 46,
      "actions": [
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "4. Support Process",
          "title": "Support runbook and inbox setup docs exist",
          "status": "Ready",
          "action": "Keep support categories, evidence rules, response targets, canned replies, and inbox setup docs current with the shipping product.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.runbookStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness",
          "noGoRule": "No paid beta without a written support process for install, activation, billing, cancellation, privacy, and computer-control tickets."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Legal policy packet",
          "status": "Ready",
          "action": "Privacy Terms EULA Refund/Cancellation Security and Legal Review Packet drafts now exist as repo files command-center pages and a Word review packet",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Payments",
          "title": "Configure Customer Portal",
          "status": "Open",
          "action": "Enable cancellation, invoices, payment methods",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Stripe identity/tax setup",
          "status": "Waiting on tax/pricing",
          "action": "Use Porter Labs LLC and porterlabz.com for Stripe identity after tax decision, price, portal, and legal review clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Ready",
          "action": "Save hosted billing backend and Stripe webhook URLs so support can distinguish checkout, portal, webhook, and activation failures.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Support cannot debug real customer billing until hosted backend and webhook URLs are known."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Payments",
          "title": "Configure Customer Portal",
          "status": "Open",
          "action": "Enable cancellation, invoices, payment methods",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Stripe identity/tax setup",
          "status": "Waiting on tax/pricing",
          "action": "Use Porter Labs LLC and porterlabz.com for Stripe identity after tax decision, price, portal, and legal review clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "product-program",
      "name": "Product Program",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Keep dashboard-as-command-center source of truth tight and route ready Codex launch work into concrete department assignments instead of passive watch states.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/decision-recommendations.html",
      "safeCommands": [
        "npm run daily:brief",
        "npm run source:truth",
        "npm run command-center:build"
      ],
      "currentAssignment": "Daily command-center intake",
      "nextAction": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
      "blockerCount": 59,
      "actions": [
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Release package evidence",
          "status": "Ready",
          "action": "Release runbook release notes known issues rollback plan release-manifest and SHA256SUMS generation are wired into clean build; command center release package page renders manifest checksums signing status and blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Dashboard collaboration workspace",
          "status": "Ready",
          "action": "Dashboard now exposes saveable handoff fields, Launch Setup Wizard, Daily Agents page, cloud/app-version/visual state, and command-center collaboration checks so it can function as the shared workspace between user and Codex",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Deployability preflight",
          "status": "Ready",
          "action": "Single live-money go/no-go preflight now generates deployability-snapshot.json deployability-blockers.csv DEPLOYABILITY_PREFLIGHT.md dashboard page blocker table action queue and daily-agent evidence from command-center state and environment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Collaboration handoff console",
          "status": "Ready",
          "action": "Collaboration page renders the live deployability blocker queue as exact user handoffs with dashboard page field upload slot status and next action so decisions and files can be entered in one operating space",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Intake readiness scanner",
          "status": "Ready",
          "action": "npm run intake:scan generates handoff-readiness.json handoff-readiness.csv HANDOFF_READINESS.md and the Handoff Readiness dashboard page from saved fields uploads secret-store presence and deployability blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Command-center state concurrency guard",
          "status": "Ready",
          "action": "Shared command-center JSON writes now use atomic replacement and a lock-backed update path; npm run test:command-center-concurrency verifies overlapping deployability and intake agent runs keep both dashboard status blocks valid",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Deploy Pack",
          "status": "Ready",
          "action": "Cloud Deploy Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Cloudflare resource targets safe placeholder commands D1/R2/Worker/Pages setup sequence first cloud sync commands and no-secret rules from the cloud deploy preflight",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Agent Dispatch",
          "title": "Automation Loop",
          "status": "Tracking",
          "action": "Keep the command center, daily brief, agent dispatch pack, and build queues current until paid launch gates clear.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.requestedNextBuild",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version path",
          "status": "Saved different value",
          "action": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
          "dashboardPage": "pages/app-version.html",
          "dashboardField": "appVersion.mobileCompanionBoundary",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Do not deploy until command-center D1/R2, ALLOWED_ORIGIN, and NYRA_COMMAND_TOKEN are configured."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-billing-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:check",
          "noGoRule": "Do not deploy live billing until Stripe test-mode rehearsal, secrets, Customer Portal, support, and policy gates pass."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "2. Remote Resources",
          "title": "Worker: nyra-mobile-bridge-api",
          "status": "Ready for deploy review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Do not rebuild Android paid-beta against this Worker until R2 APK hosting, provider secrets, device-token auth, and phone self-test evidence pass."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Verify",
          "title": "Refresh Cloudflare discovery",
          "status": "Open",
          "action": "Rerun discovery after any Cloudflare dashboard or Wrangler resource change so the command center stays current.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.notes",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Cloudflare API tokens, Worker bearer tokens, recovery codes, Stripe secrets, private keys, and password material must stay in Wrangler secrets, Cloudflare dashboard secret stores, browser localStorage, or a temporary shell only. This discovery pack stores non-secret resource names/IDs and redacted account context only."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Verify",
          "title": "Refresh Cloudflare discovery",
          "status": "Open",
          "action": "Rerun discovery after any Cloudflare dashboard or Wrangler resource change so the command center stays current.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.notes",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Cloudflare API tokens, Worker bearer tokens, recovery codes, Stripe secrets, private keys, and password material must stay in Wrangler secrets, Cloudflare dashboard secret stores, browser localStorage, or a temporary shell only. This discovery pack stores non-secret resource names/IDs and redacted account context only."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the private command-center Worker API.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:deploy",
          "noGoRule": "Do not deploy with placeholder D1 ID or placeholder ALLOWED_ORIGIN."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center pages",
          "status": "Waiting on prior gates",
          "action": "Deploy the command-center dashboard artifact to Cloudflare Pages.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:pages:deploy",
          "noGoRule": "Protect dashboard access before storing real business records or user files."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "GitHub repo creation or push path available",
          "status": "Waiting on handoff",
          "action": "Authenticate GitHub CLI or save an existing remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No paid beta release until source history can be pushed to the chosen GitHub repository."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "command center migrations",
          "status": "Waiting on prior gates",
          "action": "Apply command-center D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_command_center --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not apply migrations to the wrong Cloudflare account or placeholder database ID."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Cloud",
          "title": "Approve billing backend host and secrets",
          "status": "Open",
          "action": "Choose container host and backend domain, create private secret values, choose an absolute mounted persistent entitlement path or managed database path, then provide webhook URL/secret through the dashboard without committing secrets",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Repository Baseline",
          "title": "GitHub remote or repo URL saved",
          "status": "Waiting on handoff",
          "action": "Save the intended GitHub repository owner/name or remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No public paid release until the source repo and release evidence location are known."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_TOKEN",
          "status": "Waiting on private token",
          "action": "Cloudflare command-center Worker secret. Setup command placeholder: npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production. Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_TOKEN",
          "status": "Waiting on temporary sync token",
          "action": "Temporary local shell and browser localStorage only. Setup command placeholder: $env:NYRA_COMMAND_CENTER_TOKEN = \"<same private value as NYRA_COMMAND_TOKEN>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Store this only in the current shell or browser Cloud Connection control; clear it after use and never commit it."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Config Sync",
          "title": "sync non secret config",
          "status": "Waiting on prior gates",
          "action": "Apply saved non-secret dashboard values to production Worker configs and verify the mobile bridge bootstrap plan.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:config:sync && npm run cloud:billing:config:sync && npm run cloud:mobile-bridge:bootstrap -- --dry-run --skip-secrets --skip-deploy",
          "noGoRule": "This must not write Stripe secrets, bearer tokens, or Cloudflare tokens into repo files."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Ready for Codex review",
          "action": "Sync non-secret Worker config, prepare Pages artifact, update D1/R2 targets, and verify push/pull/scan roundtrip.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.cloudProvider",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing entitlement storage host",
          "status": "Saved matches recommendation",
          "action": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingDeployment.storageHostDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy command-center Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "D1: nyra_billing",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "billingCloud.d1DatabaseId",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Do not deploy billing Worker production until this D1 database_id is concrete in wrangler.jsonc."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-mobile-support-logs",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Keep mobile support diagnostics private; only redacted support-log readbacks may be exposed to support flows."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "Pages: nyra-command-center-dashboard",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudPages.projectName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Protect the dashboard with Cloudflare Access or equivalent private access before storing real business records."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Tax collection/accounting path",
          "status": "Saved matches recommendation",
          "action": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.taxDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "This is not tax advice and does not replace accountant/legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly subscription price",
          "status": "Saved matches recommendation",
          "action": "Save the approved monthly price in cents before creating the Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not create a live Stripe Price until the approved price is saved."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Saved matches recommendation",
          "action": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business, LLC, Tax",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.einStatus",
          "uploadSlot": "llc-documents",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the private command-center Worker API.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:deploy",
          "noGoRule": "Do not deploy with placeholder D1 ID or placeholder ALLOWED_ORIGIN."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy command center pages",
          "status": "Waiting on prior gates",
          "action": "Deploy the command-center dashboard artifact to Cloudflare Pages.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:pages:deploy",
          "noGoRule": "Protect dashboard access before storing real business records or user files."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "GitHub repo creation or push path available",
          "status": "Waiting on handoff",
          "action": "Authenticate GitHub CLI or save an existing remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No paid beta release until source history can be pushed to the chosen GitHub repository."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_API_URL",
          "status": "Waiting on deployed Worker URL",
          "action": "Temporary local shell and browser Cloud Connection URL field after Worker deployment. Setup command placeholder: $env:NYRA_COMMAND_CENTER_API_URL = \"https://<your-command-center-worker-url>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudSync.apiUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never publish a private dashboard URL without Cloudflare Access or bearer-token auth. The Worker URL itself can be saved in the dashboard."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "5. Migrations",
          "title": "command center migrations",
          "status": "Waiting on prior gates",
          "action": "Apply command-center D1 schema after the concrete database ID is configured.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler d1 migrations apply nyra_command_center --cwd cloud/command-center-worker --env production",
          "noGoRule": "Do not apply migrations to the wrong Cloudflare account or placeholder database ID."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Cloud",
          "title": "Approve billing backend host and secrets",
          "status": "Open",
          "action": "Choose container host and backend domain, create private secret values, choose an absolute mounted persistent entitlement path or managed database path, then provide webhook URL/secret through the dashboard without committing secrets",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Repository Baseline",
          "title": "GitHub remote or repo URL saved",
          "status": "Waiting on handoff",
          "action": "Save the intended GitHub repository owner/name or remote URL in the dashboard.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No public paid release until the source repo and release evidence location are known."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark Approved only after attorney/accountant review clears paid beta.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_TOKEN",
          "status": "Waiting on private token",
          "action": "Cloudflare command-center Worker secret. Setup command placeholder: npx wrangler secret put NYRA_COMMAND_TOKEN --cwd cloud/command-center-worker --env production. Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "deployment secret store: NYRA_COMMAND_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Never place the command-center bearer token into wrangler.jsonc, dashboard state, repo files, screenshots, or chat."
        },
        {
          "type": "Cloud Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "Cloud Command Center",
          "title": "NYRA_COMMAND_CENTER_TOKEN",
          "status": "Waiting on temporary sync token",
          "action": "Temporary local shell and browser localStorage only. Setup command placeholder: $env:NYRA_COMMAND_CENTER_TOKEN = \"<same private value as NYRA_COMMAND_TOKEN>\". Verify with npm run cloud:command-center:health.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "browser localStorage only: nyraCommandCenterApiConfig.token",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:command-center:health",
          "noGoRule": "Store this only in the current shell or browser Cloud Connection control; clear it after use and never commit it."
        }
      ]
    },
    {
      "id": "engineering-security",
      "name": "Engineering Security",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Paid-feature entitlement gate terminal gating high-impact approval consent enforcement typed IPC hardening license activation wiring and zero-audit Electron 42 build baseline",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/release-gates.html",
      "safeCommands": [
        "npm run test:typed-ipc-gates",
        "npm run test:high-impact-gates",
        "npm run test:privacy-consent-gates"
      ],
      "currentAssignment": "Draft privacy policy",
      "nextAction": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
      "blockerCount": 12,
      "actions": [
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Legal policy packet",
          "status": "Ready",
          "action": "Privacy Terms EULA Refund/Cancellation Security and Legal Review Packet drafts now exist as repo files command-center pages and a Word review packet",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Engineering",
          "title": "Paid feature entitlement gate",
          "status": "Ready",
          "action": "Main-process IPC gate now blocks API swarm chat voice realtime screen capture computer control file/app control and developer terminal unless an active cached license remains inside offline grace; denied paid actions return NYRA_PRO_REQUIRED; checkout and activation stay reachable",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Typed IPC hardening",
          "status": "Ready",
          "action": "Preload bridge now uses allowlisted invoke send and listen channels, store-key allowlist, payload shape and size validation, unsafe URL protocol blocking, and sanitized listener events; typed IPC static/runtime tests are wired into clean build",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "High-impact action approval gate",
          "status": "Ready",
          "action": "Main-process gate returns NYRA_HIGH_IMPACT_APPROVAL_REQUIRED for payment credential account-changing destructive system-setting installer/script data-sharing and developer-terminal risks; normal runs show an Electron approval dialog and automated runs deny deterministically",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Dependency security audit",
          "status": "Ready",
          "action": "Upgraded Electron to 42.3.0, electron-builder to 26.8.1, Vite to 8.0.14, Vite React plugin to 6.0.2, and Vite Electron plugins to 1.0.0; clean build now reports 0 npm audit vulnerabilities",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Consent and memory controls",
          "status": "Ready",
          "action": "First-run consent step Settings Privacy & Consent panel NYRA_CONSENT_REQUIRED main-process enforcement local privacy export and memory/log deletion are implemented for mic camera screen computer control third-party AI local memory and passive context log",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ]
    },
    {
      "id": "privacy-consent",
      "name": "Privacy Consent",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "First-run and Settings controls for mic camera screen memory passive context logs third-party AI and computer control are implemented and main-process enforced; privacy policy draft and AI provider data-flow draft now map OpenAI Anthropic Gemini xAI/Grok flows",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/policies.html",
      "safeCommands": [
        "npm run test:privacy-consent-gates",
        "npm run test:privacy-consent-runtime",
        "npm run test:policy-readiness"
      ],
      "currentAssignment": "Draft privacy policy",
      "nextAction": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
      "blockerCount": 9,
      "actions": [
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Draft privacy policy",
          "status": "Ready",
          "action": "Privacy draft now covers mic camera screen memory passive logs third-party AI billing support cloud dashboard provider flows export/delete consent and breach posture",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Legal/Privacy",
          "title": "Legal policy packet",
          "status": "Ready",
          "action": "Privacy Terms EULA Refund/Cancellation Security and Legal Review Packet drafts now exist as repo files command-center pages and a Word review packet",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Consent and memory controls",
          "status": "Ready",
          "action": "First-run consent step Settings Privacy & Consent panel NYRA_CONSENT_REQUIRED main-process enforcement local privacy export and memory/log deletion are implemented for mic camera screen computer control third-party AI local memory and passive context log",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Legal And Stripe Identity",
          "title": "Attorney/accountant review approved for paid beta",
          "status": "Waiting on user",
          "action": "Mark attorney/accountant review approved only after paid-beta policies, tax, refund, privacy, and support language are cleared.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Legal And Policy Review",
          "title": "Support, refund, privacy, and cancellation language reviewed",
          "status": "Waiting on handoff",
          "action": "Review final-sale, cancellation, support, privacy, and paid-beta language with an attorney/accountant or explicitly mark approved after review.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "legal-review",
          "verificationCommand": "npm run test:policy-readiness",
          "noGoRule": "Do not launch paid beta while support/refund/cancellation language is unreviewed."
        }
      ]
    },
    {
      "id": "release-ops",
      "name": "Release Ops",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "0.1.0-alpha.83 release-candidate preflight now publishes the current Internal Alpha Only vs paid-beta verdict from release evidence, deployability handoffs, cloud automations, marketing visuals, billing, support, legal, Android, and app-version state",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/release-package.html",
      "safeCommands": [
        "npm run release:candidate:preflight",
        "npm run test:release-candidate-preflight",
        "npm run test:qa-launch-matrix"
      ],
      "currentAssignment": "Windows installer version",
      "nextAction": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
      "blockerCount": 30,
      "actions": [
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Release package evidence",
          "status": "Ready",
          "action": "Release runbook release notes known issues rollback plan release-manifest and SHA256SUMS generation are wired into clean build; command center release package page renders manifest checksums signing status and blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "High-impact action approval gate",
          "status": "Ready",
          "action": "Main-process gate returns NYRA_HIGH_IMPACT_APPROVAL_REQUIRED for payment credential account-changing destructive system-setting installer/script data-sharing and developer-terminal risks; normal runs show an Electron approval dialog and automated runs deny deterministically",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Secret store setup pack",
          "status": "Ready",
          "action": "Secret Store Setup now generates JSON CSV Markdown dashboard and workbook rows for Stripe billing Worker license signing command-center bearer token local cloud sync variables safe placeholder-only commands verification commands and no-raw-secret rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version path",
          "status": "Saved different value",
          "action": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
          "dashboardPage": "pages/app-version.html",
          "dashboardField": "appVersion.mobileCompanionBoundary",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA LICENSE SIGNING SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Trusted installer evidence clears release candidate",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-android-releases",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover && npm run cloud:mobile-bridge:check",
          "noGoRule": "Serve APK downloads through ticketed Worker routes, not public unauthenticated bucket URLs."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User/Codex",
          "lane": "Release",
          "title": "Code signing",
          "status": "Open",
          "action": "Release Trust Decision Form now maps direct signed installer Microsoft Store both-channel and hold-unsigned paths; user still must buy/verify signing certificate or choose Store trust before paid beta",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Version Control",
          "title": "Version Control And Release History",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Trusted installer evidence clears release candidate",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "billing secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the billing Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production",
          "noGoRule": "Do not paste Stripe, license, or webhook secret values into the dashboard or repo."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra license signing secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_LICENSE_SIGNING_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "marketing-campaign",
      "name": "Marketing Campaign",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Campaign kit now contains beta invite email sequence social posts ad variants campaign calendar and demo/ad shot lists plus the generated launch site with safe claims and publishing blockers",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/marketing.html",
      "safeCommands": [
        "npm run public:launch-config",
        "npm run marketing:kit",
        "npm run test:public-launch-config"
      ],
      "currentAssignment": "Final shipping screenshots and demo assets",
      "nextAction": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
      "blockerCount": 59,
      "actions": [
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Wire desktop activation",
          "status": "Ready",
          "action": "Settings license panel now supports checkout session activation, refresh, cached grace state, read-only customer ID, and device-token portal access",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Support",
          "title": "Support diagnostics and runbook",
          "status": "Ready",
          "action": "Settings now exposes Export Support Diagnostics with redacted app runtime consent license provider and local-data-count metadata; support runbook covers intake ticket categories diagnostics billing/refund workflow canned replies and no-go conditions; live support still needs inbox ownership and ticket roundtrip",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Typed IPC hardening",
          "status": "Ready",
          "action": "Preload bridge now uses allowlisted invoke send and listen channels, store-key allowlist, payload shape and size validation, unsafe URL protocol blocking, and sanitized listener events; typed IPC static/runtime tests are wired into clean build",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Dependency security audit",
          "status": "Ready",
          "action": "Upgraded Electron to 42.3.0, electron-builder to 26.8.1, Vite to 8.0.14, Vite React plugin to 6.0.2, and Vite Electron plugins to 1.0.0; clean build now reports 0 npm audit vulnerabilities",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Collaboration handoff console",
          "status": "Ready",
          "action": "Collaboration page renders the live deployability blocker queue as exact user handoffs with dashboard page field upload slot status and next action so decisions and files can be entered in one operating space",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Intake readiness scanner",
          "status": "Ready",
          "action": "npm run intake:scan generates handoff-readiness.json handoff-readiness.csv HANDOFF_READINESS.md and the Handoff Readiness dashboard page from saved fields uploads secret-store presence and deployability blockers",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center sync",
          "status": "Ready",
          "action": "Dashboard can store a Cloud Worker API URL/token in browser localStorage only, save/pull state through the Worker, upload through R2-backed API, scan handoffs, classify Source Of Truth Map routes, record intake runs, and CLI scripts can health/push/pull/source-truth/scan/roundtrip once NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN are set; Worker now validates JSON and upload limits and Pages artifact excludes local uploads/raw state before cloud deployment",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Pages deploy pack",
          "status": "Ready",
          "action": "cloud/command-center-pages now contains Wrangler Pages config README and a generated public artifact with command-center HTML assets Excel/legal/release links no-index/no-store headers publish manifest and exclusion checks for uploads raw state and local server files",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/Product",
          "title": "App version roadmap",
          "status": "Ready",
          "action": "Maintain editable 0.1.0 alpha/beta, 0.2.0 reliability, 1.0.0 launch, and future mobile companion criteria from dashboard decisions; roadmap source doc dashboard board daily version-agent queue mobile boundary and clean-build check are implemented",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release",
          "title": "Windows installer version",
          "status": "Active",
          "action": "Internal alpha metadata is set to version 0.1.0-alpha.83, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop 0.1.0-alpha.83 evidence SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863; Android 0.1.0-alpha.83 versionCode 83 SHA256 b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0; release notes known issues rollback manifest checksums installer rehearsal release-trust decision packet and release-candidate preflight are wired; current verdict is Internal Alpha Only until signed/store-trusted installer evidence and paid-beta handoffs clear",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Product",
          "title": "Pricing and hosted AI cap model",
          "status": "Ready",
          "action": "Pricing model script docs snapshot CSV and command-center Pricing page estimate Stripe fees provider token cost support/infra/refund reserves target margin minimum price and recommended hosted AI cap",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments",
          "title": "Create Stripe product/price",
          "status": "Ready",
          "action": "Use billing:stripe-setup after price and Stripe key are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "File SC LLC if chosen",
          "status": "In progress",
          "action": "Porter Labs LLC SC registration is in progress via uploaded ZenBusiness evidence; formation date still not issued",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Secret NYRA ANDROID DOWNLOAD TICKET SECRET",
          "status": "",
          "action": "",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "first cloud roundtrip",
          "status": "Waiting on prior gates",
          "action": "Prove cloud command-center state can be pushed, scanned, safely ingested, and read back.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health && npm run cloud:command-center:push && npm run cloud:command-center:scan && npm run cloud:command-center:ingest && npm run cloud:command-center:roundtrip",
          "noGoRule": "Use only temporary shell env vars for NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Cloud",
          "title": "Approve billing backend host and secrets",
          "status": "Open",
          "action": "Choose container host and backend domain, create private secret values, choose an absolute mounted persistent entitlement path or managed database path, then provide webhook URL/secret through the dashboard without committing secrets",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Ready",
          "action": "Deploy or choose the hosted billing backend URL. If billingCloud.workerUrl is saved, this pack can mirror it into billingRehearsal.backendBaseUrl.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud command-center stack",
          "status": "Saved different value",
          "action": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.target",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud access model",
          "status": "Saved matches recommendation",
          "action": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.accessDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish a dashboard with business records without private access protection."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Remote Resources",
          "title": "R2: nyra-command-center-uploads",
          "status": "Ready for config review",
          "action": "Run discovery/config sync and verify the non-secret ID or URL is saved in the dashboard before deployment.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.r2Bucket",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Keep the handoff upload bucket private; never enable public bucket access for private launch evidence."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business/legal name",
          "status": "Ready",
          "action": "Enter the business/legal name that will appear in Stripe, receipts, policies, and release metadata.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Public domain",
          "status": "Ready",
          "action": "Enter the public product/policy domain or subdomain.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support email",
          "status": "Ready",
          "action": "Confirm the support inbox that will appear on policy pages, Stripe receipts, and the launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Monthly price",
          "status": "Ready",
          "action": "Enter the approved monthly price in cents before creating the live Stripe Price.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.monthlyPriceCents",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Hosted AI cap",
          "status": "Ready",
          "action": "Enter the customer-facing hosted AI usage cap before publishing pricing or checkout.",
          "dashboardPage": "pages/pricing.html",
          "dashboardField": "decisions.hostedAiCap",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved matches recommendation",
          "action": "Confirm the final legal/business name, save it in the dashboard, and upload sanitized filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A saved business name does not clear attorney/accountant review, entity evidence, tax review, or live Stripe authorization."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Entity path",
          "status": "Saved matches recommendation",
          "action": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.entityPath",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Refund and cancellation policy",
          "status": "Suggested - not saved",
          "action": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
          "dashboardPage": "pages/refund-cancellation.html",
          "dashboardField": "policy.review.refundCancellation",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A drafted policy is not legal approval."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Release channel",
          "status": "Saved matches recommendation",
          "action": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.releaseChannel",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Release Ops",
          "title": "Code-signing path",
          "status": "Saved matches recommendation",
          "action": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.codeSigningDecision",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "Choose entity path",
          "status": "SC LLC selected",
          "action": "SC LLC path saved as Porter Labs LLC in command center; formation evidence uploaded and filing remains in progress",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Legal/Business",
          "title": "File SC LLC if chosen",
          "status": "In progress",
          "action": "Porter Labs LLC SC registration is in progress via uploaded ZenBusiness evidence; formation date still not issued",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Marketing/Web",
          "title": "Buy domain",
          "status": "Domain saved",
          "action": "porterlabz.com is saved as the public product and policy domain; DNS and hosted deployment handoffs still pending",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support email saved",
          "status": "Ready",
          "action": "Save the support address customers will see in the app, Stripe receipts, public policies, and launch site.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid checkout without a public support contact."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "2. Public Policy And Domain",
          "title": "Public domain and policy support path saved",
          "status": "Ready",
          "action": "Save the public product domain so privacy, terms, refund, cancellation, support, checkout success, and portal return URLs can match.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.domain",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run public:launch-config && npm run test:public-launch-config",
          "noGoRule": "No public checkout unless policy/support URLs are on the intended public domain."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Cloudflare API token required",
          "status": "Ready",
          "action": "Create a scoped Cloudflare API token for the account that will host NyrA, set it as CLOUDFLARE_API_TOKEN in the local shell or automation secret store, then rerun npm run cloudflare:discover.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Ready",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npm run cloudflare:discover",
          "noGoRule": "Never store Cloudflare tokens, API keys, recovery codes, or password material in repo files or dashboard state."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Signed Or Store Evidence",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Produce signed direct-download installer evidence or store-trusted package/listing evidence before any paid beta customer receives the build.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "User + Codex gated",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Support Ops",
          "title": "Support, Policies, Public Web",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.attorneyReviewStatus",
          "uploadSlot": "domain-email",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments",
          "title": "Choose monthly price",
          "status": "Open",
          "action": "Pick first monthly SKU price using the Pricing Model page; model currently supports a $25 planning scenario with payment/provider/support reserves, but final price needs user approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Product",
          "title": "Choose hosted AI cap",
          "status": "Open",
          "action": "Define included usage and over-cap behavior using the Pricing Model page; model currently calculates a hosted-message cap from token and margin assumptions because BYOK is later",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Support",
          "title": "Create support inbox",
          "status": "Open",
          "action": "Create/confirm nyrasupport@gmail.com or domain email",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Cloud Platform",
          "title": "Approve Cloudflare cloud handoff",
          "status": "Open",
          "action": "Confirm Cloudflare account domain/subdomain admin email Cloudflare Access preference and approval to create D1/R2 resources",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy mobile bridge worker",
          "status": "Waiting on prior gates",
          "action": "Create/verify mobile bridge R2 buckets, upload the APK, deploy the Worker, and prove status/update/APK ticket/support-log/chat before saving state.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:mobile-bridge:bootstrap -- --worker-url=https://bridge.porterlabz.com --write-state",
          "noGoRule": "Do not replace the Android bundled bridge URL for paid beta until this post-deploy smoke passes and the shared alpha token is removed."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "first cloud roundtrip",
          "status": "Waiting on prior gates",
          "action": "Prove cloud command-center state can be pushed, scanned, safely ingested, and read back.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:command-center:health && npm run cloud:command-center:push && npm run cloud:command-center:scan && npm run cloud:command-center:ingest && npm run cloud:command-center:roundtrip",
          "noGoRule": "Use only temporary shell env vars for NYRA_COMMAND_CENTER_API_URL and NYRA_COMMAND_CENTER_TOKEN."
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Trust Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Signing Build Readiness",
          "title": "Windows signing readiness is proven",
          "status": "blocked",
          "action": "Finish Microsoft Artifact Signing or PFX handoffs so Codex can produce a signed Windows installer without storing secrets in the repo.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "windowsSigningReadiness.status",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Version Control Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "2. Repository Baseline",
          "title": "Push dry-run readiness captured",
          "status": "Waiting on handoff",
          "action": "Save or configure the intended GitHub origin remote, then rerun the dry-run push check before any tag or signing handoff.",
          "dashboardPage": "pages/version-control.html",
          "dashboardField": "versionControl.repoRemoteUrl",
          "uploadSlot": "version-control",
          "verificationCommand": "npm run version:control-pack && npm run test:version-control-pack",
          "noGoRule": "No release tag or signed package handoff is complete until a non-mutating push dry-run has been captured for the chosen remote."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "Waiting on user",
          "action": "Upload or generate signed/store-trusted release evidence after the signing path is chosen.",
          "dashboardPage": "pages/release-package.html",
          "dashboardField": "releasePackage.signingStatus",
          "uploadSlot": "code-signing",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloudflare Discovery",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "4. Host Dashboard",
          "title": "Map and protect command-center domain",
          "status": "Waiting on Pages custom domain",
          "action": "Add command.porterlabz.com as a custom domain on the nyra-command-center-dashboard Pages project, verify DNS/SSL, and apply the selected private access policy before publishing current business records.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.dashboardDomain",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler pages project list --json",
          "noGoRule": "Do not describe the private command center as hosted at the custom domain until Wrangler discovery lists that exact domain and access protection is verified."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "4. Secrets",
          "title": "mobile bridge secret nyra android download ticket secret",
          "status": "Waiting on prior gates",
          "action": "Set NYRA_ANDROID_DOWNLOAD_TICKET_SECRET for the mobile bridge Worker through Wrangler secrets only.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production",
          "noGoRule": "Do not paste bridge tokens, provider API keys, license signing secrets, or Android ticket secrets into the dashboard or repo."
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments/Cloud",
          "title": "Approve billing backend host and secrets",
          "status": "Open",
          "action": "Choose container host and backend domain, create private secret values, choose an absolute mounted persistent entitlement path or managed database path, then provide webhook URL/secret through the dashboard without committing secrets",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "visual-assets",
      "name": "Visual Assets",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "Visual inventory now tracks 23 screenshots diagrams launch-site assets and videos, and the Android evidence route now prefers the latest available alpha71 panel and launch captures instead of stale alpha46-only pointers while final screenshot approval stays blocked until the shipping UI billing support and consent flows freeze",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/visuals.html",
      "safeCommands": [
        "npm run visuals:pack",
        "npm run test:visual-production-pack",
        "npm run command-center:build"
      ],
      "currentAssignment": "Final shipping screenshots and demo assets",
      "nextAction": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
      "blockerCount": 16,
      "actions": [
        {
          "type": "Visual Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Final shipping screenshots and demo assets",
          "status": "Visuals In Progress",
          "action": "Storyboards and shot lists are ready; product demo and ad videos wait for final UI, pricing, billing, support, policy URLs, and screenshots.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Marketing/Web",
          "title": "Landing page",
          "status": "Ready",
          "action": "Generated local launch site with safe claims, product screenshots, policy links, readiness blockers, and checkout disabled until price hosted AI cap domain support live Stripe and review gates are ready",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Dashboard collaboration workspace",
          "status": "Ready",
          "action": "Dashboard now exposes saveable handoff fields, Launch Setup Wizard, Daily Agents page, cloud/app-version/visual state, and command-center collaboration checks so it can function as the shared workspace between user and Codex",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Decision recommendations",
          "status": "Ready",
          "action": "Decision Defaults now generates JSON CSV Markdown dashboard and workbook rows with recommended price hosted AI cap entity path support cloud release signing app-version and visual defaults while explicitly not clearing legal Stripe support cloud signing tax or secret-store handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Ad campaign",
          "status": "Ready",
          "action": "Campaign kit now includes beta invite email sequence social posts ad variants campaign calendar safe claims and publication rules; final publication waits for domain price hosted AI cap checkout URL policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Codex Work",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Product Program",
          "title": "Daily command-center intake",
          "status": "Active",
          "action": "Automation inventory now verifies required NyrA Codex automations are real and active; daily agents read the Today Command Brief, Decision Recommendations, Handoff Routing Rehearsal, Handoff Action Pack, Agent Dispatch Pack, Dashboard and Collaboration answers, uploads, notes, handoff readiness, deployability blockers, release-candidate status, cloud state, marketing kit, visual status, route newly cleared work, and keep Cloudflare discovery limited to real config drift instead of already-saved D1/R2 handoffs",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Decision Recommendation",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing Visuals",
          "title": "Shipping visuals",
          "status": "Suggested - not saved",
          "action": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved."
        },
        {
          "type": "Codex Work",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Marketing",
          "title": "Demo video",
          "status": "Active",
          "action": "Storyboards shot lists captions recording checklist and demo/ad scenes now exist; final recording waits for final UI pricing billing support policy URLs and screenshots",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Desktop Alpha83 answer-first response",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Idle NyrA buddy",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Right-click command menu",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Live voice controls",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Wake-gated pause/listening behavior",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Single buddy with right-click chat panel",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Screen-look permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Camera permission state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Computer-control active state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Stop button / interruption evidence",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android floating buddy over launcher",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android foreground panel and answer-first swarm state",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha83 Hide Bot recovery surface",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen. Current evidence is 0.1.0-alpha.80; shipping app is 0.1.0-alpha.83.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Command center Collaboration page",
          "status": "Refresh required",
          "action": "Refresh this screenshot from the current shipping build after UI, consent, billing, support, and release messaging are frozen.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "90-second product demo",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "4. Demo And Ad Video",
          "title": "30-second founding beta ad",
          "status": "Planned",
          "action": "Record this video only after final UI, pricing, hosted AI cap, support path, policy URLs, checkout URL, and screenshots match the shipping build.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.demoVideoStatus",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run marketing:kit && npm run visuals:pack",
          "noGoRule": "Do not publish demo or ad video with placeholder pricing, stale UI, disabled checkout confusion, or unapproved claims."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Launch visuals use current shipping app screenshots",
          "status": "Codex queued",
          "action": "Capture and approve current product screenshots after the shipping UI and billing/support flows are final.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "5. Other Visual Evidence",
          "title": "Android alpha83 responsive Command surface",
          "status": "Blocked",
          "action": "Refresh after each mobile Command surface or autonomous-run layout change.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Ready for Codex review",
          "action": "Regenerate pricing model, payment launch pack, billing rehearsal, and Stripe setup commands without storing raw secrets.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.publicProductName",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex + User approval",
          "lane": "Marketing Visuals",
          "title": "Visual Production",
          "status": "Partially filled",
          "action": "Fill 1 required dashboard field, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "Billing activation screen",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:inventory && npm run test:visual-assets",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Visual Production Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "2. Replace Diagram With App Screen",
          "title": "License activation flow",
          "status": "Partial",
          "action": "Replace the diagram-only evidence with a current app screenshot after the relevant billing/support flow exists.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "marketing-assets",
          "verificationCommand": "npm run visuals:inventory && npm run visuals:pack",
          "noGoRule": "Do not mark paid-beta visuals approved until the asset matches the exact shipping app and current public offer."
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "5. Other Visual Evidence",
          "title": "Android alpha83 responsive Command surface",
          "status": "Blocked",
          "action": "Refresh after each mobile Command surface or autonomous-run layout change.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.notes",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "7. Support Visual Evidence",
          "title": "Support screenshots match shipping app",
          "status": "Waiting on product freeze",
          "action": "Refresh support, diagnostics, billing, cancellation, and activation screenshots after the shipping UI and support paths are frozen.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "npm run visuals:pack && npm run test:visual-production-pack",
          "noGoRule": "Do not use support visuals that show stale UI, wrong support email, wrong policy URLs, or incomplete billing flow."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Visual Production Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "3. Billing Portal Capture",
          "title": "Customer Portal screen",
          "status": "Blocked",
          "action": "After Stripe Customer Portal is configured, capture the real customer portal screen and attach sanitized evidence to the dashboard.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ]
    },
    {
      "id": "qa-test",
      "name": "QA Test",
      "cadence": "Daily",
      "status": "WAITING_ON_HANDOFFS",
      "mission": "QA launch matrix clean-build release gates and generated-artifact readers now cover command center launch site billing deploy license billing paid features high-impact approvals privacy consent typed IPC policy production cloud Windows package and targeted stop/realtime/camera smokes; the 2026-06-13 phone self-test review still shows NO_PHONE_SELF_TEST_LOG and 0 phone-evidence files, so the physical-phone gate remains blocked even after the intake false-ready regression was removed.",
      "reads": "daily-command-brief.json, command-center-state.json",
      "writes": "pages/qa-matrix.html",
      "safeCommands": [
        "npm run test:qa-launch-matrix",
        "npm run test:command-center",
        "npm run build:clean"
      ],
      "currentAssignment": "Billing live rehearsal",
      "nextAction": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
      "blockerCount": 51,
      "actions": [
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Release/QA",
          "title": "Clean production build path",
          "status": "Ready",
          "action": "npm run build:clean copies the repo outside Google Drive, reinstalls dependencies, runs license/billing/production/cloud gates, builds release/0.1.0-alpha.83/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.83; latest verified desktop evidence remains 0.1.0-alpha.83 until that build passes",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Security gates",
          "status": "Ready",
          "action": "Paid entitlement gate, OpenAI storage gate, terminal env gate, main-process high-impact approval enforcement, first-run consent/privacy gates, and typed IPC hardening now exist with static/runtime release gates",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering Security",
          "title": "Typed IPC hardening",
          "status": "Ready",
          "action": "Preload bridge now uses allowlisted invoke send and listen channels, store-key allowlist, payload shape and size validation, unsafe URL protocol blocking, and sanitized listener events; typed IPC static/runtime tests are wired into clean build",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "QA",
          "title": "QA launch matrix",
          "status": "Ready",
          "action": "QA launch matrix now maps command-center launch-site billing-deploy license billing paid-feature high-impact privacy-consent typed-IPC policy production cloud Windows package clean-build and targeted computer-use stop/realtime/camera gates; test:qa-launch-matrix verifies scripts docs and build-clean coverage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Visual Assets",
          "title": "Visual asset readiness inventory",
          "status": "Ready",
          "action": "npm run visuals:inventory now tracks 23 screenshots diagrams launch-site assets and video rows across JSON CSV Markdown and the Visuals dashboard, and it prefers the latest available Android evidence instead of alpha46-only pointers; final screenshots remain unapproved until UI billing support and consent flows are frozen",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Command Center Intake",
          "title": "Command-center state concurrency guard",
          "status": "Ready",
          "action": "Shared command-center JSON writes now use atomic replacement and a lock-backed update path; npm run test:command-center-concurrency verifies overlapping deployability and intake agent runs keep both dashboard status blocks valid",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Launch Todo",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Cloud Platform",
          "title": "Cloud dashboard deployment",
          "status": "Ready",
          "action": "Worker API D1 schema R2 upload path cron marker hardened auth JSON/request limits browser cloud connection private Pages dashboard artifact CLI push/pull/scan/roundtrip sync and test harness exist locally; deploy after Cloudflare account/domain/auth approval",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "3. Customer Diagnostics",
          "title": "Redacted support diagnostics export exists",
          "status": "Ready",
          "action": "Keep Settings diagnostics export available and redacted before every release candidate.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.diagnosticsStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness && npm run test:support-diagnostics-runtime",
          "noGoRule": "Support must not ask customers for raw chats, API keys, tokens, full card numbers, screenshots with secrets, or private files."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "Codex",
          "lane": "4. Support Process",
          "title": "Support runbook and inbox setup docs exist",
          "status": "Ready",
          "action": "Keep support categories, evidence rules, response targets, canned replies, and inbox setup docs current with the shipping product.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "supportOps.runbookStatus",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run test:support-readiness",
          "noGoRule": "No paid beta without a written support process for install, activation, billing, cancellation, privacy, and computer-control tickets."
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Billing live rehearsal",
          "status": "Ready",
          "action": "Guarded preflight and rehearsal scripts plus command-center Billing Rehearsal page now check Stripe key mode, required webhook events, Customer Portal/support/legal blockers, HTTPS URLs, no repo secrets, and live-mode safety flag before checkout is exposed",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/QA",
          "title": "Payment Launch Pack",
          "status": "Ready",
          "action": "Payment Launch Pack now generates JSON CSV Markdown dashboard workbook Today Brief queue Stripe product/price setup sequence Customer Portal/webhook/backend/secret-store actions test rehearsal commands and live-payment no-go rules",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Engineering",
          "title": "Deploy billing backend",
          "status": "Ready",
          "action": "Standalone Node 24 billing backend deploy pack and Cloudflare Worker/D1 billing path are ready with manifests checklists health checks required secret lists route coverage storage probes entitlement writes idempotent webhook handling and test:billing-deploy/test:billing-storage/cloud:billing:check/test:cloud-billing-worker; actual hosted deployment still needs domain host or Worker URL D1 database ID secrets Stripe webhook Customer Portal price hosted AI cap support inbox and persistent managed storage",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Verified Codex Gate",
          "priority": "P0",
          "owner": "Codex",
          "lane": "Payments/Cloud",
          "title": "Cloud billing Worker/D1",
          "status": "Ready",
          "action": "Cloudflare Worker nyra-billing-api implements Stripe-hosted Checkout Customer Portal webhooks license status checkout-session claim device-scoped access tokens D1 entitlement/customer/event/device storage and local route tests; live use still needs Cloudflare account D1 database ID Worker URL Stripe test/live secrets price webhook endpoint support email legal URLs and dashboard origin",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Mobile Bridge",
          "title": "Hosted alpha phone test stays green",
          "status": "Hosted Alpha Ready",
          "action": "Run npm run alpha:hosted:check before phone testing; 4/4 providers ready, APK 0.1.0-alpha.83, download hash matches manifest, support log readback passed (2026-07-17T04-53-44-939Z-4ef1c4c3-4c15-45d9-80ac-4a7365b366d2).",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "npm run alpha:hosted:check && npm run test:hosted-alpha-control",
          "noGoRule": "A green hosted alpha proves internal runtime health only; it does not clear customer purchase, physical-phone, support, or signed-release gates."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "Codex",
          "lane": "Agent Dispatch",
          "title": "Automation Loop",
          "status": "Tracking",
          "action": "Keep the command center, daily brief, agent dispatch pack, and build queues current until paid launch gates clear.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.requestedNextBuild",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy billing worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the billing Worker after test-mode payment rehearsal inputs are complete.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:deploy",
          "noGoRule": "Do not expose live checkout while deployability preflight still reports P0 live-money blockers."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "7. First Sync",
          "title": "mobile phone self test after deploy",
          "status": "Waiting on prior gates",
          "action": "Ingest and verify a physical-phone self-test after the deployed bridge replaces the temporary tunnel.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run phone:self-test:ingest && npm run test:phone-self-test-ingest",
          "noGoRule": "Do not clear the physical-phone gate from web-surface evidence; it must come from the installed Android app."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Prove customer checkout and device restore on 0.1.0-alpha.83",
          "status": "Internal alpha only until a real customer checkout and device-restore roundtrip is proven, physical-phone proof passes, and signed/trusted distribution is ready.",
          "action": "Complete a Stripe test-mode checkout from a clean install, confirm webhook activation, pair a second install, and record the customer portal and restore evidence.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run billing:live-rehearsal -- --mode test && npm run test:customer-device-activation",
          "noGoRule": "No paid beta until a real test-mode purchase, portal, and second-device restore roundtrip are recorded."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Ready",
          "action": "Configure Stripe Customer Portal for cancellation, invoice history, and payment method updates; then test the support reply path.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run payment:launch-pack && npm run test:payment-launch-pack",
          "noGoRule": "Do not take recurring subscription money without a customer cancellation path."
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Command Center Intake",
          "title": "Daily Build Intake",
          "status": "Ready for Codex review",
          "action": "Run intake scan, handoff delta, daily brief, and agent dispatch; then continue the next unblocked NyrA build task.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "intake.userDecisionSummary",
          "uploadSlot": "qa-evidence",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA Release",
          "title": "App Version And Mobile",
          "status": "Ready for Codex review",
          "action": "Update version roadmap, release candidate preflight, QA matrix, release notes, and mobile boundary.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "appVersion.publisherName",
          "uploadSlot": "code-signing",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Ready",
          "action": "Send a test customer email to the support inbox, reply from the inbox, and upload sanitized proof of the roundtrip.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "support-roundtrip",
          "verificationCommand": "npm run support:ops-pack && npm run test:support-ops-pack",
          "noGoRule": "No paid beta until a real support inbox can receive and answer a customer ticket."
        },
        {
          "type": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox",
          "status": "Saved matches recommendation",
          "action": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
          "dashboardPage": "pages/support.html",
          "dashboardField": "decisions.supportEmail",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "Support email text alone does not clear the support roundtrip blocker."
        },
        {
          "type": "Public Launch Config",
          "priority": "P1",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured",
          "status": "Ready",
          "action": "Mark Yes only after Customer Portal cancellation, invoices, and payment methods are enabled and tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "8. Live Payment Gate",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Keep rehearsal mode in test until test checkout, portal, webhook, support, legal, domain, secrets, and release gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "User + Codex gated",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Visuals match the shipping app",
          "status": "blocked",
          "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "6. Deploy",
          "title": "deploy billing worker",
          "status": "Waiting on prior gates",
          "action": "Deploy the billing Worker after test-mode payment rehearsal inputs are complete.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run cloud:billing:deploy",
          "noGoRule": "Do not expose live checkout while deployability preflight still reports P0 live-money blockers."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "7. First Sync",
          "title": "billing live preflight test mode",
          "status": "Waiting on prior gates",
          "action": "Run a guarded test-mode billing go-live rehearsal after cloud URLs and secrets exist.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Do not run live-mode billing rehearsal until user explicitly confirms live Stripe readiness."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Windows signing inputs are ready for a trusted installer build",
          "status": "blocked",
          "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Paid beta installer is signed or store-trusted",
          "status": "blocked",
          "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Deployability preflight has no P0 blockers",
          "status": "blocked",
          "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing rehearsal mode set to live for final money preflight",
          "status": "Waiting on user",
          "action": "Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.mode",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "7. First Sync",
          "title": "mobile phone self test after deploy",
          "status": "Waiting on prior gates",
          "action": "Ingest and verify a physical-phone self-test after the deployed bridge replaces the temporary tunnel.",
          "dashboardPage": "pages/cloud-bootstrap.html",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "npm run phone:self-test:ingest && npm run test:phone-self-test-ingest",
          "noGoRule": "Do not clear the physical-phone gate from web-surface evidence; it must come from the installed Android app."
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "3 user handoffs and 0 secret-store handoffs are still waiting.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Support and legal review are ready",
          "status": "blocked",
          "action": "Complete attorney/accountant review for the paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_SECRET_KEY --cwd cloud/billing-worker --env production | $env:STRIPE_SECRET_KEY = \"<STRIPE_SECRET_KEY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put STRIPE_WEBHOOK_SECRET --cwd cloud/billing-worker --env production | $env:STRIPE_WEBHOOK_SECRET = \"<STRIPE_WEBHOOK_SECRET>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "Stripe Billing",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell. Setup command placeholder: npx wrangler secret put NYRA_STRIPE_PRICE_PRO_MONTHLY --cwd cloud/billing-worker --env production | $env:NYRA_STRIPE_PRICE_PRO_MONTHLY = \"<NYRA_STRIPE_PRICE_PRO_MONTHLY>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_SUCCESS_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_SUCCESS_URL = \"<NYRA_BILLING_SUCCESS_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_CANCEL_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_CANCEL_URL = \"<NYRA_BILLING_CANCEL_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Billing",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable. Setup command placeholder: npx wrangler secret put NYRA_BILLING_RETURN_URL --cwd cloud/billing-worker --env production | $env:NYRA_BILLING_RETURN_URL = \"<NYRA_BILLING_RETURN_URL>\". Verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run billing:live-preflight -- --mode test --allow-blocked",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_API_TOKEN --cwd cloud/billing-worker --env production | $env:NYRA_LICENSE_API_TOKEN = \"<NYRA_LICENSE_API_TOKEN>\". Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA License",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/billing-worker --env production | npx wrangler secret put NYRA_LICENSE_SIGNING_SECRET --cwd cloud/mobile-bridge-worker --env production. Verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P0",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell. Setup command placeholder: npx wrangler secret put NYRA_MOBILE_BRIDGE_TOKEN --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_MOBILE_BRIDGE_TOKEN = \"<NYRA_MOBILE_BRIDGE_TOKEN>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_SECRET_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_SECRET_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "STRIPE_WEBHOOK_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "3. Stripe Product And Price",
          "title": "NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and temporary billing rehearsal shell; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_STRIPE_PRICE_PRO_MONTHLY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_SUCCESS_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_SUCCESS_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_CANCEL_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_CANCEL_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "NYRA_BILLING_RETURN_URL",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret or hosted backend environment variable; verify with npm run billing:live-preflight -- --mode test --allow-blocked.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_BILLING_RETURN_URL",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_API_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker secret and desktop activation configuration; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_API_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_LICENSE_SIGNING_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare billing Worker and mobile bridge Worker secret; verify with npm run cloud:billing:check && npm run test:cloud-billing-worker && npm run cloud:mobile-bridge:check.",
          "dashboardPage": "pages/cloud-billing.html",
          "dashboardField": "deployment secret store: NYRA_LICENSE_SIGNING_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_MOBILE_BRIDGE_TOKEN",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret and temporary bridge test shell; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_MOBILE_BRIDGE_TOKEN",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "7. Secret Store And Rehearsal",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret; verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_OPENAI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_OPENAI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_OPENAI_API_KEY = \"<NYRA_OPENAI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_OPENAI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANTHROPIC_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANTHROPIC_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANTHROPIC_API_KEY = \"<NYRA_ANTHROPIC_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANTHROPIC_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GEMINI_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GEMINI_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GEMINI_API_KEY = \"<NYRA_GEMINI_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GEMINI_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_GROK_API_KEY",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_GROK_API_KEY --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_GROK_API_KEY = \"<NYRA_GROK_API_KEY>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_GROK_API_KEY",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "User",
          "lane": "NyrA Mobile Bridge",
          "title": "NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret-store only",
          "action": "Cloudflare mobile bridge Worker secret. Setup command placeholder: npx wrangler secret put NYRA_ANDROID_DOWNLOAD_TICKET_SECRET --cwd cloud/mobile-bridge-worker --env production | $env:NYRA_ANDROID_DOWNLOAD_TICKET_SECRET = \"<NYRA_ANDROID_DOWNLOAD_TICKET_SECRET>\". Verify with npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "deployment secret store: NYRA_ANDROID_DOWNLOAD_TICKET_SECRET",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:mobile-bridge-security",
          "noGoRule": "Never paste raw secret values into dashboard fields, Markdown files, CSV files, screenshots, source code, repo state, or chat."
        }
      ]
    }
  ],
  "outputs": {
    "json": "docs/launch_command_center/agent-dispatch-pack.json",
    "csv": "docs/launch_command_center/agent-dispatch-pack.csv",
    "report": "docs/launch_command_center/AGENT_DISPATCH_PACK.md",
    "dashboard": "docs/launch_command_center/pages/agents.html"
  }
}
