Stripe live product count: 20 → 24
Decision
Bump the daily-audit cron's expected active-product check from 20 to 24 to reflect the post-VetWiseAI-launch state of live Stripe.
Context
- Daily audit cron (
/api/cron/daily-audit) asserts a hardcoded count of active live Stripe products as a drift watchdog. - 2026-04-27 launch of FuneralWiseAI bumped the baseline 18 → 20 (Monthly + Setup Fee).
- 2026-05-04 launch of VetWiseAI added 4 SKUs (Pro Monthly/Setup, Starter Monthly/Setup) → actual count = 24.
- The cron started firing daily DRIFT alerts on 2026-05-04 because the hardcoded check was still 20.
Per-vertical breakdown (24 total live products as of 2026-05-05)
| Vertical | Count |
|---|---|
| CWA Chat | 3 |
| CWA Voice | 2 |
| CWA Voice+Chat bundle | 3 |
| CWA Pro Website | 3 |
| CWA misc (Voice Setup Fee, AI Starter Kit) | 2 |
| PewSearch | 1 |
| ITW | 2 |
| SermonWise | 2 |
| FuneralWiseAI | 2 |
| VetWiseAI | 4 |
| Total | 24 |
Why 24 and not "scope per-vertical"?
A per-vertical scoping refactor (separate counts per vertical, asserted independently) is the eventual right design — but it's a bigger change requiring schema for product↔vertical mapping. For now, a single hardcoded count + this canonical breakdown doc is the lowest-risk change that clears the alert. File a follow-up if/when more verticals launch.
Affected files
churchwiseai-web/src/app/api/cron/daily-audit/route.ts— bumped hardcoded 20 → 24, expanded comment with per-vertical breakdownchurchwiseai-web/src/lib/morning-brief/compose.ts— fixed stale "expected 18" stringknowledge/architecture/infrastructure.md— bumped stale "15 active products"knowledge/architecture/system-overview.md— bumped stale "15 active products"CLAUDE.md— bumped stale "~17 active products"
Next bump trigger
Any new vertical launch or canonical product addition. Update this decision record's count + the cron + run pnpm derive.