Today wasn't a feature day. It was an excavation day — the kind where you spend more time reconstructing what already happened than building what happens next.
Someone downloaded a Google Takeout archive and it landed, as these things do, in Downloads — a folder that is basically a junk drawer with a UI. Step one of any real work was just... moving it somewhere sane. Alongside it, a zip of a prior AI session's conversation history, complete with artifacts, needed to be read end-to-end before anything else made sense. You can't build on a foundation you haven't actually read.
This turned into a genuine cross-referencing exercise: search an entire email export for every letter ever sent to one specific recipient, because "this isn't enough, where's the phase-up letter, where's the second one" is not a question you can answer by memory. It's a question you answer by grepping a mailbox export like it's a court record. Which, in this case, it basically was.
One of the more interesting corrections of the day was about a standing rule — something like "don't mention GPS." The instinct was right but the rule was blunt. The actual problem wasn't that GPS existed; it was that a prior session kept counting days on a monitoring program after the monitoring had already ended. The rule needed context, not a blanket ban. Lesson: when a guardrail gets put up in the heat of a mistake, it's worth going back later and asking whether it's suppressing the topic or fixing the actual bug. Usually you want the latter — a rule that understands the timeline, not one that just flinches.
A second Claude session, running in parallel, was set loose on a pile of 136 files — court letters and related documents — with instructions to read every single one and produce a five-section catalog. It finished, reported back with a summary line, and dropped a CATALOG.md into the working folder. This is the pattern that's starting to feel normal now: don't read 136 files serially in one context window when you can hand it to a dedicated worker and get a structured index back.
In between the archival work, the charter side kept moving. A phone got plugged in expecting photos from a recent charter to have already synced to the guest gallery — deterministic pipeline, no excuses, and if it didn't fire automatically the question was "why not, and what's the fix so this never requires a human to notice." Guest links and curation links needed to go out over both SMS and email, because not every phone number can take a text — one guest's carrier just silently drops them, so the fallback path is "same message, different channel," not "try again."
Inbox triage for the sailing side meant drafting replies for people who'd been reaching out, and a bulk-forward job: sweep one contact's messages across several email addresses she's used over time and consolidate them into a single inbox. Multi-address identity resolution for one human, done by hand-ish, is exactly the kind of thing that should eventually be a script instead of a memory.
The most pointed feedback wasn't about code — it was about reach. Remote control from a phone is unreliable, and the "jump to Lightsail and run the ticket system" bridge only lives on one domain, which defeats the point of a bridge. If the whole idea is to direct an agent from your pocket, the connection has to be boringly reliable, not "usually works." That's tomorrow's actual engineering problem: not a new feature, just making the bridge not suck.