Intelligence at the core, for one person
Technical walkthrough. I put intelligence at the core of organisations, built around people. This is what that looks like when the organisation is one person.
This is a setup you can run on your own. The record sits in one place, in plain text, so every agent you point at it reads the same thing: Claude Code, Codex, Kimi K2, whatever comes next. Change it once and it's changed in all of them.
People expect a platform. It is nothing: no vendor owns it, it never goes out of date, and anything you buy later can read it. Nothing you decide in your first month locks you in.
You don't need to understand all of what's below. Copy and paste this page into the AI of your choice and it will tell you what to do to get it set up.
The files every agent reads
Every tool gives you somewhere to put this and every one calls it something different: custom instructions, project files, a rules file, memory. Mine is a folder of plain text files that all of them read.
All ten load before I type anything: who I am, how I write, what I won't write, what's protected, what I refuse, and the checks on finished work. 249KB, every session.
That is a deliberate trade. I want every tool to start from the complete identity layer. The deeper context beneath it still loads only when the task calls for it.
I counted 443 instructions in the seven-file load on 20 August. All ten now load, so the current count is higher.
The rule: make the load boundary explicit. My identity loads together; deeper context stays on demand.
How it's built
~/os/ ├── identity/ 10 files. All 10 load every session (249KB): who · direction · │ comms · boundaries · energy-and-rhythm · situational-rules · │ values · writing-blacklist · draft-check · interests. ├── context/ on demand: the IP, the people, the tool stack, the │ page doctrine, and a corpus of my own sent writing by register. ├── skills/ the procedures ├── agents/ the specialists └── templates/ reusable structures
The tool's own config file is a pointer at ~/os/ and a short read-first list. A start-of-session script does the loading, so the same core works in a second tool without being copied into it.
One core, two roots
Work and the rest of life run off the same core, into separate roots. The wall is one-directional: personal detail never surfaces in a work artefact or on a public page.
That wall is a written rule in the always-loaded layer. Nothing enforces it.
The rule: one core, split by domain. A second account fragments the record.
How it's built
~/os/ is the core. ~/work/ and ~/life/ are the roots it serves, each with its own entry file and its own specialists. Household money goes to a different one from business money, so the two never co-mingle for tax.
Reading a rule is not running one
I read my own writing rules end to end, then drafted 1,245 words and sent 721. Reading them changed nothing about what got written.
So they stopped being a document and became small programs that run on their own, at fixed moments. Six of them.
Two are reflexes: they run automatically, at the start and the end. One loads the record before I type. One files anything worth keeping when I finish, and saves the day's changes.
Four are gates: they sit in the way of anything leaving. One won't let the private files be pushed anywhere from this tool. The other tool I run has no equivalent. One won't let a page go live if it's missing a version stamp or the right privacy setting. Two check what I've written against my own writing rules before it goes out, including email, which never gets saved as a file to check.
The rule: anything that has to happen every time is a script, not a reminder. And the check runs against the finished words, never before them.
How it's built
Six hooks, four events, one config file.
SessionStart → session-context.sh loads ~/os/identity/ + today's date
Stop → session-reflect.sh proposes durable filings;
git-commits ~/os. Loop-guarded,
debounced to once / 30 min.
→ comms-gate.sh scans the finished turn for an
unsent draft. High-precision
markers only (a sign-off, a
quoted draft, a Subject line).
PreToolUse(Bash)
if Bash(git *) → git-push-guard.sh DENY push or remote-add in ~/os
ASK any other git push
if Bash(git commit*) → artefact-audit-guard.sh audits the working tree across
the three site repos; DENIES the
commit on a failed house standard.
Fails OPEN on its own errors so it
can never brick committing; closed
only on a real audit failure.
PostToolUse(Write|Edit) → draft-check.sh injects the checklist the moment an
outward artefact is written.
Silent on notes, memory, code.
The two git gates block. The two writing gates are advisory.
The loop needs something to reflect on
A reflex with nothing to read files nothing. Through the day, observations, decisions and loose ends go to a daily note, a running log, a signal inbox and a jobs list. The end-of-session filing goes to a memory store: one fact per file, a one-line description on each, links between them, under an index that loads at the start of every session.
The rule: a system that learns needs a record to learn from.
How it's built
Each memory is a markdown file with a name, a one-line description used to decide relevance on recall, and a type: who I am, guidance I've given, live project state, or a pointer to something external. Bodies cross-link by name. The index that loads every session is 22.3KB against a ceiling of about 24.4KB, past which the tail stops loading, so index lines stay short and superseded entries get retired. The store is its own local git repo with a pre-push hook that hard-blocks any push.
The methods load with the task
The procedures sit dormant until their task comes up: how I draft an email, scope a proposal, design a teaching session, write a long piece, plan a day, run the Friday audit. The specialists get called by hand for a specific job: a reviewer, a sparring partner, a financial view, an academic panel, a researcher. Flat, with nothing routing between me and them.
Writing one of these does not install it. Authoring is not installing.
The rule: expertise loads when its task arrives, and you do the orchestrating.
How it's built
Both libraries live in ~/os/ and reach the tool through symlinks. A file written into ~/os/skills/ without a matching link is invisible to every session and silently does nothing. Six were stranded that way for weeks, and one more was linked but missing a key its loader needed, which is the same failure one layer down.
Each specialist declares what it is, reviewer or sparring partner or verifier, before what it does, and reports back rather than acting.
Then wire it to where the work is
Notion, mail, calendar, the drive, the books, the domains, the sites. A connection amplifies whatever the setup already is.
The rule: wire to where the work lives, and wire it last.
How it's built
Notion, Gmail, Google Calendar, Google Drive, Xero, Netlify, GoDaddy, Canva and the browser. Each is a live read into a system that already holds the work, so nothing is answered from a copy of it.
What comes out is a page
Output is a page. Owned, addressable, version-stamped, routed by who should see it, from fully public down to gated behind a login. This one is an instance of it.
The rule: own the address the work arrives at.
How it's built
Three site repos, each its own deployment. A _headers file carries the index posture per surface. Every page has a fixed version widget that opens into its own change log. The commit gate above audits all three.
Keeping it true
It all sits in version control. When a fact sharpens I overwrite the one live source and let history hold what it used to say. No stale second copy quietly steering the work.
This page has been wrong. On 6 August it described three hooks while six were running, claimed a specialist that had never been installed, and left the memory store out entirely.
The record travels and the guards don't. Hooks and permissions are configuration, and configuration stops at the tool it was written in. Run your core through a second tool and it arrives with none of them.
One of mine doesn't run in the tool it was written in. The rule that every outward draft gets reviewed before I see it needs the tool to call a second agent, and a session that won't do that on its own leaves the rule written and not running. I found it on 20 August, in a session that had just rewritten this page's opening.
The rule: overwrite, don't stack. A guard you built in one tool is not a property of your setup. Neither is one that needs the tool's permission to fire.
How it's built
~/os/ is a local git repo with no remote. The end-of-session reflex commits it. No remote is deliberate: the core holds confidential material, and offsite backup is a separate call.
Run it against yours
This whole page is a file. Put it into your AI and have it score your setup against the nine checks: where you sit on each, and what to build next.
Then paste it into Claude, ChatGPT, or whatever you use, and hit send. Or download the file.
- The record. Outside the tool, in files you own, with a small always-loaded layer separate from a deeper on-demand one?
- The wall. One core covering everything, with your domains held apart by a rule rather than fragmented into separate systems?
- The reflexes. Context loaded at the start and durable facts filed at the end, without you asking?
- The gates. Your own standard running against finished work, before anything publishes?
- The journal. Something real for the loop to reflect on, and a linked store the filing goes to?
- The methods. Recurring moves packaged to load on demand, and specialists you call by hand?
- The connections. Wired to where the work already is, and wired after the core was right?
- The output. Arriving as an owned, addressable, version-stamped page?
- Canonise. One live source, overwritten when it sharpens, no stale second copy?
10. The discipline of the core itself. I left this one out because nobody had finished it. Measuring my own for two weeks gave it a shape, and I fail four of the five parts today.
- A budget. The seven-file load counted 443 instructions on 20 August, against the 150 to 200 a current model follows well. All ten files now load. Failing by deliberate choice.
- A ceiling. The index that loads every session sits 1,525 bytes under the point where its tail stops loading, and nothing tells you when it does. Close.
- A copy somewhere else. Mine is on one machine, deliberately, because the core holds confidential material. It is still one machine. Failing.
- Enforcement in every tool you run. The guard that stops the private core being pushed exists in one of the two tools I use. Failing.
- A link check. Two procedures written three days ago are invisible to every session, because writing a file into the folder is not the same as installing it. Failing.
The rule: the core gets audited on the same terms as everything it holds.
Then run it again once it has grown
The nine checks ask whether you have the thing. Later the question is whether you have too much of it. These files grow one rule at a time: the agent gets something wrong, you add a rule, nobody takes one out.
Same move. Put this page into your AI and ask for the cut.
- Count what loads every session. Instruction units, not files. Under 150, stop here.
- Find the contradictions before cutting anything. Two rules that can't both hold make the agent unpredictable, and they are why people say it ignores them.
- Keep only what changes most answers. The rest moves to the layer that loads when its task arrives.
- Delete four kinds. Already said elsewhere. Vague. A file path, which will drift. And anything the model already does on its own, which you test by running it, because arguing about that one is arguing about the default.
- Delete a ban with nothing beside it. Naming what to avoid makes it more available. State the target instead.
When the agent gets something wrong, ask it why it decided that before you write the rule. Half the time what was missing is a fact.
The rule: give the always-loaded layer a budget, and make every new line spend against it.
Tell me what you did differently.
Back to Working frames · Read the design: The Verifiable Core · Read the organisational frame: The Intelligence-Centred Firm