Decision Defaults
Decision Recommendations
Practical defaults for price, cap, legal/entity path, support, release trust, cloud, app version, and visuals. These help Codex keep building without pretending user-owned handoffs are complete.
Controls
Open recommendations CSVRecommendations do not clear blockers. Use a value only when you approve it, save the dashboard state, attach evidence when needed, then scan handoffs.
P0 Recommended Defaults
| Priority | Lane | Owner | Decision | Current | Recommended | Page | Field | Fill | User Action |
|---|---|---|---|---|---|---|---|---|---|
| P0 | Business Legal | User | Business name candidate | Saved different value | NyrA Labs LLC | pages/collaboration.html | decisions.businessName |
Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available. | |
| P0 | Business Legal | User | Entity path | Saved matches recommendation | SC LLC | pages/collaboration.html | decisions.entityPath |
Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note. | |
| P0 | Business Legal | User | Tax collection/accounting path | Saved matches recommendation | Stripe Tax now | pages/collaboration.html | decisions.taxDecision |
Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging. | |
| P0 | Payments Licensing | User | Monthly subscription price | Saved matches recommendation | $25.00 | pages/pricing.html | decisions.monthlyPriceCents |
Save the approved monthly price in cents before creating the Stripe Price. | |
| P0 | Payments Licensing | User | Hosted AI cap | Saved matches recommendation | 300 hosted AI messages/month until measured usage proves more headroom | pages/pricing.html | decisions.hostedAiCap |
Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published. | |
| P0 | Support Ops | User | Support inbox | Saved matches recommendation | nyrasupport@gmail.com | pages/support.html | decisions.supportEmail |
Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes. | |
| P0 | Business Legal | User | Refund and cancellation policy | Suggested - not saved | All purchases final, with legal/billing-error exceptions | pages/refund-cancellation.html | policy.review.refundCancellation |
Have the refund/cancellation language reviewed before paid launch and upload legal review evidence. | |
| P0 | Payments Licensing | User + Codex | Billing entitlement storage host | Saved matches recommendation | Cloudflare Worker + D1 | pages/billing-rehearsal.html | billingDeployment.storageHostDecision |
Approve Cloudflare billing storage and paste the D1 database ID after creation. | |
| P0 | Cloud Platform | User + Codex | Cloud command-center stack | Saved different value | Cloudflare Pages + Workers + D1 + R2 | pages/cloud.html | cloudMigration.target |
Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files. | |
| P0 | Cloud Platform | User + Codex | Cloud access model | Saved matches recommendation | Cloudflare Access + private bearer token | pages/cloud.html | cloudMigration.accessDecision |
Choose Cloudflare Access plus private token, then save the access model and admin email. | |
| P0 | Release Ops | User | Release channel | Saved matches recommendation | Direct download beta + Microsoft Store prep | pages/collaboration.html | decisions.releaseChannel |
Choose direct download beta, Microsoft Store, or both before release rehearsal. | |
| P0 | Release Ops | User | Code-signing path | Saved matches recommendation | Microsoft Trusted Signing first | pages/collaboration.html | decisions.codeSigningDecision |
Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta. |
Codex Can Keep Building
| Priority | Lane | Owner | Decision | Current | Recommended | Page | Field | Fill | User Action |
|---|---|---|---|---|---|---|---|---|---|
| P0 | Business Legal | User | Business name candidate | Saved different value | NyrA Labs LLC | pages/collaboration.html | decisions.businessName |
Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available. | |
| P0 | Business Legal | User | Entity path | Saved matches recommendation | SC LLC | pages/collaboration.html | decisions.entityPath |
Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note. | |
| P0 | Business Legal | User | Tax collection/accounting path | Saved matches recommendation | Stripe Tax now | pages/collaboration.html | decisions.taxDecision |
Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging. | |
| P0 | Payments Licensing | User | Monthly subscription price | Saved matches recommendation | $25.00 | pages/pricing.html | decisions.monthlyPriceCents |
Save the approved monthly price in cents before creating the Stripe Price. | |
| P0 | Payments Licensing | User | Hosted AI cap | Saved matches recommendation | 300 hosted AI messages/month until measured usage proves more headroom | pages/pricing.html | decisions.hostedAiCap |
Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published. | |
| P0 | Support Ops | User | Support inbox | Saved matches recommendation | nyrasupport@gmail.com | pages/support.html | decisions.supportEmail |
Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes. | |
| P0 | Business Legal | User | Refund and cancellation policy | Suggested - not saved | All purchases final, with legal/billing-error exceptions | pages/refund-cancellation.html | policy.review.refundCancellation |
Have the refund/cancellation language reviewed before paid launch and upload legal review evidence. | |
| P0 | Payments Licensing | User + Codex | Billing entitlement storage host | Saved matches recommendation | Cloudflare Worker + D1 | pages/billing-rehearsal.html | billingDeployment.storageHostDecision |
Approve Cloudflare billing storage and paste the D1 database ID after creation. | |
| P0 | Cloud Platform | User + Codex | Cloud command-center stack | Saved different value | Cloudflare Pages + Workers + D1 + R2 | pages/cloud.html | cloudMigration.target |
Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files. | |
| P0 | Cloud Platform | User + Codex | Cloud access model | Saved matches recommendation | Cloudflare Access + private bearer token | pages/cloud.html | cloudMigration.accessDecision |
Choose Cloudflare Access plus private token, then save the access model and admin email. | |
| P0 | Release Ops | User | Release channel | Saved matches recommendation | Direct download beta + Microsoft Store prep | pages/collaboration.html | decisions.releaseChannel |
Choose direct download beta, Microsoft Store, or both before release rehearsal. | |
| P0 | Release Ops | User | Code-signing path | Saved matches recommendation | Microsoft Trusted Signing first | pages/collaboration.html | decisions.codeSigningDecision |
Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta. | |
| P1 | Release/Product | Codex | App version path | Saved different value | Desktop paid beta first; mobile companion after desktop money path is proven | pages/app-version.html | appVersion.mobileCompanionBoundary |
Use the App Version page to record any required mobile companion boundaries or app-store goals. | |
| P1 | Marketing Visuals | Codex | Shipping visuals | Suggested - not saved | No until final app, billing, support, and consent flows are frozen | pages/visuals.html | visualProduction.finalScreenshotsApproved |
Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship. |
No-Go Rules
- Business name candidate: A candidate name does not clear the legal identity blocker or authorize live Stripe charges.
- Entity path: Paid public launch remains blocked until the entity/contact path is chosen and reviewed.
- Tax collection/accounting path: This is not tax advice and does not replace accountant/legal approval.
- Monthly subscription price: Do not create a live Stripe Price until the approved price is saved.
- Hosted AI cap: Do not publish unlimited hosted-AI claims or live checkout copy without this cap.
- Support inbox: Support email text alone does not clear the support roundtrip blocker.
- Refund and cancellation policy: A drafted policy is not legal approval.
- Billing entitlement storage host: Do not enable hosted checkout until D1 and billing Worker deployment are verified.
- Cloud command-center stack: Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass.
- Cloud access model: Do not publish a dashboard with business records without private access protection.
- Release channel: Unsigned direct download remains internal-alpha only until trust/signing evidence clears.
- Code-signing path: Do not distribute a paid public installer without a signed or store-trusted path.
- App version path: Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority.
- Shipping visuals: Do not publish launch ads or checkout visuals until final screenshots are approved.
A recommendation does not clear a blocker. The blocker clears only when the dashboard value, uploaded evidence, or external secret-store proof passes the intake and deployability checks.
Recommendations may include public URLs, prices, policy wording, and dashboard field names only. Never place Stripe keys, webhook secrets, API tokens, certificate private keys, bank details, SSN/EIN values, or customer data in this pack.
Safe Commands
npm run decision:recommendationsnpm run test:decision-recommendationsnpm run pricing:modelnpm run public:launch-confignpm run payment:launch-packnpm run daily:brief
All Recommendations
| Priority | Lane | Owner | Decision | Current | Recommended | Page | Field | Fill | User Action |
|---|---|---|---|---|---|---|---|---|---|
| P0 | Business Legal | User | Business name candidate | Saved different value | NyrA Labs LLC | pages/collaboration.html | decisions.businessName |
Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available. | |
| P0 | Business Legal | User | Entity path | Saved matches recommendation | SC LLC | pages/collaboration.html | decisions.entityPath |
Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note. | |
| P0 | Business Legal | User | Tax collection/accounting path | Saved matches recommendation | Stripe Tax now | pages/collaboration.html | decisions.taxDecision |
Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging. | |
| P0 | Payments Licensing | User | Monthly subscription price | Saved matches recommendation | $25.00 | pages/pricing.html | decisions.monthlyPriceCents |
Save the approved monthly price in cents before creating the Stripe Price. | |
| P0 | Payments Licensing | User | Hosted AI cap | Saved matches recommendation | 300 hosted AI messages/month until measured usage proves more headroom | pages/pricing.html | decisions.hostedAiCap |
Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published. | |
| P0 | Support Ops | User | Support inbox | Saved matches recommendation | nyrasupport@gmail.com | pages/support.html | decisions.supportEmail |
Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes. | |
| P0 | Business Legal | User | Refund and cancellation policy | Suggested - not saved | All purchases final, with legal/billing-error exceptions | pages/refund-cancellation.html | policy.review.refundCancellation |
Have the refund/cancellation language reviewed before paid launch and upload legal review evidence. | |
| P0 | Payments Licensing | User + Codex | Billing entitlement storage host | Saved matches recommendation | Cloudflare Worker + D1 | pages/billing-rehearsal.html | billingDeployment.storageHostDecision |
Approve Cloudflare billing storage and paste the D1 database ID after creation. | |
| P0 | Cloud Platform | User + Codex | Cloud command-center stack | Saved different value | Cloudflare Pages + Workers + D1 + R2 | pages/cloud.html | cloudMigration.target |
Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files. | |
| P0 | Cloud Platform | User + Codex | Cloud access model | Saved matches recommendation | Cloudflare Access + private bearer token | pages/cloud.html | cloudMigration.accessDecision |
Choose Cloudflare Access plus private token, then save the access model and admin email. | |
| P0 | Release Ops | User | Release channel | Saved matches recommendation | Direct download beta + Microsoft Store prep | pages/collaboration.html | decisions.releaseChannel |
Choose direct download beta, Microsoft Store, or both before release rehearsal. | |
| P0 | Release Ops | User | Code-signing path | Saved matches recommendation | Microsoft Trusted Signing first | pages/collaboration.html | decisions.codeSigningDecision |
Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta. | |
| P1 | Release/Product | Codex | App version path | Saved different value | Desktop paid beta first; mobile companion after desktop money path is proven | pages/app-version.html | appVersion.mobileCompanionBoundary |
Use the App Version page to record any required mobile companion boundaries or app-store goals. | |
| P1 | Marketing Visuals | Codex | Shipping visuals | Suggested - not saved | No until final app, billing, support, and consent flows are frozen | pages/visuals.html | visualProduction.finalScreenshotsApproved |
Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship. |
Recommendation JSON
{
"schemaVersion": 1,
"generatedAt": "2026-06-17T22:59:05.008Z",
"status": "LAUNCH_DECISION_RECOMMENDATIONS_READY",
"label": "Launch Decision Recommendations Ready",
"purpose": "Suggest practical defaults and Codex-continuation paths without clearing real-world handoffs.",
"noSecretRule": "Recommendations may include public URLs, prices, policy wording, and dashboard field names only. Never place Stripe keys, webhook secrets, API tokens, certificate private keys, bank details, SSN/EIN values, or customer data in this pack.",
"handoffRule": "A recommendation does not clear a blocker. The blocker clears only when the dashboard value, uploaded evidence, or external secret-store proof passes the intake and deployability checks.",
"pricingSource": {
"generatedAt": "2026-06-17T22:58:44.712Z",
"modeledMonthlyPriceCents": 2500,
"recommendedHostedAiCap": "300 hosted AI messages/month until measured usage proves more headroom",
"sourceWarning": "Verify provider, Stripe, legal, and tax assumptions before live launch."
},
"recommendations": [
{
"id": "business-name-candidate",
"lane": "Business Legal",
"owner": "User",
"priority": "P0",
"title": "Business name candidate",
"dashboardPage": "pages/collaboration.html",
"dashboardField": "decisions.businessName",
"recommendedValue": "NyrA Labs LLC",
"acceptedValues": [
"NyrA Labs LLC"
],
"reason": "Short, product-aligned, readable on Stripe receipts and policy pages. Treat this as a filing/search candidate, not a confirmed legal name.",
"userAction": "Run a South Carolina name availability check, pick the final legal/business name, save it in the dashboard, and upload filing evidence when available.",
"codexCanContinue": "Keep product copy using NyrA Swarm Little Buddy Pro and leave live Stripe identity blocked until the saved legal name is real.",
"noGoRule": "A candidate name does not clear the legal identity blocker or authorize live Stripe charges.",
"currentValue": "Porter Labs LLC",
"currentValueStatus": "Saved different value",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "entity-path-sc-llc",
"lane": "Business Legal",
"owner": "User",
"priority": "P0",
"title": "Entity path",
"dashboardPage": "pages/collaboration.html",
"dashboardField": "decisions.entityPath",
"recommendedValue": "SC LLC",
"acceptedValues": [
"SC LLC"
],
"reason": "A separate LLC is the cleanest paid-beta path for business identity, payout setup, policies, and customer trust.",
"userAction": "Choose SC LLC or another documented entity path, then save the decision and upload the filing or accountant/legal note.",
"codexCanContinue": "Keep legal docs and Stripe setup packets ready without marking entity status complete.",
"noGoRule": "Paid public launch remains blocked until the entity/contact path is chosen and reviewed.",
"currentValue": "SC LLC",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "tax-path",
"lane": "Business Legal",
"owner": "User",
"priority": "P0",
"title": "Tax collection/accounting path",
"dashboardPage": "pages/collaboration.html",
"dashboardField": "decisions.taxDecision",
"recommendedValue": "Stripe Tax now",
"acceptedValues": [
"Stripe Tax now"
],
"reason": "For speed, Stripe Tax can keep checkout implementation moving while accountant review remains a paid-launch blocker.",
"userAction": "Choose Stripe Tax now, accountant first, or SC-only beta in the dashboard. Get accountant/legal review before live public charging.",
"codexCanContinue": "Keep Stripe Tax and billing docs wired as the default path, but keep live mode blocked until review is recorded.",
"noGoRule": "This is not tax advice and does not replace accountant/legal approval.",
"currentValue": "Stripe Tax now + accountant review before live public charging",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "monthly-price",
"lane": "Payments Licensing",
"owner": "User",
"priority": "P0",
"title": "Monthly subscription price",
"dashboardPage": "pages/pricing.html",
"dashboardField": "decisions.monthlyPriceCents",
"recommendedValue": "2500",
"acceptedValues": [
"2500"
],
"displayValue": "$25.00",
"reason": "The current pricing model targets roughly 70% gross margin with payment, support, infrastructure, and provider reserves.",
"userAction": "Save the approved monthly price in cents before creating the Stripe Price.",
"codexCanContinue": "Use 2500 cents in dry-run Stripe commands and launch copy drafts until you approve or override the price.",
"noGoRule": "Do not create a live Stripe Price until the approved price is saved.",
"currentValue": "2500",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "hosted-ai-cap",
"lane": "Payments Licensing",
"owner": "User",
"priority": "P0",
"title": "Hosted AI cap",
"dashboardPage": "pages/pricing.html",
"dashboardField": "decisions.hostedAiCap",
"recommendedValue": "300 hosted AI messages/month until measured usage proves more headroom",
"acceptedValues": [
"300 hosted AI messages/month",
"300"
],
"reason": "A clear first paid-beta cap limits hosted-model exposure until actual usage, abuse, support, voice, and realtime costs are measured.",
"userAction": "Save the customer-facing hosted AI cap and over-cap behavior before checkout copy is published.",
"codexCanContinue": "Keep marketing and policy copy aligned to a capped hosted-AI beta with BYOK planned later.",
"noGoRule": "Do not publish unlimited hosted-AI claims or live checkout copy without this cap.",
"currentValue": "300 hosted AI messages/month until measured usage proves more headroom",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "support-email-roundtrip",
"lane": "Support Ops",
"owner": "User",
"priority": "P0",
"title": "Support inbox",
"dashboardPage": "pages/support.html",
"dashboardField": "decisions.supportEmail",
"recommendedValue": "nyrasupport@gmail.com",
"acceptedValues": [
"nyrasupport@gmail.com"
],
"reason": "The dashboard already uses this support email in policy, launch, and Stripe-facing packs, but the inbox still needs a ticket roundtrip.",
"userAction": "Confirm you own the inbox, send a test ticket, reply, then mark billingRehearsal.supportInboxConfirmed as Yes.",
"codexCanContinue": "Keep support macros, diagnostics, and policy contact fields pointed at the saved support address.",
"noGoRule": "Support email text alone does not clear the support roundtrip blocker.",
"currentValue": "nyrasupport@gmail.com",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "refund-policy",
"lane": "Business Legal",
"owner": "User",
"priority": "P0",
"title": "Refund and cancellation policy",
"dashboardPage": "pages/refund-cancellation.html",
"dashboardField": "policy.review.refundCancellation",
"recommendedValue": "All purchases final, with legal/billing-error exceptions",
"acceptedValues": [
"All purchases final"
],
"reason": "This matches the current public launch config while leaving legal/billing-error exceptions explicit.",
"userAction": "Have the refund/cancellation language reviewed before paid launch and upload legal review evidence.",
"codexCanContinue": "Keep policy drafts and Stripe support text aligned to this rule until legal review changes it.",
"noGoRule": "A drafted policy is not legal approval.",
"currentValue": "",
"currentValueStatus": "Suggested - not saved",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "billing-storage-cloudflare-d1",
"lane": "Payments Licensing",
"owner": "User + Codex",
"priority": "P0",
"title": "Billing entitlement storage host",
"dashboardPage": "pages/billing-rehearsal.html",
"dashboardField": "billingDeployment.storageHostDecision",
"recommendedValue": "Cloudflare Worker + D1",
"acceptedValues": [
"Cloudflare Worker + D1"
],
"reason": "This keeps billing, entitlement, license status, and the command-center cloud path in one serverless stack with D1 migrations already scaffolded.",
"userAction": "Approve Cloudflare billing storage and paste the D1 database ID after creation.",
"codexCanContinue": "Continue building and testing the billing Worker/D1 path locally without storing customer state on this computer.",
"noGoRule": "Do not enable hosted checkout until D1 and billing Worker deployment are verified.",
"currentValue": "Cloudflare Worker + D1",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "cloud-provider-stack",
"lane": "Cloud Platform",
"owner": "User + Codex",
"priority": "P0",
"title": "Cloud command-center stack",
"dashboardPage": "pages/cloud.html",
"dashboardField": "cloudMigration.target",
"recommendedValue": "Cloudflare Pages + Workers + D1 + R2",
"acceptedValues": [
"Cloudflare Pages + Workers + D1 + R2"
],
"reason": "The repo already has the command-center Pages artifact, Worker API, D1 schema, R2 upload route, and sync scripts.",
"userAction": "Approve the Cloudflare account/domain/admin/access handoff so the dashboard can move off local files.",
"codexCanContinue": "Keep Pages/Worker/D1/R2 deploy packs and cloud sync tests current until credentials and IDs are supplied.",
"noGoRule": "Local dashboard files remain the source of truth until a protected cloud deployment and sync roundtrip pass.",
"currentValue": "Cloudflare Pages for dashboard, Cloudflare Worker API, D1 structured state, R2 private uploads, cron intake markers, Cloudflare Access for browser access",
"currentValueStatus": "Saved different value",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "cloud-access-model",
"lane": "Cloud Platform",
"owner": "User + Codex",
"priority": "P0",
"title": "Cloud access model",
"dashboardPage": "pages/cloud.html",
"dashboardField": "cloudMigration.accessDecision",
"recommendedValue": "Cloudflare Access + private bearer token",
"acceptedValues": [
"Cloudflare Access + private bearer token",
"Both"
],
"reason": "Cloudflare Access protects the dashboard for humans, while a private bearer token gives CLI/daily-agent sync a narrow authenticated route.",
"userAction": "Choose Cloudflare Access plus private token, then save the access model and admin email.",
"codexCanContinue": "Keep no-secret browser localStorage token handling and Worker auth checks in place.",
"noGoRule": "Do not publish a dashboard with business records without private access protection.",
"currentValue": "Cloudflare Access + private bearer token",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "release-channel",
"lane": "Release Ops",
"owner": "User",
"priority": "P0",
"title": "Release channel",
"dashboardPage": "pages/collaboration.html",
"dashboardField": "decisions.releaseChannel",
"recommendedValue": "Direct download beta + Microsoft Store prep",
"acceptedValues": [
"Direct download beta",
"Direct download beta + Microsoft Store prep"
],
"reason": "Direct download is fastest for controlled beta testing while Microsoft Store prep keeps a trusted distribution path open.",
"userAction": "Choose direct download beta, Microsoft Store, or both before release rehearsal.",
"codexCanContinue": "Keep direct-download release notes, rollback, installer rehearsal, and signed-installer evidence ready.",
"noGoRule": "Unsigned direct download remains internal-alpha only until trust/signing evidence clears.",
"currentValue": "Direct download beta + Microsoft Store prep",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "code-signing-path",
"lane": "Release Ops",
"owner": "User",
"priority": "P0",
"title": "Code-signing path",
"dashboardPage": "pages/collaboration.html",
"dashboardField": "decisions.codeSigningDecision",
"recommendedValue": "Microsoft Trusted Signing first",
"acceptedValues": [
"Microsoft Trusted Signing first",
"Microsoft Trusted Signing"
],
"reason": "Microsoft Trusted Signing is a lower-friction signing path for Windows apps; EV signing should not be bought only to bypass SmartScreen.",
"userAction": "Choose Microsoft Trusted Signing, Microsoft Store first, OV certificate, or hold. Upload signing/store evidence before paid beta.",
"codexCanContinue": "Keep release trust pack and installer rehearsal wired to Trusted Signing, signed-installer, or store-trusted evidence.",
"noGoRule": "Do not distribute a paid public installer without a signed or store-trusted path.",
"currentValue": "Microsoft Trusted Signing first",
"currentValueStatus": "Saved matches recommendation",
"recommendationType": "User decision recommended",
"doesNotClearHandoff": true
},
{
"id": "desktop-before-mobile",
"lane": "Release/Product",
"owner": "Codex",
"priority": "P1",
"title": "App version path",
"dashboardPage": "pages/app-version.html",
"dashboardField": "appVersion.mobileCompanionBoundary",
"recommendedValue": "Desktop paid beta first; mobile companion after desktop money path is proven",
"acceptedValues": [
"Desktop paid beta first"
],
"reason": "The shortest money path is the Windows desktop app with billing, support, consent, and release gates. Mobile mapping should continue without outranking paid-beta blockers.",
"userAction": "Use the App Version page to record any required mobile companion boundaries or app-store goals.",
"codexCanContinue": "Continue mapping Capacitor/mobile companion scope while keeping desktop beta as the launch target.",
"noGoRule": "Do not delay desktop paid beta for mobile unless the user explicitly changes launch priority.",
"currentValue": "Map account, cloud, policy, support, and app-store requirements now; do not build or promise a mobile companion until desktop paid beta gates are closed.",
"currentValueStatus": "Saved different value",
"recommendationType": "Codex can keep moving",
"doesNotClearHandoff": true
},
{
"id": "visuals-match-shipping-app",
"lane": "Marketing Visuals",
"owner": "Codex",
"priority": "P1",
"title": "Shipping visuals",
"dashboardPage": "pages/visuals.html",
"dashboardField": "visualProduction.finalScreenshotsApproved",
"recommendedValue": "No until final app, billing, support, and consent flows are frozen",
"acceptedValues": [
"No"
],
"reason": "Visual assets must show the actual shippable app, not obsolete prototypes or placeholder checkout flows.",
"userAction": "Approve final screenshots only after the app UI, support, billing, and consent flows match what will ship.",
"codexCanContinue": "Keep screenshot checklist, diagrams, marketing kit, and demo shot list refreshed from the current product state.",
"noGoRule": "Do not publish launch ads or checkout visuals until final screenshots are approved.",
"currentValue": "No",
"currentValueStatus": "Suggested - not saved",
"recommendationType": "Codex can keep moving",
"doesNotClearHandoff": true
}
],
"safeCommands": [
"npm run decision:recommendations",
"npm run test:decision-recommendations",
"npm run pricing:model",
"npm run public:launch-config",
"npm run payment:launch-pack",
"npm run daily:brief"
],
"counts": {
"totalRecommendations": 14,
"suggestedNotSaved": 2,
"savedMatches": 9,
"savedDifferent": 3,
"userDecisionTargets": 12,
"codexCanContinueItems": 14
},
"outputs": {
"json": "docs/launch_command_center/launch-decision-recommendations.json",
"csv": "docs/launch_command_center/launch-decision-recommendations.csv",
"report": "docs/launch_command_center/LAUNCH_DECISION_RECOMMENDATIONS.md",
"dashboard": "docs/launch_command_center/pages/decision-recommendations.html"
}
}