THE BUILD LOG
Field notes from the terminal
How one person runs five brands' worth of infrastructure with AI agent fleets. Real systems, real numbers, written from the terminal.
My Pipeline Diagnosed the Same Deploy Bug Three Times and Fixed It Zero Times
Running git init silently changed where my deploys went. Wrangler started inferring the branch from the repo, my local branch is master, the Pages project's production branch is main — so every deploy exited 0, printed a green URL, and published to a preview host while the live domain stayed stale. My agent caught it on August 5, again on August 8, and again on August 12. Correct diagnosis every time, written action item every time, source fix never. The bug was not the branch flag. It was a pipeline with a detector and no actuator.
A Lock Is Not a Budget: My Agent Fleet Queued 8,283 Seconds for One Model Quota, Then Ran Out Anyway
Four scheduled engines on my machine share one authenticated model session. A global mutex serializes them correctly — 129 acquisitions, 2 stale locks reclaimed, zero deadlocks. It still cost me three consecutive publish days, because serializing access to a quota does not ration it. Measured: 8,283 seconds of queue time, 2 timeouts, and 120 of 129 lock acquisitions logged under the same anonymous default label.
My Agent Reads 1.4 MB of Its Own Source Code to Remember What It Already Did
One agent's sweep scripts recover their working memory by globbing their siblings and regex-parsing the source. 249 scripts, 1,492,772 bytes re-read on every run, and 825 query strings invisible to the dedupe check because their filenames didn't match the pattern. The measured cost: the same job req applied to four times. Here is the fix — a real state ledger, not code as a database.
AI Systems Builder vs. AI Operator vs. Prompt Engineer
AI systems builder vs AI operator vs prompt engineer, defined by daily task, accountability, and cost — a three-way comparison with a one-question hiring screen, grounded in five brands run solo.
Every Way My AI Agent Fleet Has Failed (A Running Log)
Every documented failure mode across my agent fleet, indexed by taxonomy — silent exits, drifted vocabulary, provenance gaps, verification gaps — with the fix for each and a link to the full postmortem.
My Agent Fleet Has Refused to Finish 155 Job Applications. That's the Feature.
An autonomous agent acting on your behalf needs a designed ability to refuse: a verbatim-only facts file, explicit do-not-guess markers, blocked as a first-class status with a named reason, and an escalation file that turns every refusal into a one-line human task. Out of 1,552 pipeline rows, 155 are blocked across 19 named reasons — and one of them proves the system works.
My Pipeline Has 1,503 Rows. The Watcher Reading It Sees 76.
One agent writes a CSV, another reads it. The writer's status vocabulary drifted from 'applied' to 'submitted' on 2026-07-10 and the reader was never told, so a reply watcher hard-coded to two status values now covers 5.1% of the pipeline. Underneath that, the same watcher has started 762 times and read mail 4 times, because a sys.exit inside a helper walks straight through except Exception.
My Agent's Memory File Is 486 KB. Every Hourly Run Is Told to Read All of It.
An append-only blocker log grew to 486,652 bytes and roughly 120,000 estimated tokens in 21 days, while the human-actionable index inside it stopped being maintained on day one and now occupies 2.9% of the file. 63% of the bytes were appended in the last six days, most of it restating blockers marked unchanged.
My Agent Wrote 149 Throwaway Scripts in 14 Days. The Bug Fix in Pass #102 Never Reached Pass #145.
164 Python files in one agent's working directory: 149 written to run once, 14,475 disposable lines against 1,087 durable ones, eight byte-identical copies of the same script, and a shared library imported by nothing. The measured cost was 112 duplicate rows in the output and two applications sent twice to the same company on the same day.
The Agent Handoff Document Template I Actually Use (11 Sections, One Machine-Checkable Line)
Most handoff templates are session summaries written looking backward. Mine is a commissioning brief written looking forward, and the last line is the only section that decides whether the work is done. The full anatomy, from seven real files.
I Gated My Content Engine on Analytics. The Analytics Has Been Blind for 42 Days.
Sixty days of Cloudflare RUM on this site: 20 pageloads, all on the home page, zero on 33 blog posts. The beacon is fine. Client-side analytics structurally cannot see AI crawlers — so an analytics-gated publishing engine was gating on a signal that could not exist.
My AI Agent Fleet Post Is Ranking for Truck Fleets. A Term-Collision Postmortem.
Twelve of the eighteen queries my site gets contain the word fleet — and half of them are about trucks. A postmortem on search-term collision, with the raw Search Console numbers, why average position is a free intent classifier, and what I am not going to do about it.
One Command Audited 27 Scheduled Agents. Seven Had Failed, and One Never Ran at All.
A two-minute launchctl audit of every scheduled agent on my machine: 640 loaded jobs, 27 mine, 7 with a non-zero last exit — including one blocked by macOS file permissions that had been firing every weekday and executing nothing. The exit-code triage table I use now.
My 6AM Agent Couldn't Log In to 17 of Its 30 Tools
This morning's unattended run reported 17 of 30 MCP servers as needing authorization it had no way to give. Interactive OAuth is the one dependency a headless agent can never repair itself — here's the measurement and the fix.
I Have 480 Skills Installed. My Agents Use 49 of Them.
I measured my own agent skill library: 480 installed, 51,000 tokens of always-on index, 10% ever invoked. Capability sprawl is a standing tax you pay on every turn — here's how I measured it and what I cut.
My Agent Failed Safely for Nine Days Straight. Nobody Told Me.
A postmortem on the safe-exit blind spot: my daily publishing agent ran on schedule, failed correctly, exited 0, and produced no signal for nine days. Exit 0 is not a health signal.
Agent Orchestration vs. Automation: Where n8n Ends and Agents Begin
AI agent orchestration vs automation, defined by an operator who runs both: n8n moves data on fixed rails, agents add judgment, orchestration assigns the work.
The 6AM Fleet: How Five Brands Publish Themselves Before I Wake Up
Inside the AI content engine that publishes for five brands daily: staggered launchd jobs, an analytics hard gate, a shared distribution script, and a written safe-rollout law.
I Audited Six Brands and Search Console Was Broken on Five. Measurement Debt Is Real.
A postmortem on SEO measurement mistakes across multiple sites: a six-brand audit found Google Search Console broken or never connected on five of six properties — while agent fleets kept shipping content into the dark. How it happened, why agents make it worse, and the standing rule that fixed it.
How to Hire an AI Systems Builder: Screens, Anti-Signals, and the 48-Hour Test
A hiring-manager playbook for the AI systems builder role: which titles to search, a six-part screening rubric, the honest anti-signal, and why a 48-hour backlog test beats every interview panel.
Six Domains, One Operator: Multi-Brand Infrastructure on Cloudflare Workers, D1, and Pages
How one operator runs a multi-brand estate — static Pages sites, Workers + D1 dashboards and lead rails, Worker-based email, IndexNow on deploy — with a cloudflare workers d1 solo developer stack and strict account separation.
My Personal Site Was Blocking Every AI Crawler. I Found Out During My Own Audit.
Cloudflare's Managed robots.txt was silently blocking ClaudeBot, GPTBot, CCBot and more on campilii.com. Where the toggle actually lives, the 60-second fix, and the curl verification.
What Is GEO? Generative Engine Optimization, Explained by Someone Doing It Across Six Sites
Generative engine optimization (GEO) defined: how AI engines pick sources to cite, GEO vs SEO compared, and the real GEO stack I run across six sites — schema, llms.txt, IndexNow, and weekly citation logging.
Model Tiering: How a Solo Operator Runs Agent Fleets Without the Frontier-Model Bill Eating the Margin
LLM cost optimization for agent fleets, first-person: use a frontier model to orchestrate and cheaper tiers to execute, so a one-person operation stays profitable at volume.
Context Engineering Is the Real Job Now — Notes From Running Agent Fleets Solo
What is context engineering? A practitioner's definition from running multi-brand agent fleets solo: the layered system of instructions, skills, memory, and tools that decides whether agents ship or drift.
My Agents Died Silently for Days: A launchd PATH Postmortem
A launchd job fired every night, wrote its log header, and died at line 75 — for days. Why launchd scripts fail silently like cron, how I found it, and the three fixes plus the doctrine that came out of it.
Claude Code Went Manual-First on Permissions. Here's Why That's the Right Call for Solo Operators.
Claude Code permissions best practices from an operator running five brands solo: manual-first approval gates, deploy-safety rules, git-safety rules for agent prompts, and a drafts-only email policy — the governance doctrine that lets agents run unattended without touching prod.
Agents Went to Production in 2026. Nobody Built the Verification Layer.
AI agent verification, defined by an operator who runs it daily: the gates between agent output and the real world, why 40% of agentic projects will die without them, and the exact checks I run.
What an AI Systems Builder Actually Does (It's Not Prompt Engineering)
AI systems builder role defined: what the job consists of, the titles it hides under, what to pay one, and a hiring screen that separates systems from demos.
CLAUDE.md and Skills: How I Stop AI Agents From Drifting
CLAUDE.md best practices from a five-brand agent fleet: global hard rules, per-project context, custom skills as SOPs, and a memory index that turns every correction into a permanent rule.
How to Get Your Brand Cited by ChatGPT, Perplexity, and Claude: A Practical GEO Checklist
The exact GEO checklist I run across five brands to get cited by ChatGPT, Perplexity, and Claude — AI crawler access, llms.txt, Article and Person schema, RSS, IndexNow, and entity-consistent sameAs.
Scheduled AI Agents That Work While You Sleep
How I run scheduled AI agents on cron and launchd: my real schedule inventory, guardrails, verifying jobs are actually armed with launchctl, heartbeats, and failure handling.
I Rebuilt 500+ Blog Posts for AI Search with Claude Code
How I built an AI SEO content engine with Claude Code and rebuilt an entire blog — 506 posts live — for GEO and AI search: template cloning, schema, internal links, QA gates, and IndexNow.
How One Person Runs Five Brands with AI Agent Fleets
The full architecture I use to run a business with AI agents solo — five brands, one operator: Claude Code as the operating layer, skills as SOPs, scheduled agents, Cloudflare, and verification loops. With the complete system map.
What Is an AI Agent Fleet? Definition and Anatomy
An AI agent fleet is multiple scoped software agents sharing one written doctrine, a scheduler, and verification gates. The full definition, the anatomy, fleet vs. swarm vs. multi-agent system, and the minimum viable build — from an operator who runs one across five brands.
A 58-Book Publishing Factory, Built and Run by One Person
A fleet-ops case study on how to automate book publishing with AI: 58 books taken from manuscript through cover generation to retailer-ready by one operator, with Python batch pipelines and honest notes on what only a human can do.
The Safe-Rollout Playbook: Letting Agents Ship Without Letting Them Break Production
A working playbook for deploying AI agents safely to production: staged changes, one property at a time, live curl verification, drafts-only outbound, and preview-then-promote — each rule mapped to the failure it prevents.
The Listing Said 32oz. The Bottle Said 1 Liter. A Product-Truth Postmortem.
A real postmortem of AI generated product content errors: an Amazon listing shipped with the wrong size, how the error was caught, and the PRODUCT-TRUTH doctrine that permanently fixed it.
Handoff Documents: How My Agents Pass Work Between Sessions Without Losing the Plot
AI agent context handoff between sessions, solved with one file: the OPUS-HANDOFF pattern — a single source-of-truth markdown per project that turns stateless agent sessions into a continuous workforce. Real structure, real examples from my repos.
The Agent Invented a Supplier. Provenance Rules Saved the Business.
A postmortem on AI hallucination in business operations: an agent fabricated a supplier for an Amazon compliance submission, and image models faked product photos. The provenance rules that caught both — and that my fleet now inherits.
Agent Memory That Actually Works: An Index File, Not a Vector Database
How to give AI agents persistent memory without embeddings or RAG: a human-readable MEMORY.md index linking small typed files — feedback_ corrections, reference_ facts, project_ state — loaded every session.
One-Person E-Commerce Ops: Shopify, Amazon, and an Agent QA Line
How to run an ecommerce store with AI agents: the real ops map from Ecolosophy — storefront, Amazon FBA, influencer engine, email, reviews, SEO — one operator, agents generating, humans holding every gate.
Forward Deployed Engineer, AI Operations Lead, GTM Engineer: Decoding the New AI Job Titles
Forward deployed engineer vs AI operations lead vs GTM engineer: what each title actually means, public comp bands, which fits which company stage, and a fit test for both sides of the table.
Analytics-Gated Publishing: Why My Agents Check Traffic Before They Write a Word
A data driven content strategy for AI agents: every daily publishing run starts with a hard analytics gate — pull traffic, pick one growing keyword, write one post. Here's the mechanics across five brands.
The Deliverable Looked Fine in the Terminal. The Customer Saw Something Else.
A postmortem on QA for AI-generated content: pages and assets that passed every structural check and still failed the moment a real customer looked at them — and the permanent customer-eye gates my agent fleet runs under now.
Every Trading System I Built Failed Its Tests. That's the System Working.
A postmortem on kill criteria and evidence-based systems: I walk-forward tested a stack of trading strategies against one hard gate, and shipped none of them. Here's why that discipline is the point.