Skip to content

fix: sellable-product audit + Wave A/B contract repair - #13

Merged
ShadowWalkerNC merged 2 commits into
mainfrom
cursor/fix-stale-planning-docs-8bc0
Aug 9, 2026
Merged

fix: sellable-product audit + Wave A/B contract repair#13
ShadowWalkerNC merged 2 commits into
mainfrom
cursor/fix-stale-planning-docs-8bc0

Conversation

@ShadowWalkerNC

@ShadowWalkerNC ShadowWalkerNC commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

Full multi-role audit of Post-Pilot as a sellable food-business SaaS, then systematic Wave A/B execution (backend contracts + conversion honesty). Strategy and open checklist live in docs/PRODUCT_AUDIT.md, PLANNING.md, and TODO.md.

Verdict: Product shape is right; interface contracts were broken. Do not rewrite — repair and sell honestly.

Audit highlights

Keep: blueprint split, Fernet tokens, OpenAI adapt flow, UniversalPublisher, Stripe surface, Free/$19/$49/$99, specials→agent loop, magic-link direction.

Stop-ships found & fixed (Wave A):

  • User.is_active crashing Flask-Login
  • Stripe webhooks calling wrong update_subscription kwargs
  • log_post / missing save_business_profile / post_history mismatch
  • Cron POST-only vs Vercel GET
  • Missing get_db on app (rewired to modules.database)
  • Ephemeral Fernet key in prod (now hard-fail)
  • /register?plan= privilege escalation
  • Post limits unwired; /api/setup_tokens token injection
  • .venv tracked; railway.toml leftover

Conversion honesty (Wave B):

  • Magic-link login/register (no password fields)
  • Standalone magic-link sent page
  • Landing pricing aligned to Free/$19/$49/$99
  • Legal footer URLs fixed
  • Schedule page no longer extends a broken layout

Still open (Waves C–E)

  • Schema Alembic ↔ live plan column alignment migration
  • CI conftest / app.init_db boot fix
  • Phone-first shell, photo upload, CSRF narrowing
  • Cron plan gates for automation agent
  • Morning prompt / location one-tap / inbox (after soft launch)

Test plan

  • Smoke: User model, cron GET routes, get_db export
  • Manual: magic link login UI
  • Manual: Stripe webhook activates Starter
  • Manual: Vercel cron GET /api/cron/publish with Bearer secret
  • Manual: landing prices match /billing
Open in Web Open in Cursor 

Replace stale Phase-4/Render/Claude/Growth planning with a single
source of truth aligned to plan_guard, billing UI, and vercel.json.
Wire embed blueprint registration and drop orphan Growth price maps.

Co-authored-by: Nathaniel Cowperthwaite <ShadowWalkerNC@users.noreply.github.com>
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

Deployment failed for project post-pilot with the following error:

Hobby accounts are limited to daily cron jobs. This cron expression (0 * * * *) would run more than once per day. Upgrade to the Pro plan to unlock all Cron Jobs features on Vercel.

Learn More: https://vercel.link/3Fpeeb1

Full audit in docs/PRODUCT_AUDIT.md. Repair stop-ship backend contracts
(User sessions, Stripe webhooks, cron GET, get_db, Fernet prod guard,
plan escalation, post limits) and align auth/pricing UX with the live
product. Untrack .venv and remove railway.toml.

Co-authored-by: Nathaniel Cowperthwaite <ShadowWalkerNC@users.noreply.github.com>
@cursor cursor Bot changed the title docs: rebase stale plan to live Vercel/OpenAI stack fix: sellable-product audit + Wave A/B contract repair Aug 8, 2026
@ShadowWalkerNC
ShadowWalkerNC marked this pull request as ready for review August 9, 2026 23:12
@ShadowWalkerNC
ShadowWalkerNC merged commit bb56b17 into main Aug 9, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants