DECISIONS — 2026-09-14 (Shaw, dictated; Fable transcribed)
ADDENDUM 2026-09-15 (Shaw, dictated) — overrides the rail and hosting lines below
A. Payments run on Stripe, under a fresh Numina House Stripe registration. TagadaPay is dropped for this offer. Shaw sets the Stripe account up himself; the code keeps the PspAdapter boundary and gets a Stripe adapter once the account exists. Nothing rail-specific lives in apps/web. Done 2026-09-16: account live, adapter built and smoke-tested; USD charging on a CAD account (Shaw to confirm), suffix HOLYCARDS.
B. Hosting is Cloudflare for everything: Workers (web via OpenNext, worker via cron triggers + Queues), D1 for the database, R2 for photographs and audio. The local Postgres container is a test harness only and goes away with the D1 port. No droplet.
C. Image, vision and TTS models run through OpenRouter on the one key in pass apis/openrouter. Image generation is GPT only (openai/gpt-5.4-image-2, both passes; Shaw 2026-09-16 evening, no Gemini for images), vision via google/gemini-3.5-flash, TTS via openai/gpt-audio-mini streamed PCM16. Brand audio.voiceId is now the OpenAI voice name (St. Peter's = onyx, Western Wall = ash).
D. Persona: "Fatima" in these docs is Fátima, Portugal, the Marian shrine, a location pack inside the Christian brand. It is not a persona. The St. Peter's persona stays Fr. Marco, Pilgrim Chaplain.
E. Order of work confirmed: verify payments lane → migrate → worker lane → web lane → re-verify → preview URL → README + initial commit. Stripe wiring waits for Shaw's account.
FINAL ANSWERS (Shaw, 2026-09-14 late evening) — these override every PROPOSED line below
- Rush delivery = OTO2 at $19.90, after purchase. Candle $4.99 is the only checkout bump.
- Prayer input cap = 220 characters.
- Anniversary re-placement = $14.
- 30-day satisfaction guarantee on every sales surface, in PrayerSong's exact frame, header included: "100% Money Back Guarantee. Not satisfied? Get a full refund. No questions asked, no hassle. 30-day guarantee. Risk-free purchase." Always tied to the price anchor. This is the one string; SPEC, OPS-RUNBOOK and COPY-CREATIVES all carry it verbatim.
- Price anchor
$69$34.90 with the discount named after the survey answer. $34.90 unchanged. - Five-step survey replaces the single lead form.
- NO reaction-video gift card. No $50 incentive anywhere. The thank-you page links into the portal and sets expectations (what happens next, when, where to look), in the Divine Revelations thank-you-page style. Reviews are asked for by email reply only.
- NO AI framing anywhere. The FAQ and every asset say nothing about how the photo is produced.
- Delivery promise stays 3 days; rush 24 hours.
- Western Wall front-end $29.90. Also: deliver through the portal (see Delivery portal section). Start Phase A now.
Status: LOCKED unless marked PROPOSED. These override the build docs until the docs are rewritten to match.
Fulfilment pipeline
- Image models only: GPT Image class + Nano Banana Pro class. No Flux, no Replicate, no sharp compositing. SPEC §4 and §8 get rewritten.
- Per location: find a DONOR reference image on Pinterest that shows exactly what the site and scene look like. That donor is the reference image for every scene generation at that location.
- Second reference point: a hand holding the prayer card, with the prayer rendered on it. Card-in-hand is the default deliverable composition.
- Scenes vary per order: time of day (morning / afternoon / night), light, angle. Randomize so every photo reads as a real, different moment.
- PROMPT-PACKS gets a donor-reference section per location and a hand-held card recipe.
Products
- No physical product anywhere. Bump 2 "blessed cross mailed home" is dead.
- Delivery promise: 3 days standard.
- New bump: 24-hour delivery. PROPOSED: this replaces bump 2 at $9.00 (keeps the second bump slot). Bump 1 stays candle $4.99.
- PROPOSED alternative if Shaw wants a cross still: "blessed cross placed beside your card in the photo", in-image, $9.00, as a third bump. Decide before copy rewrite.
- Prices unchanged: FE $34.90, OTO1 $14, OTO2 $9.90, monthly $9.90, annual $79.
- Fix false claims: annual is "save $39" not "two months free"; OTO1 is "less than half" not "half".
Card text
- Whatever the buyer enters must fit on the card. Cap the prayer input so it always fits. PROPOSED cap: 220 characters (about 35 words) plus first name. Landing copy "up to 500 characters" changes to the new cap. No long-prayer path.
OTO1 second prayer
- OTO1 page: one text input for the second prayer + one checkbox + Submit (charges saved card) or Skip. Not pure one-click. Second
prayersrow on the same order, second photo. Worker generates one photo per prayer, not per order.
Membership
- Monthly intention is OPT-IN and optional. If the member does not submit one that month, the engine places a generic themed intention for the month and delivers on that. Capture surface: account page + one reminder email before the anniversary.
Delivery email rule (Email 3)
- One CTA only: Monthly Prayer Membership. Audio OTO moves out of Email 3.
Backlog features sold in copy
- Gift flow: build the minimal version now (recipient email field, delivery goes to recipient).
- Anniversary re-placement: build the minimal version now. PROPOSED price $14 (same as OTO1), one-tap on saved card.
Emails
- Write the missing copy: dunning ×3, lapsed-member win-back, lead abandonment sequence (3 emails to unpaid leads), monthly intention reminder.
- Audio delivers inside the photo delivery email; no separate audio template.
Support
- Email only. No support phone anywhere. Statement descriptor carries brand short name + support URL or email (processor permitting).
Payments
- Tagged Pay, not Stripe. OPS §4 gets rewritten once Tagged Pay capabilities are confirmed (saved-card one-click, subscriptions, webhooks, descriptor).
Config + schema
- One BrandConfig, the OPS version, adopted into SPEC. Add: support email, prayer max chars, TTS voice id, ambience preset, gift recipient, rush delivery.
- Location key everywhere:
st_peters_basilica. - Add
email_clickevent to SPEC §9. Dropga4from the schema (PostHog only).
Reuse from Divine Rev (/home/sha/vibing/devine_rev)
- Reply engine for automated support replies and escalation gating.
- Escalation flow to Telegram + daily digest.
- Meta ads strategy and ops (scale / kill / rotation rules, account structure).
- Anything else the scout digest shows as portable. Adopt, do not rebuild.
Delivery portal (added 2026-09-14 evening)
- Deliver through a client portal, ported from Divine Rev's client-portal-worker pattern, not just by email. The
/portal/<token>route is the portal: tokenised magic-link access (portal_sessionstoken, no passwords), deliverable gallery with time-gated reveal (the 15-minute reveal tick), track-order timeline, monthly intention field, membership manage, email preferences, and the upsell surface (/offer?product=<id>&s=<token>, one-tap on the saved card, decline ladder). No customer-video upload surface — FINAL ANSWER 7, written the same evening, settles that. Every email links into the portal. Email still carries the photo so a portal outage never blocks delivery.
Sequencing
- Research pass (RESEARCH-DIRECTIVE) runs in parallel with planning, not after.
- Brand context:
/brand-contextfull 9-stage build, outputbrand-context-st-peters/. - No app code until a full plan exists. Docs get rewritten to match this file first.