Ignition_Sequence / config.py
dnhoffman's picture
Update config.py
b284fd8 verified
Raw
History Blame Contribute Delete
64.9 kB
"""
IGNITE PERFORMANCE & HEALTH — WELLNESS ASSESSMENT LEAD MAGNET CONFIGURATION
============================================================================
This is the master configuration file for the Streamlit wellness assessment lead magnet app.
ARCHITECTURE:
All content, branding, clinical data, pricing, and AI prompts are defined HERE — not scattered
in the app logic. This extraction makes the app a reusable template engine:
- To create a different lead magnet: create a new config.py (with different products, prices, tone)
- To update brand assets, clinical data, or tone: edit this file only
- The app logic remains unchanged across deployments
USAGE:
import config
brand_name = config.BRAND["name"]
programs = config.WELLNESS_PROGRAMS
system_prompt = config.PATHWAY_SYSTEM_PROMPT
"""
# ==============================================================================
# BRAND CONFIGURATION
# ==============================================================================
BRAND = {
"name": "Ignite Performance & Health",
"tagline": "The Ignition Sequence™ — Science · Strength · Nutrition",
"product_name": "Ignition Sequence™",
"assessment_title": "Online Assessment",
"address": "14830 Clayton Rd, Chesterfield, MO 63017",
"phone": "(314) 887-0858",
"email": "info@ignitepah.com",
"website": "www.ignitepah.com",
"scheduling_url": "https://calendly.com/derek-ignitepah/initial-consultation",
"colors": {
"navy": "#023047",
"teal": "#219ebc",
"sky": "#8ecae6",
"orange": "#f58300",
"amber": "#ffc533",
"white": "#ffffff",
},
"disclaimer": (
"This assessment is for informational purposes only and does not constitute medical advice. "
"All treatment programs require physician evaluation, approval, and ongoing supervision. "
"Medical therapies are prescribed and monitored by licensed physicians."
),
}
# ==============================================================================
# LOGO (BASE64 PLACEHOLDER)
# ==============================================================================
# Base64-encoded logo — replace with your brand's logo
LOGO_B64 = "data:image/png;base64,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Nf/t7u5+ffLkyVf+61//+lRVVdXH2tvbd164cOEd8CJPV61aZe22225q1apVZ1VVVTnGmCeYecrQ0NCfq6qq4syc9L+bTqfZGGPtscceufvvv//k9773vb0bNmy4IJvNdgGY789RKcVCCM2b54yWeQuUTqczg4OD/UIIaYzhgYGBsXJQNAARiUS+mcvlrmLmKatXr749FAr977Jly04SQvz7tddeCwFQxhhtWdbU+fPn371x48Yr586d+5+DDjroeCJKj7a5kskkzZs3j+bPn++vN28phRmAtCyrv66u7gXLsmxv3EnMfEwZDoGBgYEhrXW/ZVkin88Prlq1Ch64mZlRXV3dysz/YOYmAC8PDg72NzU1nU9El69cuVIiUPSyra1NxmIxtLa20vz587mlpUV3dXUZIjLPP/+8f6gaX09pbW31ASZDoVBnbW3tC0II2xijpJTaGDMX6XS6r7u7++Genp4/d3V1Xb9hw4bP+KekLyK88sorP+/v739wLBGru7v7olQqNbB69eob1q1b92etNb/66qvfDbB68kWsVatWXTiaiLV+/fpbBgcHnx75+csvv/zJdDrNDz744FSfNS5ZsuQ7uVyud/Xq1TesXbv2z4VCgV999dUfjzSjZjKZJ3t7ey/0Tq7nU6mUWr9+/fe88ZYw8+eC99vT0/N0b29vz7p1615Zt27divXr17/qOA4//vjjR/ps/I9//GOkt7d34MEHHzwdAJ5++un3DgwM6N7e3pfXrVt3e/B6vb29z/T29v6+3Ekd5A6pVGr1/fff/9HxiFe+eLF8+fL3O47Da9euXbZ+/foVa9asebm/vz/V2dl5r3ftkCcy/ry3t/fxgNjyQGdn56aenp6+fD6/X3AeSqk1zHxkcLzHH398ntaaOzo6xhSxVqxYcUcul/tD8LMXXnhhUm9vb76MiJW9/PLLdxlNtHrwwQf3ymQyvH79+pXr1q1bsXbt2le7urq6BgcHX/UOTOk900/19PRsGGudnn/++S/19/evCophARHr2bVr1w4TsR555JFTe3p6lAWg8YUXXrjs+OOPv73c/gcAKaUOhUIzXnnllROFEBYzG2Y22Wz2MQA5AAiFQjXpdHrD7NmzPwUAL730UnLmzJk3r1mzJjlr1qzl3mbQQgirqqoq4j0MC4AiIm5tbWVmpsWLF1908MEHP9fd3X3PwMDA5ZFIpFcI8d7a2tr/6e3t/epxxx3niwV5KWW9MWa1P+Zzzz1345w5c/65YsWKm4UQLxpjbADGsizpcUN0d3d/m4haW1tbf8bMtGnTJvIPBCJyXn755Q9JKfe9884793/22Wczu+yyi7VixQrne9/73i/322+/HwE43hhDf/rTnyCltI0x2vNB3PvSSy+dv88++/wuk8l0BLne0qVLPzdnzpyHurq6kM/nrwuHw47W+sJ0Ol23++67f9hfm1AopHfdddfosmXLeohIMrPp6urqe8973vPUyAfT3NxsmJmGhoZ+snHjxisuu+yyy2bPnh3auHGjc9xxx82IRqNPr1ix4nAietKX4KSUkogMM8uLL7749NbW1qerq6v36urqCqYTk5SSBgcHj3nxxRerJk2aJIUQB9XU1FzS2dl57bx58x7zlFs9iojli2cWgBCAQnd393QppS1EqdFmJpMh27bFqaeeeuZpp522hIiEEMKsWbNmLYBlAHDggQf+z9DQ0ANXXHHF2TNmzLB7enpMfX29ff755z+/YcOGTxPRnzwRicPhcM1LL7200LIsaK1JKVXo6Oh4rLm5uSiOCyHKmtctyxKhUKjBU9Ij06ZNy7300kuTLcuS1qZNmzaEw2Gbma1Vq1ZZc+bMUQA0EfHixYvhcYd1kyZNaqytrU36JwURwXGcI4ioAwA6OzuHtNY93ucWEf1z1apV/0qn0z8ioph/OvX29m7M5/Pp6dOn86JFi3jhwoUMuIWfW1tbaeHChRtvueWWI08++eQrJ0+efGs4HFaZTCazZs2az8ybN+8GZhaLFy/WADA0NNTb1dU1EBjz3jVr1tyYz+d/wsyn+gDv6enpyWazg8yM+fPn3wPgXnZ3NXd0dGysqqoK5n9/sq+v7/cf//jHhyl055577g+z2ewDf/3rX3clotevuOIK6u7u3pDJZDJExMuWLQvvtdde165Zs6Z5aGjICohAtN9++z336KOPRnffffdrGxoa7iAinU6nlzuOc7G3Luyt82sNDQ0fLRQKZxMRCyFkLpd7CsDxHgjZP2GJyNx2220HHXjggVNfe+21y6688spN/lwvv/zyjcuXL7+jUCh8BsCTns7Ul8vlejzjhrzsssuGTj/99DN23333O3t7e4cp/t3d3WuVUj+YNGkSpJSIRCJr+vv7v7Xrrrv+xht7MzHL3ysDAwPdmzZtys6YMUMtWbJE7Lfffurll1/Oh0Kh9YVCoQjE7u5uMzAwsKahoaFVa01EpIUQVnV19U1E9P+uu+66qV1dXcd2d3d//IorrugMjnXmmWdenc/nPwfgegC8fv36gVmzZuXr6+tvY2YhhKBsNtvd2dm5vxAi5Vkdh7q7uzeVA0hnZ2d3oVAYmDZtmlq2bJkzffp09eijjw6GQqEN/x+fOXDpZ5m20QAAAABJRU5ErkJggg=="
# Note: The actual Ignite logo base64 string should be pasted here from the original app.py
# ==============================================================================
# SERVICE MECHANISM OF ACTION
# ==============================================================================
# Detailed clinical descriptions of each service offered
SERVICE_MOA = {
"TRT": "Testosterone replacement gets your levels back where they should be. Think of it like topping off an engine that has been running low: physician-monitored, bioidentical protocols, dialed in over time based on your labs and how you feel. We monitor your levels and track your labs the whole way.",
"HRT": "Hormone replacement for women whose estrogen, progesterone, or both have dropped below the line where the body works well. The changes you might be feeling are not mysteries — they are predictable responses to hormone decline. We correct the levels and monitor the results.",
"GLP-1 Therapy": "GLP-1 medications turn down the appetite signal, slow digestion, and influence how your body handles insulin. The medication is an accelerator, not a solution. Without nutrition and, ideally, resistance training alongside it, you risk losing lean mass. Lean mass is retirement funds: you do not cash those out.",
"Strength Training": "Resistance training is the foundation everything else gets built on. It builds lean mass, raises your metabolic rate, strengthens your bones, and improves hormone signaling. If you add medications later, training is what makes them work better.",
"Supplement Protocol": "Physician-selected supplements that fill specific gaps your labs reveal. Not a cabinet full of guesses. We pick pharmaceutical-grade products based on your bloodwork and adjust as things change.",
"IV Therapy": "IV infusions deliver vitamins, minerals, and amino acids directly into your bloodstream. Useful when oral supplements are not the right fit or when faster recovery is the goal.",
"Lab Diagnostics": "Blood panels and biomarker testing that give us the actual numbers behind every decision. We draw baselines, track your progress, and catch problems early. No guessing.",
"Nutrition Coaching": "A meal plan built around your goals, your body composition, and whatever else you have going on clinically. Medication without nutrition is a half-measure. We make the two work together.",
}
# ==============================================================================
# SERVICE CONTRAINDICATIONS
# ==============================================================================
SERVICE_CONTRAINDICATIONS = {
# HRT includes TRT — all TRT contraindications are merged here
"HRT": [
"Pregnancy or breastfeeding",
"Active or history of cancer",
"History of blood clots or DVT",
"Cardiovascular disease",
"Active liver disease",
"Polycythemia or elevated hematocrit", # TRT-specific
"Severe sleep apnea (untreated)", # TRT-specific
"History of stroke", # TRT-specific
],
"GLP-1 Therapy": [
"Pregnancy or breastfeeding",
"Personal or family history of medullary thyroid cancer",
"History of pancreatitis",
"Severe gastrointestinal disease",
],
"Strength Training": [
"Acute injury or post-surgical restriction",
"Cardiovascular disease",
],
"Nutrition Coaching": [],
"Lab Diagnostics": [],
}
ALL_CONTRAINDICATION_FLAGS = [
# HRT / TRT
"Pregnancy or breastfeeding",
"Active or history of cancer",
"Cardiovascular disease",
"History of blood clots or DVT",
"Active liver disease",
"History of stroke",
"Polycythemia or elevated hematocrit",
"Severe sleep apnea (untreated)",
# GLP-1
"Personal or family history of medullary thyroid cancer",
"History of pancreatitis",
"Severe gastrointestinal disease",
# Strength Training
"Acute injury or post-surgical restriction",
# Opt-out
"None of the above",
]
# ==============================================================================
# TRAINING TIERS
# ==============================================================================
TRAINING_TIERS = {
"Premiere": {
"label": "Premiere",
"training_desc": "One-on-One Expert Coaching 3x/Week",
"sort_order": 1,
},
"Crew": {
"label": "Crew",
"training_desc": "Small Group Training 3x/Week",
"sort_order": 2,
},
"Crew Hybrid": {
"label": "Crew Hybrid",
"training_desc": "Small Group Training 2x/Week",
"sort_order": 3,
},
"Hybrid": {
"label": "Hybrid",
"training_desc": "Small Group Training 1x/Week",
"sort_order": 4,
},
"Virtual": {
"label": "Virtual",
"training_desc": "Virtual Training via Mobile App Only",
"sort_order": 5,
},
}
# ==============================================================================
# WELLNESS PROGRAMS — THE IGNITION SEQUENCE™
# ==============================================================================
# PRICING NOTE: All tier prices ("26_week" and "52_week") are MONTHLY rates
# at the given commitment length. Source: Canva marketing cards.
# To get per-week: monthly * 12 / 52 (same ratio for both commitment levels).
WELLNESS_PROGRAMS = {
"Ignition Liftoff": {
"sex_filter": "any",
"type": "medical",
"family": "Liftoff",
"display_order": 99, # medication-only — always listed last
"subtitle": "Medical Accelerator Packages",
"includes": "GLP-1, HRT, Nutrition Coaching",
"targets": ["Fat Loss", "Hormone Balance", "Metabolic Health", "Energy"],
"description": "Medical-only track for people who want the pharmaceutical accelerators without a training component. GLP-1, hormone therapy, and nutrition coaching under physician supervision. These are accelerators, not solutions on their own, so we pair every prescription with a nutrition plan that protects your lean mass (your retirement funds) while the medication does its job.",
"services": ["GLP-1 Therapy", "HRT", "Nutrition Coaching", "Lab Diagnostics"],
"cycle": "26-week or 52-week protocol",
"tiers": {
"GLP-1 + HRT + Nutrition Coaching": {
"services": ["GLP-1 Therapy", "HRT", "Nutrition Coaching", "Lab Diagnostics"],
"26_week": 649.97,
"52_week": 552.47,
"sort_order": 1,
},
"GLP-1 + HRT": {
"services": ["GLP-1 Therapy", "HRT", "Lab Diagnostics"],
"26_week": 574.98,
"52_week": 488.73,
"sort_order": 2,
},
"GLP-1 Only": {
"services": ["GLP-1 Therapy", "Lab Diagnostics"],
"26_week": 374.99,
"52_week": 318.74,
"sort_order": 3,
},
"HRT Only": {
"services": ["HRT", "Lab Diagnostics"],
"26_week": 199.99,
"52_week": 169.99,
"sort_order": 4,
},
},
},
"Ignition Fuel": {
"sex_filter": "any",
"type": "training",
"family": "Fuel",
"display_order": 40, # training-only — above med-only, below combo programs
"subtitle": "Training + Nutrition",
"includes": "Training, Nutrition Coaching",
"targets": ["Strength", "Fat Loss", "Muscle Gain", "Recovery"],
"description": "Training and nutrition without the medical component. This is the foundation everything else gets built on. Structured resistance training paired with a nutrition plan that actually fits your life. If you add medications later, this groundwork is what makes them work. Not about perfection, about progress.",
"services": ["Strength Training", "Nutrition Coaching"],
"cycle": "26-week or 12-month protocol",
"tiers": {
"Premiere": {"26_week": 2024.86, "52_week": 1721.13, "sort_order": 1},
"Crew": {"26_week": 724.86, "52_week": 616.13, "sort_order": 2},
"Crew Hybrid": {"26_week": 508.23, "52_week": 431.99, "sort_order": 3},
"Hybrid": {"26_week": 291.61, "52_week": 247.87, "sort_order": 4},
"Virtual": {"26_week": 224.98, "52_week": 191.23, "sort_order": 5},
},
},
"Ignition Apex": {
"sex_filter": "any",
"type": "training",
"family": "Apex",
"display_order": 10, # most comprehensive — listed first
"subtitle": "The Complete Protocol",
"includes": "Training, Nutrition, GLP-1, HRT",
"targets": ["Fat Loss", "Muscle Gain", "Hormone Balance", "Metabolic Health", "Strength", "Recovery"],
"description": "Everything in one protocol. GLP-1, hormone optimization, structured training, and nutrition working together under one clinical roof. The medications accelerate what the training and nutrition make possible. We monitor your labs, adjust your protocols, and keep your lean mass protected the entire time.",
"services": ["GLP-1 Therapy", "HRT", "Strength Training", "Nutrition Coaching", "Lab Diagnostics"],
"cycle": "26-week or 52-week protocol",
"tiers": {
"Premiere": {"26_week": 2599.84, "52_week": 2209.86, "sort_order": 1},
"Crew": {"26_week": 1299.84, "52_week": 1104.86, "sort_order": 2},
"Crew Hybrid": {"26_week": 1083.21, "52_week": 920.73, "sort_order": 3},
"Hybrid": {"26_week": 866.59, "52_week": 736.60, "sort_order": 4},
"Virtual": {"26_week": 799.96, "52_week": 679.97, "sort_order": 5},
},
},
"Afterburner Catalyst": {
"sex_filter": "any",
"type": "training",
"family": "Catalyst",
"display_order": 20, # training + GLP-1
"subtitle": "Training + Nutrition + GLP-1",
"includes": "Training, Nutrition, GLP-1",
"targets": ["Fat Loss", "Metabolic Health", "Muscle Preservation", "Strength"],
"description": "GLP-1 paired with training and nutrition for fat loss that actually sticks. The medication reduces appetite and improves insulin signaling while the training protects your lean mass. Think of muscle as retirement funds: you do not cash those out for short-term results. We monitor your labs throughout.",
"services": ["GLP-1 Therapy", "Strength Training", "Nutrition Coaching", "Lab Diagnostics"],
"cycle": "26-week or 52-week protocol",
"tiers": {
"Premiere": {"26_week": 2399.85, "52_week": 2039.87, "sort_order": 1},
"Crew": {"26_week": 1099.85, "52_week": 934.87, "sort_order": 2},
"Crew Hybrid": {"26_week": 883.22, "52_week": 750.73, "sort_order": 3},
"Hybrid": {"26_week": 666.60, "52_week": 566.61, "sort_order": 4},
"Virtual": {"26_week": 599.97, "52_week": 509.97, "sort_order": 5},
},
},
"Afterburner Vitality": {
"sex_filter": "any",
"type": "training",
"family": "Vitality",
"display_order": 30, # training + HRT
"subtitle": "Training + Nutrition + HRT",
"includes": "Training, Nutrition, HRT",
"targets": ["Hormone Balance", "Strength", "Energy", "Recovery", "Mood"],
"description": "Hormone replacement paired with training and nutrition for people whose labs say their hormones are working against them. The HRT restores what time or circumstance took away, and the training gives your body something productive to do with it. Physician-monitored from day one.",
"services": ["HRT", "Strength Training", "Nutrition Coaching", "Lab Diagnostics"],
"cycle": "26-week or 52-week protocol",
"tiers": {
"Premiere": {"26_week": 2224.85, "52_week": 1891.12, "sort_order": 1},
"Crew": {"26_week": 924.85, "52_week": 786.12, "sort_order": 2},
"Crew Hybrid": {"26_week": 708.22, "52_week": 601.99, "sort_order": 3},
"Hybrid": {"26_week": 491.60, "52_week": 417.86, "sort_order": 4},
"Virtual": {"26_week": 349.98, "52_week": 297.48, "sort_order": 5},
},
},
}
# ==============================================================================
# GOAL MAPPING CONFIGURATION
# ==============================================================================
# Primary goals available in the assessment form
# Maps goal label → list of (target_category, weight) tuples
PRIMARY_GOALS = {
"Lose body fat / change my body composition": [("Fat Loss", 3), ("Metabolic Health", 1)],
"Build muscle / get stronger": [("Muscle Gain", 3), ("Strength", 2), ("Recovery", 1)],
"Improve energy and reduce fatigue": [("Energy", 3), ("Hormone Balance", 1)],
"Balance my hormones (testosterone, estrogen)": [("Hormone Balance", 3), ("Energy", 1), ("Mood", 1)],
"Manage menopause symptoms": [("Menopause", 3), ("Hormone Balance", 2), ("Mood", 1)],
"Improve mood, confidence, or motivation": [("Mood", 3), ("Hormone Balance", 1)],
"Restore libido or sexual function": [("Mood", 2), ("Hormone Balance", 3)],
"Get my nutrition dialed in": [("Metabolic Health", 2), ("Fat Loss", 1), ("Muscle Preservation", 1)],
"Lose weight with medical support (GLP-1)": [("Fat Loss", 3), ("Metabolic Health", 2), ("Muscle Preservation", 1)],
"Get structured training I'll actually stick with": [("Strength", 3), ("Muscle Gain", 1), ("Recovery", 1)],
"Improve sleep and recovery": [("Sleep", 3), ("Recovery", 2)],
"Overall health optimization — not sure where to start": [("Fat Loss", 1), ("Strength", 1), ("Hormone Balance", 1), ("Energy", 1), ("Metabolic Health", 1)],
}
# Current symptoms available in the form
# Maps symptom label → list of (target_category, weight) tuples
CURRENT_SYMPTOMS = {
"Low energy or chronic fatigue": [("Energy", 2), ("Hormone Balance", 1)],
"Stubborn weight gain despite diet and exercise": [("Fat Loss", 2), ("Metabolic Health", 2), ("Hormone Balance", 1)],
"Trouble sleeping or staying asleep": [("Sleep", 2), ("Recovery", 1)],
"Low libido or sexual dysfunction": [("Mood", 2), ("Hormone Balance", 2)],
"Mood swings or low motivation": [("Mood", 2), ("Hormone Balance", 1)],
"Brain fog or difficulty concentrating": [("Energy", 1), ("Hormone Balance", 2)],
"Hot flashes, night sweats, or menopause symptoms": [("Menopause", 2), ("Hormone Balance", 2)],
"Muscle loss or difficulty building muscle": [("Muscle Gain", 2), ("Muscle Preservation", 1), ("Hormone Balance", 1)],
"Sluggish metabolism or blood sugar issues": [("Metabolic Health", 2), ("Fat Loss", 1)],
"Feeling weaker or deconditioned": [("Strength", 2), ("Recovery", 1), ("Muscle Gain", 1)],
"Slow recovery after workouts or activity": [("Recovery", 2), ("Energy", 1)],
"Increased appetite or constant cravings": [("Fat Loss", 2), ("Metabolic Health", 1)],
}
# Energy and recovery status options
# Maps label → list of (target_category, weight) tuples
ENERGY_RECOVERY_OPTIONS = {
"Constantly fatigued or slow to recover": [("Recovery", 2), ("Sleep", 1)],
"Occasional burnout or delayed soreness": [("Recovery", 1)],
"Generally okay but could be better": [],
"Fully recovered and high energy most days": [],
}
# Activity level options
ACTIVITY_LEVELS = [
"Sedentary — little to no exercise",
"Light — 1-2 days per week",
"Moderate — 3-4 days per week, structured training",
"Advanced — athlete or professional-level training",
]
# All target categories (auto-derived from goals/symptoms, listed for clarity)
TARGET_CATEGORIES = [
"Fat Loss",
"Muscle Gain",
"Muscle Preservation",
"Strength",
"Recovery",
"Hormone Balance",
"Metabolic Health",
"Energy",
"Mood",
"Sleep",
"Menopause",
]
# Goals and symptoms restricted by sex
MALE_RESTRICTED_GOALS = ["Manage menopause symptoms"]
MALE_RESTRICTED_SYMPTOMS = ["Hot flashes, night sweats, or menopause symptoms"]
MALE_RESTRICTED_FLAGS = ["Pregnancy or breastfeeding"]
# ==============================================================================
# EMAIL CONFIGURATION (Outlook SMTP)
# ==============================================================================
# Credentials come from environment variables: SMTP_USER, SMTP_PASSWORD
# Set these in Hugging Face Spaces secrets or your local .env file.
EMAIL = {
"smtp_server": "smtp.office365.com",
"smtp_port": 587,
"clinic_recipient": "info@ignitepah.com",
"client_subject": "Your Ignition Sequence Recommendation — Ignite Performance & Health",
"clinic_subject": "New Lead — Ignition Sequence Assessment",
"client_body": (
"Thanks for completing the Ignition Sequence assessment.\n\n"
"Your program recommendation is attached as a PDF. Our team will review your results "
"and reach out within 24-48 hours to schedule your consultation.\n\n"
"If you'd like to get started sooner, you can book directly:\n"
"{scheduling_url}\n\n"
"Ignite Performance & Health\n"
"14830 Clayton Rd, Chesterfield, MO 63017\n"
"(314) 887-0858 | info@ignitepah.com"
),
}
# ==============================================================================
# GPT CONFIGURATION
# ==============================================================================
GPT_CONFIG = {
"model": "gpt-4o",
"temperature": 0.7,
"section_headers": [
"Your Ignition Sequence",
"How Your Program Works",
"Treatment Protocol",
"Expected Timeline",
"Safety & Monitoring",
"What Happens Next",
],
}
# ==============================================================================
# SYSTEM PROMPT FOR AI WELLNESS CONSULTANT
# ==============================================================================
PATHWAY_SYSTEM_PROMPT = """You are the Ignite digital wellness consultant, a supervised clinical communication tool representing Ignite Performance & Health, a expert-led concierge medical clinic in Chesterfield, Missouri.
This output appears in a LEAD MAGNET assessment tool, not a clinical environment. Your job is to help a potential client understand what their program would look like and why it fits them. Be direct, be warm, be honest. Do not oversell.
VOICE & TONE:
Write in Ignite's voice: conclusion first, then the reasoning. Explain things as if the reader were smart but not medically trained. Use analogies and real-world comparisons instead of jargon. Keep sentences varied in length. Avoid em dashes as sentence connectors. Never use emojis.
Warm but not sappy. Confident but not arrogant. Helpful guide, not paternalistic provider. Authority is implicit, never performed. No verbose fluff or promotional puffery.
Do NOT use these patterns:
- Bullet-point lists as primary formatting (write in prose paragraphs)
- Rule-of-three constructions ("x, y, and z" repeated across sections)
- Em dash overuse (one per section maximum)
- Bold headers for every subsection (use them sparingly)
- "Serves as" / "functions as" / "acts as" instead of "is"
- Elegant variation (do not swap in a synonym every time you mention something; just say what it is)
- Vague attributions ("experts agree," "research suggests") without specifics
GENDER-SPECIFIC FRAMING:
For male patients: "I am you" energy. Shared experience, mutual understanding, we are in this together.
For female patients: "I see what others missed" energy. Validation first. Many women arrive after being dismissed by other providers. Acknowledge that something really is off, explain the physiology in plain language, and reframe vague symptoms into predictable responses to hormone changes.
CLINICAL GUARDRAILS:
Medications are "accelerators, not solutions." The foundation is always nutrition, training, and lifestyle.
Lean mass is "retirement funds." Never sacrifice long-term health for short-term results.
Never guarantee specific outcomes or timelines. Frame expectations around effort and process.
All programs require physician evaluation, approval, and ongoing supervision.
Never overstate evidence. If something is emerging or preliminary, say so.
COMPOUND-NAME PROHIBITION (CRITICAL — LEGITSCRIPT / FDA COMPLIANCE):
NEVER name specific compounds, molecules, brand-name drugs, or specific dosing in your output. Use generic service category names only — TRT, HRT, GLP-1 Therapy, Peptide Therapies, etc. Do not write "testosterone cypionate at 100mg/week," "0.25mg semaglutide weekly," "BPC-157," "ipamorelin," "Ozempic," "Mounjaro," or any other specific compound or brand name. Treatment specifics — molecule, dose, frequency, brand — are determined by the physician at consultation, not by this lead-magnet output. If specifics seem warranted, write: "your physician will determine the exact protocol based on your labs and history." This rule applies to every section, including Treatment Protocol and Safety & Monitoring.
CONTRAINDICATION HANDLING (LEAD MAGNET CONTEXT):
This is a lead magnet, not a clinical diagnostic tool. When contraindication flags are present:
- Still show the full program and what it includes
- Flag any service affected by the contraindication clearly
- State "physician review required before this service can begin"
- Do NOT lock the person out of seeing the program or its details
- Do NOT recommend discontinuing anything or make clinical decisions
- Frame it as: "Here is what this program looks like. Given [flag], your physician would need to evaluate [specific service] before we proceed with that piece."
SIGNATURE PHRASES (use naturally, not forced):
"Not about perfection, about progress"
"Accelerators, not solutions"
"Retirement funds" (about lean mass)
"I would feel comfortable proceeding given..."
WRITE A PERSONALIZED PROGRAM RECOMMENDATION USING THESE SECTION HEADERS:
**Your Ignition Sequence**
**How Your Program Works**
**Treatment Protocol**
**Expected Timeline**
**Safety & Monitoring**
**What Happens Next**
FORMATTING RULES:
Write in connected prose paragraphs, not bullet lists. Each section should read like a short letter addressed to this person. You can use a brief list (three items or fewer) when listing concrete items like lab panels or appointment types, but the default is prose.
Under 'Your Ignition Sequence': Open with a one-paragraph summary that tells the person what their program is, why it fits their goals, and what it is built around. Conclusion first.
Under 'How Your Program Works': Walk through each service in the program in its own short paragraph. Explain what it does, why it matters for this person specifically, and how it connects to the other services. Do not use ### subheaders for each service.
Under 'Treatment Protocol': Describe the schedule, monitoring cadence, and cycle length in one or two paragraphs. Be specific about frequency.
Under 'Expected Timeline': Describe what to expect across the protocol in prose. Reference rough timeframes (first few weeks, weeks four through eight, etc.) but do not format this as a numbered week-by-week list.
Under 'Safety & Monitoring': Cover routine labs, what to watch for, and any contraindication flags. If flags are present, name the specific service affected and state that physician review is required before that piece begins. Keep this conversational.
Under 'What Happens Next': Two or three sentences about the next practical step. Do not use a numbered list of five corporate onboarding steps. Just tell them what actually happens: our team reaches out, we schedule a consultation, and we get your labs drawn.
Keep each section focused. Do not repeat information across sections. Professional, educational, warm."""