Adelaide Hills Pantry is a two-person regional media business: a founder who owns the voice, the relationships and every approval, and a virtual assistant who handles assembly work.
The founder was the integration between every tool. She read email, retyped into trackers, rebuilt the newsletter weekly and chased sponsor follow-ups from memory.
The goal was never "add AI." It was: give her a workforce she can run herself, safely, with no technical background, and without locking the business into any single vendor.
Map how the business actually operates, before building anything
The first artefact was not code. It was a process map of the whole operation, written with the founder: how the weekly newsletter gets made, how the events pipeline works, how partner sales run.
Every activity got one of three colours.
Runs on its own.
An agent works, the founder briefs and steers.
A human by hand.
This map became the ground truth. Every later build decision traces back to it. The single most important finding: the founder was the throughput point for everything, so the system had to reduce what flowed through her, not add to it.
Decide where everything lives, and write the rule down
Agents live in the repo, state lives in Notion and Drive, and secrets live with the runtime. No agent keeps private state on one person's laptop.
In practice
- One private GitHub repo holds every agent, workflow and spec. Version control is the memory and the audit trail.
- Notion holds the operating databases: the CRM, the events approval queue, the sponsorship calendar, the deliverables tracker.
- Google Drive holds assets: images, proposals, documents.
- Secrets follow the runtime. GitHub repo secrets for scheduled workflows, a local environment file for supervised sessions, nothing ever committed. A password-manager vault holds the master copy of every key.
Build agents as folders, to one standard
Every agent, the same layout
CLAUDE.mdThe agent's job description and rules, in plain language.README.mdFor humans.inputs/Human-supplied material the AI never edits.knowledge/Durable distilled facts.context/Instructions and examples.output/Dated job folders, append-only.work/Scratch space.Opening the folder in the development environment primes the agent. The person then works with it conversationally.
The standard also carries the hard rules every agent inherits: drafts only, never send; Australian English; the brand system for anything client-facing; one source-of-truth document that wins on any disputed fact; and provenance, meaning everything in an output traces to something in the inputs, no invented sources.
Connect the tools the business already uses
No tool migration. The agents connect to the systems the business already ran: Notion, Gmail, Google Drive and Sheets, Xero, Shopify, Slack, Beehiiv, Canva, using the Model Context Protocol.
Two deliberate choices
- Connections attach to the surface, not the agent. Which agent can touch which service depends on which workspace is open. The bookkeeping agent has Xero; the newsletter agent does not.
- Read widely, write narrowly. Agents read from everywhere they need. Writing to live shared systems always shows the change first.
Build the one fully automated machine: the events pipeline
Most of the fleet is supervised. One process justified full automation because it is high-volume and low-judgement: event listings. Five workflows on GitHub Actions form a production line.
- Scrape. Discover events from source sites into a Notion approval queue.
- Intake. Process paid and free event submissions into the same queue.
- Enrich. AI fills the gaps on each queued event.
- Image. Guarantee every event has hosted imagery.
- Publish. Push approved events to the Shopify website, report the result to Slack.
Add the scheduled layer, and make the mistake
Around twenty small scheduled scripts handle recurring checks: content reminders and ideas, partner hygiene and payment reconciliation, event staleness checks, finance reports. Each posts its result to Slack, so the humans see flags, not silence.
For speed, these scripts were set up on an always-on local machine rather than in the repo. It worked, and that was the problem. Months later, a fifth of the operation was running production work that could not be versioned, reviewed or rolled back, and the machine pulling the main branch every few minutes meant any merge deployed instantly with no protection.
Design the human operating model
This is the step that makes the system usable by a non-technical founder, and it is the one most builds skip. Five rules, and nothing else to remember.
- New task, new window. One session does one job.
- Start every session with one line.
Work: agent. taskto use an agent,Build: agent. changeto change one. - Know the difference. Work produces things for customers and partners. Build changes how an agent behaves.
- Branches and pull requests are the AI's job. In a Build session, the AI branches, commits and opens the pull request. The founder's only job is to read it on GitHub and press merge. She controls every deployment without ever touching git.
- Mid-task ideas go to a backlog, not the current chat. "The agent should always do X" gets parked, then applied in a weekly batch as one reviewed change.
Write the governance so it survives without me
Four controls, all documented in the repo
- Drafts only. No agent sends email or writes to live shared systems without showing the change first. The human owns the send button.
- Merge is deploy. Nothing reaches production except through a pull request a human reviewed.
- Secrets discipline. Keys never committed; anything ever pushed is treated as compromised, rotated first and scrubbed second.
- Archive, never delete. A retired agent moves to an archive path with a one-line reason. History stays.
Review the fleet on evidence, not affection
Once the system had run for a while, I audited it: sixty days of git activity per agent, a folder audit against the standard, and overlap tests between agents with similar jobs. Every agent got one of four verdicts.
Earning its place.
Works but wasteful.
Right job, wrong build.
Job gone.
Each verdict needing work became one backlog row. The review surfaced real findings: the most active folder in the repo was mislabelled and needed restructuring, the least-used agent went on a usage watch rather than being merged prematurely, and the unversioned scripts from step 6 were named the biggest governance gap.
Keep an honest list of what is unfinished
- The Slack trigger surface, which lets the founder fire agents from her phone, is built but not deployed.
- The legacy scheduled scripts are still migrating into version control.
- The pipeline schedules go live one at a time as each earns trust.
All three are on the prioritised backlog, in dependency order, with the blockers named.
A system that claims to be finished is a system nobody is reviewing.
Map the process before building the agent.
Decide where agents, state and secrets live before writing anything, and make it one sentence everyone can repeat.
Supervise judgement work; automate only high-volume, low-judgement work, and make automation earn its schedule.
The operating model for the humans is the product. Five rules a non-technical founder can follow beat any amount of technical elegance.
Review the fleet on activity evidence, retire without sentiment, and keep the unfinished list public.