Certification Gates
Launch readiness means a feature is proven, not merely built.Gate 0: Local Code Health
Required before any candidate build:- Typecheck: pass
- Unit + Convex tests: pass; PR #808 starts migrating excluded coverage into the active
src/**gate - Lint: pass with warnings
- Revyl YAML validation: pass
- React Doctor: 0 errors / 720 warnings
Gate 1: Access + Tier Certification
Required before friends/family:- Guest cannot reach protected user-data routes by direct link.
- Free signed-in users can reach free signed-in features.
- Pro-only features show a paywall or locked state.
- Disabled production features are inaccessible by direct route.
- Lapsed subscribers retain data but see upgrade/restore flows.
useFeatureAccessunit coverage for guest, free, Pro, lapsed, disabled, debug override.- Revyl/Argent direct-route checks for representative gated screens.
Gate 2: P0 Revyl Smoke
Required before friends/family:- App launch
- Bottom tabs
- Public browse/search
- High Family / discovery
- Strain detail tabs
- Deep link to strain detail
- Clerk login
- Clean-new-user empty stash
- Profile settings/sign-out
- Music / now playing
- Subscription billing
- Edit profile
- Consumption preferences
- Analytics/stats
- Dispensary list/add
- Daily stories
- Notebook video
- Professor High gated state
- Run the expanded route-smoke set against the current candidate build.
- Convert any route-smoke failures into product bug, test definition issue, fixture/data issue, mobile app/API dependency, or Revyl artifact/flake.
- Add direct access/tier route checks after PR #806 lands.
Gate 3: P1 Critical Journeys
Required before paid beta:- New user to first stash entry
- Add strain from search/detail to stash
- Discovery to favorite/collection
- Manual order upload and review
- Image receipt parsing
- Notebook generation and detail
- Gmail recent sync with controlled test account
- Label scanner with fixture/permission proof
- Subscription purchase, restore, lapsed state
Gate 4: Manual Device QA
Required before TestFlight expansion:- iPhone small screen and large screen screenshots
- Dark/light mode where supported
- Real camera/permission prompts
- Apple/Google OAuth if used
- StoreKit purchase and restore
- Push/notification prompts if enabled
- Strain detail scroll and content density review
Gate 5: Public Promise Consistency
Required before public launch:- App behavior, website, docs-site, pricing, App Store copy, and paywall all agree.
- No public copy promises hidden, disabled, beta, or unverified features.
- No “first free AI” copy if Pro-only AI is the decision.
- No inconsistent 9.99 / $12.99 pricing.
