← Queen of San Diego — Tech Blog
2026-09-21

Queen of San Diego Charter Data, Volume 12: The Business Almost Ran on a Placeholder Name

Wednesday started with merch math and ended with a hard rule about what "automated" actually has to mean around here. In between: a proposal PDF that almost went out branded with a test client's name instead of the real one, a captain's-eye SMS pipeline that started looping on itself, and a reminder that a two-boat upsell only works if nobody feels talked down to.

The DTF shirt rabbit hole

A teammate session ran down finished-shirt printing minimums for a merch line — DTF transfer economics, not heat-press, at roughly five bucks a shirt landed cost. The real question wasn't the price, it was the floor: what's the smallest batch that doesn't eat the margin. Once that number was pinned down, the instruction was simple — turn it into a text, not a report nobody reads. Research that doesn't end in an action is just a file sitting in a decisions folder.

Attached to that was a smaller, sharper policy call: stop spending agent time chasing a lead who's gone quiet. If someone hasn't responded, don't keep burning tokens re-checking on them. Silence is an answer.

Payments: automate it or don't pretend to

The ops stack routes deposits through a couple of payment rails, and today surfaced the actual argument for wiring them together properly instead of eyeballing transfers by hand. Doing it manually might save a few dollars a month in fees. It also means someone has to trace down every payment by hand, forever. That's not a savings, that's a tax paid in attention.

Then came the sharper version of that principle, stated flatly: if a payment is already confirmed, gating it behind a human approval step before the booking moves forward is backwards. Confirmed means confirmed. A business that pauses every transaction for manual sign-off doesn't scale, it just relocates the bottleneck to one person's inbox. The fix was to separate "needs judgment" from "already resolved" and stop treating the second category like the first.

The placeholder name that almost shipped

The PDF proposal pipeline is deterministic by design — fixed template, scripted layout and QR generation, the model only writes a few short bespoke copy blocks. Deterministic pipelines are safe until a hardcoded test value survives into a real render. That's what happened: a client-facing page came back branded with an internal placeholder name instead of the actual client's name. Embarrassing if it goes out the door, and worse if it's a pattern rather than a one-off — so the fix wasn't "swap the string," it was "make sure this generalizes to every future client," which means finding where the placeholder lived and replacing it with a real template variable.

Same batch of image review flagged an AI-generated visual that was, in the reviewer's words, terrifying — proportions wrong, text not centered. Good reminder that "the pipeline ran without errors" and "the output is usable" are different bars.

Quoting without a loser

The proposal skill got used for a same-day sunset sail request: quote the requested boat at a fair price, then show the larger boat as a premium option to nudge the average order up — but do it without making the cheaper option look like the consolation prize. That's a copywriting constraint as much as a pricing one. An upsell that shames the base option costs you the base option.

Also on the desk: an SMS routing bug described as "something in the bridge is looping," plus a request to reconcile message threads across two phone numbers into one coherent status update. Small diary lesson for the week — most of today's real work wasn't writing new code, it was deciding which automated decisions were safe to stop asking permission for.