PLAN — Prayer Delivery Engine v2 (2026-09-14)
Status: BUILD IN PROGRESS. Phase A complete and reviewed. Phase C code lives at /home/sha/vibing/prayer-engine/ (foundation, funnel pages, email package, worker). Phase B is Shaw-owned and blocks only the live rail, live models and launch, not the build.
Inputs (all on disk, all read by Fable):
- DECISIONS-2026-09-14.md — Shaw's dictated decisions, FINAL ANSWERS block on top
- PRAYERSONG-MAPPING.md — the target offer structure, mapped to our mechanic
- research/TAGADAPAY-DIGEST.md — payments rail facts + signed terms
- research/DIVINE-REV-REUSE-DIGEST.md — what to port from Divine Rev
- research/RESEARCH-PASS-1-2026-09-14.md — part-2 segment lineup
- research/PHASE-A-REVIEW-2026-09-14.md — fresh-context reasoner review of the four build docs
- brand-context-st-peters/ — 9-stage brand context (avatar Kathy, mechanism "The Witnessed Carry", 20 hooks, email rules, ad-platform guidance)
- SPEC-PRAYER-ENGINE.md + OPS-RUNBOOK.md + COPY-CREATIVES.md + PROMPT-PACKS.md — the four build docs, rewritten to the decisions and then to the review
1. Decisions — ANSWERED 2026-09-14 (see DECISIONS file, FINAL ANSWERS)
| # | Decision | Answer |
|---|---|---|
| D1 | Rush delivery: $9 bump or $19.90 OTO2 | 24-Hour Placement as OTO2 at $19.90; Votive Candle stays the only bump |
| D2 | Prayer input cap | 220 characters |
| D3 | Anniversary Re-Placement price | $14 |
| D4 | 30-day satisfaction guarantee on every sales surface | Yes, satisfaction-based, never outcome |
| D5 | Price anchor |
Yes; $34.90 unchanged |
| D6 | Survey (5 steps) replaces single lead form | Yes |
| D7 | Reaction-video $50 gift card as the creative engine | NO. No incentive anywhere. The thank-you page links into the portal and sets expectations. Reviews are asked for by email reply only. No reaction upload in the portal. |
| D8 | AI framing in the FAQ | NO AI framing anywhere. No asset says how the photo is produced, in either direction. |
| D9 | Delivery promise stays 3 days | Keep. Rush is 24 hours. |
| D10 | Judaism FE at $29.90 vs the $34.90 floor | $29.90 for the Western Wall brand; the floor was a v1 rule |
2. The offer (v1, St. Peter's)
Funnel: Meta ad → landing (testimonial headline, example card-in-hand photo, "Delivered in 3 days", live ticker under the hero) → 5-step survey (who for + name; what for; the prayer; note to the Father; your name + email + optional gift email) → transition page (3 example photos, guarantee, continue) → sales page ("Almost There", summary card with name + date, "Limited Time [Healing] Discount", subsidy line, guarantee, what you get, persona letter below) → checkout (TagadaPay, card only, Votive Candle bump $4.99) → OTO1 Second Prayer $14 (textarea + submit/skip, timer) → OTO2 24-Hour Placement $19.90 → OTO3 Voice of the Sanctuary $9.90 → thank-you (recap cards, correct-email, what-happens-next, cross-sell, portal button, membership pitch at the bottom) → portal → Monthly Prayer Membership $9.90/mo or $79/yr → day-365 Anniversary Re-Placement $14.
Funnel identity is one signed httpOnly cookie, ph, minted at survey step 5 and required by every route after it. The portal is a separate identity on portal_sessions.token.
Fulfilment: two-pass image model. Pass 1 scene from a Pinterest donor reference per location, randomized time/light/angle. Pass 2 hand holding the card with first name + prayer, plus the candle clause when the bump was taken. Card-text QA is a vision-model read-back between Pass 2 and upload, three attempts then dead-letter. One photo per prayer row. Standard delivery day 3, rush ≤24 h, both counted from orders.paid_at. Audio (TTS + ambience) rides in the same delivery email.
Economics on TagadaPay: FE net ≈ $30.40; fee ≈ 12.4% + $0.70 per charge; $325/mo fixed. The scale-and-kill rule lives once, in SPEC §9, and every other doc quotes it.
3. Reuse from Divine Rev (port, do not rebuild)
| Need | Source | Portability |
|---|---|---|
| One-tap OTO page pattern, decline ladder, one follow-up email, ownership pre-check | landing-pages/venus-funnel/ (Upsell Checkout v2) | port with config; swap Stripe calls for Tagada MIT |
| PSP adapter contract + verification gates | rosaluna-wt-r2quiz/SPEC-TAGADA-RAIL-v1.md | adopt verbatim as packages/payments |
| Worker skeleton: pending→generating→ready lifecycle, retry + rate-limited alerts, 15-min reveal tick, pre-delivery offer, failed-yes follow-up | 04-FUNNEL-EXECUTION/landing-pages/client-portal-worker/ (ARCHITECTURE.md, FLOW.md) | port with config; swap reading prompt for image calls |
| Support auto-replies with deterministic gates | reply-engine v2 (Cloudflare Worker, policy-as-data) | port after launch, week 3+; policy docs rewritten for this brand |
| Escalations to Telegram + daily digest | ~/.claude/commands/check-escalations.md structure | port with a prayer-brand tier table, no mystical language |
| Meta ads doctrine: Golden Rule, prune/scale formulas, ≤4 new ads/day, Telegram 1-tap deploy | 06-ANALYTICS-OPTIMIZATION/ad-ops/AUTOPILOT-SPEC.md | doctrine as-is; fresh account + pixel |
| Email base template + builder, suppression module | ghl-email-templates/, lead-nurture-worker suppression | port; Resend not GHL for sending |
| Client portal: portal_sessions token, portal_deliverables with reveal tick, gallery, track order, offer surface | client-portal-worker (ARCHITECTURE.md, FLOW.md, src/routes/, src/cron/reveal.ts) | port with config; this IS the /portal/ |
| Phone-first money dashboard (/pulse, secret-in-URL) | client-portal-worker/src/routes/pulse.ts | port with Tagada order ids; disputes manual entry; lands at /admin behind ADMIN_DASH_TOKEN |
| Chargeback lessons | project_chargeback_rootcause memory | design rules: recurring deliverable visible in every rebill email, hard cancel gate, no chargeback-as-cancel path |
| Meta Religion-category lessons | meta_reappeal_dossier memory | no URL-param attribution, event_source_url on every CAPI event, fresh pixel, low new-ad cadence |
4. Part 2 lineup (research pass 1)
Wave 1: Judaism / Western Wall ($29.90) + Fatima expansion inside the Christian brand. Zero engine change. Wave 2: Buddhism / Doi Suthep, Chinese-language front, own BM. Wave 3: Hinduism / Varanasi, real video fulfilment partner, own BM, Diwali 2026 stretch. Wave 3b: Makkah / Madinah with the same partner shape (real permitted act, video proof, no AI Haram imagery; see ECONOMICS §5a). Sikhism: archived NO. Pass 2 gaps (sentiment for 3 segments, diaspora ARPU, operator age) run during Wave 1 build, not before.
5. Build sequence
Phase A — docs to match: COMPLETE
- SPEC §2/§3 + OPS §2/§3/§6 rewritten to the PrayerSong shape (survey, transition, sales page, rush as OTO2, survey fields on prayers, portal). Done.
- COPY-CREATIVES full rewrite in the brand-context voice: landing, survey, transition, sales page, checkout, 3 OTOs, thank-you, portal,
/membership,/replace, 17 emails. Testimonials stay stubs. Done. - PROMPT-PACKS rewrite: donor-reference section per location, hand-held card recipe, seven example-deliverable hero prompts, rotation formula fix, Western Wall pack promoted for Wave 1. Done.
- Reasoner pass on the rewritten docs (fresh-context review, Opus xhigh). Done — research/PHASE-A-REVIEW-2026-09-14.md.
- Apply the review: 6 blockers and 22 fixes across the four build docs plus HANDOFF, CLAUDE.md, ECONOMICS, PLAN and DECISIONS. Done.
Phase B — Shaw-owned prerequisites: BLOCKING Phase C
- TagadaPay: TPA live, separate store for this brand, dev + sandbox tokens, payment flow id, webhook secret, descriptor string on managed acquiring confirmed with Leon (the config carries a placeholder until then), dispute alerting answer.
- The five unanswered rail questions in writing: payout schedule, reserve release on termination, acquirer identity, cross-border fee, descriptor string.
- Domain, Resend sending domain, Meta BM + page + fresh pixel + CAPI token, droplet, support mailbox, model API keys (image models plus the vision model for card-text QA).
- Donor image per location picked on Pinterest and approved.
Phase C — build (OPS §10 day 0–13, worker lanes, Fable reviews)
- Monorepo skeleton, BrandConfig, DB migrations, mock PSP adapter, funnel pages against mock,
phhandle middleware. - Tagada adapter + webhooks + reconciliation sweep + charge_intents guard. Gate: sandbox E2E with real browser card submit, and the settle path proven authoritative with the webhook dropped.
- Fulfilment worker: donor-conditioned pass 1, hand-held pass 2, candle clause, card-text QA read-back, per-prayer jobs, rush queue, audio mix, delivery scheduler. Gate: 10 test orders, denominator stated 10 of 10, every photo legible, every name spelled right, every candle order showing two flames.
- Emails (Resend, all 17), abandoned sequence, and the client portal: magic-link entry, deliverable gallery with reveal tick, track-order timeline, intention field, membership manage, email preferences, tokenised offer surface.
- Dashboard at /admin (/pulse port) with manual dispute entry and ad-spend input.
- Gate before ads: one live purchase + refund on prod, CAPI dedupe seen in Events Manager, zero shared infra sign-off.
Phase D — launch (SPEC §10)
3 creatives (silent B-roll), $50/day US+CA women 40+, ≤4 new ads/day, creative rotation day 6, CPA read day 13 against the SPEC §9 rule. Creative supply is produced B-roll, persona stills and unpaid customer shares; there is no incentivised customer video.
6. Status vocabulary
Phase A is DOCS-COMPLETE. Nothing is CODE-COMPLETE. Nothing is LIVE-VERIFIED.