Skip to main content

Certification Gates

Launch readiness means a feature is proven, not merely built.

Gate 0: Local Code Health

Required before any candidate build:
pnpm --filter @highiq/mobile typecheck
pnpm --filter @highiq/mobile test
pnpm --filter @highiq/mobile lint
pnpm test:revyl:validate
pnpm test:react-doctor:mobile:json
Current known state from 2026-06-04:
  • 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.
Minimum automated tests:
  • useFeatureAccess unit 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
Additional route smokes opened in PR #813 for nightly/regression and release-gate proof:
  • Music / now playing
  • Subscription billing
  • Edit profile
  • Consumption preferences
  • Analytics/stats
  • Dispensary list/add
  • Daily stories
  • Notebook video
  • Professor High gated state
Remaining Gate 2 proof:
  • 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 4.99/4.99 / 9.99 / $12.99 pricing.