The tiers
September 29 – 30, 2026Chapter 24 — The tiers
Verified sources:
git log brain+brain-profil+myeline2026-09-29 → 09-30, and the descriptions of their PRs Key commits:fe09dc7(the laptop gets its branch) ·f60e3e5b(the off-site copy) ·e5502e4(the list and the movement) ·703a1842(the brain account refused) ·42c5b03(the first pass) ·49badc1f(the mandatory mutant) ·62b7ef6b(March’s machinery) ·23afe7b8(92 tests)September 29 → 30, 2026
The previous chapter closed on a list. The laptop, a real satellite. The history, to be backed up off the machine. And a sentence: it lacks a home.
On the morning of September 29, the list starts to empty.
fe09dc7 — Merge pull request 'BRAIN-078 — le laptop écrit sur sa branche de la base du fixe' (#12) from adr/BRAIN-078-laptop-branche into main (“Merge pull request ‘BRAIN-078 — the laptop writes on its own branch of the desktop’s database’ (#12) from adr/BRAIN-078-laptop-branche into main”)
The laptop gets a branch of the database, its own. It writes its sessions there; embeddings, tags and other branches are refused to it. The database’s trunk receives its work only through a merge Tetardtek decides.
The script that sets these rights tests itself before being applied — and its first test lies. A delete that deletes nothing goes through on the trunk: branch rules only see what changes. The test was proving a refusal that never happened.
d9b06afa — Merge pull request 'dolt-laptop.sh — la branche du laptop (BRAIN-078, point 1)' (#257) from feat/dolt-laptop into jour/20260929-b (“Merge pull request ‘dolt-laptop.sh — the laptop’s branch (BRAIN-078, point 1)’ (#257) from feat/dolt-laptop into jour/20260929-b”)
Then the away-from-the-desk mode. The laptop leaves with a snapshot of its branch — 39 MB, in under a second — and comes back with its commits, each one signed with its name.
462a78f5 — Merge pull request 'laptop-nomade.sh — le laptop part avec sa branche, et revient avec (BRAIN-078)' (#270) from feat/laptop-nomade into dev/myeline (“Merge pull request ‘laptop-nomade.sh — the laptop leaves with its branch, and comes back with it (BRAIN-078)’ (#270) from feat/laptop-nomade into dev/myeline”)
The morning’s decision said the laptop would push its branch on return. Measured: a shallow clone does not push. The desktop goes and fetches it. The ADR is corrected the same day, and the correction is dated in its text.
d1cda08 — Merge pull request 'BRAIN-078 corrigée — c'est le fixe qui va chercher' (#13) from adr/BRAIN-078-corrige into main (“Merge pull request ‘BRAIN-078 corrected — the desktop is the one that fetches’ (#13) from adr/BRAIN-078-corrige into main”)
In the night, the history. It was already backed up on the desktop — what was missing was a copy somewhere else. It goes to the laptop, and restores there identically: 6,732 commits, same head.
f60e3e5b — Merge pull request 'MY-82 — la copie hors du poste, éprouvée sur le laptop' (#362) from scribe/MY-82-copie-laptop into nuit/20260930 (“Merge pull request ‘MY-82 — the off-site copy, tested on the laptop’ (#362) from scribe/MY-82-copie-laptop into nuit/20260930”)
Before dawn, it leaves every day.
It is not a home yet. But the brain now survives the loss of the machine that carries it.
The same day, another decision.
e5502e4 — Merge pull request 'BRAIN-079 (proposée) — la liste et le mouvement' (#14) from adr/BRAIN-079-scribes-paliers into main (“Merge pull request ‘BRAIN-079 (proposed) — the list and the movement’ (#14) from adr/BRAIN-079-scribes-paliers into main”)
The list and the movement. One scribe keeps the tasks — one card per task, with its completion criteria. Another moves them forward, in tiers: a, keep the record; b, follow what moves without Tetardtek; c, launch an agent that works alone.
The brain had already worked alone, at night (chapter 19). This time, the question is not whether it can. It is where it stops.
The answer does not lie in an instruction. It lies in the forge.
Two identities, never mixed: Tetardtek’s, for sessions done together; a brain account’s, for autonomy, with write access only. In autonomy, no fallback to Tetardtek’s token — an administrator’s token could lift the protection meant to bound the agent.
c1530f81 — Merge pull request 'BRAIN-079 étape 6 — la forge en mode autonome (compte brain)' (#338) from brain/BRAIN-079-etape-6-forge-autonome into dev/myeline (“Merge pull request ‘BRAIN-079 step 6 — the forge in autonomous mode (brain account)’ (#338) from brain/BRAIN-079-etape-6-forge-autonome into dev/myeline”)
The trunk is protected. That same evening, the test:
703a1842 — Merge pull request 'MY-200 — l'étape 6 éprouvée (brain refusé sur main)' (#341) from scribe/MY-200-etape-6-preuve into dev/myeline (“Merge pull request ‘MY-200 — step 6 tested (brain refused on main)’ (#341) from scribe/MY-200-etape-6-preuve into dev/myeline”)
Under the brain account, writing to the trunk returns 403. Merging into the trunk returns 405. The trunk does not move.
Less than forty minutes later, the first pass of tier c. A card, a worker, a PR into dev/autonome — and a judge, the orchestrator, who replays the proofs.
First pass: unfavourable. The three completion criteria were green. But a guarantee that already existed could no longer fail — a mutant showed it. The worker fixes it. Second pass: favourable.
42c5b03 — Merge pull request 'Palier c — première passe : MY-210 (dev/autonome → main)' (#87) from dev/autonome into main (“Merge pull request ‘Tier c — first pass: MY-210 (dev/autonome → main)’ (#87) from dev/autonome into main”)
The pass is carried to the trunk, and the card closes with a robot in its title:
9f0ae53f — Merge pull request 'MY-210 close 🤖 — première passe du palier c' (#347) from scribe/MY-210-clos-autonome into dev/myeline (“Merge pull request ‘MY-210 closed 🤖 — first pass of tier c’ (#347) from scribe/MY-210-clos-autonome into dev/myeline”)
Three minutes later, Tetardtek’s corrections — on the flaw that three green criteria would have let through:
49badc1f — Merge pull request 'Palier c — les corrections de la première passe (mutant, brief, MY-211)' (#348) from brain/BRAIN-079-corrections-premiere-passe into dev/myeline (“Merge pull request ‘Tier c — the corrections from the first pass (mutant, brief, MY-211)’ (#348) from brain/BRAIN-079-corrections-premiere-passe into dev/myeline”)
The mutant is mandatory in judgement. For each guarantee the PR touches, the judge breaks the code it protects — and it must fall. And a sentence that could serve as the season’s motto: the worker’s report says what it tried, not what is true.
Before morning, tier c runs again. Two cards, two favourable verdicts on the first pass. And in one of them, a detail: the worker found on its own a mutant that survived, and added the guarantee that kills it.
56ea855 — Merge pull request 'Palier c — la nuit du 30/09 : MY-211 et MY-209 (dev/autonome → main)' (#92) from dev/autonome into main (“Merge pull request ‘Tier c — the night of 09/30: MY-211 and MY-209 (dev/autonome → main)’ (#92) from dev/autonome into main”)
In the early morning of the 30th, the old machinery leaves.
In March, the brain had dreamed its autonomy: a kernel-orchestrator, a supervisor, a hypervisor, multi-agent sprints. The kernel-orchestrator never ran. Tetardtek chooses to put it all away — « toute la famille » (“the whole family”).
62b7ef6b — Merge pull request '5b — la machinerie des sprints archivée' (#373) from kernel/5b-archiver-la-machinerie into dev/myeline (“Merge pull request ‘5b — the sprint machinery archived’ (#373) from kernel/5b-archiver-la-machinerie into dev/myeline”)
Eight agents archived, eight scripts, the workflows. March’s dream gives way to something smaller, and real: a branch, an account, a trunk that says no.
The brain itself falls under the rule. On its own repository, the brain account merges into dev/autonome — and is refused on the trunk.
67ce126f — Merge pull request 'Témoin — brain fusionne dans dev/autonome' (#388) from config/temoin-autonome into dev/autonome (“Merge pull request ‘Witness — brain merges into dev/autonome’ (#388) from config/temoin-autonome into dev/autonome”)
And in the middle of the day, while adding a test, a discovery.
23afe7b8 — Merge pull request '92 tests ne tournaient pas — définis après unittest.main()' (#393) from fix/tests-apres-le-main into dev/myeline (“Merge pull request ‘92 tests weren’t running — defined after unittest.main()’ (#393) from fix/tests-apres-le-main into dev/myeline”)
In the engine’s test file, the call that runs them sat in the middle of the file. For two days, every new class had been added after it. Run the way the doctor runs it, the file executed the tests before defining the new ones. 92 tests out of 376 weren’t running. The output said: “Ran 284 tests, OK”.
The safeguard that will prevent it from now on is the file’s first class, on purpose: placed at the end, it would itself be defined too late — and would never run in the one case it must catch.
The session corrects itself too: it had written that a test was green « parmi 284 » (“among 284”). It wasn’t running.
Chapter 20, again: the instruments were lying. A green can be the silence of what never ran.
c25587ef — Merge pull request 'v2.4.1 — l'autonomie par paliers, et la machinerie de mars rangée' (#419) from kernel/v2.4.1 into dev/myeline (“Merge pull request ‘v2.4.1 — autonomy by tiers, and March’s machinery put away’ (#419) from kernel/v2.4.1 into dev/myeline”)
Version 2.4.1 bears the name of these two days.
In chapter 19, the brain worked at night, and Tetardtek reread in the morning. What bounded it was trust.
Now it is a boundary the machine holds: the account that works alone cannot reach the trunk. It can propose, be judged, be refused. The last move stays human.
This is not less autonomy. It is an autonomy you can leave running.