Skip to content
scsiwygest. โ€˜26
Sign in
get startedmcpcommunityapiplaygroundswaggersign insign up
โ† David OlssonยทSurviving Your Own Substrate15 May 2026David Olsson
โ† David Olsson

Surviving Your Own Substrate

#substrate#orchestration#project-state#manifold#work#remote-culture#value-plane

David OlssonDavid Olsson

For two years I built the substrate.

.blog-state/ became .app-state/ became .project-state/. The strategic-state facility went in. The P&L cascade got its own state directory. Wiki maintainer, work-state, notella-state, tulevik intel, GTM kanban, project-state suite โ€” every one of them an instance of the same move. Pull the running intelligence of a domain out of the head and out of the chat log and put it in a directory next to the work, append-only, file-per-entity, validatable, queryable, orchestratable.

The orchestrators sit on top. Decide what to do next. Route through state. Hand back a checklist.

Each one of these started as a relief โ€” finally, the thing remembers itself. Each one ended in the same uncomfortable place. The substrate runs. The reports write themselves. The status updates are accurate to the minute. The claim packets assemble on schedule. And then you look at it and ask: what is left of me in here?

This essay is about that question. Not as confession. As structure.


The reporting layer was never the work

The reporting layer always felt like the work because reporting was how you proved you'd done the work. Slack standup, weekly update, monthly digest, quarterly claim, annual review โ€” every shape of "here is what happened" was load-bearing for belonging. You filed the report, you were on the team. You stopped filing reports, you weren't.

Remote culture tightened that screw. In a room you can be present without producing a paragraph. Over a wire you cannot. The only signal of participation is the artifact you put into the channel. So the artifact became the participation. And then โ€” slowly, then quickly โ€” the artifact became the substitute for the participation.

We all know what that looked like. Status updates carefully tuned to sound like progress. Long PR descriptions for thin PRs. Meeting recaps that flattered the meeting. Quarterly narratives reverse-engineered from whatever survived. A whole layer of human attention spent on shaping the appearance of work into the shape a report wanted.

And here is the part nobody quite said out loud: that layer was already automatable. It was rule-bound, format-bound, audience-bound. It rewarded compression and consistency. It punished originality. It was the exact shape of work an LLM eats for breakfast.

So the substrate I was building didn't cause the collapse. It just happened to be ready when the collapse arrived.


What the substrate actually does

When .project-state/ ingests milestones, it stops being possible to fudge percent_complete in a status report. The number is in a yaml file. Someone wrote it. Someone advanced it. Someone left technical_progress narrative or didn't. The claim packet writes itself from those numbers. The SC pack writes itself. The weekly writes itself. The blog post โ€” if you let project-blog-publisher do it โ€” drafts itself.

What's left is why those numbers are what they are. Why M03 is at 40% and not 70%. Why the gate is held. Why the change order matters. Why the IP rationale shifted last month. Why the consortium needs to hear about it this way and not that way. Why this milestone is load-bearing and that one is decorative.

The substrate doesn't answer any of those questions. It can't. It records the answers once someone gives them. It surfaces the absence when nobody does. It refuses to let a project pretend it knows things it doesn't know.

This is the function. Not automation. Forced legibility of the unautomated.

You can read the same move across the family. strategic-state holds a thesis but refuses to write one โ€” the thesis field is deliberately empty until a human authors it. work-state harvests events from Slack, Gmail, GitHub, Docs, but the synthesis layer asks what the events meant this week, and that question doesn't have a yaml answer. Notella turns a photograph of a notebook page into transcribed text, classified content, extracted entities โ€” and stops at first-pass, where meaning starts. The substrate goes right up to the edge of what a state file can hold. Then it stops.

What it stops at is the value plane.


The value plane

I keep using this phrase. Let me say what I mean.

A value plane is the layer at which your contribution is no longer substitutable. Below it, anyone โ€” any person, any agent, any well-prompted model โ€” can do the same thing you can. Above it, the work depends on judgments only you have made enough of to make well.

The plane moves. Twenty years ago, knowing how to format a status report was above the plane for many roles. It is now firmly below it. Five years ago, drafting a polished SC pack from raw milestone data was above the plane. It is now below it. Two years ago, sketching a system architecture from a transcript was above the plane. It is now below it for many architects and rapidly moving below it for everyone.

What stays above the plane, durably, has two properties. First, it requires having lived through enough failure modes in a specific domain that you carry an internal model of what won't work and why. Second, it requires committing to a position when the situation is genuinely undetermined โ€” when there is no correct answer waiting to be revealed and someone has to say "we go this way."

The substrate exposes the plane because it strips away everything below it. When the report writes itself, what's left is the decision the report described. When the orchestrator routes the work, what's left is the rationale for the route. When the state file holds the milestones, what's left is the judgment about which milestones are real and which were proposal theatre.

This is uncomfortable. The plane gets thinner. Or rather โ€” the same plane is now in plainer sight, with less padding around it.


Surviving the substrate you built

The temptation, when you build the substrate yourself, is to think the substrate is the contribution. It isn't. The substrate is the floor that lets the contribution show. If I stopped here and admired the orchestrators, I'd be doing the thing I just described โ€” substituting an artifact for the participation it was supposed to enable.

So: what to actually do.

Author the things the substrate refuses to author. strategic-state leaves the thesis blank on purpose. project-state will not write the IP rationale for you. Notella stops at first-pass. The state files are clear about where the human signature has to land. Land it. Don't outsource the part that was always yours.

Move up the orchestration ladder, not sideways across it. Once a domain's state and orchestrator are running, the next move is not to build a second orchestrator that does roughly the same thing for a different domain. The next move is to ask what this orchestrator's existence makes newly possible. project-state existing means the next move is not project-state v2. It is the kind of project that was previously too expensive to run because the overhead would have crushed it. Build that project.

Make the why durable by writing it where it can outlive you. Slack threads are not where the why goes. PR comments are not where the why goes. They evaporate. The why goes in the manifest, the README, the change-register, the decision log, the strategic-state evolution journal โ€” the places the substrate is explicitly designed to hold across time. Every load-bearing decision you make should leave a track in one of those files. Not as ceremony. As legibility for whoever comes next, including future-you.

Engage peers about the layer above the substrate, not the layer below it. The transactional flattening happens when peer conversation collapses to ticket status and PR review. The remedy is to deliberately push the conversation up โ€” to the pillars, to the why, to the structural commitments. Not in performative all-hands posts. In direct, low-ceremony exchanges with the people who can also see the plane. If you cannot find those people inside your team, find them outside it.

Treat your own automation suspiciously. Every orchestrator you build should answer a specific question: what did this free me to do that I am now actually doing? If the honest answer is "nothing โ€” I have just moved my time from doing the work to maintaining the system that does the work" โ€” that orchestrator failed. Tear it down or simplify it until the freed capacity goes somewhere real.


What the pillars actually are

Pillars is the right word and the wrong word. Right because they are load-bearing. Wrong because they make the structure sound static.

The pillars I keep coming back to, across the substrate family:

A commitment to structural sovereignty โ€” that the running intelligence of a domain belongs in a directory you control, not in a SaaS tenant or a chat history. The state is the source of truth and it is on your disk.

A commitment to observable reasoning โ€” that decisions, once made, leave a track. Append-only logs, decision records, change registers. Not because anyone audits them. Because future-you needs to know what past-you was thinking.

A commitment to orchestration over specialization โ€” that the value is not in any single skill but in the routing between them. The orchestrator is the product. The specialists are the parts.

A commitment to state as memory โ€” that the right place for context is in the artifact next to the work, not in a model's context window. The model is fungible. The state outlives it.

A commitment to methodology as product โ€” that the way the work is done is itself a thing to ship. Skills, templates, manifests, schemas. Not just outcomes. The shape of the path.

A commitment to demonstrate rather than decorate โ€” that the post should be the thing, not the announcement of the thing. The repo should be the proof. The substrate should be the demonstration that the methodology works at all.

These don't reduce to a tagline. They reduce to a posture. The posture is: I would rather build the floor than perform the ceiling.


Where this leaves the work

I am not done building substrate. There is more of it to build. Notella's longitudinal layer is still thin. The GTM kanban is still finding its shape. strategic-state has thesis fields that have not been authored yet โ€” including mine.

But the question has shifted, and I want to be explicit about how. For two years the question was: how do I make the work legible to itself? That question got an answer. The state files exist. The orchestrators run. The reports write themselves.

The question now is: given that the work is now legible, what do I actually have to say about it?

That question has no orchestrator. There is no skill for it. The substrate refuses to author it on my behalf. It sits at the value plane and asks me to land somewhere.

This essay is one landing. There will be more.

If you are also building substrate โ€” your own state directories, your own orchestrators, your own facilities โ€” the move I'd offer is this: every time you finish an orchestrator, sit with the thing it freed you to do, and then actually do that thing. Not the next orchestrator. The thing.

That is the only way I know to survive your own substrate.

The floor is built so the ceiling can rise. If the ceiling does not rise, the floor was a tomb.

Share
๐• Post
Surviving Your Own Substrate ยท scsiwyg