Skip to main content

Knowledge > System Architecture > Routes Catalog

Routes Catalog — churchwiseai-web

The churchwiseai-web codebase serves multiple brands via hostname rewrites in middleware.ts:

  • churchwiseai.com — base hostname
  • sermonwise.ai → /sermons/*
  • sharewiseai.com → /social/*
  • wiseaiagency.com → /wiseaiagency/*
  • funeralwiseai.com → /funeralwiseai/*
  • veterinarywiseai.com → /vetwiseai/*
  • {slug}.john316.church → /s/[slug]

Routes derivable from src/app/<route>/page.tsx are not all listed here — only those with non-obvious behavior (subdomain rewrite, token gating, lifecycle rules, lens-gating, etc.).

ChurchWiseAI core​

RoutePurpose
/Homepage (hero, products, trust, CTA)
/voice, /pricing, /care, /demoProduct marketing pages
/chatChat assistant feature page — sells the chat assistant included in Website ($29/mo) and Complete ($99/mo); /chatbot and /ai-chatbot 308 here. Spec acceptance/cwa-chat-feature-page.md. Not to be confused with /chat/[slug] (noindex, the per-church hosted chat interface), a different file outside the (cwa) route group.
/integrations, /integrations/[slug]Partners grid + detail
/compare/[slug]Competitor comparison
/ai-for/[denomination]Denomination SEO pages (param appears as [lens] in code)
/appsApp marketplace (Coming Soon cards)
/contact, /book, /thank-youLead capture
/blog, /blog/[slug]Blog
/about, /privacy, /terms, /refund-policy, /ai-safety, /ethics, /security, /hear, /resourcesStatic
/admin/[token]Full church admin dashboard (Overview/Calls/Requests/Care/Settings/Upgrade) — admin_token gated
/onboardNew church onboarding (Stripe checkout → provision → magic link email)
/founder/[token]Founder-only internal dashboard (metrics, watchtower, outreach, QA) — FOUNDER_TOKEN gated
/founder/[token]/morning-briefDaily Morning Brief composed at 7am Toronto by /api/cron/morning-brief-compose. P0/P1 counts, customer count, founder action items. Emailed to john@churchwiseai.com.
/founder/[token]/daily-ops(1) GSC manual-indexing: curated URL queue + rolling-24h global quota dial (GSC cap is per-Google-account, not per-property — see gsc_url_suggestions/gsc_indexing_submissions); (2) social-media post queue per property+platform+day with auto-rendered branded LinkedIn PNG (/api/og/social/[id]).
/founder/[token]/outreach-engineOutreach Engine dashboard — campaign list, funnel metrics, prospect timeline, manual actions. Phase 5 scrape-and-demo engine admin UI.
/founder/[token]/hqFounder HQ (2026-09-11) — a CEO command-center link directory + "ask about the business" assistant, spec acceptance/founder-hq.md. Six tabs (Test & Demo, Properties, Admin, Sales & CRM, Ops, Chamber) render src/lib/founder/hq-links.ts, a typed static registry that is the single source of truth for every founder-facing test/demo/admin/CRM/ops link — intended to double as the daily QA sweep's future link-liveness source. Entries needing FOUNDER_TOKEN or a DB value are resolve-shaped and evaluated server-side at render time, never a literal secret in the registry source. Same token-gate pattern as morning-brief (notFound() on mismatch); not host-aliased. The assistant panel posts to /api/founder/hq-chat, a separate, narrower sibling of the existing tool-calling /api/founder/chat business agent — link-lookup only, grounded strictly in the registry + product_knowledge + canonical pricing, never invents a URL.
/test/chatbotChatbot test lab (founder token-gated)

Pro Website​

RoutePurpose
/s/[slug]Pro Website public renderer (ISR, accessed via {slug}.john316.church subdomain)
/s/[slug]/[page]Multi-page Pro Website extra page (About/Ministries/Sermons/Contact/blank). ISR, SimplePageTemplate + BlockRenderer. Up to 8 per site. See knowledge/acceptance/pro-website-multipage.md.
/s/[slug]/privacy, /s/[slug]/termsPer-church privacy/terms (rendered under Pro Website subdomain)
/s/[slug]/articles, /s/[slug]/articles/[postSlug], /s/[slug]/articles/feedMINISTRY template Stories & Articles (index paginated at 12, article page, RSS 2.0 feed). Ministry tenants only — 404 for churches; drafts render only with ?draft=<admin_token>. Store = church News posts (re_content_items); a ministry's /blog 308s here. Spec acceptance/pro-website-ministry-template.md §15.
/pro-websiteMarketing landing page (sells the standalone $19.95/mo product)
/p/[token]Outreach short-link resolver — stamps pro_website_clicked_at, 302s to /preview/[slug]?ref=outreach_{token}. See knowledge/flows/cold-outreach-no-website-pro-website.md.
/preview/[slug]Cold-outreach landing preview — 3-template switcher, share-with-board button, no-chatbot/no-custom-hero, 30-day lifecycle, deep-links to /onboard for activation. noindex.
/help/pro-websiteCustomer-facing help doc

Living Word (gamified Bible curriculum)​

RoutePurpose
/living-word2D Bible adventure prototype (scenes, scribes, quests, XP, theological lenses). Live-ops 2026-05-24: in-HUD liturgical calendar chip + CalendarEventModal — three-feast default (Christmas/Easter/Pentecost); lens-gated Advent/Lent/Christ the King for Catholic/Orthodox/Anglican/Lutheran/Methodist.
/living-word/aboutBackstory, methodology, team, philosophy, contact. Phase-1A lead-gen surface (PR #559).
/living-word/dailyDaily Puzzle (Wave 1) — a free Wordle-style 5-letter Bible word game. One UTC-keyed puzzle/day, 6 guesses, teaching reveal, spoiler-free emoji share card, grace-day streak, earned-trust ChurchWiseAI doorway. Self-contained (does NOT mount the narrative engine). Spec: knowledge/acceptance/living-word-daily-puzzle.md.
/living-word/scenesSEO/GEO hub (Wave 1) — crawlable index of all 16 scene landing pages, with ItemList JSON-LD. Funnels to the free game. Content layer: churchwiseai-web/src/app/living-word/data/scene-seo.ts.
/living-word/scene/[slug]SEO/GEO scene landing pages (Wave 1, 16 pages, slug = SceneId). Per-scene passage intro + "what you'll explore" + LearningResource/BreadcrumbList JSON-LD; CTA → /living-word (sequential journey, no mid-game deep-link). Auto-indexed via the daily IndexNow cron once in the sitemap.
/living-word/educatorUGC Phase 1A. Lists educator's quizzes with status badges (draft / submitted / checking / auto_approved / editorial_review / rejected / published / retired). Layout-gated by paid educator tier. See knowledge/acceptance/living-word-ugc-phase1.md.
/living-word/educator/newKahoot-style single-screen quiz creator. Live linter (regex + scripture + reading-level). Save-as-draft or submit-for-review.
/living-word/educator/[id]/editEdit draft/submitted/rejected quiz. Published quizzes are immutable (spec §9).
/living-word/educator/previewStudent-view preview of educator's published quizzes (read-only).
/from-living-wordChurchWiseAI lead-gen landing for Living Word players. All in-game CTAs (footer, scene-completion bloom, NPC chat-close, Legacy Bloom finale) route here with UTM tagging.
/from-living-word/educatorEducator authoring upsell landing — the redirect target when an unauth or ineligible user hits /living-word/educator. Surfaces the three planned educator tiers ($79/$299/$999/yr), seminary fast-track, EducatorEarlyListForm, and sign-in path.
/signinMagic-link sign-in surface (Supabase Auth). Used by Living Word "Sign in to save progress" CTA in the intro screen and by other surfaces that need a standalone sign-in landing.

SermonWise + ShareWise (hostname rewrites)​

RoutePurpose
/sermons/*SermonWise AI app (sermonwise.ai hostname rewrite)
/sermon-generator, /homily-ai, /sermon-writer"Sermon generator" page family (spec knowledge/acceptance/sermonwise-sermon-generator-pages.md, keyword evidence knowledge/drafts/sermonwise-sermon-generator-keyword-map-2026-10-06.md). Ceiling of exactly 3 pages — the keyword map found zero search demand for any tradition-qualified "sermon generator"/"homily generator" phrase, so there are deliberately no /sermon-generator/<tradition> routes; the 8 traditions are anchored sections inside /sermon-generator instead. /homily-ai pre-selects the Catholic lens in the embedded generator (OutlineGeneratorStarter's defaultTradition prop) — GSC already showed this query at position 9.7 with no dedicated page. /sermon-writer is the full-written-draft angle (same engine, deeper output), distinct from the narrower /sermon-outline-generator. Data: src/lib/sermon-generator-pages.ts; anti-thin-page rules (≥900 words page-specific prose per page, ≤150 words shared boilerplate, no 12+-word sentence shared across records) enforced by src/lib/__tests__/sermon-generator-pages.test.ts. Served via the same /sermons/* → sermonwise.ai hostname rewrite as /sermon-outline-generator; source files live under src/app/sermons/.
/socialShareWiseAI marketing page (sharewiseai.com hostname rewrite)
/social/pricingShareWiseAI pricing (Free/Pro/Business/Agency)
/social/app/*ShareWiseAI app (dashboard, compose, calendar, analytics, campaigns, library, platforms, settings, ai-advisor)

WiseAI Agency hub (wiseaiagency.com rewrite)​

RoutePurpose
/wiseaiagencyMeta-brand home — parent/tech/trust brand for the vertical family
/wiseaiagency/verticalsAll vertical brands directory
/wiseaiagency/technologyLiveKit voice, multi-agent orchestration, HEAR protocol, per-vertical training
/wiseaiagency/playgroundPhase 4c Demo Playground — product (chatbot/voice) × vertical (funeral, vet, dental, restaurant, law, real estate) live demos
/wiseaiagency/about, /contact, /privacy, /terms, /securityHub-scoped pages
/wiseaiagency/[city]Local SEO landing — ingersoll, london-ontario, woodstock, tillsonburg. JSON-LD LocalBusiness schema. Target Oxford / SW Ontario.
/wiseaiagency/pricingHub-level cross-vertical pricing comparison. USD/CAD toggle defaults by Vercel geo-IP. Display-only; checkout on each vertical's own pricing page.
/wiseaiagency/skillsCross-vertical prompt-pack marketplace (Pastor + Funeral Director packs). Paste-into-AI prompts — NOT Claude Code skills (audience pivoted 2026-05-15).
/wiseaiagency/ai-front-deskLocal Business Platform Lane 3 offer — $1,245 setup + $295/mo. Voice agent + chatbot + lead capture + intake/follow-up. Not yet linked in nav (founder review pending).
/wiseaiagency/missed-lead-recoveryLane 3 — $745 setup + $145/mo. Shared lead inbox + status pipeline + 24h reminders. Not yet linked.
/wiseaiagency/review-engineLane 3 — $295 setup + $95/mo. Email/SMS Google-review requests with private-feedback routing for unhappy customers. Not yet linked.
/wiseaiagency/local-authorityLane 3 — $1,995 setup + $495/mo. AI Front Desk + Review Engine + monthly reporting + local SEO content. Not yet linked.
/business/[token]Local Business Platform customer dashboard (wiseaiagency.com hostname). Per-business admin_token gated; tabbed shell (Overview/Leads/Follow-ups/Review Requests/Setup/Modules/Monthly Report) module-gated; non-entitled tabs shown disabled-as-upsell. Token-link only — no public login. noindex.
/r/[token]Local Business Platform private-feedback landing (wiseaiagency.com). Unhappy-path of Review Engine — star-rating + feedback form, creates review_feedback lead, alerts owner. Never shows/redirects to Google. noindex.
/intake/[slug]Local Business Platform public lead-intake form (wiseaiagency.com). Per-business keyed by local_businesses.slug; submission creates a form-source lead. Rate-limited + BotID soft-gate. noindex.
/realtor/*WiseAI Realtor backend (Phase 6 auth bridge, auth-rbac §5). Per-user Supabase Auth on the realtor vertical (wiseaiagency.com). /realtor/login, /realtor/forgot-password, /realtor/update-password, /realtor/mfa = public auth-entry — passwordless magic-link/OTP default + password + Google + Microsoft OAuth + MFA/TOTP. /realtor/accept-invite?token= = invite acceptance (signs in, then materializes realtor_users + realtor_memberships; email-bound, R6). /realtor/app = session-gated authed backend (middleware handleRealtorAuth + layout; membership → caps via requireRealtorCapability); placeholder pending the full command center. Middleware exempts /realtor from the wiseaiagency rewrite. The legacy /business/[token] dashboard keeps working via the dual-auth re_legacy bridge cookie. noindex.
/api/realtor/*WiseAI Realtor identity/auth APIs — /invites (owner-gated create + list), /invites/[id] (resend/revoke), /invites/accept (POST {token}; requires a session; email-bound). In SHARED_API_PREFIXES so it resolves on the wiseaiagency.com host.
/embed/brandIframe-hosted brand sales chatbot (Phase 4a) — loaded by public/embed/churchwiseai-widget.js when data-brand-scope is set. Talks to /api/chatbot/unified with brand param. noindex.
/embed/businessIframe-hosted realtor/local-business chat (bring-your-own-website embed) — loaded by public/embed/wiseai-agent.js when a realtor pastes the WiseAI embed snippet on their own site. Resolves the tenant by businessId + vertical and mounts the same real-estate chat (Aria) in <ChatWidgetStream embedded>; POSTs to /api/chatbot/demo so leads flow to the realtor's dashboard. Served on wiseaiagency.com (middleware exempts /embed from the rewrite). noindex.

FuneralWiseAI (funeralwiseai.com rewrite)​

RoutePurpose
/funeralwiseaiHome — first new commercial vertical (AI answering for funeral homes)
/funeralwiseai/how-it-worksHEAR protocol, call flow, integration, privacy
/funeralwiseai/pricing$745 USD / $995 CAD setup + $199 USD / $249 CAD per month. Setup revised 2026-05-02 per knowledge/decisions/2026-05-02-vertical-setup-pricing-revision.md.
/funeralwiseai/about, /bookFounder pastoral story; demo request form
/funeralwiseai/checkoutSelf-serve checkout — USD/CAD + email/name form, POSTs to /api/stripe/funeral-checkout. Sales-led demo at /book remains primary CTA. noindex.
/funeralwiseai/thank-yousuccess_url target from /api/stripe/funeral-checkout. Reads session_id + source. Subdued (not celebratory) confirmation, 24-hour white-glove follow-up promise. noindex.
/funeralwiseai/skillsFuneral Director Prompt Pack index — 5 free MIT-licensed paste-into-AI prompts. Email-gated via EmailGate → /api/newsletter with tag skill-pack-funeral. Drip from MailerLite automation 187733617933288772. Faith-neutral default; HEAR-anchored; trauma-informed cause-of-death language. Slate + copper + bone brand.
/funeralwiseai/skills/[slug]Individual prompt page — monospace <pre> PromptBlock with Copy. Pack-level localStorage unlock (wiseai-skill-unlocked:skill-pack-funeral); drip-email links carry ?u=skill-pack-funeral for cross-device unlock.
/funeralwiseai/funeral-home-answering-service, /after-hours-answering-service-funeral-homes, /ai-receptionist-for-funeral-homes, /asd-alternativeSEO landing pages (keyword targets / ASD competitor comparison)
/funeralwiseai/resources, /resources/first-call-script, /resources/first-call-intake-checklist, /resources/after-hours-price-calls, /resources/funeral-price-call-script, /resources/funeral-rule-phone-checklist, /resources/what-to-ask-when-someone-dies-at-homeFree guides, scripts, checklists for funeral-home phone handling
/funeralwiseai/tools/missed-call-calculatorInteractive missed-call revenue-loss calculator
/funeralwiseai/privacy, /funeralwiseai/termsBrand legal pages (added 2026-08-04). The footer linked /privacy + /terms on every page and both 404'd on the brand host. Body shared with VetWiseAI via src/components/brand-family/legal/; facts sourced from knowledge/data/policies.yaml. Both state FuneralWiseAI is a product of ChurchWiseAI LTD. ⚠️ Pending founder/legal review.

VetWiseAI (veterinarywiseai.com rewrite)​

RoutePurpose
/vetwiseaiHome — second commercial vertical. Full marketing site shipped Phase 4 #8.
/vetwiseai/how-it-worksHEAR protocol + ASPCA Poison Control triage
/vetwiseai/pricing$745 setup + $199/mo (Starter) or $299/mo (Pro). USD/CAD toggle
/vetwiseai/about, /bookAbout + demo request form (POSTs to /api/contact source=vetwiseai)
/vetwiseai/checkoutTier selector (Starter/Pro) + USD/CAD, POSTs to /api/stripe/vet-checkout. noindex.
/vetwiseai/thank-yousuccess_url target from /api/stripe/vet-checkout. ASPCA Poison Control + DVM on-call rotation noted in next-steps. noindex.
/vetwiseai/privacy, /vetwiseai/termsBrand legal pages (added 2026-08-04). Same defect and fix as FuneralWiseAI — the footer linked both on every page and both 404'd. Shared body via src/components/brand-family/legal/; the vet config states plainly that veterinary records are NOT HIPAA-covered, so no HIPAA claim can be read into the service. Both state VetWiseAI is a product of ChurchWiseAI LTD. ⚠️ Pending founder/legal review.

ChurchWise (churchwise.ca rewrite → /churchwise/*)​

AI-quiet compliance-tool sub-brand (spec acceptance/churchwise-compliance-kit.md). Exact-host rewrite in middleware.ts §0d2 (isChurchWiseHost). Public URLs are root-relative on churchwise.ca; every source path below lives under src/app/churchwise/.

RoutePurpose
/churchwiseHome. Persona line, four free tools with "you leave with" lines, Safe Church Tracker card, Guides section, "how we check accuracy". Own chrome (layout.tsx), no ChurchWiseAI header/footer/chat bubble.
/churchwise/clergy-housing-calculatorClergy residence deduction (Canada, T1223 line 23100) and housing allowance (US, IRC §107) calculator. Screening → inputs → disclaimer gate → result with line-by-line working, "Next steps" (T1223/T1213 links, line-23100 sanity check, print-to-save) and an optional CASL-consented "January re-check" email capture (/api/newsletter, tag churchwise-clergy-housing-recheck). Query prefill ?country&housing&rem&months&rent&box30 fills numbers only, never a screening answer. Maths: src/lib/churchwise/clergy-housing.ts; rules yaml synced from products/churchwise/sources/.
/churchwise/church-bylaws-generatorCNCA / ONCA / US-skeleton by-law generator, Word + PDF. Engine src/lib/churchwise/bylaws.ts.
/churchwise/child-protection-policyChild and vulnerable-person protection policy generator (LIFE-SAFETY-adjacent; generation blocked until every reporting contact is filled). Engine src/lib/churchwise/protection-policy.ts.
/churchwise/donation-receipt-generatorCRA official receipts / IRS year-end statements, one donor or CSV; donor data never leaves the browser. Engine src/lib/churchwise/donation-receipts.ts.
/churchwise/guides, /churchwise/guides/[slug]Six static treasurer/clergy guides (added 2026-09-28) from src/lib/churchwise/guides-content.ts: the deduction explained, the tax-software refund jump, T4 box 30 / box 26 for treasurers, T1213 at-source reduction, who qualifies (incl. Schroeder 2024 TCC 56), US housing-allowance mistakes. Article + FAQPage + BreadcrumbList JSON-LD; in sitemap and llms.txt. Source content: drafts/churchwise-adversarial-review-and-clergy-tax-faq-2026-09-28.md.
/churchwise/privacy, /churchwise/termsChurchWise's own legal pages (added 2026-09-28; before this the footer sent visitors to the ChurchWiseAI SaaS terms, which had no free-tools clause). Cookieless analytics on this host: no consent banner, PostHog memory persistence, no GA/Ads/Meta pixel. ⚠️ Not lawyer-reviewed.
/churchwise/trackerSafe Church Tracker landing ($9.95/mo or $99.50/yr, 14-day trial, no card to start; included with any ChurchWiseAI plan).
/churchwise/signin, /churchwise/signin/confirmTracker email-link sign-in from hello@churchwise.ca (noindex).
/churchwise/app, /churchwise/app/policy, /churchwise/app/settings, /churchwise/app/billingTracker coordinator area (noindex, ph-no-capture). Spec acceptance/churchwise-safe-church-tracker.md.
/churchwise/confirm/[token]Public volunteer policy sign-off page (noindex).
/churchwise/unsubscribe/[token]Reminder unsubscribe confirmation; makes no request on load.

Thames Valley Gifts (thamesvalleygifts.ca rewrite — planned, no page.tsx exists yet)​

Full design: research_notes/Thames Valley Gifts build/architecture_decision.md (Option D) §2.7. Acceptance specs (all DRAFT, founder Stage-2 review pending): knowledge/acceptance/tvg-storefront.md, tvg-proof-to-pay.md, tvg-ops-and-payouts.md, tvg-ai-front-desk.md. Wave A (2026-09-28) ships only migrations/20260928_tvg_core.sql + src/lib/tvg/ — every route below is catalogued now (Rule 14/16: route map before code) and lands in Wave B (storefront + proof/pay + host wiring + founder ops) or Wave C (AI front desk). A new thamesvalleygifts.ca host block is added to middleware.ts + PLATFORM_HOST_SUFFIXES (both copies — src/lib/pro-website-host-resolve.ts too) in Wave B/WP5, rewriting to /tvg/*; a bare /tvg/* hit on churchwiseai.com is noindex + 308s to the brand host. TVG is NOT a premium_churches row and never writes the canonical plan column (Rule 23).

RoutePurpose
/Hub home — product families, makers strip, "How it works", trust strip. Stays in "Opening soon" (noindex, waitlist-only) mode until shipping/tax/first-available-product conditions are met (tvg-storefront.md §3.7).
/shop (?type=&occasion=&maker=&status=)Grid, filterable. Every tile always shows the maker name and a text status badge (Available / Coming soon / Example — never colour alone).
/makers, /makers/[maker]Maker index ("Made nearby") + profile (story, town, specialty, their products). No commission rate, no maker contact info, no "sell with us" form at launch.
/makers/[maker]/[product]PDP — gallery + live SVG personalization preview, the full form (text/verse/monogram/photo/choice/quantity fields), read-back, final-sale checkbox, "Request a proof" (the ONLY primary action — no cart, no "Buy now"). example shows no form/no price/no button; coming_soon shows a preview-only panel + waitlist form.
/bulkNamed B2B surface (churches, realtor closing gifts, team orders): quote-request form, kind='bulk_quote'.
/guides/monogram, /guides/photo-engraving, /guides/versesEducation pages linked from the matching form fields.
/request/[token]Customer's persistent status page (timeline, one primary next action, add-photo, cancel). Token-gated (sha256-hashed, wrong token → 404), noindex, Referrer-Policy: no-referrer, Cache-Control: private, no-store.
/proof/[token]Proof review: exact text read-back, price table with the tax line, "Approve and continue to payment" / "Request changes". GET never mutates.
/pay/[token]Server route → a FRESH Stripe Checkout Session every click (24h expiry; the prior open session is expired first, so at most one is ever payable).
/order/thanksConfirmation — reads the order number only, never a Stripe session id or personal data; polls briefly if the webhook hasn't landed yet.
/policies/shipping, /policies/returns, /privacy, /terms, /about, /contactLegal + informational pages from a new THAMES_VALLEY_GIFTS_LEGAL entry in src/components/brand-family/legal/config.ts and a tvg: section of knowledge/data/policies.yaml. Footer on every page: "Thames Valley Gifts is a division of ChurchWiseAI LTD."
churchwiseai.com/founder/[token]/tvgFounder ops Action list — 6 queues (unanswered requests, proofs awaiting approval, approved-not-paid, in production, due today, voice/chat leads to promote). Founder-token gated (notFound() on mismatch, same pattern as /founder/[token]/hq); force-dynamic; noindex. 404s on the thamesvalleygifts.ca host — the ops surface never renders on the brand host.
churchwiseai.com/founder/[token]/tvg/requests/[id]Request detail: items, uploads (signed URLs), quote editor, proof send, payment recording, fulfilment actions, full event log.
churchwiseai.com/founder/[token]/tvg/catalog, /catalog/[id]Product CRUD, status gate (agreement + HST-treatment gated available transition), personalization-schema form builder + raw JSON editor (shared validator with the storefront), image manager.
churchwiseai.com/founder/[token]/tvg/makers, /makers/[id]Maker CRUD, commission (commission_bps, per-maker, 0-5000 bps, default 2000 — a FOUNDER DECISION parameter, never a constant), the agreement gate.
`churchwiseai.com/founder/[token]/tvg/payouts?period=YYYY-MM-AB`
churchwiseai.com/founder/[token]/tvg/tax?from=&to=HST/GST accounting export (per-jurisdiction + per-maker registrant-treatment tables).
churchwiseai.com/founder/[token]/tvg/kpis?week=YYYY-WwwWeekly honest-metrics-only scorecard (no "Delivered"/"Opened" theater — OUTBOUND_PROCESS_MAP rule applies here too).
churchwiseai.com/founder/[token]/tvg/settingsTax-rate table, flat shipping rate, payout_basis (paid vs completed — a config value, default completed), pickup instructions, AI knowledge sync button.

AI front desk (Wave C): chat is a dedicated POST /api/tvg/chat (see docs/api-catalog.md), never the life-safety /api/chatbot/stream. Voice reuses the EXISTING generic local_business persona/DID — no new voice route or vertical in Wave A/B; a gift_shop voice vertical (full voice-deploy gate) is explicitly Phase 3/deferred.

Prompt Packs (churchwiseai.com)​

RoutePurpose
/skillsPastor AI Prompt Pack index — 7 free MIT-licensed prompts. Email-gated → /api/newsletter tag skill-pack-church. Drip from MailerLite automation 187733559994221623. AI Bridge anchored; tradition-aware (17 traditions); voice-checked banned-phrase enforcement. Sacred gold + navy + cream brand. Audience pivoted 2026-05-15 from Claude Code skills to paste-into-chat AI prompts. Archived Claude Code skill content remains at content/skill-packs/.
/skills/[slug]Individual prompt page — PromptBlock with Copy. Pack-level localStorage unlock (wiseai-skill-unlocked:skill-pack-church); drip-email ?u=skill-pack-church for cross-device unlock.