05Open Brain chronicle / Guide

Continuity: how we built an agency that never starts from zero

Three layers we own, a control layer we are building on top, seven months, one small team. What forced each layer, what we got wrong, and what we still haven't finished.

Guide · 13 October 2026 · 22 min read

TL;DR

Most teams bolt AI onto one tool, one chat at a time, and start from scratch every session. We did the opposite. Over seven months we built three layers that sit underneath whichever AI we use: memory, so nothing starts from zero; capability, so our best methods travel; and execution, so work moves between agents without a human relaying every step. We call it Continuity. Nate Jones named the pattern the Open Stack, and as far as we know we are one of the first agencies to run all of it in production: it recently produced a report drawing on a 12-year client relationship without anyone holding that history in their head. Now we are adding a control layer on top. This is what happened after our April blueprint, unfinished parts included.

7 months
of building, three people
3,076
entries in the shared memory
10 Oct 2026
46
skills of our own
23 past the packaging gate
981
task records on the engine
Since 4 Aug 2026
01 Context

The context that kept running out

The work that broke it for me was the big, complex client jobs. A major H2 report, say, with a mountain of data behind it. I would be deep in a single thread in Claude Chat, the analysis building nicely, and then the thread would fill up. It would slow, then stall, and the only way on was a fresh thread that knew none of what the last one had worked out. So I would rebuild the context by hand and carry on, until that thread filled up too.

The reset loop
01
The thread fills up and stalls
02
A fresh thread knows none of it
03
Rebuild the context by hand
04
Until that one fills up too, and back to 01

It got worse the moment I moved. I would switch to another tool to get a second read on the same data, and the context did not come with me. I would try a different model for a different angle, and start explaining from scratch. Then we moved platform entirely, from Claude Chat to Cowork, and a whole layer of accumulated context simply did not follow. Every new thread, every tool, every move cost me the room before I could get back to the work.

That is the tax nobody talks about. The intelligence is extraordinary and completely amnesiac, and for a small team doing dense, multi-day client work, the rebuilding was not a nuisance, it was eating the job.

We decided to stop paying it. Not by picking a better tool, but by building the context outside the tool, in a place any thread, any model, any platform could read. That one decision pulled a thread that, seven months later, had turned into three layers and quietly rebuilt how the agency runs. A way to see and steer it all is going up on top now. Now we move between threads in a project, between Codex and Cowork, between models, and the context is still there. In April we published the blueprint for the first layer, the memory. This is what happened next: what forced each layer after it, what we got right, and what we are still fixing in the open.

02 The problem

Why a folder full of documents doesn't get you there

The obvious version of this is a shared drive or a Notion workspace and a clever prompt. We tried versions of that. It doesn't hold, and it is worth being precise about why, because the reasons are what forced everything that followed.

01

First, it doesn't compound.

A pile of documents grows, but it doesn't get smarter. Nothing links a decision made in March to the finding that reopened it in June. You reread rather than retrieve, and rereading doesn't scale.

02

Second, it has no provenance.

When an agent pulls a claim from a document, you cannot see where it came from, when it was last true, or whether something newer contradicts it. As Nate Jones has argued, memory without provenance is really just accumulated hallucination. In a folder-of-documents world you cannot tell a fact from an inference from a guess that has been sitting there for a year, and neither can your AI.

03

Third, it doesn't travel.

The moment your memory lives inside one tool, every switch turns you into the migration layer, the person carrying context from room to room. Serious AI users don't live in one assistant. We draft in one, critique in another, run the code somewhere else.

For a large team you can paper over some of this with process and headcount. For a lean one you can't. The folder approach stalls quietly, and you don't notice until you are the bottleneck. The fix had to be structural.

03 The pattern

The pattern, and what we call our build of it

Earlier this year Nate Jones named the shape of the answer, and named it well. He calls it the Open Stack: rent the intelligence, own the context underneath it. Three layers.

1 Memory

Open Brain holds your memory.

2 Method

Open Skills holds your method.

3 Execution

Open Engine moves the work.

We did not invent that framing and we will not pretend we did. What we did was take it more seriously, earlier, than almost anyone we have seen, and build all three into a working agency rather than a personal setup.

We call our build Continuity, because that is what it buys: nothing starts from zero.

You could read all of this as one agency implementing someone else's idea, and that would be fair. The idea is the cheap part. What almost none of them have is seven months of a real business leaning on the thing, finding where it breaks, and fixing it in the open. The moat was never the diagram. It is the build history, and you cannot copy ours without living it.

Fig. 1 / Continuity: what we steer, rent and own Steer / we see and decide Being built · target 31 Oct Control Tower What needs us, and who is doing what. MetaHarness Picks which AI takes each job. assigns work Rented / interchangeable Claude Code Codex Cowork Hermes read + write Owned / the constant Memory: Open Brain Stops the cold start. Shared context any AI can read. 3,076 entries · 6 tables · 10 Oct 2026 Capability: Open Skills Makes our methods portable across tools. 46 skills · 23 past the packaging gate Execution: Open Engine Moves work between AI seats, inside fences we set. 981 tasks logged since 4 Aug Governance / provenance · trust labels · human gates Spine: skills hold the structure, the brain holds the live values
The Open Stack pattern (Nate Jones), built for an agency. Rent the intelligence in the middle, own the three layers underneath, steer from the top. The spine is what makes the layers shared rather than siloed.

The important word is underneath. They sit below the tools, and every tool reaches the same three. Our memory, our methods, and our task state are read and written by Claude Code, by Codex, by Cowork, and by Hermes, an agent that mostly runs on lower-cost models, interchangeably. When a model gets more expensive, or a better one ships, switching is a swap, not a rebuild. The binding that makes this work is a deliberate split: the skills hold the structure, the memory holds the live values, and a fast recall layer sits on top. Runtime-independence is the whole point. It is also the part that took longest to earn.

04 Layer one / Memory

Layer one: memory, so nothing starts from zero

The first layer is the one that started it. The job is narrow and unglamorous: give every AI we use a shared place to find the context we keep re-explaining. People, preferences, projects, decisions, the findings from an audit, the reason we ruled something out two quarters ago.

We started with a database, not a wiki, for the reasons Nate sets out in his piece on the two ways to give AI a brain: when several agents need one source of truth and you care about provenance, you store things faithfully and work out the answer at query time.

Today that memory is six tables, from client knowledge and technical findings to meeting notes and the processes we work to; the April blueprint covers how it is built. As of 10 October 2026 it holds 3,076 entries, up from 849 at the end of March and 2,232 in early July. That number is only useful because of what is attached to each row.

Memory, it turns out, is only as good as your ability to trust it, and early on we learned that the hard way. We captured freely, and an entry with no source is indistinguishable from a guess six months later. So we built a trust layer in stages.

Every entry now carries provenance:

1where it came from,2when it was generated,3when it was last checked,4and whether something newer contradicts it.

Retrieval surfaces those warnings, so an agent reading the memory sees "unvalidated" or "stale" or "contradicted" before it leans on a claim. We added lifecycle verbs to the findings, so a finding can be opened, resolved with evidence, or superseded, instead of living forever as an undated note. And we sequenced the work deliberately, measurement before architecture, so we could tell whether a change actually improved retrieval or just felt tidier.

A finding's lifeOpenedResolved with evidenceorSuperseded

The payoff for a small team is that months of accumulated context become something any of us, or any of our agents, can stand on without holding it in our heads. But memory on its own doesn't actually do anything.

05 Layer two / Capability

Layer two: capability, so the method travels

Memory fixes the cold start, but memory is inert. It remembers that we ran an audit; it doesn't know how we run one. The know-how, the actual method, was still trapped in the worst possible place: one person's chat history, as skills that only worked inside one tool.

That is the second wall. Your best methods are your institutional capital, and if they live as one person's private setup they are one laptop away from gone, and useless to a teammate or to an agent in a different tool. So the second layer makes capability portable.

A skill, in the sense we mean it, is working knowledge packaged so any of our agents can pick it up:

01what the task is,
02what good looks like,
03which sources count,
04where the agent must stop,
05and what proof it owes before the work can be trusted.

Here again we built on Nate's work rather than around it. His Open Skills launch is the clearest version of the argument, that your way of working should be owned and movable, not rented back by whichever app wins the quarter. The method we settled on pairs two of his prompts with our own Open Brain corpus, so a new skill is grounded in what we actually know, not generic best practice.

One source,
one skill
Claude CodeCodexCoworkHermes

The cross-runtime piece is what makes it real: one source now builds the versions Claude Code, Codex, Cowork, and Hermes each need, so a method is genuinely shared, not copied and left to rot in four places, and since September every release ships each skill as its own package.

The first skill we built to this standard structured content for answer engines. It mattered because it was the first time we captured methodology rather than plumbing: a repeatable way we do skilled work, turned into something an agent can run. To keep that safe as the library grew, we wrote a small standard. Every skill is sorted into a lane and a tier.

Lane
OrdinaryGuarded

Lanes separate ordinary work from guarded work, the skills that touch client data, credentials, or anything commercial.

Tier
Quick helperInstitutional method

Tiers separate quick helpers from institutional methods.

A worked example: our proposal skill is classed guarded, because it is client-facing, connector-dependent and commercial, so it carries stricter rules than a skill that just tidies a document.

Capability without a safety gate is just a faster way to make a mistake in more places. But a portable method still needs something to run it, in order, across agents, without a human standing in the middle relaying every step. That was the third wall.

06 Layer three / Execution

Layer three: execution, so work moves between agents

By now we had memory any agent could read and methods any agent could run. The gap left was the one that actually eats a small team's time: coordination. Work would start in one tool, move to another, hit a blocker, and a human, usually me, would be the wire between them, carrying state from Claude to Codex to a browser agent and back. Nate calls this being the integration layer for your AIs, and his Open Engine piece is about exactly this handoff problem.

The third layer gives agent work a place to live outside the chat that created it. When an agent takes on a bounded task, it writes to a shared task record:

Shared task record
source
owner
status
boundary
blocker
and a receipt of what it did

Another agent, or a person, can pick that task up cold and know what already happened and what still needs judgment. The work becomes resumable, which is the whole point.

We got the first version of this wrong, and it cost us.

Mid-July to 4 August · ClickUp
~110
code changes on the machinery
2 / 10
on the proof we wanted

We hand-built the task layer on top of ClickUp, our project tool, with our own locks, checks, and receipts. From mid-July to 4 August, most of our build effort, about 110 code changes, went into that machinery debugging itself, while the proof we actually wanted sat at 2 out of 10.

From 4 August · Linear
981
task records since 4 August

On 4 August we retired it and moved our AI task queue to Linear, starting from Nate's Open Engine design as written, with far less machinery of our own.

It was the cheapest lesson in the whole build to state and the most expensive to learn: copy the reference design before you improve on it.

Two design choices matter more than the plumbing, and both are brakes. First, raw signals do not become tasks on their own. Something interesting showing up in a channel or a transcript goes into a review queue, and new work starts only when I say go, live in a session or by passing a plan in advance. We did not want a system that manufactured work for itself.

Raw signalReview queueMy goTask

Second, the fences, and here the story has moved since July. Back then we would have told you there was no background runner at all.

Now · on a timer

Now some of our AI seats (a seat is one AI tool on one machine, with its own list of work) wake on a timer, every hour or every 20 minutes, pick up the work assigned to them, and pass the result to a different seat to check where it needs review.

Still · waits for my go

What has not moved is where the fences sit. Anything client-facing, any spend outside an agreed budget, any credential, and any deployment waits for my explicit go, and when an agent needs a decision it comes to me as a card with the options laid out.

Learning works the same way: agents capture friction and propose improvements, and a person decides what gets promoted. We think of it as three loops running at different speeds:

one that does the work,

one that checks it,

and one, still mostly run by hand, that turns repeated friction into a better method, but only when it repeats, never off a single incident.

Capture is cheap, promotion is gated. If you take one thing from this section, take that autonomy arrived in fenced steps, each one earned, rather than being switched on.

The first time this carried real weight was a full audit of our own finance system at the start of July. It produced a genuine backlog, and rather than living in one person's head it was dispatched as 18 tickets across the engine, 12 for agents to progress and 6 that needed a person. That is a small number, and an honest one, and it was the first time the three layers ran as one system on a real job: the memory held the context, the skills supplied the method, and the engine moved the work, across tools, with receipts. Since the move to Linear, the count is 981 task records.

07 On top / Control
New since July

On top: control, so we can see and steer the work

Three layers solved the problems we started with, and created a new one. Once AI seats were picking up work on their own, the question stopped being "where is the context?" and became "what is everyone doing, and what is waiting for me?" With nearly a thousand tasks moving through the engine since August, I could not see the whole board without reading it ticket by ticket, and decisions queued up behind me.

As I write this, the bottleneck is not the AI at all: it is a dozen questions waiting for my answer.

So we are building one more piece, and we are deliberately not calling it a fourth layer. It holds nothing of its own. It sits over the top of the other three, reads them, and steers. It has two parts.

Part 1 · see Being built · target 31 Oct
Control Tower
What needs a decisionWhat each seat is doingWhere projects stand

The first is Control Tower, one private page that shows what needs a decision, what each AI seat is doing, and where each of our projects stands. In April we wrote that the "human door", a way for people to see the same state the agents see, was still on our roadmap. This is that door. As of 10 October it runs on a protected page for two of the three of us, reading live data, and since that afternoon I can answer an agent's question from the page with a button instead of typing a reply. It shows the whole board and changes almost nothing: the one thing it can write is my answer, as a comment, and only I can send one. It is not finished: we haven't signed it off as live yet, and the target is 31 October.

Part 2 · steer Taking readings · not moving work yet
MetaHarness
12
ready tasks stuck for three to four days on 15 September

The second is what we call the MetaHarness. "Harness" is the engineer's word for the setup around an AI model, the tools, rules, and memory that let it do real work. We run several, on different subscriptions, and each runs out of usage at a different time. On 15 September, 12 ready tasks sat stuck for three to four days, assigned to an AI that had run dry, because nothing handed them back. MetaHarness is our fix. It is meant to know how much each AI has left, pick which one takes each job, and hand work back when one runs out. Internally we call it the layer that governs the fleet of harnesses, which is a mouthful for a simple idea. Since 29 September, each time our coordinating seat wakes, it records how much usage is left on every subscription it can read, and the panel that shows those readings is built. The part that moves work on its own is not signed off yet.

The control layer is being built by the system it steers: its first versions were written by one AI, checked by a different one before each change was merged, and put on a protected page only after I gave the go.

If the first three layers are about never starting from zero, this one is about never losing sight of what is in flight. Rent the intelligence in the middle, own the layers underneath, steer from the top.

08 Honest state

What we still haven't finished

The Chronicle rule in this house is that we publish the ones we got wrong next to the ones we got right, so here is the honest state as of 10 October.

86%
of entries still carry a "needs confirmation" flag
6 → 108
entries trusted enough to act on as instructions, July to October
In progress

The biggest constraint is still confirmation. It is easy to write to the memory and hard to keep it verified, and about 86% of entries still carry a "needs confirmation" flag. The better news is at the other end: 108 entries are now trusted enough to act on as instructions, up from 6 in July. We have stopped trying to clear the queue in one heroic pass. The working rule now is to confirm on use: an entry gets checked when an agent leans on it for real work, and agents prepare the clean-up while a person approves it row by row.

Corrected

Our own July stock-take needs correcting in places. It said there was no version chain when something is superseded. That was wrong even then: an entry could already point to the newer one that replaced it, and search now ranks the old ones below the live ones. It is a pointer to the current version rather than a full history, but it exists. Expiry, for entries that should age out, shipped in early July. Automatic de-duplication is still not built: we ran a sweep twice in July that proposes duplicates for a person to review, and nothing checks for duplicates as entries are saved.

Version pointer · builtExpiry · shippedDe-duplication · not built
Improving

On safety, both fundamentals moved and neither is done. Our own backup copy of the memory failed silently for weeks before we caught it, twice. It now has a daily health check that tells me when something breaks, and a weekly restore test. Separate access for each person is planned but not built yet. I am naming what went wrong rather than how our set-up works, on purpose.

Backups · health check and restore testPer-person access · planned
Trial only

The self-learning side is where we over-promised ourselves. In July we designed a nightly loop to learn from the day's work and ran it as a short, propose-only trial. We never made it a standing job. Capture is strong, promotion is still manual, and nothing yet feeds failed searches back into the system on its own.

Being built

And the control layer is, by definition, unfinished. We haven't signed Control Tower off as live yet (the target is 31 October), MetaHarness takes readings but doesn't yet move work on its own, and not every AI seat picks up its own work yet.

None of this is fatal, and none of it is hidden from us, which is the difference between a system you can improve and one you merely hope about. It is a system we run every day while we are still building it.

09 Returns

What it took, and what it returns

What it took is less exciting than it sounds, and that is the point. Seven months, three people, and a rule we held to: build in layers, and only build the next one when the last hits a wall. The scarce ingredient was not code, it was the discipline to keep the memory honest and to give the system room to act on its own only once each step had proved itself.

What it returns is better shown than asserted. Recently we produced a report for a 12-year B2B media client. It stood on the record we had stopped letting evaporate: for that one client the memory held on the order of 480 recorded decisions and context notes, roughly 300 technical findings, and around 300 meeting records when we wrote it in the summer. By October the technical findings alone had grown to about 450.

One client · 12 years
~480
recorded decisions and context notes
Summer → October
~300 → ~450
technical findings
On record
~300
meeting records

Most of that was captured over the last year and a half, with only a thin trail reaching back across the full relationship, but it was enough that nobody had to hold the history in their head, and nothing quietly contradicted a position we had taken two years earlier. The version of us without this writes a thinner report from whoever remembers what. That is the return: not magic, compounding.

We will be careful with numbers, because our working principle is that these are indicative, not promises. We do not yet have a clean "hours saved" or "cost per run" figure, and we are not going to invent one; capturing that properly is still ahead of us. The usage readings our control layer now takes are a first step towards it, not the answer. What we can say, roughly and from our own experience, is this: a big client deliverable, a major H2 report or a big client presentation, that took a couple of weeks before AI and still took three to four days with the intelligence trapped in a single tool, now takes us somewhere between half a day and a day and a half.

As far as we know, we are among the first UK B2B specialist agencies to run the whole stack, memory, method, and execution, in production rather than as a demo. We can't prove a first, and we are not going to try. If you are doing the same, or something like it, we would genuinely like to hear from you, because this gets better the more of us build it in the open.

10 When not to

When not to do this

This is a lot of build, and for plenty of teams it would be the wrong call, at least for now.

If a single tool covers your whole workflow, you do not need runtime-independence yet, and you would be adding machinery to solve a problem you don't have.

If you are not going to run it daily, it will not compound, and an un-compounding system is just overhead.

If you are not willing to keep the memory's provenance and confirmation honest, you will build accumulated hallucination with extra steps, which is worse than a messy folder because it looks authoritative.

And if what you actually want is an AI that just goes off and does it, unwatched, this is not that. We have given ours more room since the summer, but only inside fences, and only after each step proved itself.

The honest advice, which is also Nate's, is to start with one loop, not the whole stack. Pick the one recurring job you are tired of re-explaining, build the memory and the method and the boundary around that, and let it prove itself. We did not build three layers in a weekend. We built one, hit its limit, and let the wall tell us what to build next. If you never hit the wall, you never needed the next layer.

11 Questions

Common questions

Is this just Nate Jones's Open Stack with a new label?

The pattern is his, and we credit it. The difference is that we run all three layers in a live agency, not a demo, which is where you learn what the pattern costs and where it breaks. The idea is free. The build history isn't.

Is the control layer a fourth layer?

No. It holds nothing of its own; it reads the three layers and steers them, with one page that shows what needs a decision and a router that picks which AI takes each job. Both parts are still being built.

Is any of it autonomous?

Partly, inside fences we set. Some of our AI seats now wake on a timer, pick up work assigned to them, and hand the result to a different AI to check where it needs review. New work still starts only when I say go, and anything client-facing, any spend outside an agreed budget, any credential, and any deployment waits for an explicit yes. We gave it that room one step at a time, and we would tell you to do the same.

How big a team do you need?

We built it with three people. The constraint is not headcount, it is the discipline to keep the memory honest and to run the thing daily so it compounds. If you will not do that, a shared folder is cheaper.

What does it cost to run?

We are not going to quote a figure we cannot yet stand behind. Capturing cost per run properly is still ahead of us, and when we have an honest number we will publish it.

12 Worth keeping

The part worth keeping

The durable advantage in all of this was never a clever prompt or a single impressive agent. Those change monthly. It is the layer underneath: memory, method, and execution that you own, that outlive any one model or tool, and that you build in stages, each one forced by the limit of the last. Once that is running, the next job is being able to see it all and steer it from one place. Rent the intelligence. Own the context. That is the whole thesis, and we are glad Nate put a name to it, because it made the thing easier to build on purpose.

Rent the intelligence.
Own the context.

If you are a marketing leader who has done some AI and hit the ceiling, the resets, the tool sprawl, the sense that none of it is adding up, this is the level underneath the tools, and it is buildable. If you would like to talk about what it would take for your team, book a 30-minute call with We Are All Connected. If you would rather follow along as we keep building in the open, the newsletter is here.

How we made this: drafted with our own AI system from the records it describes, checked against those records, and signed off by Robin Dally.