Skip to content

builders log · April 4, 2026

I Built a 32-Agent AI Operating System

I run 32 AI agents as the infrastructure of my consulting business. The architecture: SKILL.md files, /invoke, and a 50-prompt Notion library.

I Built a 32-Agent AI Operating System. Here's the Exact Architecture.

Most people experimenting with AI agents have one, maybe two. They call it an "agent" because it sounds better than "a really long ChatGPT prompt."

I run 32.

Not as an experiment. Not as a demo. As the actual operating infrastructure of my consulting business. Every piece of content, every client proposal, every SEO report, every social post, every system I build — some combination of these agents touches it.

Here's the thing: the agents aren't the interesting part. The system that routes them is.


The Problem With "Agents" Without a System

Here's what actually happens when most people try to build an agent stack:

They spin up a chatbot with a system prompt. They call it their "content agent." They ask it to write a blog post. It writes something generic. They're disappointed. They add more instructions. It gets marginally better. They forget about it for two weeks.

The problem isn't the agent. The problem is there's no OS underneath it.

An agent without a system is just a session. You start fresh every time. The "agent" doesn't remember its role, doesn't know what it's been asked to do before, doesn't have a defined domain, and has no way of handing work off to the next agent in the pipeline.

What I built solves all of that. The core is three components: SKILL.md files, the /invoke command, and a 50-prompt Notion library organized by outcome.


SKILL.md: The Persona File

Every agent in my system lives in a folder under systems/. Each folder has exactly one required file: SKILL.md.

This is not a list of instructions. It's a complete identity document.

A SKILL.md defines the agent's name (I use Norse mythology — my SEO agent is Ratatoskr, my content writer is Idun, my social media manager is Snotra), their specific domain, what they are NOT responsible for, their output paths, their handoff rules, and their voice.

The Norse names aren't aesthetic. They're functional. When I type /invoke ratatoskr, I'm not calling a function — I'm summoning a specialist who knows exactly what they do, what they don't do, and how to hand off to the next agent in the pipeline.

Here's the practical difference: a generic "SEO agent" will try to write the content. Ratatoskr has ## What You Do NOT Do in their SKILL.md — and "Write blog posts (that's Idun)" is line one of that section. That boundary alone eliminates half the problems people have with multi-agent systems.


The /invoke Command

The /invoke command is a slash command in Claude Code. It does one thing: it finds the right agent folder, reads their SKILL.md, and adopts that persona for the session.

You can invoke by Norse name: /invoke ratatoskr

Or by folder name: /invoke seo-specialist

Either works. The command checks the name: field in SKILL.md frontmatter and matches it to whatever you typed. No registration required. Create a folder, create a SKILL.md, and /invoke [name] works immediately.

The practical result: I can go from "I need SEO research on this topic" to a fully context-loaded specialist agent in about three seconds. That agent knows their output paths, their handoff targets, their guardrails, and their voice. They don't need to be briefed. The SKILL.md is the briefing.

The system works across Claude Code, Claude Web, and Gemini. Same SKILL.md files, same agent behavior, different runtime. One architecture, three interfaces.


The 50-Prompt Notion Library

The SKILL.md system handles the agent routing. The Notion Prompt Library handles the task routing.

I have 50 prompts organized by outcome category: Build, Write, Research, Analyze, Operate. Not by tool. Not by topic. By what you're trying to accomplish.

Every prompt in the library does something that most people's prompts don't do: it forces an interview before executing.

Here's why that matters. Most prompts fail not because the AI is bad at the task, but because the human didn't know what they actually wanted before they asked. "Write me a blog post about AI agents" produces generic garbage because that instruction contains no specificity. The prompt library catches this at the front door.

A typical entry in my Write category starts with a 4-6 question interview: What's the content pillar? Who's the audience? What outcome do you want the reader to have? Is there prior session context to load? Only after those questions are answered does the agent start producing.

The result is that 50 prompts replace hundreds of ad-hoc requests. Instead of typing "can you help me with a blog post," I open the Notion library, find the Builders-Log Pillar Post prompt, answer six questions, and get content that's correctly structured, correctly voiced, and correctly targeted on the first pass.


What a Normal Tuesday Looks Like

A content pipeline runs automatically at 7am on weekdays. Ratatoskr scans keyword trends and competitor content, creates a brief, and drops it into systems/content-creator/input/briefs/. Idun picks it up and writes the post in my voice. The post goes to the website repo. Snotra adapts it for LinkedIn and Instagram. All before I've had coffee.

When I need to work on a client deliverable, I type /invoke project-manager and get an agent that knows the file structure, the client folder conventions, and the handoff protocols. When I'm building a new system, /invoke system-builder gives me Volundr — the architect who knows the naming conventions, the CLAUDE.md rules, and the build order for new agent systems.

When something breaks, I don't start a new chat and explain everything from scratch. I invoke the right specialist. They already know the system.


The Meta-Lesson

The thing I tell every AI consulting client who asks about this: the system is the product.

Not the prompts. Not the agents. Not the AI models. The architecture that connects them, routes between them, and gives each one a defined scope is the thing that makes AI actually useful at scale.

Most people treat AI like a power tool — you pick it up when you need it and put it down when you're done. That works for one-off tasks. It doesn't work when you're trying to run a business.

What I built is closer to a staff than a tool. 32 specialists. Each one knows their job, knows who they hand off to, and knows what they're not responsible for. The /invoke command is just how you get their attention.

The whole architecture — SKILL.md files, the Notion Prompt Library, the /invoke command — runs on Claude Code, costs nothing beyond my Claude subscription, and took about three months to build iteratively while running the business on top of it.

That's the builders-log version. Not a tutorial. Not a pitch. Just what I actually built and why it works.

If you want to see the audit that convinced me to go all-in on this model, that's here.


This post is part of the Builders Log — behind-the-scenes coverage of building an AI-first consultancy from scratch.

Frequently Asked Questions

What is a SKILL.md file and why does every agent need one?

A SKILL.md file is a complete identity document for an AI agent. It defines the agent's name, domain, what they are NOT responsible for, output paths, handoff rules, and voice. Unlike a system prompt, which you paste fresh each session, SKILL.md is a persistent file that lives in the agent's folder. When you invoke the agent, the file is read automatically — no briefing required. The "What You Do NOT Do" section is especially important: it prevents agents from overstepping into another agent's domain.

How does the /invoke command work in Claude Code?

The /invoke command is a slash command in Claude Code. Type /invoke [name] and it finds the matching agent folder, reads the SKILL.md file, and adopts that agent's persona for the session. You can invoke by Norse name (e.g., /invoke ratatoskr) or by folder name (e.g., /invoke seo-specialist). No registration required — create a folder, create a SKILL.md, and the command works immediately. The whole process takes about three seconds.

Do I need to be a developer to build a personal AI operating system?

No. The architecture described here — SKILL.md files, the /invoke command, and a Notion prompt library — requires no coding. SKILL.md files are plain text documents. The /invoke command runs in Claude Code, which is a terminal app but requires no programming knowledge to use. The Notion library is just a database of prompts. The system was built by a CEO/consultant, not a developer, while running a consulting business on top of it.

What is the Notion Prompt Library and how is it organized?

The Notion Prompt Library is a collection of 50 prompts organized by outcome category: Build, Write, Research, Analyze, Operate. Unlike most prompt libraries organized by tool or topic, this one is organized by what you're trying to accomplish. Every prompt forces a 4-6 question interview before executing, which catches the most common failure mode: not knowing what you actually want before you ask.

How long did it take to build a 32-agent AI operating system?

About three months, built iteratively while running the business on top of it. The system wasn't designed upfront — it grew as each new capability was needed. The /invoke command started as a simple file-reading shortcut. The SKILL.md format standardized over time as more agents were added. The Notion library consolidated what had been dozens of scattered prompts. The architecture is the result of solving real problems, not theoretical planning.


About Justin Harris

I am an AI consultant Las Vegas building custom AI revenue infrastructure for service businesses. Every system is custom-architected, installed in 30 days, and tied to a measurable revenue line on your dashboard. No chatbot subscriptions. No vendor lock-in. Full ownership transfer at handoff.

If you are evaluating AI for your Las Vegas business, the related work I do includes AI agency Las Vegas and AI implementation Las Vegas. Or get a Free AI Revenue Audit to see where AI would generate the most revenue for your specific operation.

A SKILL.md file is a complete identity document for an AI agent. It defines the agent's name, domain, what they are NOT responsible for, output paths, handoff rules, and voice. Unlike a system prompt, which you paste fresh each session, SKILL.md is a persistent file that lives in the agent's folder. When you invoke the agent, the file is read automatically — no briefing required. The 'What You Do NOT Do' section is especially important: it prevents agents from overstepping into another agent's domain.

Next Step

Want to see how AI applies to your business?

I'll map exactly where AI can save you time, cut costs, and drive revenue.

Unlock AI Audit