{
  "schemaVersion": 1,
  "generatedAt": "2026-06-17T22:59:20.294Z",
  "status": "AGENT_DISPATCH_WAITING_ON_HANDOFFS",
  "label": "Agent Dispatch Waiting On Handoffs",
  "counts": {
    "departments": 18,
    "waitingDepartments": 18,
    "assignedActions": 1085,
    "p0Actions": 692,
    "handoffBlockers": 506,
    "automationCount": 12
  },
  "dailyBrief": {
    "status": "WAITING_ON_HANDOFFS",
    "label": "Waiting On Handoffs",
    "codexQueueCount": 9,
    "dashboardUpdateQueueCount": 0,
    "deployabilityQueueCount": 27,
    "userQueueCount": 12,
    "secretQueueCount": 9,
    "handoffDeltaQueueCount": 1,
    "cloudBootstrapPackQueueCount": 14,
    "hostedAlphaStatus": "Hosted Alpha Ready",
    "hostedAlphaQueueCount": 2,
    "modelBenchmarkStatus": "Model Benchmark Complete",
    "modelBenchmarkQueueCount": 1,
    "cloudflareDiscoveryQueueCount": 2,
    "supportOpsPackQueueCount": 9,
    "versionControlPackQueueCount": 2,
    "publicLaunchConfigQueueCount": 7,
    "decisionRecommendationQueueCount": 14,
    "collaborationWorkspaceQueueCount": 18
  },
  "handoffDeltaPack": {
    "status": "HANDOFF_DELTA_CHANGED_WAITING_ON_HANDOFFS",
    "label": "Handoff Delta Changed Waiting On Handoffs",
    "changedRows": 1,
    "newlyReadyForCodexReview": 0
  },
  "automation": {
    "status": "AUTOMATION_HANDOFFS_MISSING",
    "label": "Automation Handoffs Missing",
    "requiredActive": 8,
    "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": 34,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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": "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": "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Stripe Secret Key",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Stripe Webhook Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Stripe Price Pro Monthly",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Success Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Cancel Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Return Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Signing Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Android Download Ticket Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "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": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "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": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        }
      ],
      "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": "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "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": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "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": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run deployability:preflight && npm run test:deployability-preflight",
          "noGoRule": "No paid beta or paid download until every P0 deployability blocker is cleared."
        }
      ]
    },
    {
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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": 18,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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": "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": "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": "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 grok; pass/fail/skipped 12/0/0; fast: gemini gemini-2.5-flash; deep: openai gpt-5.2; safety: grok grok-4.3.",
          "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": "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": ""
        }
      ],
      "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": "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": "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": "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": ""
        }
      ]
    },
    {
      "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": 98,
      "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": "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, and route newly cleared work",
          "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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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": "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Stripe Secret Key",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Stripe Webhook Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Stripe Price Pro Monthly",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Success Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Cancel Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Return Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Signing Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Android Download Ticket Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Optional fallback",
          "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": "Optional fallback",
          "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": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authenticate",
          "title": "Wrangler login",
          "status": "Interactive fallback",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login from this repo and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler login",
          "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": "User",
          "lane": "1. Authenticate",
          "title": "Wrangler login",
          "status": "Interactive fallback",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login from this repo and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler login",
          "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": "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": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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-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": "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": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "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": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "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": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Waiting on user",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Waiting on user",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Delta Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Secret store",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Secret store",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Hosted Android APK route configured",
          "status": "Waiting on user",
          "action": "Upload the current APK to R2 and enter its object key.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidApkR2Key",
          "uploadSlot": "cloud-handoff",
          "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": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Mobile Bridge",
          "title": "Replace temporary hosted alpha with permanent bridge.porterlabz.com",
          "status": "Internal alpha only until bridge.porterlabz.com Worker, R2 APK hosting, secret store, customer auth, and paid-beta distribution are deployed.",
          "action": "Deploy the permanent Cloudflare mobile bridge with provider secrets, R2 APK hosting, support-log readback, customer auth, and then rebuild Android from that stable URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:cloud-mobile-bridge",
          "noGoRule": "No paid beta or customer APK until the temporary trycloudflare tunnel is replaced by the stable Worker bridge."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Waiting on handoff",
          "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": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Waiting on user",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Waiting on user",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Hosted Android APK route configured",
          "status": "Waiting on user",
          "action": "Upload the current APK to R2 and enter its object key.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidApkR2Key",
          "uploadSlot": "cloud-handoff",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "Waiting on user",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Secret store",
          "action": "Secret store",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Secret store",
          "action": "Secret store",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted Android APK route configured",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidApkR2Key",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "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": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Delta Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "mobile-bridge-phone-self-test",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Cloudflare account confirmed",
          "status": "blocked",
          "action": "Confirm the Cloudflare account that will host the dashboard and API.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Cloud admin email entered",
          "status": "blocked",
          "action": "Enter the admin email to use for Cloudflare Access or ownership records.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "D1 database ID entered",
          "status": "blocked",
          "action": "Create the D1 database and paste its database_id into the dashboard.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Wrangler D1 database ID resolved",
          "status": "blocked",
          "action": "Replace production database_id placeholder in cloud/command-center-worker/wrangler.jsonc.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Cloud API URL available for sync",
          "status": "blocked",
          "action": "After deploy, set NYRA_COMMAND_CENTER_API_URL in a temporary shell before cloud sync.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "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": "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Cloud Control Room",
          "status": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run collaboration:workspace",
          "noGoRule": ""
        },
        {
          "type": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Optional fallback",
          "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": "Optional fallback",
          "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": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authenticate",
          "title": "Wrangler login",
          "status": "Interactive fallback",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login from this repo and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler login",
          "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": "User",
          "lane": "1. Authenticate",
          "title": "Wrangler login",
          "status": "Interactive fallback",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login from this repo and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "",
          "verificationCommand": "npx wrangler login",
          "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": "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": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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-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": "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": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "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": "2. Remote Resources",
          "title": "D1: nyra_command_center",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "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": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Waiting on user",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Waiting on user",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Delta Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Secret store",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Secret store",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Hosted Android APK route configured",
          "status": "Waiting on user",
          "action": "Upload the current APK to R2 and enter its object key.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidApkR2Key",
          "uploadSlot": "cloud-handoff",
          "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": "Hosted Alpha",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Mobile Bridge",
          "title": "Replace temporary hosted alpha with permanent bridge.porterlabz.com",
          "status": "Internal alpha only until bridge.porterlabz.com Worker, R2 APK hosting, secret store, customer auth, and paid-beta distribution are deployed.",
          "action": "Deploy the permanent Cloudflare mobile bridge with provider secrets, R2 APK hosting, support-log readback, customer auth, and then rebuild Android from that stable URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npm run cloud:mobile-bridge:check && npm run test:cloud-mobile-bridge",
          "noGoRule": "No paid beta or customer APK until the temporary trycloudflare tunnel is replaced by the stable Worker bridge."
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Hosted billing support links saved",
          "status": "Waiting on handoff",
          "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": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Waiting on user",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Waiting on user",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the SUPPORT_LOGS R2 bucket name for mobile diagnostics.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Platform",
          "title": "Hosted Android APK route configured",
          "status": "Waiting on user",
          "action": "Upload the current APK to R2 and enter its object key.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidApkR2Key",
          "uploadSlot": "cloud-handoff",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "Waiting on user",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Secret store",
          "action": "Secret store",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Secret store",
          "action": "Secret store",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile support-log R2 bucket saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.r2BucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Hosted Android APK route configured",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidApkR2Key",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "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": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Delta Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "mobile-bridge-phone-self-test",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Cloudflare account confirmed",
          "status": "blocked",
          "action": "Confirm the Cloudflare account that will host the dashboard and API.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Cloud admin email entered",
          "status": "blocked",
          "action": "Enter the admin email to use for Cloudflare Access or ownership records.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "D1 database ID entered",
          "status": "blocked",
          "action": "Create the D1 database and paste its database_id into the dashboard.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Wrangler D1 database ID resolved",
          "status": "blocked",
          "action": "Replace production database_id placeholder in cloud/command-center-worker/wrangler.jsonc.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Handoff",
          "priority": "P1",
          "owner": "User",
          "lane": "",
          "title": "Cloud API URL available for sync",
          "status": "blocked",
          "action": "After deploy, set NYRA_COMMAND_CENTER_API_URL in a temporary shell before cloud sync.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
      "blockerCount": 9,
      "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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": "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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": "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "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": "Visual Production Pack",
          "priority": "P1",
          "owner": "Codex",
          "lane": "1. Refresh Shipping Screenshot",
          "title": "Android alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "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."
        }
      ]
    },
    {
      "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": 11,
      "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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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": "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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",
          "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": "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": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Stripe Secret Key",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Stripe Webhook Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Stripe Price Pro Monthly",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Success Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Cancel Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Return Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Signing Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Android Download Ticket Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "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": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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",
          "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": "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": ""
        }
      ]
    },
    {
      "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": 26,
      "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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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": "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": "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": "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": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Stripe Secret Key",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Stripe Webhook Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Stripe Price Pro Monthly",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Success Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Cancel Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Billing Return Url",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Api Token",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra License Signing Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "Env Nyra Android Download Ticket Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "stripe-screenshots",
          "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": "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": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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.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."
        }
      ],
      "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-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": "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": "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": "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "stripe-screenshots",
          "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": "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": "2. Remote Resources",
          "title": "Worker: nyra-command-center-api",
          "status": "Waiting on Cloudflare API token",
          "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.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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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-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": "Waiting on Cloudflare API token",
          "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.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."
        }
      ]
    },
    {
      "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": 20,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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": "Waiting on handoff",
          "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": "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": "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": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "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": "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."
        }
      ],
      "handoffBlockers": [
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "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": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "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": ""
        }
      ]
    },
    {
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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": 29,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Nyra License Signing Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "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": "Daily build agents are active",
          "status": "blocked",
          "action": "Repair or create the required NyrA daily automations before relying on unattended build follow-up.",
          "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": "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": "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": "26 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "Complete hosted billing backend URL, Customer Portal, and final live-money rehearsal gates before paid checkout.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Delta Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "Waiting on user",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ],
      "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "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": "Daily build agents are active",
          "status": "blocked",
          "action": "Repair or create the required NyrA daily automations before relying on unattended build follow-up.",
          "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": "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": "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": "26 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "Complete hosted billing backend URL, Customer Portal, and final live-money rehearsal gates before paid checkout.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Handoff Delta Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "Waiting on user",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ]
    },
    {
      "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": 33,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "stripe-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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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",
          "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": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "stripe-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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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",
          "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": 23,
      "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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": "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "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": "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "",
          "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": ""
        }
      ],
      "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": "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "",
          "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": ""
        }
      ]
    },
    {
      "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": 24,
      "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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": "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": "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": "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": "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "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": "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "",
          "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": "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": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Waiting on handoff",
          "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": "Waiting on handoff",
          "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": "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": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Waiting on user",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Waiting on user",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        }
      ],
      "handoffBlockers": [
        {
          "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": "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": "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": "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "",
          "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": "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": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Waiting on handoff",
          "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": "Waiting on handoff",
          "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": "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": "Cloud Platform",
          "title": "Hosted mobile bridge Worker URL saved",
          "status": "Waiting on user",
          "action": "Enter the deployed HTTPS NyrA mobile bridge Worker URL.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.workerUrl",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge token secret configured",
          "status": "Waiting on user",
          "action": "Set the Worker bridge token secret and mark the mobile bridge secret status.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.secretStatus",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Mobile bridge full swarm provider secrets configured",
          "status": "Waiting on user",
          "action": "Set OpenAI, Anthropic, Gemini, and Grok provider secrets for the deployed mobile bridge.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.providerSecretStatus",
          "uploadSlot": "cloud-handoff",
          "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, and route newly cleared work",
      "blockerCount": 39,
      "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, and route newly cleared work",
          "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, and route newly cleared work",
          "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": "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": "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": "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": "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "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": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Optional fallback",
          "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": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authenticate",
          "title": "Wrangler login",
          "status": "Interactive fallback",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login from this repo and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler login",
          "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."
        }
      ],
      "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": "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": "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": "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "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": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Cloud Bootstrap Pack",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authentication",
          "title": "Wrangler login",
          "status": "Optional fallback",
          "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": "Cloudflare Discovery",
          "priority": "P1",
          "owner": "User",
          "lane": "1. Authenticate",
          "title": "Wrangler login",
          "status": "Interactive fallback",
          "action": "If you are sitting at the Windows desktop and prefer browser auth, run npx wrangler login from this repo and approve the Cloudflare account that will host NyrA. Automation still needs CLOUDFLARE_API_TOKEN.",
          "dashboardPage": "pages/cloudflare-discovery.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "npx wrangler login",
          "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."
        }
      ]
    },
    {
      "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": 1,
      "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "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": "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_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret missing",
          "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/billing-rehearsal.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_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret missing",
          "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/billing-rehearsal.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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "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": "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": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Account And Access",
          "title": "Cloud admin email entered",
          "status": "blocked",
          "action": "Enter the Cloudflare admin email that owns Access policy and deployment permissions.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.adminEmail",
          "uploadSlot": "cloud-handoff",
          "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": "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": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Marketing campaign has final publish values",
          "status": "blocked",
          "action": "Final publication still needs domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Cloud Deploy Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Account And Access",
          "title": "Cloud admin email entered",
          "status": "blocked",
          "action": "Enter the Cloudflare admin email that owns Access policy and deployment permissions.",
          "dashboardPage": "pages/cloud.html",
          "dashboardField": "cloudMigration.adminEmail",
          "uploadSlot": "cloud-handoff",
          "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": "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.76 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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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": 33,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "dashboardPage": "pages/visuals.html",
          "dashboardField": "visualProduction.finalScreenshotsApproved",
          "uploadSlot": "product-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Setup",
          "priority": "P1",
          "owner": "Codex",
          "lane": "",
          "title": "Env Nyra License Signing Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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": "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Daily build agents are active",
          "status": "blocked",
          "action": "Repair or create the required NyrA daily automations before relying on unattended build follow-up.",
          "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": "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": "26 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "Complete hosted billing backend URL, Customer Portal, and final live-money rehearsal gates before paid checkout.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "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": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "Waiting on user",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "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": "17 user handoffs and 9 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": "Confirm support inbox roundtrip and complete attorney/accountant review before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Store",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Deployment env has Stripe webhook signing secret beginning with whsec_",
          "status": "Waiting on secret store",
          "action": "Set STRIPE_WEBHOOK_SECRET in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_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 different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Release Ops",
          "title": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "User + Codex gated",
          "action": "User + Codex gated",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Daily build agents are active",
          "status": "blocked",
          "action": "Repair or create the required NyrA daily automations before relying on unattended build follow-up.",
          "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": "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": "26 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "Complete hosted billing backend URL, Customer Portal, and final live-money rehearsal gates before paid checkout.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "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": "Deployability Blocker",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Create and enter the ANDROID_RELEASES R2 bucket name for hosted APK updates.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "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": "Android paid-beta build points at stable bridge URL without bundled shared token",
          "status": "Waiting on user",
          "action": "Deploy the stable bridge, remove the shared bundled alpha token from paid-beta builds, then rebuild Android from verified bridge evidence.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.bundledBridgeUrl",
          "uploadSlot": "cloud-handoff",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Cloud Platform",
          "title": "Android releases R2 bucket saved",
          "status": "Waiting on user",
          "action": "Waiting on user",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.androidReleasesBucketName",
          "uploadSlot": "cloud-handoff",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "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": "17 user handoffs and 9 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": "Confirm support inbox roundtrip and complete attorney/accountant review before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Secret Store",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Deployment env has Stripe webhook signing secret beginning with whsec_",
          "status": "Waiting on secret store",
          "action": "Set STRIPE_WEBHOOK_SECRET in the deployment secret store or a temporary shell. Do not paste secrets into the dashboard.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "deployment secret store: STRIPE_WEBHOOK_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": 30,
      "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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, and route newly cleared work",
          "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.76, appId com.porter.nyra.swarm-little-buddy, product name NyrA Swarm Little Buddy; desktop evidence SHA256 1978e0e49e3776c3d9fb56192f2d9eb4a3be709afbbfc303db8d25698f143edf; Android 0.1.0-alpha.76 versionCode 76 SHA256 ea425cf64d0fb71331f64ff0a8e290f19f0f5fbc51ec3518ef149a20f882d99d; 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, and route newly cleared work",
          "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "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": "Env Nyra Android Download Ticket Secret",
          "status": "",
          "action": "",
          "dashboardPage": "pages/billing-rehearsal.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 Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "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": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": ""
        }
      ],
      "handoffBlockers": [
        {
          "type": "Public Launch Config",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Billing backend URL",
          "status": "Waiting on handoff",
          "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": "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": "Decision Recommendation",
          "priority": "P0",
          "owner": "User",
          "lane": "Business Legal",
          "title": "Business name candidate",
          "status": "Saved different value",
          "action": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "decisions.businessName",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges."
        },
        {
          "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": "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": "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 Workspace",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "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": "Partially filled",
          "action": "Fill 3 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "cloudMigration.accountReady",
          "uploadSlot": "cloud-handoff",
          "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 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "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": ""
        }
      ]
    },
    {
      "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": 24,
      "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, and route newly cleared work",
          "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, and route newly cleared work",
          "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": "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 alpha75 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 foreground panel and 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.75; shipping app is 0.1.0-alpha.76.",
          "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 alpha75 Hide Bot removes floating buddy",
          "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.75; shipping app is 0.1.0-alpha.76.",
          "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": "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": "",
          "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": "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "stripe-screenshots",
          "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": "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": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Waiting on handoff",
          "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": "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "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",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "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",
          "lane": "4. Customer Portal And Webhooks",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Create the Stripe webhook endpoint after the billing Worker/backend URL exists, select required subscription events, and save the endpoint URL.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "4. Customer Portal And Webhooks",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Configure Customer Portal cancellation, invoice history, and payment method updates, then mark the dashboard yes after a test portal roundtrip.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "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",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ],
      "handoffBlockers": [
        {
          "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": "",
          "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": "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": "Payments Licensing",
          "title": "Pricing, Stripe, Payments",
          "status": "Partially filled",
          "action": "Fill 2 required dashboard fields, then save, scan, and route.",
          "dashboardPage": "pages/collaboration.html",
          "dashboardField": "billingRehearsal.backendBaseUrl",
          "uploadSlot": "stripe-screenshots",
          "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": "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": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Waiting on handoff",
          "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": "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "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",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "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",
          "lane": "4. Customer Portal And Webhooks",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Create the Stripe webhook endpoint after the billing Worker/backend URL exists, select required subscription events, and save the endpoint URL.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "4. Customer Portal And Webhooks",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Configure Customer Portal cancellation, invoice history, and payment method updates, then mark the dashboard yes after a test portal roundtrip.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Stripe webhook HTTPS endpoint saved",
          "status": "Waiting on user",
          "action": "Enter the Stripe webhook endpoint URL after it is created.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.webhookEndpointUrl",
          "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",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ]
    },
    {
      "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": 45,
      "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 G:/My Drive/AI Stuff/desktop-buddy/release/0.1.0-alpha.76/win-unpacked/NyrA Swarm Little Buddy.exe, refreshes release evidence, and syncs command-center release metadata for 0.1.0-alpha.76",
          "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.76, download hash matches manifest, support log readback passed (2026-06-16T23-18-02-868Z-55b47d13-76bb-461a-9782-2d9fdf9dd94f).",
          "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": "Temporary hosted alpha proves internal testing only; it does not clear paid-beta Worker, R2, auth, or permanent support blockers."
        },
        {
          "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": "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": "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": "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Daily build agents are active",
          "status": "blocked",
          "action": "Repair or create the required NyrA daily automations before relying on unattended build follow-up.",
          "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 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": "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": "26 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "Complete hosted billing backend URL, Customer Portal, and final live-money rehearsal gates before paid checkout.",
          "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 Delta Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Waiting on handoff",
          "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": "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Handoff Delta Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "mobile-bridge-phone-self-test",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "17 user handoffs and 9 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": "Confirm support inbox roundtrip and complete attorney/accountant review before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create the support inbox, send a test ticket, reply, and mark confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "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",
          "lane": "Support Ops",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create the support inbox, send a test ticket, reply, and mark confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret missing",
          "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/billing-rehearsal.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": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "4. Customer Portal And Webhooks",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Configure Customer Portal cancellation, invoice history, and payment method updates, then mark the dashboard yes after a test portal roundtrip.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create or confirm the support inbox, send a test ticket, reply, and mark the roundtrip confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Waiting on handoff",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "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",
          "lane": "Support Ops",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create the support inbox, send a test ticket, reply, and mark confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ],
      "handoffBlockers": [
        {
          "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": "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": "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "User + Codex gated",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Daily build agents are active",
          "status": "blocked",
          "action": "Repair or create the required NyrA daily automations before relying on unattended build follow-up.",
          "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 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": "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": "26 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "",
          "title": "Cloud command center is deploy-ready",
          "status": "blocked",
          "action": "Cloud deploy status is Blocked On Cloud Handoffs; finish Cloudflare account, access, domain, D1, and sync handoffs.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Android companion points at a stable hosted bridge without a bundled shared token",
          "status": "blocked",
          "action": "Android companion bridge is not paid-beta stable. Dashboard bundledBridgeUrl=blank; APK defaultUrl=https://olympics-answers-defence-necklace.trycloudflare.com; tokenBundled=yes. Deploy the Worker, move customer auth off the bundled alpha token, save the stable URL, then rebuild Android.",
          "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 domain, price, hosted AI cap, live checkout URL, support inbox, policy URLs, final screenshots, and recorded demo.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "",
          "title": "Billing live rehearsal inputs are ready",
          "status": "blocked",
          "action": "Complete hosted billing backend URL, Customer Portal, and final live-money rehearsal gates before paid checkout.",
          "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 Delta Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User + Codex",
          "lane": "5. Billing Support",
          "title": "Customer Portal cancellation and invoice support configured",
          "status": "Waiting on handoff",
          "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": "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": "QA",
          "title": "Physical phone bridge self-test passed",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "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": "Handoff Delta Pack",
          "priority": "P1",
          "owner": "User + Codex",
          "lane": "QA",
          "title": "mobile-bridge-phone-self-test",
          "status": "Waiting on user",
          "action": "Run a phone bridge self-test against the deployed Worker and record the result.",
          "dashboardPage": "pages/cloud-mobile-bridge.html",
          "dashboardField": "mobileBridge.lastPhoneSelfTest",
          "uploadSlot": "phone-evidence",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Release Candidate",
          "priority": "P0",
          "owner": "User",
          "lane": "",
          "title": "Dashboard handoffs are cleared",
          "status": "blocked",
          "action": "17 user handoffs and 9 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": "Confirm support inbox roundtrip and complete attorney/accountant review before paid beta.",
          "dashboardPage": "",
          "dashboardField": "",
          "uploadSlot": "",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "User Handoff",
          "priority": "P0",
          "owner": "User",
          "lane": "Support Ops",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create the support inbox, send a test ticket, reply, and mark confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Deployability Blocker",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "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",
          "lane": "Support Ops",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create the support inbox, send a test ticket, reply, and mark confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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 missing",
          "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/billing-rehearsal.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_ANDROID_DOWNLOAD_TICKET_SECRET",
          "status": "Secret missing",
          "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/billing-rehearsal.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": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "4. Customer Portal And Webhooks",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Configure Customer Portal cancellation, invoice history, and payment method updates, then mark the dashboard yes after a test portal roundtrip.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Payment Launch Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "6. Support And Domain",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create or confirm the support inbox, send a test ticket, reply, and mark the roundtrip confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "verificationCommand": "",
          "noGoRule": ""
        },
        {
          "type": "Support Ops Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "1. Public Support Identity",
          "title": "Support inbox ticket roundtrip confirmed",
          "status": "Waiting on handoff",
          "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": "Collaboration Handoff Card",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "uploadSlot": "stripe-screenshots",
          "verificationCommand": "npm run intake:scan && npm run handoff:delta",
          "noGoRule": ""
        },
        {
          "type": "Handoff Action Pack",
          "priority": "P0",
          "owner": "User",
          "lane": "Payments Licensing",
          "title": "Customer Portal configured for cancellation, invoices, and payment methods",
          "status": "Waiting on user",
          "action": "Mark yes after Customer Portal cancellation, invoices, and payment methods are tested.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.customerPortalConfigured",
          "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",
          "lane": "Support Ops",
          "title": "Support inbox roundtrip confirmed",
          "status": "Waiting on user",
          "action": "Create the support inbox, send a test ticket, reply, and mark confirmed.",
          "dashboardPage": "pages/billing-rehearsal.html",
          "dashboardField": "billingRehearsal.supportInboxConfirmed",
          "uploadSlot": "domain-email",
          "verificationCommand": "",
          "noGoRule": "Do not mark this cleared until the dashboard field or upload evidence proves it."
        }
      ]
    }
  ],
  "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"
  }
}
