A LeverageAI Framework Ebook

Hora’s Watchmaker

Decompose, Interface, Map, Dumb Recompose

Your AI does better in pieces — and “it fits the context window” is only a quarter of the reason.

The other three-quarters are a 60-year-old pattern for building work that survives an agent who gets interrupted every hour. One move, on four planes: code, artifacts, agents, knowledge.

The argument in three lines

  • Your agent is Tempus. Simon’s 1962 watchmaker who restarts on every interruption — and an agent’s life is constant interruption. Decomposition is how work outlives the worker.
  • Four units, not one. A component is the unit of attention, edit, regeneration, and parallelism. Three of the four never expire when the windows grow.
  • Decompose → interface → map → dumb recompose. Intelligence in the parts, a cheap interface on each, a mechanical map. If assembly needs intelligence, the monolith is back.

Scott Farrell · LeverageAI

01
Part I · The Pattern

Hora’s Watchmaker

Every serious builder has noticed that AI does better with smaller pieces. The lazy explanation is “it fits the context window.” The real one needs a watchmaker who has been dead since 2001 — and an agent that keeps dying every hour.

TL;DR

  • In 1962, Herbert Simon showed that complex systems survive an interrupting world only if they are built from stable intermediate forms. His parable of two watchmakers is the most useful thing you will read this year about building with AI.
  • An LLM agent’s working life is constant interruption — context ends, sessions die, compaction eats history, the next agent starts cold. A monolith forces every agent to be Tempus, the watchmaker who goes broke.
  • So decomposition is not borrowed software hygiene. It is how work outlives the worker — and your workers die every hour. That makes it an agentic pattern, not just good taste.

Here is a small thing that nearly everyone building AI agents has noticed, and that almost nobody has properly explained. The smaller the artifact you hand an agent, the better it does with it. Break the thousand-line file into modules and the coding agent stops mangling it. Split the ebook into a file per chapter and the writer stops losing the plot halfway down. Turn the sprawling knowledge base into a page-per-idea wiki and a cheap little model suddenly reasons as if it knows your business cold.

Ask why, and the answer comes back automatically: “it fits the context window better.” That is true. It is also about a quarter of the reason. The other three-quarters are more interesting, they do not go away when the windows get bigger, and — this is the part worth the whole book — they turn out to be the same pattern showing up on four completely different kinds of work.

To see it clearly, we need to start somewhere unexpected: with a watchmaker in a sixty-year-old paper, and with the peculiar, short, repeatedly-interrupted life of the agent doing your work right now.

The two watchmakers

In 1962, Herbert Simon — Nobel laureate, one of the founding figures of artificial intelligence — published a paper called The Architecture of Complexity.1 Buried inside it is a parable about two watchmakers that reads, today, like an operating manual for agentic AI.

Both watchmakers, Tempus and Hora, make fine watches of about a thousand parts each. Both are excellent, so both are in demand, and their workshop phones ring constantly with new orders. That constant ringing is the whole story.

One thousand parts, two ways to build

Tempus — one big assembly
  • • Adds each part directly to the whole watch
  • • Answers the phone → the half-built watch falls to pieces
  • • Must restart from the very first part, every time
  • • The more popular he gets, the less he can ever finish. He goes broke.
Hora — stable subassemblies
  • • Builds units of ~10 parts that hold together on their own
  • • Ten subassemblies make a larger unit; ten of those, a watch
  • • Answers the phone → loses only the small piece in his hand
  • • Everything already assembled stays assembled. He prospers.

Simon’s point was not really about horology. It was about evolution, organisations, and why complex things exist at all. His conclusion is one sentence, and it is the hinge of everything that follows:

Complex systems that survive in an interrupting world are built from stable intermediate forms.
— Herbert Simon’s argument, The Architecture of Complexity, 1962

Read the parable a second time with a single substitution, and it stops being a charming analogy and becomes a specification.

Your agent is Tempus

Ask a plain question: what is an LLM agent’s working life actually like? The honest answer is constant interruption. Context windows fill and end. Sessions die. Compaction quietly eats the history in the middle of a task. The next agent that picks the work up starts cold, with no memory of what the last one was holding in its hands. An agent’s normal condition is Hora’s ringing phone — except the phone never stops ringing.

This is not a rough edge that better models will sand away. It is structural. We have written before about the one-hour ceiling — the way an agent’s coherent working session runs out and has to be handed on — and the architecture required to build understanding across those deaths rather than within one of them. Call it what it is: agent mortality. Your builders are on a one-hour clock, and the clock resets to a stranger.

Now the parable bites. A monolith forces every agent to be Tempus. Hand an agent one giant, undecomposed artifact and every interruption threatens the whole of it: to make a safe change it must re-hold the entire thing in attention, and when the context ends, the work in flight falls apart on the bench. Hand it stable subassemblies instead — a function, a chapter file, a wiki page — and each one survives the death of the session that produced it. The interrupted agent loses only the small piece in its hand.

Key Insight

Decomposition is how work outlives the worker — and your workers die every hour.

That is why breaking work into pieces, making the pieces navigable, and recomposing them is not merely tasteful engineering imported from a neighbouring discipline. It is an agentic pattern, forced by a property of the workers themselves. And it is the thing worth writing down: the pattern of decomposing, making navigable, and recomposing is an agentic pattern in its own right.

So isn’t this just good software engineering?

Partly — and that is a feature, not an embarrassment. But notice the difference in why.

Why humans decompose

To manage a person’s limited attention and to make change safe over a codebase’s long life. Good taste, hard-won.

Why agents must decompose

All of the above — plus a mortality clause. The worker is interrupted by construction and replaced by a stranger. Undecomposed work does not survive the handoff at all.

Software engineers earned this discipline over decades because it made systems humane to change. We inherit it for free, and then discover a reason Simon would have recognised instantly: our builders are mortal, on a one-hour clock, and only the work already assembled into stable pieces is still standing when the next one arrives.

So the pattern is agentic. The rest of this book is what the pattern actually is. It pays four dividends, not one — and three of them never expire, no matter how big the context windows grow (Chapter 2). It has a full four-step mechanism, and the step everyone skips is the one that quietly rebuilds the monolith if you get it wrong (Chapter 3). And it is a single move that shows up, unchanged, on four different planes of work — code, artifacts, agents, and knowledge (Part III).

Start with the dividend everyone underrates. When you break a thousand-line file into modules and the agent stops choking, “it fits the window” is the reason you reach for — and it is the least important of the four.

02
Part I · The Pattern

Why “Fits Context Better” Is Only a Quarter of It

A well-chosen component is doing four jobs at once. Three of them have nothing to do with the size of the window — which is why the pattern survives every model that was supposed to kill it.

Anyone who used agentic coding tools in the early days remembers the wall. Files under a few hundred lines: the model was a delight. Files past about a thousand lines: it started to lose its footing. It would edit the wrong region, patch a function two screens away from the one you meant, and — the memorable failure — occasionally delete a big chunk of working code while trying to make a small, careful change. The instinct at the time was to blame the model’s intelligence. That was the wrong diagnosis, and getting it right is the whole of this chapter.

The frame

“Smaller fits context better” is only a quarter of it. A component is simultaneously the unit of attention, the unit of edit, the unit of regeneration, and the unit of parallelism. Only the first has anything to do with the size of the window.

Here are the four jobs a component quietly does, each with the concrete failure it prevents, and — the column that matters most — whether a bigger, smarter model makes it go away.

The unit What it means The failure it prevents Survives bigger models?
Attention Fits the window; no lost-in-the-middle. The agent loses the thread halfway down a huge file. No — this is the one that relaxed.
Edit The filename is the address. A patch lands in the wrong span; chunks deleted by accident. Yes.
Regeneration The largest thing you can cheaply nuke and rebuild from its spec. Rewriting a whole artifact to change one part. Yes.
Parallelism Workers fan out without colliding. Serialised agents; a sprint that cannot be split. Yes.

The unit of edit: the filename is the address

Start with the one the early models taught us the hard way, because it dismantles the “the model was just dumb” story completely. Those patch disasters were not failures of reasoning. They were failures of addressing. The model was asked to locate a precise span inside a thousand-line sea and to mutate exactly that span and nothing else — a needle-in-haystack targeting problem — and it missed the needle. When it deleted a working block, it was not because it misunderstood the code; it was because it aimed at the wrong coordinates.

Decompose the file and the addressing problem evaporates, because the filename becomes the address. You no longer ask the model to find the code; you hand it the file that is the code. The unit of matter and the unit of edit line up, and a whole category of careless, destructive mistakes simply cannot occur — there is nowhere for the patch to go wrong, because the target is the entire small thing in front of it.

This is the first hint that “fits the window” is a decoy. A model with a ten-million-token window can still fumble the edit if the edit target is a fuzzy region inside a giant blob. Fit is about reading. Addressing is about writing. They are different problems, and only one of them scales away with context size.

The unit of regeneration: decomposition sets the grain

The second dividend is the sleeper, and it is the one that welds this pattern to how the durable asset in AI work is actually the recipe, not the output. Our position elsewhere is blunt: stop nursing AI outputs; once patching costs more than rebuilding, nuke the thing and regenerate it from its kernel.

Here is the connection nobody states out loud: a component is the largest thing you can cheaply throw away and regenerate from its specification. Which means your decomposition is quietly drawing the borders of what you can afford to regenerate. Cut coarse, and “regenerate” means rewriting an enormous artifact to fix one paragraph — too expensive, so you patch instead and accumulate rot. Cut well, and regeneration becomes surgical: throw away the one chapter, the one function, the one page whose spec changed, and rebuild only that. Decomposition sets your regeneration granularity. The finer and cleaner the cut, the more often “delete and rebuild from the recipe” is the cheap, correct move rather than the nuclear option.

The unit of parallelism: monoliths serialise your fleet

The third dividend is why the whole pattern stays optimal even after models stop choking on big files. A monolith is a single shared resource: only one agent can safely be working inside it at a time, because two simultaneous edits to the same giant file collide. That serialises your agents. It turns a job that could be ten workers wide into a queue one worker deep.

Components break the serialisation. When each unit lives in its own file with its own cheap interface, a sprint can fan out — ten workers, ten files, no merge conflicts, because nobody is editing anybody else’s subassembly. This is the same reason Hora could, in principle, hire ten apprentices and have them build ten subassemblies at once, while Tempus’s single-blob method can only ever be one pair of hands deep. Parallelism is not a bonus you bolt on; it is a property you unlock the moment the matter is decomposed.

So what happens when the windows get huge?

This is the objection that sounds devastating and is not. The models have got better at big files. The attention constraint genuinely relaxed — a modern model can hold a thousand lines without losing the middle. If “fits the window” were the whole story, decomposition would now be a crutch we could throw away. So look again at the right-hand column of the table.

Key Insight

Only one of the four units — attention — relaxed when the windows grew. Edit, regeneration, and parallelism are properties of the system, not the model. Three of the four dividends never expire.

The constraint that eased was exactly the one people mistook for the whole reason. The other three — clean addressing, surgical regeneration, collision-free parallelism — are structural. They belong to how the work is arranged, not to how clever the reader of it is. No model release touches them. That is why the honest verdict on the “we can stop decomposing now” reflex is short and unhedged:

A thousand-line file in a glass vial is still bad design — and the agent was never the only reason.

Breaking work into pieces is the famous half of the pattern. But a pile of pieces is not a system. The half that gets skipped — and the half that decides whether you have actually escaped the monolith or merely relocated it — is how the pieces are allowed to reconnect. That is the next chapter, and it contains the one leg of the pattern that almost everybody leaves out.

03
Part I · The Pattern

Decompose, Interface, Map, Dumb Recompose

Breaking things up is the famous half. The half that gets skipped is how the pieces reconnect — and getting it wrong quietly rebuilds the monolith at the seam.

A pile of well-cut components is not yet a working system. Something has to hold them together, and the nature of that something decides whether you have genuinely escaped the monolith or simply moved it somewhere harder to see. The complete pattern has four moves, and the fourth is the one that separates people who have felt the benefit from people who can reliably reproduce it.

1 · Decompose

Cut the work into components sized to the unit of attention — a function, a prompt file, a chapter, a wiki page. (This is the sizing from Chapter 2.)

2 · Interface

Give each component a cheap interface: a small, stable surface that lets you use it without reading its body. The function signature. The one-line chapter card. The index entry.

3 · Map

Keep a deterministic manifest of how the interfaces connect — the call graph, the index.md, the outline file, the table of contents.

4 · Dumb Recompose

Assembly must require no intelligence. A function call. include 'chapter3.php'. Concatenating by the outline. If it needs a model to figure out how the pieces fit, you have built a second monolith.

The interface is Parnas, 1972

The second move is the oldest idea in the pattern, and naming its lineage is worth a paragraph because it tells you what a good interface is for. In 1972, David Parnas asked the question the whole discipline of modularity turns on: on what criteria should you split a system into modules?2 His answer was information hiding: a module should be built around a design decision it keeps secret, exposing only a stable interface, so that when the hidden decision changes, nothing outside the module has to change with it.

Fifty years later, that is exactly why a coding agent can call a function it has never read, and a writing agent can reference a chapter it is not currently holding. The signature is the secret-keeper. The chapter card says what the chapter delivers without making you hold its prose. The one-line index entry lets a page be reached without being loaded. Each is the cheapest possible view of a component — enough to use it, not enough to drown in it. It is the resolution ladder applied one component at a time: the interface on top, the body available on demand below.

The map stays dumb, and so does the glue

The third move — the map — is deliberately unglamorous. It is a manifest, and a manifest should be mechanical: a call graph the compiler builds, an index.md you can read at a glance, an outline file, a table of contents. Its whole virtue is that it carries no cleverness. It just records which interface connects to which.

Which brings us to the fourth move, the load-bearing one, the one almost everybody skips: recomposition must be dumb. Assembly must require no intelligence at all.

# the dumb recompositor, three ways
result = summarise(chapter)  # code: a function call
<?php include 'chapter3.php'; ?>  # artifacts: PHP include
$ php index.php > index.html  # render the whole book, mechanically

Why does this leg matter so much? Because of what happens if you get it wrong.

If composition required intelligence, you’d re-import the monolith problem at assembly time — just moved somewhere later, and harder to see.

The moment your reassembly step needs a model to work out how the pieces fit together, you have quietly built a second monolith at the seam. Now there is a stage that has to hold all the components in attention at once to glue them — which is precisely the giant-blob problem you decomposed to escape, wearing a different hat and standing further down the pipeline where it is harder to notice. You did not remove the monolith. You relocated it to assembly time.

Two ways to reassemble the pieces

❌ Smart assembly

  • • A model reads all the parts to decide how they fit
  • • Assembly needs the whole context in attention again
  • • Non-deterministic: the same parts can assemble differently

Outcome: the monolith is back, now at the seam.

✓ Dumb recomposition

  • • A function call / include / concat-by-outline
  • • Assembly holds nothing in attention; it just wires interfaces
  • • Deterministic and repeatable, every single time

Outcome: intelligence stays in the parts, where it survives interruption.

The rule that falls out is simple to state and easy to check: intelligence lives inside the components; the glue between them is mechanical. Any cleverness that migrates into the map or the recompositor is a warning sign, not a feature.

The pattern, in one line

Intelligence in the components, a cheap interface on each one — the signature, the chapter card, the one-line index entry, which is information hiding, Parnas 1972 — and a mechanical map that glues the interfaces together.

Decompose → interface → map → dumb recompose.

That is the whole mechanism. It sounds almost too tidy — four verbs and a warning — until you point it at something real and watch the correspondences turn out to be exact rather than poetic. The cleanest place to see that happen is somewhere no one expects a codebase: a wiki.

04
Part II · The Worked Example

The Wiki Is a Codebase

Run the four-move lens over a knowledge wiki and the correspondences stop being metaphor. Pages are functions. Edges are the call graph. And the janitor that keeps it healthy is a refactoring engine.

Everything so far has been the pattern in the abstract, illustrated with code. This chapter is the pattern done end to end on a single, unlikely example — unlikely because most people file “knowledge base” and “codebase” in different mental drawers. The claim of this chapter is that, once you build the knowledge base the right way, they are the same drawer.

The setup is a wiki of the page-per-idea kind: each concept gets its own small page, pages link to each other with typed edges, and an index lists them. It was built for a mundane reason — to make a large, sprawling worldview navigable, so an agent could focus on one idea at a time and then pull the relevant ones together for the job at hand. Exactly the composability move from code, pointed at knowledge. And that is when the strange thing happened: the correspondences to software were not loose analogies. They were exact.

The mapping is not poetic

Lay the two side by side and the terms line up one for one:

  • Pages are functions. Each is a small unit with a single responsibility and a body you do not have to read to use it.
  • Edges are the call graph. A link from one page to another is one unit invoking another; follow the edges and you are tracing execution.
  • The index is the manifest. index.md is the map — the deterministic list of what exists and how to reach it.
  • Claims are statements. The atomic assertions inside a page are its lines of code.

If that were the end of it, it would be a cute table. It is not the end of it, because the maintenance layer — the agent whose job is to keep the wiki from decaying into a junk drawer, the one we call the janitor — turns out to be doing something a software engineer would recognise on sight.

The janitor is a refactoring engine

Watch what the janitor actually does when it tidies the graph, and translate each move into its software name:

Software refactoring move The same move, on the wiki
Deduplicate Merge two redundant claims into one.
Extract method Turn a claim repeated across pages into a single shared edge.
Split a class Spin an overgrown claim cluster out into its own page.
A bad refactor A hallucinated consolidation that fuses things that should stay apart.
The test suite The lint pass that runs before a change is committed.

This is the moment the metaphor collapses into identity. You are not looking at a knowledge system that happens to resemble software maintenance. You are looking at software maintenance, performed on claims instead of statements.

You didn’t build a knowledge base that resembles a codebase. You built a codebase whose language is claims — and imported forty years of software maintenance discipline for free.

Why does the janitor work at all?

Because of that last phrase. The reason an automated maintainer of a knowledge graph is even buildable — the reason it does not immediately drown in judgement calls it cannot make — is that refactoring is a solved craft. Deduplication, extract-method, splitting an overgrown module, running the tests before you commit, recognising a bad refactor when you see one: these are not novel problems anyone has to invent for the knowledge domain. They arrive pre-invented, with decades of accumulated discipline behind them. Once your worldview is a codebase in disguise, maintaining it is not a research project. You are running refactor on your own thinking, with a toolset the industry spent forty years hardening.

Key Insight

The janitor works because it is not doing knowledge management. It is doing code maintenance, and code maintenance is a solved craft.

What this rests on — and what it doesn’t re-litigate

This chapter is deliberately narrow: it is about the wiki as a codebase, not about why a wiki-graph beats other ways of storing knowledge. That larger argument — that the binding constraint in retrieval is relationships, not raw text, and that you should compile a self-cleaning wiki-graph before any question is asked — is one we have made in full elsewhere, and it is the substrate this whole chapter stands on. Take the wiki-graph as given; the point here is only that, given it, its maintenance is refactoring.

One property is worth a single paragraph because it shows the loop closing. When an agent queries the wiki and descends far enough to find a page contradicted by ground truth — the page says one thing, the source says another — the right move is not to quietly answer around the discrepancy. It is to file a work item for the janitor: page X contradicts its source; pages Y and Z overlap. Query-time failures become the maintenance queue. Which means the act of using the system improves it — the same write-back loop that turns a codebase’s bug reports into its next refactor, running on knowledge. (The mechanics of that loop are the substrate’s, not this chapter’s; we simply note that the refactoring frame explains why it belongs there.)

So knowledge is a plane where the pattern runs perfectly — arguably the most convincing demonstration, because it is the one place you would least expect a codebase to be hiding. But it is only one plane. The reason this chapter earns the word flagship rather than the point is that the very same move — decompose, interface, map, dumb-recompose — runs on three other kinds of matter too. Two of them you already work with every day. The other two are where almost nobody had thought to make the cut.

05
Part III · Four Planes, One Move

Plane One and Two: Code and Artifacts

The same move you just watched on the wiki was there all along, on the two planes you already live in every day — including the one you are reading right now.

If the pattern is real, it should not feel exotic. It should turn out to be the thing you were already doing on the planes you know best, only now visible as a single named move rather than a set of unrelated habits. So before the two surprising planes, the two familiar ones — because seeing the move in territory you already trust is what makes the generalisation land.

Plane one: code

This is the home plane, the one every engineer already lives on. You do not write one giant monolithic block; you break it into functions and classes, and you refactor it different ways as your understanding sharpens. That instinct is decades old and needs no defending. What is worth noticing is a second habit that comes from the same instinct and is easy to miss: prying the prompts out of the agent code.

A prompt buried inside application code is a monolith in miniature: coupled to the logic around it, awkward to version, owned by nobody in particular, drifting quietly. Lift it into its own markdown file and it becomes a component — separately maintainable, diffable, ownable, with the code that uses it now depending on a small stable surface instead of a wall of inlined text. It is the exact code move (extract the thing, expose an interface, keep the caller dumb) applied to a new kind of matter.

Prompt-in-code vs prompt-as-file

Inlined in the code — a mini-monolith
  • • Coupled to the surrounding logic
  • • Hard to diff; changes hide inside code commits
  • • No clear owner; drifts unnoticed
Its own markdown file — a component
  • • Separately maintainable, versioned on its own
  • • The code depends on a small stable interface
  • • Ownable and reviewable like any other file

What’s the cheap interface on code?

On the code plane the interface has a precise, tooling-backed form: the signature-level skeleton. Tools that give an agent a repository map extract the function and class signatures — structure without bodies — so the model can navigate a codebase far larger than it could ever hold, seeing how the parts connect without reading every line.3 That is the cheap interface made concrete: enough of each component to reason about, none of the body until the body is needed. The same idea as a chapter card or an index entry, expressed in tree-sitter.

Plane two: artifacts

The second familiar plane is the documents themselves — and this ebook is standing on it. When the writing got serious, the move was to stop treating a book as one long document. Build an outline as a markdown file. Outline each chapter as its own file. Then, when rendering the finished thing, make each chapter its own PHP file and let the index simply pull them in.

# index.php — the dumb recompositor for a book
<div id="chapter-3">
  <?php include 'chapter_3.php'; ?>
</div>
# render the whole book in one mechanical step:
$ php index.php > index.html

Look at what each move buys. The writer works one chapter’s context at a time — the unit of attention, honoured. Each chapter is its own file, so the edit target is the whole file — the filename is the address again. The outline is the map. And assembly is a mechanism the coding tools understand cold: include the parts, run php index.php, and the book falls out. No intelligence at the seam. The dumb recompositor from Chapter 3, wearing PHP.

Take a look around

The ebook you are reading is built exactly this way — a file per chapter, an outline as the map, a plain include as the recompositor. The artefact is a working demonstration of its own thesis.

Trace it against the four moves and there is nothing left over. Decompose: one file per chapter. Interface: the chapter card — a one-line promise of what the chapter delivers — is what the outline holds instead of the prose. Map: the outline file and the table of contents. Dumb recompose: include and render. The same skeleton as the wiki, the same skeleton as the code, on a third kind of matter.

The move, restated

Match the unit of matter to the unit of attention, hide the bodies behind cheap interfaces, and keep the map deterministic. Functions on the code plane, chapters on the artifact plane — same move, different matter.

Two planes down, and neither one surprising once you can see the shape. The interesting part is that the identical move runs on two more — the agents doing the work, and the worldview they work from — and those are the two planes where hardly anyone had thought to pick up the knife.

06
Part III · Four Planes, One Move

Plane Three and Four: Agents and Knowledge

Code and artifacts were the planes you already knew. These are the two where the cut was the newest idea — the agents doing the work, and the worldview they work from.

The first two planes were recognitions: oh, I was already doing that. The next two are extensions — the places where taking the knife to the monolith was genuinely a new move, and where the payoff was largest precisely because so few people had made the cut.

Plane three: agents

The obvious way to build a capable agent is to build one big capable agent — a single brain wired to every tool, holding every responsibility, prompted to do it all. It is also the Tempus move: one monolith, and every interruption threatens the whole of it. The decomposed alternative is to split the work across single-responsibility workers, each narrow, each behind a thin router that only classifies and dispatches. Small, composable agents beat one mega-brain for the same reason small files beat one giant one — and we have argued that plane in full on its own.

Two things from earlier chapters snap into place here. The unit of parallelism from Chapter 2 is the fleet: decomposed agents fan out because each owns its narrow scope, exactly as decomposed files let workers fan out without collision. And the handoff between a cheap agent that explores and a frontier agent that decides — swap the brain, keep the transcript — is the agent-plane version of interface-plus-dumb-recompose: the exploring worker hands over a stable artefact, and the decider composes from it without re-doing the walk. This chapter does not re-derive either argument; it only notes that both are this book’s one pattern, applied to workers.

The agent-plane instance, in one line

A mega-brain is a monolith you can talk to. Micro-agents are the same decomposition, with a thin router as the map and a narrow worker as the component — and the cheap models can do the narrow jobs precisely because the scope was cut small.

Plane four: knowledge

The last plane is the worldview itself — and it is last for a reason worth ending on. For a long time the mental model of an AI “kernel” was a single document: the big markdown file that held your taste, your rules, your frameworks, the whole compiled understanding an agent should boot with. And it produced a puzzle that would not resolve: why are there different kernels? A taste kernel, a brand kernel, a frameworks file — if the kernel is the kernel, why does every task-shape seem to need its own version of it?

The puzzle dissolves the moment you see it as a decomposition problem. Multiple kernels were never a design; they were a workaround for a monolith that could not be queried. The wiki is the kernel after the refactor: the same worldview, cut into pages, linked by edges, and recomposed on the fly from whatever a given job actually touches. You do not load the whole thing and hope the relevant part is in there; you boot tiny and demand-page the pages the task reaches. The named kernels survive, demoted to something better — entry points into the graph rather than rival documents. (The full argument for kernel-as-wiki is its own piece; here it is simply the fourth plane arriving.)

Key Insight

The wiki is the fourth plane, and probably the last one — because a worldview was the only asset you hadn’t yet decomposed.

There is a fleet consequence that closes the loop with plane three, and it deserves exactly one sentence because its economics belong to other articles: once the intelligence lives in the wiki, every agent you write is nearly the same agent — a toolbelt, a slightly different North Star, different inputs — because the way each one navigates and understands its problem is the shared, decomposed worldview rather than a bespoke, hand-tuned prompt. Decompose the knowledge, and the agents that read it commoditise.

Four planes, one move

Stand back and the whole thing is a single gesture repeated on four kinds of matter.

Code

Component: function / class.   Interface: signature / repo-map skeleton.   Dumb recompositor: the function call.

Artifacts

Component: chapter / prompt file.   Interface: chapter card / index entry.   Dumb recompositor: include · php index.php.

Agents

Component: single-responsibility worker.   Interface: the router’s dispatch contract.   Dumb recompositor: thin router / transcript handoff.

Knowledge

Component: wiki page.   Interface: the claim / edge.   Dumb recompositor: demand-paging from index.md.

Same move each time: match the unit of matter to the unit of attention, hide the bodies behind cheap interfaces, keep the map deterministic. Four planes, one gesture. Which would be a satisfying place to stop — except that the gesture has a boundary, and the boundary is where all the real difficulty lives. Simon knew it, said it in the same 1962 paper, and it is the subject of the last chapter.

07
Part III · Four Planes, One Move

Where to Cut

One honest boundary, from the same 1962 paper. Decomposition can be mechanised. Choosing the cut lines cannot — and that is where the whole craft lives.

It would be easy to end a chapter short of here, on the tidy four-plane summary, and leave the pattern sounding like a rule you can apply without judgement. That would be dishonest, and Simon — who started us off — supplies the correction himself, in the very same paper as the watchmakers.

Simon’s real word was “nearly”

His term for the systems that survive was not “decomposable.” It was nearly decomposable.1 The distinction is the whole of this chapter. Real systems are never perfectly separable. Some concerns genuinely cut across every component — and pretending they do not is how you get a decomposition that looks clean on paper and fights you in practice. Those cross-cutting concerns are precisely why edges exist. An edge carries a relationship that does not belong inside any single piece. The map is not a concession to messiness; it is where the near-ness of near-decomposability is honestly recorded.

Which hands you a diagnostic that works on all four planes at once.

Key Insight

When a component sprouts edges to everything, that is not a sign it’s important. It’s the tell that the cut lines are wrong — a real component is hiding inside it, badly separated. Call it the god-object smell.

The god-object smell, on every plane

The pattern of the failure is the same wherever you look, which is the last piece of evidence that these really are one problem in four costumes:

❌ The cut is wrong

  • Code: the 2,000-line “God class” every other file reaches into
  • Artifacts: the chapter that is really three chapters fighting
  • Agents: the micro-agent that quietly grew back into a mega-brain
  • Knowledge: the wiki page linked to half the graph

Edges to everything — the component is hiding several.

✓ The cut is right

  • • Each piece has one responsibility and a small surface
  • • Edges are few, typed, and meaningful — real cross-cutting only
  • • You can nuke and regenerate any one piece without the others noticing
  • • A worker — or a reader — can hold exactly one at a time

Near-decomposable: strong inside, sparse across.

And here is the part that should keep you honest about what can and cannot be automated. The decomposing can be mechanised — splitting a file, extracting a prompt, spinning out a page. The recomposing is dumb by design. But choosing where to cut — drawing the lines so that what is strongly related stays together and what is weakly related is separated by an edge — is the one irreducibly hard judgement, and it is the same judgement on every plane. The janitor’s hardest calls are all of this species. So are a senior engineer’s. It is exactly the kind of scarce, high-stakes judgement worth spending your best cognition on, and worth keeping a human’s hand near.

The one thing to carry out of here

Everything in this book compresses to a single, old, unglamorous truth, now wearing new clothes.

In software, the hard part was never writing the modules. It was choosing where to cut. That was true in 1962, it’s true for your codebase, and it’s now true for your agents and your knowledge — because they are the same problem wearing four different clothes.

Recall why the cut matters so much here in particular. Three of the four dividends — clean addressing, surgical regeneration, collision-free parallelism — are structural, and no model release will hand them to you for free (Chapter 2). And the deepest reason of all is the one we opened with: decomposition is how work outlives the worker, and your workers die every hour. A well-cut component survives the death of the session that made it. A monolith does not. Every interruption is a small test of whether you built like Tempus or like Hora.

The takeaway you can apply tomorrow

The next time an agent handles a small file beautifully and chokes on a big one, don’t reach for a bigger context window. Reach for Hora’s bench. Decompose the work into stable subassemblies. Give each a cheap interface. Keep the map dumb. Let assembly be mechanical.

Do it on all four planes — code, artifacts, agents, knowledge — because it is one move, not four. And spend your scarce judgement where it actually belongs: not on writing the modules, but on choosing where to cut. Build for the watchmaker who keeps getting interrupted. That watchmaker is doing your work now, and their phone never stops ringing.

REF
Sources & Evidence

References & Sources

The evidence base behind every claim — primary research, industry analysis, and technical specifications

Research Methodology

This ebook draws on primary research from standards bodies, independent research firms, enterprise technology vendors, and consulting firms. Statistics cited throughout have been cross-referenced against primary sources.

Frameworks and interpretive analysis developed by Scott Farrell / LeverageAI are listed separately below — these represent the practitioner lens through which external research is interpreted, and are not cited inline to avoid self-promotional appearance.

Primary Research & Standards Bodies

Herbert A. Simon — The Architecture of Complexity [1]

The Tempus-and-Hora watchmaker parable and the concept of nearly-decomposable systems; complex systems survive interruption only when built from stable intermediate forms

https://www.jstor.org/stable/985254

David L. Parnas — On the Criteria To Be Used in Decomposing Systems into Modules [2]

Information hiding: modules should hide a design decision behind a stable interface so that changes to the hidden decision do not ripple through the system

https://dl.acm.org/doi/10.1145/361598.361623

LeverageAI / Scott Farrell — Practitioner Frameworks

The interpretive frameworks, architectural patterns, and practitioner analysis in this ebook were developed through enterprise AI transformation consulting. The articles below are the underlying thinking behind those frameworks. They are listed here for transparency and further exploration — not cited inline, as this is the author's own analytical voice.

Scott Farrell — Breaking the 1-Hour Barrier: AI Agents That Build Understanding Over 10+ Hours

The 1-hour ceiling on agents is architectural, not a model limit; agent mortality is the normal working condition

https://leverageai.com.au/breaking-the-1-hour-barrier-ai-agents-that-build-understanding-over-10-hours/

Scott Farrell — Stop Nursing Your AI Outputs. Nuke Them and Regenerate.

The durable asset is the generation recipe, not the output; regenerate from a fixed kernel once patching cost exceeds regeneration cost

https://leverageai.com.au/stop-nursing-your-ai-outputs-nuke-them-and-regenerate/

Scott Farrell — Progressive Resolution: The Diffusion Architecture for Complex Work

Work from coarse structure to fine detail, stabilising each layer; the cheap interface is the coarse layer, the body the fine one fetched on demand

https://leverageai.com.au/progressive-resolution-the-diffusion-architecture-for-complex-work/

Scott Farrell — The Index Is the Data: How a Self-Cleaning Wiki-Graph Out-Thinks RAG

The binding constraint in retrieval is relationships, not raw text; pre-compile the corpus into a self-maintaining wiki-graph of claims and edges

https://leverageai.com.au/the-index-is-the-data-how-a-self-cleaning-wiki-graph-out-thinks-rag/

Scott Farrell — Every Copilot Is Myopic: Your Inbox, Your Dentist, Your Enterprise

Vendor copilots see only their own silo; a compiled, owned wiki spans sources and is the durable memory tier

https://leverageai.com.au/every-copilot-is-myopic-your-inbox-your-dentist-your-enterprise/

Scott Farrell — Micro-Agents, Macro-Impact: Why Small, Composable AI Agents Beat One Mega-Brain

Replace monolithic multi-tool agents with specialised single-responsibility micro-agents in a router / supervisor / workers hierarchy; small composable units beat one mega-brain

https://leverageai.com.au/micro-agents-macro-impact-why-small-composable-ai-agents-beat-one-mega-brain/

Scott Farrell — The Scout and the Senior: Swap the Brain, Keep the Transcript

A cheap cached scout explores read-only and freezes the transcript; a frontier senior inherits it and emits one governed decision &mdash; the agent-plane handoff

https://leverageai.com.au/the-scout-and-the-senior-swap-the-brain-keep-the-transcript/

Scott Farrell — The Model Is Not the Memory: Why Governable AI Needs a Wiki, Not Just RAG

The durable kernel is a queryable wiki-graph, not a monolithic prompt or markdown file; the model is the interchangeable CPU, the compiled wiki is the disk

https://leverageai.com.au/the-model-is-not-the-memory-why-governable-ai-needs-a-wiki-not-just-rag/

Technical Specifications & Open Standards

Aider — Repository map (tree-sitter code skeleton) [3]

Extracts function and class signatures so an LLM can see a codebase's structure without its full text &mdash; the cheap interface on the code plane

https://aider.chat/docs/repomap.html

About This Reference List

Compiled July 2026. All URLs verified at time of compilation. Regulatory documents and standards specifications are subject to revision — check primary sources for the most current versions.

Some links to academic papers and vendor research may require free registration. Government and standards body publications are freely accessible.

↑ Prev Next ↓