Build log
Can I trust AI with my wedding planning? Only behind four gates
An AI reads every wedding-vendor quote I get and fills my tracker. Nothing enters until it clears four gates — because the failure I almost missed looked exactly like done.
Key findings
- An AI reads every wedding vendor quote, contract, and follow-up, but no value enters the tracker until it passes four gates: source, label, arithmetic, judgment.
- The consolidated tracker turned a 118-row guest list into four tidy tier counts and silently dropped the payment schedule — a reconciliation check caught it.
- "Looks complete" and "is complete" are different claims; only a check can tell them apart.
I let an AI read every wedding vendor quote, contract, and follow-up email, and it fills my planning tracker for me. But no value enters that tracker until it clears four gates. The gates exist because the time I judged the output on looks, it had quietly dropped an entire payment schedule.
Confidently wrong looks exactly like done
Early on, I asked the agent to consolidate my planning files into one tracker. It took a 118-row guest list and produced four tidy tier counts. Clean, plausible, exactly the summary I wanted. It also dropped the payment schedule entirely. No error, no warning. Everything looked done.
The only reason I know it happened is a reconciliation check: does the consolidated view still contain every source row? The answer was no. Nothing on the screen would ever have told me that.
So the rule underneath everything else: "looks complete" and "is complete" are different claims. Only a check can tell them apart.
Gate 1: No source, no entry
Every value the agent extracts has to cite exactly where it came from: the quoted sentence in the email, the page in the PDF. A number that shows up without a source gets rejected, however reasonable it looks.
This is grounding — tying each number back to its document. It's the cheapest way I know to stop a hallucination (a confident, made-up answer). It also has a side benefit I use constantly: any number in my tracker is one click from the document it came from.
Gate 2: Every value gets one of four labels
- CONFIRMED — quoted directly from a source.
- INFERRED — derived (a summed total, a reformatted date), with the derivation shown so I can redo the math myself.
- MISSING — the source doesn't say. The cell stays blank. The agent never guesses.
- CONTRADICTED — the email says one figure, the attached PDF says another. That escalates to me immediately, whatever the model's confidence.
CONTRADICTED is the label I built for the conflict I'd most likely miss by eye. The email says one figure, the attachment says another — both can't be right? An unchecked extractor quietly picks one and the other disappears. Mine isn't allowed to pick.
Gate 3: Do the math on every row
Subtotal plus tax has to equal the total. Dates have to be valid and not stale. The vendor name has to match a known vendor.
These are dumb checks. That's the point. They catch more errors than the model's confidence score, because the confidence score only says how sure the model is, not whether it's right. When a rule fails, it flags the row. It never fills it.
Gate 4: Judgment stays with me
Facts auto-fill: costs, deposit terms, insurance, availability. Judgment never does: style fit, tasting results, whether a vendor "feels like us." The line isn't drawn in good intentions. It's drawn in the schema, the tracker's structure itself, so there is nowhere for the agent to put an opinion.
There's research behind drawing the line that hard: models judge subjective and normative calls 8–20% more harshly than humans (MIT / Science Advances, 2023).[1]
And I keep one guard pointed at myself. When a decision is mine, I write down my gut lean before I look at any computed score. Seeing the score first anchors you — and then the score is making the call.
What do the gates actually catch?
The reconciliation check that found the vanished payment schedule now runs as _check-budget-integrity.py --reconcile-only.
The second real catch was mine to own. A tasting deadline sat in an email digest and never made it to the tracker. The AI had summarized the email, but nothing was tracking the date. That miss was mine: I treated "summarized" and "tracked" as the same thing, and they aren't. It cost nothing that time. Now _check-tracker-completeness.sh compares every dated commitment in the sources against the tracker, so if that gap opens again, it doesn't stay quiet.
Two caveats, both honest. Everything here is scrubbed: no real vendor names, no dollar figures, no personal names. And this comes from about six months of live intake, not a lab benchmark.
So, can I trust an AI with my wedding planning? With the reading, yes. With the tracker, only behind the four gates, because the failures never announce themselves. My AI turned my guest list into perfect-looking summary numbers and quietly dropped the payment schedule. A dumb reconciliation check is the only reason I ever found out.
Method & data
Method: live wedding-vendor intake over ~6 months — the four-gate protocol plus the tracker-reconciliation and completeness checks that caught the dropped payment schedule and the missed tasting deadlineData: real vendor quotes, contracts, and follow-ups (vendors, dollar figures, and names scrubbed; the patterns are real) · Last checked: 2026-06-25
How this was made
AI-assisted, human-verified. I drafted this update with an AI assistant from this post's own verified facts, with the writing pass and the checking pass done by separate sessions, then reviewed and verified every claim against the actual checks before publishing. I never pasted confidential content into an AI tool to produce it — that's the same discipline the post is about.
Correction (2026-07-07): the receipt above originally named _check-tracker-populated.py as the completeness check. That script guards a different failure — built-but-not-populated. The guard that compares dated commitments against the tracker is _check-tracker-completeness.sh, and the receipt now names it. Both catches described in this post are unchanged; I re-read both scripts to confirm which one caught which. Logged in the corrections log.
Update (2026-07-16): redrafted for clarity and searchability — same facts, same checks, new prose and a new title (previously: "AI reads every wedding vendor quote I get. Nothing enters my tracker until it clears four gates."). Nothing factual changed; both catches and the 2026-07-07 correction stand as written.
I'm Ali — I run real life and work (a wedding, an HOA, civic data) on AI, then check its work in the open — and show my work when I catch it wrong. More at /about.
Published under my standards. Found an error? Tell me — corrections go in the corrections log, dated, never silent.
Cite this
@online{ali2026fourgates,
author = {Ali},
title = {Can I trust AI with my wedding planning? Only behind four gates},
date = {2026-06-25},
url = {https://alidoes.ai/wedding-vendor-ai-four-gates/}
}MIT / Science Advances (2023) — AI models make systematically harsher judgments on normative/subjective rules (8–20% stricter than humans). https://news.mit.edu/2023/study-ai-models-harsher-judgements-0510 ↩︎
Caught something I got wrong? Send it directly. Confirmed corrections go in the corrections log.