Field notes - cjarnesen.com

Inside

This is the machine behind the business: a team of AI agents, built on Claude Code for now, that runs day-to-day operations for Sierra Nevada Off Road Academy and the rest of what I build. It handles the busywork; the decisions come back to me. I built it so it could move to any frontier model without starting over. This page is the tour of how it all fits together.

Tell me about your workflow

Operator CJ Arnesen Surface CAIRN Running since 5 Apr 2026 Tasks 4,161 (September 8, 2026)

01

I built a team to do the work I was doing at midnight

Not a chatbot you talk to. An orchestrator, a bench of specialists, a dashboard, jobs on a schedule, hooks that enforce the rules, a memory that keeps what it learned, and gates that keep a person in charge.

The whole thing started the way most real problems do: not with a business metric, with a life full of competing priorities. My first kid on the way, a house that needed remodeling, and my first business to run. Teaching an off-road class meant being gone all day, then sitting at the computer doing customer follow-ups and preparing the next class while still filthy from the trail, showering at midnight long after my family had gone to sleep.

You don't find time, you prioritize it. Running Sierra Nevada Off Road Academy meant bookings, payments, waivers, reminders, rosters, customer email, curriculum, and the follow-up after every class, spread across different tools with me carrying information between them. My estimate is that the routine admin alone was eating about 15 hours a week. So I automated what I could and handed off the rest.

So I built the machine. One orchestrator named Smith takes every request, decides who should handle it, and hands it off with full context. Specialists do the actual work. A dashboard called CAIRN shows the state of everything. Scheduled jobs run most of it while I sleep. And a small set of gates makes sure nothing important happens without me saying the word. The rest of this page walks through each of those pieces.

The CAIRN Hub dashboard with one live question from the team waiting in the Needs You lane
The CAIRN Hub, the first screen I check every morning. In the Needs You lane: a real question from the team, waiting on my answer. Every number on the board comes straight from the task database, and each card says where its number came from, so I am never looking at a made-up figure.

02

The team is built in layers

Think of it as three working layers plus a fourth that keeps the machine in check, not a wall of faces. Each specialist has one job, one voice, and a tightly scoped set of things it is allowed to touch.

Twenty-seven specialists sit under Smith, who routes the work, plus one external member: Codex, OpenAI's coding CLI, fully folded into the same process as everyone else. Every one runs on a model matched to the weight of its job and can touch only what its role requires. The most important shared rule: none of them can send an email or push anything live on its own. They draft and prepare. The final word is always mine.

Each card below lists what the agent does, its own line, the model it runs on, how many tasks it has handled to date and, in plain words, what it is allowed to touch. Open a card for the last part.

The business operating system (8)

The layer that runs the ventures day to day: bookings, payments, waivers, marketing, partnerships, and the technical accuracy that keeps a training company credible.

Wren Operations Coordinator Sonnet 22 tasks Can touch →

Reads and writes files, reads and writes Notion and Google Sheets, reads the SNVORA booking calendar, reads email. Cannot send.

Bill Financial Controller Opus 59 tasks Can touch →

Reads and writes files, reads and writes Google Sheets, reads the SNVORA inbox. Cannot send, cannot move money.

Hollis Marketing Manager Sonnet 37 tasks Can touch →

Reads and writes files, reads Notion, connects to the email marketing tool. Cannot send campaigns without the word.

Halsey BD and Partnerships Lead Sonnet 15 tasks Can touch →

Reads and writes files, reads and writes Notion and Google Sheets, drafts Gmail. Cannot send.

Margot Business and Competitive Research Sonnet 14 tasks Can touch →

Reads and writes files, searches the web, reads Notion.

Dag Off-Road Technical Specialist Sonnet 55 tasks Can touch →

Reads and writes files, searches the web, reads Notion.

Cael Air Down Scientist Opus 23 tasks Can touch →

Reads and writes files, searches the web, reads Notion.

Thorn Fire Service Training Specialist Sonnet 9 tasks Can touch →

Reads and writes files, searches the web.

The owner operating system (5)

The layer that handles my writing, planning, and research, plus the personal projects that would otherwise sit on my desk.

Waverly Content Strategist and Brand Voice Fable 151 tasks Can touch →

Reads and writes files, drafts email in three accounts, reads Notion. Cannot send.

Jules Travel Agent and Trip Planner Sonnet 3 tasks Can touch →

Reads and writes files, searches the web, reads Notion and email.

Susan Senior Researcher Opus 53 tasks Can touch →

Reads and writes files, searches the web, dispatches its own sub-agents to read in parallel.

Marlowe Screenwriter and Adaptation Specialist Opus 27 tasks Can touch →

Reads and writes files, searches the web, reads and writes Google Docs.

Marek Short-Term Trading Analyst Opus 16 tasks Can touch →

Reads and writes files, reads market data. Can place a trade only in one sandbox account, and only behind a confirm gate.

The self-improving production system (9)

The layer that builds the work and the tools the work runs on: sites, design, video, curriculum production, and the systems engineering underneath all of it.

Fletcher Systems Engineer and Integration Architect Opus 933 tasks Can touch →

Reads and writes files, runs commands, reads and writes Google Sheets, dispatches sub-agents. The plumbing under everything.

Kit Web App Developer and Dashboard Frontend Opus 411 tasks Can touch →

Reads and writes files, reads and updates Netlify project settings. Deploys stay gated on the word.

Pax Product and UX Designer Opus 126 tasks Can touch →

Reads and writes files, searches the web, reads Notion, reads Netlify project settings.

Sienna Graphic Designer and Brand Steward Sonnet 29 tasks Can touch →

Reads and writes files, searches the web.

Reeves Video Director and Creative Director Sonnet 7 tasks Can touch →

Reads and writes files.

Sable Cinematographer and Visual Stylist Sonnet 3 tasks Can touch →

Reads and writes files.

Cruz Video Editor and Post-Production Lead Sonnet 2 tasks Can touch →

Reads and writes files.

Reese Content Ops and Editorial Producer Sonnet 15 tasks Can touch →

Reads and writes files, reads and writes Notion and Google Sheets.

Ansel Intelligence Analyst Opus 27 tasks Can touch →

Reads and writes files, searches the web.

The ones who keep the machine in check (5)

The layer that checks the other three: verifying work actually finished, curating memory, watching the systems, hiring, and tracking what needs to happen next.

Tate QA and Process Auditor Opus 191 tasks Can touch →

Reads and writes files, runs commands. Verifies, never authors the work it checks.

Quill Memory and Knowledge Architect Opus 101 tasks Can touch →

Reads and writes files. Curates the memory index.

Vance AI Ops and Site Reliability Owner Opus 364 tasks Can touch →

Reads and writes files, reads email, watches the systems.

Nolan Head of Talent Sonnet 24 tasks Can touch →

Reads and writes files. Designs new roles when the team has a gap.

Morgan Program Manager and Project Strategist Sonnet 54 tasks Can touch →

Reads and writes files, reads and writes Notion.

Above the layers, and outside the house (2)

The orchestrator that routes everything, and the team's one external member: Codex, OpenAI's coding CLI. It is not a side channel: it gets the same written briefs and task IDs as everyone else, its work is tracked on the same dashboard, and everything it builds is reviewed before it merges.

Smith Chief of Staff and Orchestrator Fable 1,198 tasks Can touch →

Defined in the repo's CLAUDE.md, not an agent file. Takes every request, triages it, and routes it. Runs the operational pieces itself and hands the specialized work out.

Codex External Implementation and Outside Review (OpenAI Codex CLI) External 192 tasks Can touch →

OpenAI's coding CLI, governed by the repo's AGENTS.md. Briefed in writing with a task ID like any team member, tracked on the dashboard, reviewed before merge. Dispatched for building and for an independent second opinion, never for anything the house gates reserve for a person.

03

Every request travels the same path

Every request takes the same route, no matter how big it is or who ends up doing the work. Click on each step to see the details.

  1. CJ

    I share my idea or outline of a plan as a simple prompt.

  2. Smith triages

    Smith figures out what it really is, which project it belongs to, and how much it matters right now.

  3. Task on CAIRN

    The request becomes a tracked task on the dashboard, so it is visible the moment it exists.

  4. Brief

    Smith writes a brief with full context, a clear deliverable, and the task ID, and hands it to the right specialist.

  5. Specialist

    The specialist does the actual work, on the model matched to the job. The work is then peer-reviewed and is not accepted as complete until it meets the goal set out in the brief.

  6. Deliverable

    The finished piece shows up in the dashboard for review, with a naming convention that traces it back to the specialist.

  7. Reviewers

    Where it matters, another set of hands checks it: Tate for whether it finished, Kit or Waverly for build and voice.

  8. CJ Inbox

    Anything awaiting my review shows up in one place, on the dashboard.

  9. CJ decides

    I approve, adjust, or send it back.

  10. Archive

    Once I have signed off, the work is filed by project and month, and the task closes.

The Projects board on CAIRN: fourteen active projects with phases, items, and progress
The Projects board: fourteen active projects, each with its phases, items, and progress. This is where a request becomes tracked work instead of living in my head.

04

One board shows the whole operation

CAIRN is where I check on everything: Calendar, Actions, Inbox, Records, Notes.

CAIRN is a set of boards, each built for one question. The Hub is the morning overview. There are boards for email, for today's work, for image review, for transcripts, for system health, for the sites, for claims, for research, for projects, and for the roadmap. Every card shows live data, a plan, a system state, or something waiting on a decision.

The lane I care about most is Needs You. Anything waiting on my decision collects there, and I can approve it or send it back with one tap, from my phone, without opening a laptop. That is the point of the whole dashboard: make my approval immediate, easy, and well-informed.

The Needs You decision lane on CAIRN, a question waiting for approval
The Needs You lane, where decisions wait for the word. One tap approves or sends it back, even from my phone.

The SNVORA Console

For Sierra Nevada Off Road Academy operations, I built a dedicated console. It shows real-time booking data: who has booked, how much, what day, what class. It also shows which emails they have received, the receipt, the waiver copy, the cohort agenda, and the unique booking link to reschedule or cancel. That lets me keep tabs on the customer experience without getting a copy of every email they get.

The console also serves as a single pane of glass for SNVORA infrastructure health and status.

The SNVORA Console board on CAIRN: booking timeline, the week's schedule, email health, background jobs, and site status
One business, one board. The SNVORA Console pulls the booking timeline, the week's schedule, email health, the background jobs, and site status into one read-only view that links out to act.

05

The team gets it ready, I'm the one who says go

The team prepares, tests, and builds, right up to the last step, and then it waits for me.

CJ, ONE APPROVAL

NOTHING SENT, DEPLOYED, PAID, OR IRREVERSIBLE WITHOUT MY WORD

The gates load on every session, for every agent, before any work begins. They cover five kinds of action:

Three hooks enforce this rather than trusting anyone to remember: a git guard that blocks dangerous operations on the live tree, a publish tripwire, and a bridge that surfaces a decision to me instead of guessing. And the permissions back it up: the writing agents can draft in my email accounts, but not one of them can hit send.

The Emails board on CAIRN, subtitled the original above the drafted reply, nothing sends from here, with an empty needs-a-reply queue
The email board, and its own subtitle says the rule: the original sits above the drafted reply, and nothing sends from here. Every reply was handled the morning this was taken, which is what an empty queue looks like.

06

The team's memory follows rules I wrote

The expensive part of any lesson is learning it the first time. The system is built so we only pay for that lesson once, and that takes more than a file of notes.

Memory has three levels. At the bottom, a topic file for each lesson, one fact each, written the moment an agent learns it: a new account, a correction from me, a constraint it hit the hard way. In the middle, per-project rules files that load only when an agent is working in that project, so a booking lesson shows up for booking work and stays out of the way otherwise. At the top, one index that loads for every job, for every agent, every time. That index is the costly part. The real limit is context, how much an agent can keep in mind for a task, and the index spends some of it on every job, so every line has to earn its keep. Every agent reads it before starting, but only because I set it up that way; a sub-agent inherits what its parent knows only if the setup says so.

When the index fills up, nothing gets deleted. An entry moves down a level, where it still loads for the work that needs it. If a lesson turns out to be wrong, it's marked superseded and points at the correction, so the old answer never shows up without the new one beside it. All of it is plain markdown in git. Claude Code keeps its own memory folder for the project, and that folder is symlinked into the repo, so the memory is tracked and portable instead of a second copy sitting somewhere else. This is partly what lets the whole team stay model-agnostic.

At the moment there are 1,227 memory files and 26 rules files (September 8, 2026), indexed in 138 lines. A hook captures new lessons at the end of every session. Every morning at 4:30, a script Quill owns files any note nothing points at and flags duplicates for review instead of merging them. It is plain Python and never calls a model. The result is a team that doesn't make me explain the same things twice.

The longer version, including the outside review that got its biggest finding wrong and still caught a real gap, is in "Teaching an AI Team to Remember What It Learned".

07

The work runs on a schedule, mostly while I sleep

A lot of this never waits for me to ask. 69 jobs (September 8, 2026) run on their own clocks, and I meet the results in the morning.

There are 69 scheduled jobs installed, grouped by what they keep running:

A day in the life

08

What the team has actually shipped

These are live, in production, with real URLs you can open right now. At least 16 web projects sit in the account across production, staging, utilities, and club sites (documented inventory); here are the public ones worth a link.

As of the snapshot, 39 web properties are monitored for health (September 8, 2026); that count includes staging and internal rows, so it is not a claim that all 39 are public. The ten below are.

The SNVORA home page: a mountain lake hero, class catalog, and booking

SNVORA

www.snvora.com - Netlify

The school's home: rock crawling and recovery training for recreational drivers and agencies.

Visit →
The agency landing page: fire-department and fleet training programs

SNVORA for Agencies

agency.snvora.com - Netlify

The fire-department and agency programs, including winch training and off-pavement driver training.

Visit →
Air Down For What home page: the Air Down For What headline beside a tire-pressure gauge illustration

Air Down For What

airdownforwhat.com - Netlify

Off-road education and gear guidance, with a searchable technique library.

Visit →
Hitching Post booking page listing four meeting types

Hitching Post

cal.cjarnesen.com - Netlify + Cloudflare Workers + Neon

A personal scheduler that books against my real calendar, no back-and-forth email.

Visit →
Noni's Recipes home page with the family cooks and featured recipes

Noni's Recipes

www.nonisrecipes.com - Netlify

A family recipe site, kept simple and editable.

Visit →
Campbell Video home page: tape digitization in Campbell, California

Campbell Video

campbellvideo.com - Netlify

A tape-digitization service built to run from home.

Visit →
Fire Incident Learning Library home page: 763 incidents, searchable

Fire Incident Learning Library

fireincidentlibrary.org - Netlify

763 fire and off-road incidents, turned into a searchable research tool.

Visit →
BARC Event Guide: so you want to host an event

BARC Event Guide

barc-event-guide.netlify.app - Netlify

Self-guided event info and volunteer intake for the Bay Area Rivian Club.

Visit →
ED4 Event Guide: the same event-intake pattern for Esprit de Four

ED4 Event Guide

ed4-event-guide.netlify.app - Netlify

The same event-intake pattern, reused for the Esprit de Four club.

Visit →
cjarnesen.com home page: product leader, community builder, offroad founder

cjarnesen.com

cjarnesen.com - Netlify

This site: the personal home, the owner-operator case study at /systems, the writing at /writing, and the page you are reading.

Visit →

09

We rebuilt scheduling from the calendar up

The scheduling tools I paid for could never really see my life. Fixing that started with one calendar flag and ended with SNVORA taking bookings on its own system.

My calendars are on iCloud, shared with my wife, with everything a family calendar collects. Calendly, Cal.com, and Acuity all sat on top of them and guessed, and Acuity charged me $60 a month for it. I was completely fed up. Apple puts a busy/free flag on every event, but there is no way to ask iCloud if I am free right now, and about one event in ten has no flag at all.

I used the team to dig in and understand what Apple was and was not doing with the busy/free flag. We built a small tool that sets the flag using CalDAV, changes nothing else, and backs up the event before it touches it. Then we built an engine that reads the flag along with overlays, blackout dates, existing bookings, and buffers, because iCloud won't answer the question itself.

That engine made cal.cjarnesen.com possible, a booking page that checks my real calendar before it offers a slot. If the sync is out of date it offers nothing instead of guessing. A booking creates a unique Zoom link and adds an attendee-free event to my real calendar. From there the calendar controls the booking. Delete the event and the booking cancels; move it and the booking reschedules.

The cal.cjarnesen.com landing page listing four meeting types: 15, 30 and 60 minute video calls and a 90 minute in-person coffee
What you land on at cal.cjarnesen.com. Pick the length of conversation you actually want.
The 60 minute meeting view: a September calendar beside the open times for the selected day, shown in the visitor's own time zone
Pick a day and the open times sit right beside it. Every slot shown has already cleared my real calendar, and the times are in your zone, not mine.

Then we did it at scale for SNVORA. Instead of moving the old signup process onto new tech, I rebuilt the whole customer experience starting from the calendar. We can list six classes on the same day, and the first paid signup locks the day to that class and removes the other offers. When we add class dates, any day that overlaps my personal calendar is flagged before we publish.

Checkout supports discount codes, gift certificates, add-ons, waivers, and refunds as store credit. The waivers are e-signed without a vendor and keep a real audit trail. Everything runs on our own domain, and the only third-party page a customer sees is Stripe's, on purpose, so we never handle card data.

The SNVORA Intro to Recovery class page with its reserve flow, all on snvora.com
A class on snvora.com, reserve button to waiver to checkout, all on our own domain.

Behind this are 130 database migrations and a booking test suite of more than 1,300 tests. I built the SNVORA site in eight days, and done the usual way it probably would have cost $10,000 and taken two months. It didn't go smoothly the whole way. The morning the system sent about 1,100 emails for one booking, and the reschedule that tried to move a 2026 booking to 2007, are in the longer write-up: "Apple Has a Busy/Free Flag. It Just Won't Let You Ask."

10

The team reads my inbox twice a day

I have three inboxes: my personal Gmail, the SNVORA account, and the one for the Rivian club I run. At 6:30 in the morning and 6:30 at night, a job reads all three and sorts everything into four groups: needs a reply, needs a reply and is time-sensitive, worth knowing about, and junk it doesn't even list. Anything that needs a reply gets a draft in my voice.

It can read my email and write drafts, but it cannot send them. Sending was never part of the build, so the send button stays mine. The briefing also has a Notes section that reads like an admin who knows my calendar and my customers: who's waiting on me, the lead I might have missed.

From April 5 to September 8 it processed 9,956 emails across 225 runs. I won't pretend to know how many hours this has saved me, but I do know it has caught emails that would otherwise have slipped through the cracks. And, there is also that one morning its draft beat the one I wrote by hand. I wrote up that story here: "My Inbox Runs Itself Twice a Day".

11

The tools I actually run it from

Many of these tools are internal. They help me run the business day to day, and they also produce one-off content that customers do see.

Behind the public sites sit the operator tools. There is an Email Wizard that assembles the post-event follow-up, gear links, survey, and photo-album steps into a draft I review. There is an Image Review surface where I approve or correct generated curriculum images before they get inserted into a template. And there is the SNVORA admin page, the owner side of the booking and scheduling system. Its home screen and the offer-a-date screen are below.

The Email Wizard operator tool, assembling a post-event follow-up draft
The Email Wizard, an operator surface. It assembles the post-event steps into a draft in my mail client, complete with a Google photo album and follow-up details drawn from that day's event. It does not send.
The SNVORA Admin surface picker: schedule a client, dates, classes, locations, customers, coupons and credits
The SNVORA admin. Seven surfaces for running the business: schedule a client, offer dates, manage classes and locations, open a customer record, issue coupons and credits.
Offer a date: a September calendar beside a list of classes to offer, with September 26 flagged busy from a personal calendar event
Offering a date. I pick the classes I would actually teach and the first paid booking decides which one happens; the rest fall away. The calendar on the left has already checked my personal one, which is why the 26th is flagged busy.

12

The system checks its own work, and works on itself

One layer exists to improve the others. It watches for better methods, grades its own output, and verifies what it renders and stores before I ever see it.

Tradecraft Scout monitors documentation, model release notes, and best practices across a curated set of sources for changes that might matter, screens them for relevance, tiers how much to trust each one, and only surfaces a proposal once it clears the gate. When a page it read came back garbled and the summary invented things that were never there, it caught that instead of passing it along. It started at 29 videos, about 13.4 hours of source, transcribed and analyzed so I could review what was worth keeping in about fifteen minutes. The corpus is 96 transcripts now. What clears the gate comes to me as a write-up with a recommendation, not a link to go read.

A Tradecraft finding written up in full: what it is, what it would mean for us, a recommendation of wait and see, and Adopt, Wait and Ignore buttons
One finding, written up. What it is, what it would mean here, and a recommendation. This one came back "wait and see": the source asserted something worked without showing it working, so the write-up says exactly what evidence would change its mind. Adopting records a decision; it does not run anything.

Every Monday at 05:15, the system grades itself against 19 real tasks with deterministic graders, so a change that quietly makes things worse gets caught. And two self-verification gates run before anything reaches me: one screenshots and grades any rendered page, the other verifies any stored change against the actual state of the world, not against an exit code. The system does not ask me to trust that it worked. It checks, then shows me the check.

The image pipeline, one real run

Here is what "checks, then shows me the check" looks like in practice. For one prospect's personalized Intro-to-Driving deck, the system generated 163 candidate images at 2K across three rounds, then I picked the winners. Those winners went into the deck through the Slides API, with a person reviewing at every step. The images below are four of those generated candidates.

An opened image-review round: four generated candidates with YES, FIXABLE, or NO verdicts and a GOLD pick
One review round: the four generated candidates for a scene, each with a YES, FIXABLE, or NO verdict, one marked GOLD, and the source image being replaced. The scene title, the candidate filenames, a library path, and one per-scene cost figure are boxed out.
A generated 2K training image of an off-road vehicle on a trail A generated 2K training image of an off-road vehicle in terrain A generated 2K training image of an off-road vehicle on rock A generated 2K training image of an off-road vehicle in a landscape
Four generated candidates from the run. Curriculum imagery, generated then human-reviewed, from the August 25-26, 2026 run.

13

The numbers, as of today

These cover different parts of the work, and they do not add up to one hours-saved number. Dashboard counts are current as of September 8, 2026.

WhatNumber
Routine SNVORA administration~15 h/wk toward ~45 min/wk
Tasks routed through the dashboard4,161 since 5 Apr; 3,636 delivered or archived
Email triaged across three inboxes9,956 messages over 225 runs, April 5 to September 8
Decisions that came back to me477 recorded on the dashboard
Session email for one class8-student class produces 24 correctly timed messages
Transcripts reviewed and filed43 items across 49 routing runs
Curriculum image generation2,336 images across five client programs, including the fire service curriculum; $0.134 per 2K image, $0.24 at 4K
Prospect imagery run163 candidates over two days for one deck; I picked the winners myself
Fire and off-road incidents763, pulled from multiple sites and data sources into one searchable library
First institutional curriculum~200 of my hours to build, inside 275+ total deck hours; that was the cost, not the saving. Updating a customized version now takes a handful of hours, not the weeks it took by hand
Tradecraft source corpus96 transcripts read, 305 findings logged, 9 adopted
Web projects managedat least 16, across production, staging, utility, and club accounts

14

What it runs on

No exotic infrastructure. Boring, durable parts, wired together carefully.

15

Longer reads

Four pieces go deeper than this page does.

Tell me about your workflow

No pitch, just comparing notes. If you run a training, event, or field-service business and something here looked familiar, I'd genuinely like to hear about it.

Tell me about your workflow