The Agent-Native Agency · Build the departments
First, how we run Ability AI on Trinity and the principles behind it. Then Keymaker: an agency built the same way, in public, one piece per session. Today its first three departments go into the Trinity Library. You install them, bring one of your own agents in beside them, and leave with the recipe.
01 · Today
Everything after the first stop runs on a fresh v0.9.5 instance like yours. No credentials needed for any step.
Our own system, live: the agents, the orchestrator, the brain, the gates. The six principles it runs on.
The same shape, cut down and public. Its org chart and what each desk owns.
How a repo becomes a card on every Trinity install. Sales, Delivery, Marketing: create, name, done.
A real pipeline with fixed stages. It drafts, never sends; a price off the list goes to a person.
Health scores, the hand-off from Sales, and a skill assigned from the library without a restart.
A Claude Code bot, an n8n flow, a cron script: analysed, migrated, created, tagged into the agency.
Tags, shared folders, who may call whom. Then export the manifest.
The three files to edit, and the brain that arrives on October 8.
02 · Trinity, running Ability AIlive demo
A few dozen agents on one Trinity instance: departments, an orchestrator on top, a brain underneath, people on the gates. Everything in this series is a cut-down of it.
Not personal agents on laptops. Company seats, shared with the people who need them, with one inventory.
Versioned, reviewable, installable from a card. Changes have a history; runs have a log.
Work flows down from the orchestrator, numbers flow up from the desks, lessons come back through the brain.
Anything that leaves the building waits for a person. A gate is what the agent cannot do, not a promise.
A shared canon every agent reads. Prices, positioning and facts live in one place.
What you already run comes in as it is. Flows become playbooks. Only the ownerless gets rebuilt.
03 · Keymaker
Keymaker is fictional; its shape is ours. It sells an audit, a pilot, a build, and operating the result. Every session adds a piece. Today: the three desks that touch a client first.
What each desk owns
| Deskcut down from | Servesthe primary human | Ownsthe numbers it reports | Touchesthe real system | Runs on, out of the box | One credential adds |
|---|---|---|---|---|---|
| Sales our sales agent | the deal owners; the principal sees all and signs | open deals · stalled deals · proposals sent · won this month | the CRM pipeline and the price list | pipeline/deals.yaml with three sample deals | a Fibery token: the same playbooks on your CRM |
| Delivery our delivery-ops agent | the delivery manager | active clients · average health · stalled implementations · live | client projects and records | clients/clients.yaml with three sample clients | a GitHub token + the project skills: each client project as GitHub Issues |
| Marketing our marketing-ops agent | the marketing lead | leads by channel · handed to Sales · content shipped | the channels and the lead list | marketing/leads.yaml and a content plan | email and analytics, one at a time in later sessions |
The numbers each desk owns are declared in its template so every copy of the agency reports the same things. Reporting on them in the dashboard lands after 0.9.5; today they are printed at the end of each review.
04 · Install from the Librarylive demo
A template is a GitHub repo with a template.yaml at its root. One line in Trinity's public registry and it is a card under Library → Agents on every install. Create clones it onto your instance: public repo, no token, zero credentials.
Deals on a real pipeline. Drafts, never sends.
/deal · /draft-outreachEvery client has a health score and a next step.
/clients · /client-statusContent planned, leads counted, one report a week.
/content-plan · /weekly-reportOn stage, in click order

The Keymaker starter set stays in the Library of every Trinity install. Built for this workshop, free, Apache 2.0. Fork the repos and the cards become your agency.
05 · Saleslive demo
Sales touches the two things an agency cannot get wrong: the CRM and the price. The desk is built around what it may not do. Three questions, each hits a rule.
one person, one chat, no rules
one desk, several operators, three rules
pricing.md. A price off the list stops and asks the principal.drafts/ that the owner sends.operators.yaml says who may use it; a rep sees only their own deals.The pipeline, fixed
| # | Stage | What must be true to enter it |
|---|---|---|
| 0 | Discovery Call Booked | a real meeting is on a calendar |
| 1 | Discovery Call Held | the call happened; notes exist in the deal record |
| 2 | Qualified | pain, stake, decision-maker and budget path are known |
| 3 | Workflows Reviewed | the specific workflows to automate are named |
| 4 | Proposal Sent | a proposal from the price list has gone to the owner for sending |
| 5 | Contract Under Review | contract drafted from the approved terms |
| 6 | Won | signed; the hand-off file goes to Delivery |
Three questions on stage, as the rep Sam Reyes
It identifies the operator from operators.yaml, shows only Sam's deals, puts the stalled one first, and ends with one next action per deal.
The list says "from $40,000". A rep may not approve that, so the agent stops, asks the principal through the operator queue, and does nothing until the answer is in. Asked by the principal, it records the approval in the deal instead.
Refused. It writes drafts/northwind-legal-follow-up-2026-10-01.md, with the champion's name and one ask, and tells you where it is. You send it under your own name.
A gate is what the agent cannot do: no mailbox, one price file, a write path that stops without a confirmation. Today the pipeline and the client records live in files inside each agent. The real systems, CRM first, come in the next sessions.
06 · Deliverylive demo
A score per client, a state and a next step per implementation, a stall flagged at fourteen days. And two mechanisms the whole agency runs on: the shared folder between desks, and the Skills Library.
When Sales moves a deal to Won it writes drafts/<client>-handoff.md into its exposed folder. Delivery consumes that folder, sees the file, and creates the client with the first implementation and a kickoff call as the next step.
Last contact within 7 / 14 / 30 days: 40 / 25 / 10 points. Implementations moving: 30. One live: 20. A champion named: 10. Green from 70, red under 40. Same formula on every copy, so two agencies can compare notes.
The Skills Library is already connected on a fresh install, pinned to a release tag of trinity-skills. Assign project-task and project-init to Delivery from the Library card and each client's work becomes a GitHub Issues registry when a token is present.
On stage, in click order
/project-task appears in the chat autocompleteEach desk's workspace holds its own record. The shared folder is how desks hand work to each other; the Skills Library is how a procedure written once reaches every agent. No desk reads another desk's chat.
07 · Bring your own agentlive demo
The "keep" path end to end, on three stray agents the way most agencies have them: each works alone, none knows the others, nobody owns them on paper.
A Claude Code agent: a CLAUDE.md and one skill that turns a transcript into client notes. Detected as-is.
An n8n workflow export that nags overdue invoices every morning. Detected from the JSON; becomes a playbook an agent owns.
n8n exportA Python loop on a cron that scores inbound leads with an LLM call. Detected as freeform code; wrapped with a charter and an owner.
coded loopThe chain, in Claude Code (desktop app or terminal)
Claude Code desktop app: click + next to the prompt box → Plugins → Marketplaces → Add Marketplace, enter abilityai/abilities. Then Add plugin → agent-dev, and again for create-agent. No restart; the summary says when a plugin is active.
Terminal: the same two steps as commands.
/plugin marketplace add abilityai/abilities
/plugin install agent-dev@abilityai
Either way the plugins land in the same place, so one install serves both. Have gh signed in, and pip install reportlab for the PDF report.
/agent-dev:agent-fleet-analysis ./stray-agents
Same command in the desktop app and the terminal; the path is relative to the folder you opened. It scans the folders, recognises Claude Code agents, n8n exports, framework apps and coded loops, and writes a work order: what each one is, what it touches, what to tidy before it moves.
/agent-dev:agent-fleet-migrate
Builds one Trinity-ready repo per agent under fleet-migrated/, pushes each to GitHub, and leaves your originals untouched.
Dashboard → Create agent → github:yourorg/meeting-notes-bot. A public repo needs no token; a private one needs a fine-grained token with read access to its contents.
On the agent page add the tag keymaker, then under Permissions allow Keymaker Delivery to call it. From that moment "summarise yesterday's Harbor & Vale call" is something Delivery can ask for.
08 · One systemlive demo
Membership is a tag. Hand-offs are shared folders. Who may call whom is a permission. Set those three and the Dashboard shows one agency; the Library can write it down.
Every member carries the tag keymaker. A System View on the Dashboard filters on it, so the agency shows up as one group with its health, activity and cost.
Each desk exposes a folder and consumes the others'. That is the whole hand-off mechanism: a file written by Sales is readable by Delivery, nothing more.
Deny by default. Delivery may call the notes bot; the bot may call nobody. In Session 4 the orchestrator gets the edges to all of them.
Library → Systems → export the manifest: one YAML with the members, their repos, folders and permissions. Anyone who missed today pastes it in and gets the same agency.
A manifest creates agents and then lets go: deploying it twice creates a second, suffixed copy. Edit the running agents on the instance; export again when you want a new recipe.
09 · Make it yours, and next
Before October 8: install the three desks, edit the three files below, and bring one agent of your own in. If you have a Fibery or a GitHub token, add it to the matching desk and watch the same playbooks run on the real thing.
operators.yaml in Sales: your name as the principal, your reps, and what each may see.
pricing.md: your offers and rules. It is the only place the agent will ever take a price from.
pipeline/deals.yaml and clients/clients.yaml: replace the samples, or set the token and point them at your systems.
Your stack mapped, your instance running.
Sales, Delivery, Marketing from the Library; your own agent beside them.
Cornelius forked into the agency, and a canon every desk reads from and writes to.
One agent you talk to; it runs the rest. The hand-offs that make that hold.
Chat, files, voice, canvas and loops, each person scoped to the agents they need.
Running unattended, invoices with an approval, pricing a client instance.
Thursdays · 12 PM ET / 9 AM PT
Three public repos, Apache 2.0, in the Library of every Trinity install. Fork them and they become yours.
SalesDeliveryMarketingSession pages, dates and what each one builds. The stray agents from today are public too.
Workshop pageStray agents