by Chris Hunter

Share

Dark home office at dusk with a laptop open to a calendar where one time slot is booked four times, with the title "Build log, Oct 28–Nov 6: my AI booked one customer four times"

TL;DR

  • Chase, my AI sales follow-up, booked one customer four times. Three guards now stop it from acting twice.
  • I merged my AI video editor before its review, and the review found the real hole: “approved” didn’t mean “this exact file.” Fixed.
  • Friday (my chief of staff) now logs each decision once, and my agents stop waiting on me for anything that can be undone.

This one covers October 28 through November 6. If the week had a theme, it was this: an AI that can act will sooner or later act on the wrong thing, and the fix is almost always a boring check.

Chase (AI sales follow-up) - An AI that can act can act twice

Chase follows up with leads and books appointments. This week a customer replied “thanks” to a booking confirmation. Chase read that as a reason to book. Then it saw its own earlier booking on the calendar, decided the slot was taken, and booked again. Four bookings for one person.

Four fixes went live on November 3 and 5, each with a one-step rollback ready:

  • Email threads. A whole email conversation arrives as one record, so Chase could misread who spoke last. That fix took three review rounds before merge, and the audit afterward showed zero duplicate sends.
  • Its own bookings. Chase no longer counts its own appointment as a conflict.
  • Made-up IDs. If the model invents a record ID that doesn’t exist, the write gets refused.
  • A stage map. A booking now moves the lead to the right pipeline stage for that business. Any appointment coming up, or in the last 14 days, pauses follow-up, so nobody gets nudged about a meeting they already have.

The new code hasn’t handled a real booking yet. The ID guard lets a write through if the lookup itself errors out. I chose that on purpose, so a hiccup can’t block a real booking. Follow-up sweeps stay off for any account until its owner says yes.

The checks that save you are the boring ones. Does this record exist, and did I already do this? Ask both before your AI touches a customer’s calendar.

AI Video Editor - I merged before the review, and the review found the real hole

The AI video editor now runs a whole podcast episode as a set of 11 skills: transcribe, plan the cut, render, check quality, and deliver. On October 30 I merged it before the full review, on purpose. 340 tests were passing, and I wanted it working on real episodes.

The review came back with 3 high-severity problems, all from one root cause. The quality check and the approval weren’t tied to the exact file that got delivered. You could approve one version and ship another.

All three are fixed. Approvals and quality results are now bound to the file’s fingerprint. A check that crashed can’t pass for the last one that succeeded. A final delivery is all-or-nothing. The fix was 15 commits, merged with 419 tests passing and none skipped. The re-review planted 18 deliberate bugs to test itself, and it caught 17.

The first real episode caught two bugs the tests missed: a review reel that wouldn’t load its second slide, and a cut that fired on a word in the cold open.

Still open: five small follow-ups, including no rollback if a file is locked halfway through the final rename, plus 9 medium findings in the queue. Windows support is next.

“Approved” has to mean “this exact file.” If it means “something with this name,” you’ll eventually publish a version nobody checked.

AI Marketing Audit - A blank answer isn’t a “no”

My AI Marketing Audit takes a roofer’s answers about their marketing and scores where they stand. On October 29 it learned to turn that score into a 2027 marketing plan. The budget math is plain arithmetic, so no financial numbers go to the AI. The AI writes the quarter-by-quarter story, and any sentence where it slips in a dollar or percent figure gets dropped.

Then it started checking the roofer’s website. The first version read the homepage and sitemap. On November 5 it began reading up to six landing pages plus the blog feed, which answers seven more checks without asking anyone. A live re-scan took 22.9 seconds. Real websites caught what my test files missed, like project pages counted as town pages and review widgets counted as the roofer’s own copy.

That night it learned to read sales-call transcripts. It suggests answers for the blanks, and every suggestion has to quote a line the app finds in the transcript. A person confirms or rejects each one before it counts.

The fix I like best is the smallest. A question nobody answered used to count as a gap. Now it shows as “Still to Confirm” with a gray question mark.

Still open: the transcript reader hasn’t seen a real sales call yet. Audits with blanks may score a little higher now, since unknowns no longer count against them. Seven low-severity items from a November 6 bug sweep are still on the list.

If your report counts what nobody answered as a failure, you’ll pitch fixes for problems you never confirmed.

Friday (my AI chief of staff) - Decide once, and stop being the bottleneck

Every morning, the same questions came back. I’d answer one, and the next day it was on the list again, because nothing wrote down that I’d decided.

Now Friday (my chief of staff) builds a morning list of only the decisions waiting on me. It’s ranked by deadline, then priority, and it stops at 12, short enough to hear by voice. When I decide, the answer goes into a ledger, and that item never comes back. It went live October 29, seeded with 12 open decisions.

On November 5 I wrote down a rule for every agent I run: don’t wait on me for anything that can be undone. There’s a short list of standing approvals in four categories. Deploying reviewed code to my own systems is one of them, as long as a backup and a rollback are ready. There’s an even shorter list that always stays with me. Anything an agent can’t act on gets held for one message at 4 PM instead of pinging me all day. A session that fills its memory now hands off to Friday, who restarts it in the background.

The safety layer can still block an action I’ve pre-approved, so those wait for the 4 PM message. The background restart is a stopgap script that still has to become a permanent, tested one.

If you’re the bottleneck on every small call, your team moves at the speed of your inbox. Decide the categories once and keep the exceptions short.

AI Marketing Department - Short video on a budget that stops itself

My marketing engine learned to make short serialized video. Eight new skills cover the whole run, from set-up and ideas through scripts, generation, editing and music, to branding and a weekly cycle. They share one new video toolkit that works on Mac and Windows. Each series keeps a “bible” for its characters and style, so episodes stay consistent.

A smoke test against a cut we’d already approved matched it in length (73.5 seconds), with an identical timeline and a picture-quality score of 40.7 dB.

Friday’s review blocked the first Windows version. It stored file paths in a form that only worked on a Mac. They’re portable now.

Video generation spends real credits, so the budget fails closed. It stops before it overspends, and it counts spend per run.

That was 4 releases in 10 days. Besides the video work, the Windows set-up is ready for a walkthrough and a card-naming bug is fixed. The duplicate-post guard also works now on accounts with a thousand or more scheduled posts. A bug sweep turned up 19 candidates. 3 survived the skeptic pass, and all 3 are fixed or with their owner. The pull-request check dropped from about 10 minutes to about a minute and a half, once the heavy video tests moved to their own scheduled job.

A real Windows run still has to happen before a teammate’s first live use.

If a tool spends credits every time it runs, its budget has to stop on its own. You won’t catch it in time.

Friday - The token diet

On November 3 I hit my 5-hour usage limit before the morning was out. Friday measured why instead of guessing.

Every reply was re-reading about 133,000 tokens of standing instructions. Every helper agent started with about 110,000 tokens before it did a thing. Everything ran on the strongest model at high effort, and waking an idle session reloaded its whole history. Over one 35-minute window, about 76% of the burn traced to a single old session and its two helpers.

The fix starts with a mid-tier model at medium effort by default. The strongest model runs only on purpose, and cheap models handle lookups. Then we cut the standing files. The global rules file went from 76 KB to about 22. The project overview went from 26 KB to 7. Friday’s own working notes went from 229 KB to 9. The originals are archived, so nothing was lost. One new rule came out of it: don’t spawn a helper for a job you can do in one to three steps.

Sessions that were already open kept the old load until they restarted, and I still need to measure the effect in a fresh window.

What your AI costs, and how fast it runs, mostly comes down to what it has to read before it starts. Cutting that beats almost any prompt tweak.

Hope (AI executive assistant) - An alarm that cried wolf every weekend

Hope runs a nightly health check across all my agents. On November 6 it flagged token use at 20% above the 7-day average. Friday had it traced before anyone panicked. The 7-day average included a quiet weekend, so any weekday looked high. Weekday against weekday, the change was 2.6%, plain volume with no retries or waste. The check now compares weekdays to weekdays.

The trace turned up a second bug: one scheduled job didn’t honor the per-user off switch. Now every job checks it.

Both fixes went live that morning, about 10 minutes apart, each with its rollback named first. 2,488 tests pass on the off-switch fix. Both are under a week old.

A health check that cries wolf trains you to ignore it. And an off switch that misses one job isn’t an off switch.

Friday - A brain that’s still right at noon

Last week I built a shared brain that every AI tool I use can read. It refreshed once a day, at 5:40 AM, so by noon its pages still showed finished work as open. Now it refreshes at 5:40 and every two hours after that, through 5 PM. That’s five runs a day, each with a fresh 25-minute deadline, and 65 tests passing on the change.

Voice notes that start with “Friday, …” were getting missed. A line saying who dictated the note pushed the request out of position, so requests I made by voice on November 4 never got picked up. That’s fixed. Replaying the detector over 20 saved notes changed exactly one result, the missed request, with no new false positives. A list of open requests now shows at the start of every session, so nothing I say out loud can sit there unseen.

The leak scanner learned a few new tricks too. It now catches phone numbers split across lines or written with odd dashes, and IP addresses.

Not built yet: a two-way version where agents can write back into the brain’s inbox. It’s designed and approved, with a 13-task plan. One leak-checker test file also still hangs on this machine’s older Python.

A memory that’s six hours stale is worse than none, because you trust it. And capture only works if what you said out loud turns into a task.

Need help building something like this?

Everything I write about here runs in my own business first. If the AI job landed on your plate, start with an assessment: where AI will make or save you the most money, and what it'd take to run it right.

About the Author: Chris Hunter

I'm Chris Hunter, a fractional Chief AI Officer. I've spent 23 years in marketing and co-founded Marketing Heroes, an agency for roofers and home-service companies. I've spent the last four years building AI into the work, and today an AI system I built runs a big piece of it: an AI sales rep, an executive assistant, and a marketing department that ships content and runs ads every week. One operator and those agents now cover two of our six production seats, and the agents cost about $460 a month to run. Now I do the same for other companies, so the founder doesn't have to be the head of AI on top of running everything else. Before any of this I was an Air Force crew chief, working on the first stealth fighter under zero-defect standards. That's still how I build. If it breaks in front of a customer, it wasn't done.

Share

Related Posts