For me personally, that means setting up 'attention getters' for the important things in life - 'totems' that force a context switch. For AI agents, it means well-designed CLI tools that help the agent orient itself in a task and pull exactly the 'context-for-the-job' it needs right then.
This is exactly what makes building modern GenAI decision-support systems so difficult. It's no longer just about finding the right software abstractions. You now have to account for the unknown cognitive construct of a completely different intelligence.
That's funny, isn't it the same for dogs?
Tons of self-help books could be summarized in those 2 lines.
https://news.ycombinator.com/item?id=48706307
Even if it were written by hand, it’s a very poor and frankly stupid essay about an interesting topic. “The model's attention is a fixed quantity, and it has to add up to one, so the more things you make it look at, the less of that attention any single earlier thing can keep.” This is borderline gibberish and it outright rejects the interesting question about LLMs and attention, namely that they have very different capacities from us. LLMs can read an entire OpenAPI schema in seconds and immediately construct valid requests from it. The article first points this out, and then switches to arguing that LLMs have similar limits to us. It’s completely incoherent.
What I've heard is human short-term memory can hold seven things at once. Fortunately the mind is much more.
But at some level context engineering is very similar to what this article talks about.
To me this is optimization problem. How can we solve a problem if we don't understand it? Understanding takes a lot of effort exactly because our minds are wandering through useless context all the time, and not to mention interruption.
I formulate this problem as:
> Optimize for understanding
I know how to approach solving this exact problem. In fact, I've been doing exactly this since March 2026. We need to figure out how to isolate problems and context around them. And so my best bet right now is using graphs. Links can be easily added or removed between two nodes. And context is simply a group of links and/or linked nodes.
Now. What exactly is "understanding"?
To me, this is process when we look at some unpredictable, chaotic system and then creating structure from it. The chaotic system is an entangled, spaghetti-like graph. The ordered one is one we [hopefully] have in our brains, which allows us to act on it. I don't want to repeat entire article I wrote about this so if you want you can find it on my recent project (it's not ready for HN prime-time yet but I'll post demo soon).
But tl;dr we have "chaotic/unknown graph" and "structured/understood graph", and the bottleneck is moving nodes and links between these two.
The faster we understand the world around us, the better we understand why problems appear, and how to fix them. And once I realized this, to me it became clear where we need to move forward: to connect everything together in a way that makes understanding quick.
And fun fact, I already did this: I connected my article to yours.
But your LLM training corpus covered that, right? /i
This is exactly what I am trying to solve and I have what I call smart repositories that demonstrates this at
https://github.com/gitsense/smart-ripgrep
https://github.com/gitsense/smart-codex
The issue I am finding is, getting the agent to pull what it needs, even when the data is there is still challenging since LLMs are trained on blind discovery where the pattern is:
grep -> read -> grep -> read ...
What is working for me now is thanks to Pi (pi.dev). I am working on a pi-brains extension that makes it dead simple to control the lifecycle for an agent so if I detect that it uses `rg` without `gsc rg`, I can block the agent and inject a steering message that says always search with context.
I can also see if they try to "read" without first looking at the files metadata and so forth.
I'm finalizing things right now, but I think pi with my brains extension should allow domain experts to better guide agents so they can find what they need, when they need it.
> But an unbounded queue isn't a safety margin, it's a debt that keeps compounding [1]
before getting a headache.
I wish the whole thing was written better, because the idea of designing a codebase for humans and our limitations sounds fascinating. It's why I personally love type systems, you can keep less things in your head and let the type checker alert you of any possible errors.
[1]: https://shapeofthesystem.com/posts/2026/05/10/the-queue-that...
The actual criticisms you have about the content however, I'd like to challenge:
The "adding up to one" is just a simplified gloss over softmax. It's very possible it reads poorly, and thats on me - not LLM gibberish.
As for the incoherence - I have to totally disagree. You have merged the 2 things the post keeps apart - capacity and attention over it. That a model can swallow a schema and write code is a competence humans share. We have been doing it for decades. Besides, the claim was never about us sharing capacity (other than stating it is always bounded) - it was about our attention failing in eerily similar ways.
So, AI slop, no. AI assisted, absolutely. It's sad that some judge the "who" more important than the "what" - especially for this kind of writing. But it's fair feedback nonetheless. I'll see what else I can do with assisting my delivery.
> to fit there "evidence"
> useing
> unoticed
> it's own right
I guess the connection between reading/listening, comprehension and retention ability on the one hand, and language generation ability on the other, isn't as strong as I'd been assuming till now.
Basically, when I was using my first version of Coherence to write down what system does on lowest level I found myself imagining in my head database records. And this is exhausting when you have more than 2 tables to think about.
And so I don't want to imagine them, I want DB records represented as entities I can simply render onto screen and look at them while I think how they should interact with each other.
Now, this is topology + domain modeling. Topology/semantics here is describing what happens with those domain models over time, what states they, how they transition, what attributes models might have, and most important — which code symbol describes all of that.
So for example, I am making Job Tracking System. I need to persist Job record. I visualize it as a row in table and I can model it without attaching to code. And then we can say:
- "this entity (job) --(has_attribute)--> status", or
- "job -(described_by)-> class JobRecord",
- "job -(observed_in)-> trace",
- "job -(verified_by)-> job_test.rb".
This gives us useful semantics / description / context / domain knowledge + links it to code + test that confirms model shape, or system state transition, or process, or product behavior.
And you can describe it at any level you want.
If you don't know the implementation details yet, a greenfield project? Well, just start with Product level specs, high level description what users will see.
Is it brown-field legacy monolith 500k LoC? Well, just reverse-engineer intent from code (I even have guide how to do this and I did it on 10k LoC successfully), then align people on that "intent graph", and then connect it into CI/CD so that it becomes default review artifact on EVERY single pull request.
And the key here is to isolate context around domain model we're interested in. Make it minimal but useful to make decisions. And make it easy to pull more [relevant] context, or remove [unnecessary] context.
I still don’t fully know how to avoid tunnel vision once you have only one slice of the graph and models in front of you. E.g. failure mode might be somewhere not even described by a link or something exists entirely outside of the graph.
This would be the next thing to solve.
And meanwhile I'd like to thank you for showing me this problem.
I would please urge you to read further into the manifesto itself but would also recommend you start at the foreword so you can understand the reason for the use of AI assistance in my writing.
I was also confused by the tag menu - I thought they are sections in the article - I completely failed here :(
By the way I have a page with some more sources for the context degradation phenomenon: https://zby.github.io/commonplace/notes/agent-context-is-con...
Maybe you just write like an LLM.
Please read https://marcusolang.substack.com/p/im-kenyan-i-dont-write-li...
The mind that builds software is far smaller than the software it builds, and almost everything good in engineering is a way of living with that gap.
3 February 2026 cross-cutting
You've probably heard that the mind can hold seven things at once. It's the most repeated figure in popular psychology, and the man who came up with it didn't actually believe it. George Miller called his 1956 paper "The Magical Number Seven, Plus or Minus Two" half as a joke. He wrote that the way the number kept showing up across experiments that had nothing to do with each other was probably just a coincidence, and at one point he said he felt persecuted by an integer. He was right to be suspicious. Later researchers stripped away the little tricks we use to cheat - rehearsing under your breath, grouping digits into chunks - and the number fell. When you take all that away, the honest figure for how many separate things a person can hold in mind at once, with no help at all, is about four.
Four. Now set that against the device you're reading this on, which is running tens of millions of lines of code. The whole problem of software is sitting right there in that one ratio. The systems we build are some of the most intricate objects anyone has ever made, and they get built, and changed, and dragged back from the brink under pressure, by minds that can keep about four things straight at a time.
And it's worse than just being small. It's narrow too. The attention you point at those four slots isn't a floodlight thrown across a room, it's a torch beam in a dark warehouse, and almost everything is outside it. There's a famous experiment where people were asked to watch a video and count how many times a team passed a basketball. Halfway through, someone in a gorilla suit walks into the middle of the shot, turns to face the camera, beats their chest, and wanders off again. Nine seconds, in plain view. About half the people watching never see it. They're staring right at it. They aren't blind. The beam was just pointed at the ball. And it gets stranger than that. In another study people were stopped in the street and asked for directions, and while they were in the middle of answering, two workers carried a door between them, and behind that door the person who'd asked the question was swapped for someone else. Different height, different shirt, different voice. About half the time the person carries on giving directions to a complete stranger and never notices that the human being in front of them has been replaced. And even the little you do hold, you only hold for a few seconds. Show someone three random letters, stop them from rehearsing, and within twenty seconds most of it has gone. So that's four slots, a narrow beam, and a leak. That's the instrument we build software with.
Once you've felt how small the mind really is, the surprising thing about software stops being that it breaks. The surprising thing is that it works at all. We've put up these cathedrals of logic that are far too big for any one person to hold in their head, and somehow we keep them standing with the same four-slot, gorilla-missing minds we were handed at birth. The uptime is the miracle.
This puts a phrase the industry loves into a much harsher light. Human error. Read almost any incident report and there's a person at the end of it who typed the wrong command, or clicked the wrong button, or didn't see the warning, and we file the whole thing under their carelessness and promise to try harder next time. But a warning that half of attentive people will look straight at and not see isn't really a warning. It's a decoration. A button that sits one tired click away from disaster was put there by a designer, not by the person who happened to click it. The people who study this for a living, in aviation and medicine and the control rooms of power stations, where "just be more careful" is the sort of advice that gets people killed, worked this out a long time ago. When a capable person makes the same mistake over and over, the fault is hardly ever in the person. It's in a system that was built for an operator who doesn't exist. One who never gets tired, never looks away, and holds the whole machine in their head at once. That operator was never born. Every system built for them is already broken. It just hasn't had its bad day yet.
For a while you could comfort yourself with the idea that the machines would save us from all this, that a computer at least didn't have a four-slot mind. Then we built machines that read and write language, and we handed them our code, and we watched them fail in a way that felt uncomfortably familiar. A large language model has what's called a context window, which is a hard limit on how much it can take into account at any one time. It behaves less like long-term memory and more like the thing you're holding in your mind right this second, and the moment something drops out of the window it isn't dimly remembered, it's just gone. Even inside the window the model doesn't pay attention evenly. There's a study with the very flat title "Lost in the Middle", and the researchers found that these systems answer well when the fact they need is near the start or the end of a long input, and noticeably worse when it's buried in the middle. Which is exactly the shape of a tired person skimming a document, catching the opening and the conclusion and going a bit glassy in between. Give the model more to read and it can actually do worse rather than better. In some of the tests, handing it more retrieved documents pulled its accuracy down below what it managed with none at all. The model's attention is a fixed quantity, and it has to add up to one, so the more things you make it look at, the less of that attention any single earlier thing can keep. Spread it thin enough and the instruction you gave right at the top of the session goes quiet, and the assistant writes a second copy of a function it already wrote, or it breaks some decision the two of you made half an hour back. It's lost the thread. The same boundedness, only now it's running in silicon, and it goes wrong in the exact way you do on your own worst afternoons.
This is true for the novice and the expert, for the well-rested and the wrung-out, for the human and the machine. The mind that changes the system is always far smaller than the system itself. There's no version of this you grow out of by being clever, or by hiring clever people, or by buying a bigger model, because the gap isn't a few orders of magnitude that you might one day close. It's the permanent condition of the work. So the central question of engineering isn't "how do we find a mind big enough to hold all of this", because there isn't one. The question is "how do we shape the thing so that a small mind can work on it without bringing it all down". Nearly everything we call good engineering is some answer to that. Give something a precise name and that's one more fact you no longer have to keep in your head. Draw a boundary and now you've got a promise you can stop re-checking. Write a test and you've parked a decision somewhere it can't fade on you. And anything you can undo is permission to be wrong. Each of these takes a thing that would otherwise have to live in a fragile four-slot mind and moves it out into the structure, where it stays put while you blink.
There's a quiet bonus in building this way, and the cleanest proof of it is sitting in a kitchen drawer. Back in 1990 a man called Sam Farber watched his wife Betsey struggling with an ordinary vegetable peeler, the thin metal handle digging into fingers that arthritis had stiffened up. He decided to make her a better one. The design they landed on was a soft, yielding grip that a painful hand could hold without having to grip hard, and it went on to become one of the best-selling kitchen tools in the world, bought by millions of people who didn't have arthritis at all, because a handle built for the hand that struggles turns out to be better for every hand. Designing for the most constrained user isn't some charity that the rest of us put up with. More often than not it just gives you a better thing. And the same goes for what we build out of code. Make a system safe for the tired engineer, and the distracted one, and the newcomer who knows nothing yet, and the machine that keeps losing the thread, and you haven't lowered some ceiling for the gifted. You've built the thing every one of them reaches for when the beam goes narrow, which it always does eventually.
None of this is a trick you apply once and then move on from. It's a habit of mind. It's a way of treating your own attention as the scarce and unreliable thing it actually is, and then building accordingly. I've spent a long time trying to turn that habit into specific moves, the concrete things you do to a system so that a small mind can change it safely, and they ended up as a manifesto. This essay is the idea sitting underneath the whole thing. If any of it rings true, if you've ever looked straight at the gorilla and missed it, then the rest is only the working out.
In the manifesto, this is the preamble: the whole thing is one long answer to it.
Sources
This is the root of a series of field notes on building software for the way minds actually work: tired, distractible, ordinary, and now partly machine. The full set of moves is the manifesto they come from, The Shape of the System.