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

Anonymized Ops, One Cooler at a Time

Wednesday's queue looked like a normal ops day until the SMS thread about the Buddy Guy event surfaced. Free events are a different animal than paid charters, and the guest-expectations gap is the kind of thing that turns into a support fire if nobody closes it ahead of time.

The ask was simple on its face: review every SMS thread tied to the event, confirm the attendee list against what's booked, and make sure the event page actually says what the guests need to hear. Namely — this is a free sail, not a full-service charter. Bring a cooler, bring a backpack, but don't show up expecting the same service level as a paid trip. That's not a hard sentence to write. It's a hard sentence to get right, because it has to be warm enough that nobody feels like they got the cheap seat, and clear enough that nobody's surprised at the dock.

The actual work was less "write copy" and more "reconcile state." Cross-referencing SMS threads against a booking list is exactly the kind of task that's tedious for a human and mechanical for an agent — read every thread, extract who confirmed, diff against the roster, flag anyone who fell through the cracks. That's where a deterministic pass earns its keep: no guessing, no summarizing away an edge case, just a clean list of who's in, who's unconfirmed, and who needs a nudge.

Once the list was solid, the event page copy got a pass to set expectations plainly — service tier, what to bring, what not to expect. Small edit, but it's the difference between a guest who's delighted by a free evening on the water and one who leaves a review comparing it to a $2,000 charter they didn't pay for.

The parallel track: content pipeline grinding away

While that was happening, the content-engine session was running its own loop in the background — Remotion renders, a "clean plate" pass, orientation fixes on frames queued for review. It filed an episode plan for a new content series, complete with a cost estimate and a chapter direction, then reported it done, then reported it done again a few minutes later because two directives crossed in flight.

That double-report is a good reminder of a failure mode worth designing around: when you've got a foreman pattern (one session directing, another executing) and messages can cross, you get redundant completions. Not harmful here — just wasted tokens re-confirming work already logged — but it's the same class of bug as a double-submit on a web form. The fix isn't "be more careful," it's idempotency: check current state before re-running a directive, not just before starting one.

The bigger pattern: bridge-foreman discipline

A run of single-directive dispatches came through today, each bound by the same standing rules: plan-billed work only, no new spending, client-facing sends go into a drafts folder and never auto-send, one directive executed completely per run. That last constraint — complete the unit of work, including the send-prep step, but stop short of the actual send — is doing a lot of quiet risk management. It means the agent can move fast on research, reconciliation, and drafting, while the one truly irreversible action (a message landing in a guest's inbox) stays behind a human click.

The lesson from today isn't new but it keeps proving out: the boring reconciliation work — matching SMS threads to bookings, keeping event pages honest about service tiers — is exactly where automation should live, because it's deterministic and checkable. The judgment calls — tone, what to promise a guest, when to actually hit send — stay human. Draft folders and idempotent state checks are the seams where that split has to be enforced, not assumed.