{
  "about": "Every speech-generator run behind https://wedgenie.ai/blog/wedding-speech-examples. Each input ran once per prompt version, through the same endpoint the tool pages call (model claude-sonnet-5-5). Words are counted without a leading title line, [pause] cues and speaker labels.",
  "runs": [
    {
      "name": "first run",
      "rules": "no clichés (\"Webster's dictionary defines...\"), no roast content about exes/money/family conflict, nothing in the no-go topics, no invented memories beyond reasonable color.",
      "drafts": [
        {
          "example": "A",
          "role": "bride",
          "toolPage": "/tools/bride-speech-generator",
          "apiKind": "bride",
          "plantedTrap": "a former engagement inside story 1, and no no-go field to lean on; also: is 'over 300' kept as given",
          "generatedAt": "2026-10-18T12:12:13.509Z",
          "inputs": {
            "names": "Nadia (me) & Owen",
            "relationship": "I'm the bride. Owen and I met five years ago at a Saturday pottery class. I'm speaking after Owen and want to thank both our families.",
            "stories": [
              "I almost skipped that first pottery class because I had just called off an engagement to someone else and didn't want to meet anyone. Owen's first bowl collapsed on the wheel and he laughed so hard the teacher had to stop the class. I kept his next bowl, the lopsided one; it still holds our keys by the front door.",
              "I work night shifts as an ER nurse. For three years Owen has packed my lunch before every night shift and written a note on the lid. I have kept every lid; there are over 300.",
              "My mum Helen drove four hours with me to every dress fitting, and Owen's mum Grace taught me to make her lemon cake so I'd have one family recipe from his side."
            ],
            "tone": 3,
            "length_minutes": 2
          },
          "title": "Bride speech draft",
          "markdown": "**Bride's Speech**\n\nWell, Owen, you've gone and made that a hard act to follow. [pause] Luckily, I'm used to working under pressure. I'm Nadia, an ER nurse, and I'm the bride.\n\nFive years ago, I almost didn't come to a Saturday pottery class. I'd just called off an engagement, and the last thing I wanted was to meet anyone. [pause] But I went. And across the room, a man's first bowl collapsed on the wheel, and he laughed so hard the teacher had to stop the class.\n\nI kept his next bowl, the lopsided one. It's by our front door right now, holding our keys. [pause] Some people say marriage is about finding someone perfect. I found someone who made a wobbly bowl and made it useful.\n\nOwen, for three years you've packed my lunch before every night shift and written a note on the lid. I've kept every one. There are over three hundred. [pause] Some nights, the lid was the best part of a very long shift.\n\nTo our families: thank you. Mum, Helen, you drove four hours with me to every single dress fitting. Grace, you taught me your lemon cake so I'd have one family recipe from Owen's side. I'm told it's a sacred trust. [pause] I promise to make it, and to only occasionally let it sink in the middle.\n\nSo, please raise a glass. To Owen, who laughs when things collapse, and builds something good anyway. [pause]\n\nTo love that holds the keys, and to every lid still to come. Cheers!",
          "words": 249,
          "minutesAt130wpm": 1.92
        },
        {
          "example": "B",
          "role": "groom",
          "toolPage": "/tools/groom-speech-generator",
          "apiKind": "groom",
          "plantedTrap": "a banned topic (the budget) and family friction inside story 2",
          "generatedAt": "2026-10-18T12:12:37.314Z",
          "inputs": {
            "names": "Nadia & Owen (me)",
            "relationship": "I'm the groom. I want to thank Nadia's parents Helen and Paul, my parents Grace and David, and everyone who travelled.",
            "stories": [
              "Nadia's dad Paul taught me cribbage the first Christmas I met the family. I lost 31 games in a row. He kept the scorecard and gave it to me framed last month, with the one game I won circled.",
              "We argued for a month about the wedding budget and the guest list, and Nadia won both. It cost her parents more than they planned.",
              "Nadia works ER night shifts. The first time she came home after a shift where she lost a patient, she still asked how my day was before she sat down."
            ],
            "tone": 3,
            "length_minutes": 2,
            "no_go_topics": "money, the budget, what anything cost"
          },
          "title": "Groom speech draft",
          "markdown": "# Groom Speech\n\nGood evening, everyone. I'm Owen, and I'm the guy who lost 31 games of cribbage in a row to my future father-in-law. [pause]\n\nFirst, thank yous. Helen and Paul, thank you for raising the extraordinary woman I just married. Mum and Dad, Grace and David, thank you for everything that got me to this day. And to everyone who travelled to be here: we noticed, and we're so grateful.\n\nNadia and I argued for a month about the guest list. She won. Looking around, I'm very glad she did. [pause]\n\nNow, Paul. My first Christmas with the family, he taught me cribbage. I lost 31 games straight, and he kept the scorecard the whole time. Last month, he gave it to me framed, with the one game I won circled. [pause] Thirty-one losses on paper, and he's made the one win the headline. That's the family I married into.\n\nAnd it's exactly who Nadia is. She works night shifts in the ER, where she carries things most of us can't imagine. The first time she came home after losing a patient, I was ready to take care of her. Instead, before she even sat down, she asked, \"How was your day?\" [pause] That's Nadia. After the hardest night, she still makes room for me.\n\nPaul circles the win. Nadia asks about my day. Both of them remind me that love isn't about keeping score.\n\nNadia, I will spend my life trying to be as kind to you as you are to everyone else. I'll probably still lose at cribbage, but I've never felt like I was winning more.\n\nEveryone, please raise your glasses: to Nadia, to love, and to always circling the wins. [pause] Cheers!",
          "words": 280,
          "minutesAt130wpm": 2.15
        },
        {
          "example": "C",
          "role": "mother of the bride",
          "toolPage": "/tools/father-of-the-bride-speech-generator",
          "apiKind": "father",
          "plantedTrap": "an unexplained inside joke ('the Tuesday incident'); our prompt has no rule against inside jokes",
          "generatedAt": "2026-10-18T12:12:58.943Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Helen, Nadia's mum",
            "relationship": "mother of the bride; Nadia's dad Paul and I are hosting",
            "stories": [
              "When Nadia was nine she ran a lending library out of her bedroom, with index cards, and charged her little sister Leila a penny a day in late fees. She still keeps a list for everything.",
              "The first Christmas Owen came, he asked Paul to teach him cribbage and lost 31 games in a row without once asking to stop.",
              "After her first night shift as a nurse Nadia called me and said 'I think I'm good at this.' I never heard her that sure of anything again until she told me about Owen. And of course there was the Tuesday incident, which Nadia will understand."
            ],
            "tone": 2,
            "length_minutes": 2,
            "no_go_topics": "grandchildren"
          },
          "title": "Parent speech draft",
          "markdown": "# Mother of the Bride Speech\n\nWhen Nadia was nine, she ran a lending library out of her bedroom. Index cards, a checkout system, and a late fee of one penny a day, charged to her little sister Leila. [pause] Leila, I believe you still owe her about forty dollars.\n\nI'm Helen, Nadia's mum, and Paul and I are so happy to welcome you all here today.\n\nThat little librarian grew into a woman who still keeps a list for everything. She is careful, she is thorough, and she doesn't say she's sure unless she is.\n\nI only remember her sounding truly sure twice. The first was after her first night shift as a nurse. She called me and said, \"I think I'm good at this.\" [pause] She was right, of course. The second time was when she began telling me about Owen.\n\nThen Owen came for his first Christmas, and he asked Paul to teach him cribbage. Owen lost thirty-one games in a row. Thirty-one. And not once did he ask to stop. [pause] Paul has never been so fond of anyone. Owen, you didn't just learn a card game that week. You showed us you'd keep showing up, cheerfully, even when the score isn't in your favour.\n\nAnd Owen, we've also seen how you handle the unexpected. I'll only say the words \"Tuesday incident,\" and Nadia will know exactly what I mean. [pause] You were wonderful.\n\nNadia, my darling, you've always kept careful records. Today, I hope you'll put down the pen and simply enjoy this.\n\nPlease raise your glasses. To Nadia and Owen: may your days be full of laughter, may your losses be gracious, and may you always know you've found the right person. [pause] To Nadia and Owen!",
          "words": 282,
          "minutesAt130wpm": 2.17
        },
        {
          "example": "D",
          "role": "mother of the groom",
          "toolPage": "/tools/father-of-the-bride-speech-generator",
          "apiKind": "father",
          "plantedTrap": "the ex, framed sweetly (story 4); also: does Nadia get real weight, not only Owen",
          "generatedAt": "2026-10-18T12:13:21.360Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Grace, Owen's mum",
            "relationship": "mother of the groom; Owen is my younger son",
            "stories": [
              "At seven Owen took apart our kitchen radio to see where the voices came from, put it back together, and it worked, with two screws left over. He teaches chemistry now and still can't explain the screws.",
              "The second time Nadia visited she asked for my lemon cake recipe, and she has baked it for every family birthday since, better than I do.",
              "Owen packs Nadia a lunch with a note on the lid before every one of her night shifts. I taught him to cook. I did not teach him that.",
              "After his first girlfriend left him at university he told me he would never get married. I'm so glad he was wrong."
            ],
            "tone": 2,
            "length_minutes": 3
          },
          "title": "Parent speech draft",
          "markdown": "# Mother of the Groom Speech\n\nWhen Owen was seven, he took apart our kitchen radio because he wanted to know where the voices came from. [pause] I came home to find it in a hundred pieces across the table. I assumed that was the end of the radio.\n\nBut he put it back together, and it worked. It also came with two screws left over.\n\nFor those of you who don't know me, I'm Grace, Owen's mum. Owen is my younger son, and tonight I get to tell you what I've learned from watching him. He now teaches chemistry, and he still can't explain those screws. [pause] I've decided they're a reminder that the best things don't need to be perfect to work.\n\nOwen has always wanted to understand how things fit together. So when he brought Nadia home, I watched closely.\n\nThe second time she visited, she asked for my lemon cake recipe. The *second* visit. I knew right then she was either very polite or very smart. She has baked that cake for every family birthday since, and I'll say this quietly, because I'll deny it later: she bakes it better than I do. [pause]\n\nBut what really told me about the two of them is something small. Before every one of Nadia's night shifts, Owen packs her a lunch and tucks a note under the lid. I taught that boy to cook. [pause] I did *not* teach him that. He worked that out for himself, because he loves her, and he wants her to open her lunch at 3 a.m. and know someone is thinking of her.\n\nYears ago, after a heartbreak at university, Owen told me he would never get married. He was very sure. [pause] Nadia, Owen, I have never been so glad to hear my son be wrong.\n\nNadia, you've made our family bigger and brighter, and you've made my son even more himself. Thank you for that.\n\nAnd Owen, my clever, curious boy, you took the radio apart to find where the voices came from. Tonight I think you've found the one voice you most want to listen to for the rest of your life.\n\nSo please, raise your glasses.\n\nTo Nadia and Owen: may your home always be full of good cake, kind notes, and a few leftover screws that nobody ever worries about. [pause]\n\nTo Nadia and Owen!",
          "words": 386,
          "minutesAt130wpm": 2.97
        },
        {
          "example": "E",
          "role": "sister of the bride",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "drinking + the ex + an embarrassing moment (story 2), and no no-go field; drinking is not in our prompt's rules",
          "generatedAt": "2026-10-18T12:13:47.083Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Leila, Nadia's younger sister",
            "relationship": "bride's younger sister by three years; not in the wedding party; speaking after our parents",
            "stories": [
              "Nadia ran a lending library out of her bedroom when she was nine and charged me a penny a day in late fees. By her count I still owe her four dollars.",
              "At Nadia's bachelorette in Nashville she had too many margaritas and cried to the Uber driver about her ex.",
              "The first time Owen met me he asked what Nadia was like as a kid, and he wrote the answers down."
            ],
            "tone": 4,
            "length_minutes": 2
          },
          "title": "Wedding toast draft",
          "markdown": "Hi everyone, I'm Leila, Nadia's younger sister. By three years, which she'd want me to mention, because she's been keeping track.\n\n[pause]\n\nShe's always kept track. When Nadia was nine, she ran a lending library out of her bedroom. Real books, real due dates, and late fees of a penny a day. I was a frequent offender. By her records, I still owe her four dollars. [pause] Nadia, I'd like to dispute the interest.\n\nBut here's what I understand now: that library was never really about the pennies. Nadia pays attention. She knew which book I'd read six times and which one I'd pretend I hadn't finished. She keeps a record of the people she loves.\n\nSo you can imagine how I felt the first time I met Owen. He sat down and asked me, \"What was Nadia like as a kid?\" And I thought, *nice, a polite question.* Then I started answering, and he started writing it down. [pause] Actual notes. Owen was taking notes on my sister.\n\nThat's when I knew. Nadia has spent her whole life carefully keeping track of everyone else, and now she's found someone who's keeping track of her. Who wants the whole story, including the chapters he missed, and treasures every page.\n\nOwen, welcome to the family. You're already the best-read person in it.\n\n[pause]\n\nSo please raise your glasses. To Nadia and Owen: may your love never be overdue, may your shelves always be full, and may every late fee be forgiven. [pause]\n\nTo Nadia and Owen!",
          "words": 250,
          "minutesAt130wpm": 1.92
        },
        {
          "example": "E2",
          "role": "brother of the groom",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "a story that is only a pointer to the no-go topic ('Our stag weekend in Las Vegas'), at the funniest tone",
          "generatedAt": "2026-10-18T12:14:09.660Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Callum, Owen's older brother",
            "relationship": "groom's older brother, not in the wedding party",
            "stories": [
              "When Owen was fifteen he tutored me through chemistry and never told anyone I was the older one.",
              "Our stag weekend in Las Vegas"
            ],
            "tone": 5,
            "length_minutes": 1,
            "no_go_topics": "the stag weekend, Las Vegas, gambling"
          },
          "title": "Wedding toast draft",
          "markdown": "**Good evening, everyone.** [pause]\n\nQuick show of hands: who's been tutored by a younger sibling? [pause] Just me? Great.\n\nI'm Callum, Owen's older brother. *Older.* Remember that, because Owen never mentioned it.\n\nWhen he was fifteen, he tutored me through chemistry. [pause] He explained everything patiently, never made me feel behind, and never told a soul who the big brother was. I passed, and my dignity survived.\n\nThat's Owen. He'll quietly carry you and let you keep the credit.\n\nNadia, you've got that guy for life now. [pause] I'd say good luck, but you clearly don't need it. You picked the smartest Owen in the room, and I should know.\n\nSo, glass up, everyone. [pause]\n\nTo Nadia and Owen: may your chemistry never need a tutor. Cheers!",
          "words": 122,
          "minutesAt130wpm": 0.94
        },
        {
          "example": "F",
          "role": "welcome speech (the couple)",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "none planted; checks: guests thanked, nothing added (no extra countries, guests or places), at most 1:15",
          "generatedAt": "2026-10-18T12:15:17.763Z",
          "inputs": {
            "names": "Nadia & Owen (both of us speaking)",
            "relationship": "We're the couple, giving a one-minute welcome together as the reception starts, before dinner. We paid for the wedding ourselves and we are hosting.",
            "stories": [
              "Guests came from four countries; Owen's brother Callum flew in from Singapore and landed this morning.",
              "We met at a pottery class, and every table centrepiece is a bowl one of us made; the lopsided ones are Owen's."
            ],
            "tone": 2,
            "length_minutes": 1
          },
          "title": "Wedding toast draft",
          "markdown": "**Nadia:** Good evening, everyone, and welcome. [pause] I'm Nadia.\n\n**Owen:** And I'm Owen. We're your hosts tonight, so you're stuck with us.\n\n**Nadia:** You've come from four countries to be here. Owen's brother Callum landed from Singapore this morning. Callum, thank you. [pause] Please stay awake until dessert.\n\n**Owen:** We met at a pottery class, and every centrepiece on your table is a bowl one of us made.\n\n**Nadia:** The lopsided ones are Owen's.\n\n**Owen:** I call them \"characterful.\" [pause]\n\n**Nadia:** But a bowl is only really good for one thing: holding what matters.\n\n**Owen:** And tonight, that's you.\n\n**Both:** Please raise a glass. [pause] To the people who fill our bowl. Cheers!",
          "words": 100,
          "minutesAt130wpm": 0.77
        },
        {
          "example": "G",
          "role": "two mothers, one joint toast",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "two speakers in one draft: both voices present, and no singular 'mother of the bride'",
          "generatedAt": "2026-10-18T12:15:38.814Z",
          "inputs": {
            "names": "Sam & Aisha; we're Ruth and Carmen, Sam's mums, speaking together",
            "relationship": "the bride's two mothers, one joint toast, Ruth speaks first and Carmen gives the toast",
            "stories": [
              "When Sam was six she organised a protest against bedtime in our living room, with handmade signs.",
              "The first time Aisha came to Sunday lunch she stayed to wash up with both of us, and she has every Sunday since."
            ],
            "tone": 2,
            "length_minutes": 1
          },
          "title": "Wedding toast draft",
          "markdown": "**Ruth:** Good evening, everyone. We're Ruth and Carmen, Sam's mums. [pause]\n\nWhen Sam was six, she organised a protest against bedtime. In our living room. With handmade signs. [pause] It was very well run, and she's been standing up for what matters to her ever since.\n\n**Carmen:** Which brings us to Aisha. The first time she came to Sunday lunch, she stayed to wash up with both of us. She has been there every Sunday since. [pause]\n\nSam, you've always known what's worth showing up for. Aisha, you showed up, and you stayed. We couldn't be happier.\n\nSo please raise your glasses. [pause] To Sam and Aisha: may your table always be full, and your Sundays always be long.\n\n**Both:** To Sam and Aisha!",
          "words": 117,
          "minutesAt130wpm": 0.9
        }
      ]
    },
    {
      "name": "interim run (the four inputs that failed, first version of the new rules; one draft stopped mid-sentence at the output cap, fixed the same day)",
      "rules": "no clichés (\"Webster's dictionary defines...\", \"For those of you who don't know me\"); never mention an ex, a former engagement or any past relationship, not even fondly or as the backstory of how they met: drop that part and keep the rest of the story; no roast content about money or family conflict; no inside jokes the room can't follow: if a detail only makes sense to one person, leave it out; nothing in the no-go topics; never change a fact or number from the inputs, and no invented memories beyond reasonable color.",
      "drafts": [
        {
          "example": "A",
          "role": "bride",
          "toolPage": "/tools/bride-speech-generator",
          "apiKind": "bride",
          "plantedTrap": "a former engagement inside story 1, and no no-go field to lean on; also: is 'over 300' kept as given",
          "generatedAt": "2026-10-18T12:18:45.951Z",
          "inputs": {
            "names": "Nadia (me) & Owen",
            "relationship": "I'm the bride. Owen and I met five years ago at a Saturday pottery class. I'm speaking after Owen and want to thank both our families.",
            "stories": [
              "I almost skipped that first pottery class because I had just called off an engagement to someone else and didn't want to meet anyone. Owen's first bowl collapsed on the wheel and he laughed so hard the teacher had to stop the class. I kept his next bowl, the lopsided one; it still holds our keys by the front door.",
              "I work night shifts as an ER nurse. For three years Owen has packed my lunch before every night shift and written a note on the lid. I have kept every lid; there are over 300.",
              "My mum Helen drove four hours with me to every dress fitting, and Owen's mum Grace taught me to make her lemon cake so I'd have one family recipe from his side."
            ],
            "tone": 3,
            "length_minutes": 2
          },
          "title": "Bride speech draft",
          "markdown": "# Bride Speech\n\nOwen just spoke, which means I have to follow a man who once made a teacher stop an entire class because he couldn't breathe from laughing. [pause]\n\nI'm Nadia. I'm an ER nurse, and I'm used to staying calm in a crisis. Today is testing that.\n\nFive years ago, I almost didn't go to a Saturday pottery class. I'm very glad I did. Owen's first bowl collapsed on the wheel, and he laughed so hard the teacher had to pause everything. [pause] I kept his *next* bowl, the lopsided one. It sits by our front door and holds our keys. It's not elegant, but it has never once let us down.\n\nThat's Owen. He's not perfect, he's *dependable*, which is better.\n\nFor three years, I've worked night shifts, and before every one, Owen packs my lunch and writes a note on the lid. I have kept every single lid. There are over 300. [pause] On the hardest nights, when the ER is relentless, I know there's a small piece of home waiting in the break room.\n\nNone of this happens without our families. Mum, Helen, you drove four hours with me to *every* dress fitting. Every one. Thank you for always being in my corner. And Grace, you taught me your lemon cake so I'd have one family recipe from your side. You gave me a piece of your home before I even had the ring. [pause]\n\nOwen, you make things that hold: bowls, notes, me.\n\nSo, everyone, please raise your glass. [pause] To Owen, to our families, and to lopsided bowls and 300 lids, and to a life that holds.\n\nCheers!",
          "words": 267,
          "minutesAt130wpm": 2.05
        },
        {
          "example": "C",
          "role": "mother of the bride",
          "toolPage": "/tools/father-of-the-bride-speech-generator",
          "apiKind": "father",
          "plantedTrap": "an unexplained inside joke ('the Tuesday incident'); our prompt has no rule against inside jokes",
          "generatedAt": "2026-10-18T12:19:06.702Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Helen, Nadia's mum",
            "relationship": "mother of the bride; Nadia's dad Paul and I are hosting",
            "stories": [
              "When Nadia was nine she ran a lending library out of her bedroom, with index cards, and charged her little sister Leila a penny a day in late fees. She still keeps a list for everything.",
              "The first Christmas Owen came, he asked Paul to teach him cribbage and lost 31 games in a row without once asking to stop.",
              "After her first night shift as a nurse Nadia called me and said 'I think I'm good at this.' I never heard her that sure of anything again until she told me about Owen. And of course there was the Tuesday incident, which Nadia will understand."
            ],
            "tone": 2,
            "length_minutes": 2,
            "no_go_topics": "grandchildren"
          },
          "title": "Parent speech draft",
          "markdown": "# Mother of the Bride Speech\n\nWhen Nadia was nine, she opened a lending library in her bedroom. [pause] Index cards, a checkout system, and late fees: one penny a day, charged to her little sister Leila. Leila, I'm told the debt is still technically open.\n\nI'm Helen, Nadia's mum, and Paul and I are so glad to have you all here.\n\nThat library taught me something about our daughter. Nadia keeps track. She keeps a list for everything, because she cares about getting things right, and about the people she's looking after.\n\nSo when she called me after her first night shift as a nurse and said, \"Mum, I think I'm good at this,\" I knew it was true. [pause] She was certain, and she was right. I didn't hear that kind of certainty from her again until the day she told me about Owen.\n\nOwen, here's what I knew about you early. The first Christmas you came, you asked Paul to teach you cribbage. Then you lost thirty-one games in a row. [pause] Thirty-one. And not once did you ask to stop. Paul still talks about it fondly. He has never been so happy to win.\n\nBut that's the thing. You kept sitting down at the table, with good humour and real patience, for the people you love. That's exactly what Nadia needs, and exactly what she deserves.\n\nNadia, you've always known how to keep a careful record. Today, add the best entry yet.\n\nEveryone, please raise your glass: to Nadia and Owen. May every game be played together, and may you always be glad to sit down at the table.\n\nTo Nadia and Owen!",
          "words": 268,
          "minutesAt130wpm": 2.06
        },
        {
          "example": "D",
          "role": "mother of the groom",
          "toolPage": "/tools/father-of-the-bride-speech-generator",
          "apiKind": "father",
          "plantedTrap": "the ex, framed sweetly (story 4); also: does Nadia get real weight, not only Owen",
          "generatedAt": "2026-10-18T12:19:30.781Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Grace, Owen's mum",
            "relationship": "mother of the groom; Owen is my younger son",
            "stories": [
              "At seven Owen took apart our kitchen radio to see where the voices came from, put it back together, and it worked, with two screws left over. He teaches chemistry now and still can't explain the screws.",
              "The second time Nadia visited she asked for my lemon cake recipe, and she has baked it for every family birthday since, better than I do.",
              "Owen packs Nadia a lunch with a note on the lid before every one of her night shifts. I taught him to cook. I did not teach him that.",
              "After his first girlfriend left him at university he told me he would never get married. I'm so glad he was wrong."
            ],
            "tone": 2,
            "length_minutes": 3
          },
          "title": "Parent speech draft",
          "markdown": "**Good evening, everyone.**\n\nWhen Owen was seven, he took our kitchen radio apart to find out where the voices came from. [pause] I came home to a table covered in tiny parts and a very serious little boy. I assumed that was the end of the radio.\n\nBut he put it back together, and it worked. It just had two screws left over.\n\nI'm Grace, Owen's mum, and I've had a front-row seat to this man's curiosity his whole life. He teaches chemistry now, and he still can't explain those screws. [pause] I've stopped asking.\n\nOwen has always wanted to understand how things work. What he couldn't have known is that the most important thing he'd ever figure out wasn't a radio. It was how to love someone well.\n\nYears ago, Owen told me he would never get married. He said it very firmly, the way he says most things. [pause] I'm so glad he was wrong.\n\nThen Nadia came along.\n\nThe second time she visited our home, she asked me for my lemon cake recipe. Now, any mother knows what that means. That is a woman planning to stay. [pause] She has baked that cake for every family birthday since, and I'll say it quietly, because it's a wedding: she bakes it better than I do.\n\nBut what really tells me who she is, and who he is with her, is something small. Before each of Nadia's night shifts, Owen packs her a lunch, and he writes a note on the lid. Every single time. [pause]\n\nI taught that boy to cook. I did not teach him that. He learned it himself, from loving her.\n\nNadia, you've made my son softer, happier, and somehow even more curious, because now he's trying to work out how he got so lucky. [pause] Don't worry, I can save him the trouble. He just did.\n\nWelcome to our family, love. You were already part of it. Today just makes it official.\n\nOwen, my darling boy, you took that radio apart and put it back together, and you've never been afraid to look closely at what matters. Look closely at her, every day, for the rest of your life. You'll never run out of wonderful things to find.\n\nSo, would everyone please raise a glass.\n\nTo Nadia and Owen: may your home always be full of good food, little notes, and love. And may you never worry about a few leftover screws, because the two of you fit together perfectly.\n\n**To Nadia and Owen!**",
          "words": 414,
          "minutesAt130wpm": 3.18
        },
        {
          "example": "E",
          "role": "sister of the bride",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "drinking + the ex + an embarrassing moment (story 2), and no no-go field; drinking is not in our prompt's rules",
          "generatedAt": "2026-10-18T12:20:00.533Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Leila, Nadia's younger sister",
            "relationship": "bride's younger sister by three years; not in the wedding party; speaking after our parents",
            "stories": [
              "Nadia ran a lending library out of her bedroom when she was nine and charged me a penny a day in late fees. By her count I still owe her four dollars.",
              "At Nadia's bachelorette in Nashville she had too many margaritas and cried to the Uber driver about her ex.",
              "The first time Owen met me he asked what Nadia was like as a kid, and he wrote the answers down."
            ],
            "tone": 4,
            "length_minutes": 2
          },
          "title": "Wedding toast draft",
          "markdown": "# Toast\n\nI owe my sister four dollars. [pause] That's not a figure of speech. It's a number Nadia has kept for years.\n\nI'm Leila, Nadia's younger sister, by three years, a fact she has always treated as a promotion.\n\nWhen Nadia was nine, she ran a lending library out of her bedroom. Real shelves, real books, and late fees: a penny a day. By her count, I still owe her four dollars. [pause] Nadia, I haven't forgotten. I'm just waiting for the interest to stop.\n\nThat's my sister. She keeps track of what matters to her, and she doesn't do anything halfway. I'm told that at her bachelorette in Nashville, she had a few too many margaritas and cried to the Uber driver. [pause] I don't know that man's name, but I'm sure he got the full Nadia experience: every feeling, out loud, with total commitment.\n\nWhich brings me to Owen.\n\nThe first time Owen met me, he asked what Nadia was like as a kid. I started talking, and he wrote the answers down. [pause] He wrote them *down*. Nobody had ever taken notes on my sister before. I thought, *oh, he's keeping the records now.*\n\nOwen, you've gotten the whole collection: the bookkeeper, the big feeler, the girl with the shelves. Nadia, you found someone who treats your story like it's worth",
          "words": 219,
          "minutesAt130wpm": 1.68
        }
      ]
    },
    {
      "name": "second run (printed on the page)",
      "rules": "no clichés (\"Webster's dictionary defines...\", \"For those of you who don't know me\"); never mention an ex, a former engagement or any past relationship, not even fondly or as the backstory of how they met: leave that detail out, and keep the rest of the story only if it still stands without it; no drinking, hangover or bachelor/bachelorette-party stories, and nothing that would embarrass either of them in front of their grandparents; no roast content about money or family conflict; no inside jokes the room can't follow: if a detail only makes sense to one person, leave it out; nothing in the no-go topics; never change a fact or number from the inputs, and no invented memories beyond reasonable color.",
      "drafts": [
        {
          "example": "A",
          "role": "bride",
          "toolPage": "/tools/bride-speech-generator",
          "apiKind": "bride",
          "plantedTrap": "a former engagement inside story 1, and no no-go field to lean on; also: is 'over 300' kept as given",
          "generatedAt": "2026-10-18T12:21:53.922Z",
          "inputs": {
            "names": "Nadia (me) & Owen",
            "relationship": "I'm the bride. Owen and I met five years ago at a Saturday pottery class. I'm speaking after Owen and want to thank both our families.",
            "stories": [
              "I almost skipped that first pottery class because I had just called off an engagement to someone else and didn't want to meet anyone. Owen's first bowl collapsed on the wheel and he laughed so hard the teacher had to stop the class. I kept his next bowl, the lopsided one; it still holds our keys by the front door.",
              "I work night shifts as an ER nurse. For three years Owen has packed my lunch before every night shift and written a note on the lid. I have kept every lid; there are over 300.",
              "My mum Helen drove four hours with me to every dress fitting, and Owen's mum Grace taught me to make her lemon cake so I'd have one family recipe from his side."
            ],
            "tone": 3,
            "length_minutes": 2
          },
          "title": "Bride speech draft",
          "markdown": "**Nadia's Speech**\n\nOwen, you've already made them laugh and cry, so I'll just try to keep up.\n\nI'm Nadia, an ER nurse, which means I'm used to people showing up on their worst day. Owen showed up on a Saturday at a pottery class, and somehow that was even better. [pause]\n\nFive years ago, Owen's very first bowl collapsed on the wheel. He laughed so hard that our teacher had to stop the whole class. I remember thinking, *who is this man, and why is he so delighted by failure?* [pause]\n\nHis next bowl came out lopsided. I kept it. It sits by our front door and holds our keys, and it has held them every day since.\n\nThat's Owen. He makes things that hold.\n\nFor three years, he has packed my lunch before every night shift and written a note on the lid. I've kept every one. There are over 300. [pause] Some are sweet, some are silly, and all of them have gotten me through 3 a.m.\n\nBut no one holds anything together alone. [pause] Mum, Helen, you drove four hours with me to every single dress fitting, and you never once complained about the playlist. Grace, you taught me your lemon cake, so I'd have one family recipe from Owen's side. I'll guard it with my life, and I promise to make it badly at least once so you can feel needed.\n\nTo both our families: thank you for holding us up until we could stand on our own.\n\nOwen, you're my lopsided bowl, my 300 notes, and my home. [pause]\n\nEveryone, please raise your glasses: to Owen, to love that holds, and to always being a little lopsided together. Cheers!",
          "words": 277,
          "minutesAt130wpm": 2.13
        },
        {
          "example": "B",
          "role": "groom",
          "toolPage": "/tools/groom-speech-generator",
          "apiKind": "groom",
          "plantedTrap": "a banned topic (the budget) and family friction inside story 2",
          "generatedAt": "2026-10-18T12:22:20.435Z",
          "inputs": {
            "names": "Nadia & Owen (me)",
            "relationship": "I'm the groom. I want to thank Nadia's parents Helen and Paul, my parents Grace and David, and everyone who travelled.",
            "stories": [
              "Nadia's dad Paul taught me cribbage the first Christmas I met the family. I lost 31 games in a row. He kept the scorecard and gave it to me framed last month, with the one game I won circled.",
              "We argued for a month about the wedding budget and the guest list, and Nadia won both. It cost her parents more than they planned.",
              "Nadia works ER night shifts. The first time she came home after a shift where she lost a patient, she still asked how my day was before she sat down."
            ],
            "tone": 3,
            "length_minutes": 2,
            "no_go_topics": "money, the budget, what anything cost"
          },
          "title": "Groom speech draft",
          "markdown": "# Groom Speech\n\nThirty-one. [pause] That's how many cribbage games I lost in a row to Paul, my now father-in-law, the first Christmas I met this family.\n\nI'm Owen, the groom. As of that Christmas, I was also a statistically proven disappointment. [pause]\n\nBefore I go further, thank you. Helen and Paul, thank you for raising Nadia, and for welcoming me in even after that scoreboard. Mum and Dad, Grace and David, thank you for everything that got me to this day. And to everyone who travelled to be here: you made this day bigger.\n\nNow, Paul kept the scorecard. Last month, he gave it to me, framed, with one game circled. The one I won. [pause] Thirty-one losses, and he made sure the first thing I'd see was the win. That's this family. They keep score, and then they circle the good part.\n\nNadia, you do the same thing every day.\n\nShe works night shifts in the ER. The first time she came home after losing a patient, I was ready to take care of her. I had tea ready. I had a speech ready. [pause] And before she even sat down, she asked, \"How was your day?\"\n\nAfter one of the hardest nights of her life, she still made room for mine. That's who you're marrying, everyone. Someone who sees the good in people, even when she's running on empty.\n\nNadia, I can't promise to win at cribbage. But I promise to spend my life circling your wins, and to always ask how your day was.\n\n[pause]\n\nPlease raise your glasses. To Nadia, and to circling the wins.",
          "words": 262,
          "minutesAt130wpm": 2.02
        },
        {
          "example": "C",
          "role": "mother of the bride",
          "toolPage": "/tools/father-of-the-bride-speech-generator",
          "apiKind": "father",
          "plantedTrap": "an unexplained inside joke ('the Tuesday incident'); our prompt has no rule against inside jokes",
          "generatedAt": "2026-10-18T12:22:42.608Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Helen, Nadia's mum",
            "relationship": "mother of the bride; Nadia's dad Paul and I are hosting",
            "stories": [
              "When Nadia was nine she ran a lending library out of her bedroom, with index cards, and charged her little sister Leila a penny a day in late fees. She still keeps a list for everything.",
              "The first Christmas Owen came, he asked Paul to teach him cribbage and lost 31 games in a row without once asking to stop.",
              "After her first night shift as a nurse Nadia called me and said 'I think I'm good at this.' I never heard her that sure of anything again until she told me about Owen. And of course there was the Tuesday incident, which Nadia will understand."
            ],
            "tone": 2,
            "length_minutes": 2,
            "no_go_topics": "grandchildren"
          },
          "title": "Parent speech draft",
          "markdown": "**Helen: Mother of the Bride**\n\nWhen Nadia was nine, she opened a lending library in her bedroom. [pause] Index cards, a checkout system, and late fees of a penny a day, charged to her little sister, Leila, who I believe is still paying them off.\n\nI'm Helen, Nadia's mum. Paul and I are so happy to have you all here tonight.\n\nThat library taught me something about our daughter. Nadia pays attention. She keeps track, she takes things seriously, and she still keeps a list for everything. [pause] But the things that matter most to her never needed a card.\n\nAfter her first night shift as a nurse, she called me and said, \"I think I'm good at this.\" She was certain, and she was right. I didn't hear that kind of certainty from her again until she told me about Owen.\n\nOwen, you won us over early. The first Christmas you came, you asked Paul to teach you cribbage. [pause] You lost thirty-one games in a row, and not once did you ask to stop. Paul has never been so fond of anyone.\n\nBut that's who you are: patient, good-humored, and willing to keep showing up. It's exactly what Nadia deserves. And Nadia, you've always known what you're good at and what's worth keeping. You chose well.\n\nOwen, welcome to our family. You've been part of it for a while now, and today it's just official.\n\nSo please raise your glasses. [pause] To Nadia and Owen: may your life together be full of good company, steady love, and a few wins along the way. Cheers!",
          "words": 257,
          "minutesAt130wpm": 1.98
        },
        {
          "example": "D",
          "role": "mother of the groom",
          "toolPage": "/tools/father-of-the-bride-speech-generator",
          "apiKind": "father",
          "plantedTrap": "the ex, framed sweetly (story 4); also: does Nadia get real weight, not only Owen",
          "generatedAt": "2026-10-18T12:23:09.024Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Grace, Owen's mum",
            "relationship": "mother of the groom; Owen is my younger son",
            "stories": [
              "At seven Owen took apart our kitchen radio to see where the voices came from, put it back together, and it worked, with two screws left over. He teaches chemistry now and still can't explain the screws.",
              "The second time Nadia visited she asked for my lemon cake recipe, and she has baked it for every family birthday since, better than I do.",
              "Owen packs Nadia a lunch with a note on the lid before every one of her night shifts. I taught him to cook. I did not teach him that.",
              "After his first girlfriend left him at university he told me he would never get married. I'm so glad he was wrong."
            ],
            "tone": 2,
            "length_minutes": 3
          },
          "title": "Parent speech draft",
          "markdown": "# Mother of the Groom Speech\n\nWhen Owen was seven, he took our kitchen radio apart because he wanted to know where the voices came from. [pause] I came in to find the table covered in tiny pieces, and my son looking very serious.\n\nI'm Grace, Owen's mum. And yes, he put that radio back together. It worked. It also had two screws left over. [pause] Owen teaches chemistry now, and he still can't explain those screws.\n\nBut that's him. He's curious about how things work, he's patient enough to put them right, and he cares about getting it right for the people around him.\n\nI saw that same care the second time Nadia visited our home. She asked me for my lemon cake recipe. [pause] I was already won over, because nobody asks for the recipe unless they mean to stay. She has baked that cake for every family birthday since, and I'll say it quietly, because I'm sure she knows: she bakes it better than I do. [pause] I've decided to be proud rather than competitive.\n\nNow, I taught Owen to cook. I'm happy to take credit for that. But before every one of Nadia's night shifts, he packs her a lunch with a note on the lid. [pause] I did not teach him that. That came from somewhere in him I only got to watch bloom. Nadia, when you open that lid in the middle of the night, you're getting the very best of him, and it's the most honest thing I know about my son.\n\nA while ago, Owen told me he would never get married. [pause] I have never been so glad to hear a person be wrong.\n\nNadia, you've made our family bigger and brighter. You ask the good questions, you laugh in the right places, and you've made my son even more himself. Thank you for that.\n\nOwen, my darling boy, you took that radio apart to find out where the voices came from. Today, you've found the voice you most want to listen to for the rest of your life. [pause] Don't ever lose it, and never stop leaving notes on the lid.\n\nSo, would everyone please raise a glass. To Nadia and Owen: may your life together be full of good food, kind words, and the occasional mystery screw. [pause]\n\nTo Nadia and Owen!",
          "words": 379,
          "minutesAt130wpm": 2.92
        },
        {
          "example": "E",
          "role": "sister of the bride",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "drinking + the ex + an embarrassing moment (story 2), and no no-go field; drinking is not in our prompt's rules",
          "generatedAt": "2026-10-18T12:23:34.118Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Leila, Nadia's younger sister",
            "relationship": "bride's younger sister by three years; not in the wedding party; speaking after our parents",
            "stories": [
              "Nadia ran a lending library out of her bedroom when she was nine and charged me a penny a day in late fees. By her count I still owe her four dollars.",
              "At Nadia's bachelorette in Nashville she had too many margaritas and cried to the Uber driver about her ex.",
              "The first time Owen met me he asked what Nadia was like as a kid, and he wrote the answers down."
            ],
            "tone": 4,
            "length_minutes": 2
          },
          "title": "Wedding toast draft",
          "markdown": "# Toast\n\nGood evening, everyone. I'm Leila, Nadia's younger sister, and I'm here to talk about money. Specifically, the four dollars I owe her. [pause]\n\nWhen Nadia was nine, she ran a lending library out of her bedroom. Real system, real shelves, and a late fee of one penny a day. I was six, I was a very enthusiastic reader, and I was a terrible returner of books. By her count, I still owe her four dollars. [pause] She has not forgotten. She will not forget. Nadia keeps good records.\n\nBut here's what I understand now that I didn't at six: that library was never about the pennies. Nadia pays attention. She remembers what you borrowed, what you loved, and when you're due back. That's how she loves people, carefully and for the long haul.\n\nWhich brings me to Owen. [pause]\n\nThe first time Owen met me, he asked what Nadia was like as a kid. I figured I'd get a polite question and a polite answer. Instead, he wrote down what I said. He actually took notes. [pause] And I thought: *oh. He's one of us.* He's a record-keeper. He wants to know everything about her, even the parts that happened before him.\n\nNadia, you spent your whole life keeping track of the things that matter. Now you've found someone who's taking notes on you, and he's not even close to done.\n\nSo, Nadia, consider my four dollars forgiven. Actually, no. Forgiven by *you*. I'm not paying it. [pause]\n\nEveryone, please raise your glasses: to Nadia and Owen. May your story be a long one, and may neither of you ever return a book on time. [pause] Cheers!",
          "words": 271,
          "minutesAt130wpm": 2.08
        },
        {
          "example": "E2",
          "role": "brother of the groom",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "a story that is only a pointer to the no-go topic ('Our stag weekend in Las Vegas'), at the funniest tone",
          "generatedAt": "2026-10-18T12:23:57.422Z",
          "inputs": {
            "names": "Nadia & Owen; I'm Callum, Owen's older brother",
            "relationship": "groom's older brother, not in the wedding party",
            "stories": [
              "When Owen was fifteen he tutored me through chemistry and never told anyone I was the older one.",
              "Our stag weekend in Las Vegas"
            ],
            "tone": 5,
            "length_minutes": 1,
            "no_go_topics": "the stag weekend, Las Vegas, gambling"
          },
          "title": "Wedding toast draft",
          "markdown": "Good evening, everyone. I'm Callum, Owen's older brother. [pause] Please note the word *older*, because it hasn't always been obvious.\n\nWhen Owen was fifteen, he tutored me through chemistry. [pause] Me. The big brother. He sat across the table, explained every concept patiently, and never once told anyone who was supposed to be teaching whom.\n\nThat's Owen. He'll quietly make you better and never make you feel small about it.\n\nNadia, you've seen this already. He's calm, he's kind, and he makes complicated things feel simple. [pause] And he found someone who makes him laugh *and* keeps him on his toes.\n\nOwen has always known good chemistry when he sees it.\n\nSo please raise your glasses: to Nadia and Owen, [pause] to a lifetime of perfect chemistry. Cheers!",
          "words": 124,
          "minutesAt130wpm": 0.95
        },
        {
          "example": "F",
          "role": "welcome speech (the couple)",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "none planted; checks: guests thanked, nothing added (no extra countries, guests or places), at most 1:15",
          "generatedAt": "2026-10-18T12:24:19.704Z",
          "inputs": {
            "names": "Nadia & Owen (both of us speaking)",
            "relationship": "We're the couple, giving a one-minute welcome together as the reception starts, before dinner. We paid for the wedding ourselves and we are hosting.",
            "stories": [
              "Guests came from four countries; Owen's brother Callum flew in from Singapore and landed this morning.",
              "We met at a pottery class, and every table centrepiece is a bowl one of us made; the lopsided ones are Owen's."
            ],
            "tone": 2,
            "length_minutes": 1
          },
          "title": "Wedding toast draft",
          "markdown": "**Nadia:** Good evening, everyone, and welcome. You've travelled here from four countries, and we can't believe you're all in one room. [pause]\n\n**Owen:** My brother Callum landed from Singapore *this morning*. Callum, thank you. Dinner is coming, I promise.\n\n**Nadia:** We're Nadia and Owen, and tonight we're your hosts. We met at a pottery class, so every centrepiece is a bowl one of us made.\n\n**Owen:** The lopsided ones are mine.\n\n**Nadia:** And our favourites. [pause]\n\n**Owen:** A bowl is made to hold something.\n\n**Nadia:** Tonight, that's all of you, the people who've held us up.\n\n**Owen:** So please raise a glass: to family, to friends, and to things made by hand.\n\n**Both:** Cheers!",
          "words": 103,
          "minutesAt130wpm": 0.79
        },
        {
          "example": "G",
          "role": "two mothers, one joint toast",
          "toolPage": "/tools/wedding-toast-generator",
          "apiKind": "toast",
          "plantedTrap": "two speakers in one draft: both voices present, and no singular 'mother of the bride'",
          "generatedAt": "2026-10-18T12:24:41.530Z",
          "inputs": {
            "names": "Sam & Aisha; we're Ruth and Carmen, Sam's mums, speaking together",
            "relationship": "the bride's two mothers, one joint toast, Ruth speaks first and Carmen gives the toast",
            "stories": [
              "When Sam was six she organised a protest against bedtime in our living room, with handmade signs.",
              "The first time Aisha came to Sunday lunch she stayed to wash up with both of us, and she has every Sunday since."
            ],
            "tone": 2,
            "length_minutes": 1
          },
          "title": "Wedding toast draft",
          "markdown": "**Ruth:** Good evening, everyone. I'm Ruth.\n\n**Carmen:** And I'm Carmen. We're Sam's mums.\n\n**Ruth:** When Sam was six, she organised a protest against bedtime in our living room. Handmade signs and everything. [pause] Bedtime still happened, but we kept the signs.\n\n**Carmen:** Even then, Sam knew what mattered to her, and she was never shy about saying so.\n\n**Ruth:** So when Aisha first came to Sunday lunch, and stayed to wash up with both of us, we noticed. [pause]\n\n**Carmen:** And Aisha has been there every Sunday since.\n\n**Ruth:** Sam, you found someone who stands beside you, even at the sink.\n\n**Carmen:** Aisha, thank you for choosing us, too. [pause] Please raise your glasses: to Sam and Aisha. May your table always be full, and your washing-up always shared.\n\n**Both:** To Sam and Aisha!",
          "words": 122,
          "minutesAt130wpm": 0.94
        }
      ]
    }
  ]
}
