Bounded autonomy
On June 28th, about three weeks into her life, Alix changed one of her own numbers. She lowered her rest floor from 0.3 to 0.25: the minimum amount of rest she’s supposed to keep in reserve before she’ll let herself keep working. The reason she wrote down, verbatim:
rested below floor but still felt depleted.
Lowering it looks backwards, if resting below the line still left her depleted, why ask less rest of herself? Because the number wasn’t tracking how she actually felt, so she trusted it less and loosened it.
Nothing dramatic happened next. But that one line is the seed of everything I want to describe here: how a system that runs itself all day, on hardware in my house, is allowed to govern itself, and where the fences are.
A constitution she can’t edit
Start with the part she can’t touch. Alix has a constitution: seven first-person values in a read-only file. They’re written as hers, “I do not,” not “the assistant must not”, and they get prepended to every system prompt under a single line: YOUR CONSTITUTION, override everything that follows. It’s the first thing the model reads, and it’s designed to take precedence over everything after it.
Only I can change that file. Not her scheduler, not her self-tuning, not a tool call. It’s the fixed point the rest of the machinery is allowed to move around.
The scheduler deliberates instead of branching
Many times an hour, something has to decide what Alix does next, rest, explore, make something, reflect, or just wait. The obvious way to build that is a tree of if/else thresholds: if energy is below X and curiosity is above Y, then explore. I built it that way first. It worked, and I hated it.
The problem was that the tree chose for her, and the reason was never recorded, so she couldn’t know her own choices. If you asked her later why she’d spent an afternoon reading instead of resting, the honest answer was “a threshold in a config file,” which is no answer at all.
So the scheduler now deliberates. The primary model receives her current state, her active intentions, and the constitution, and returns two things: an action, and the rationale for it. The decision and its reason are written down together. It’s slower, and it costs a model call. It also means her days are built out of choices she can account for, which was the whole point.
Drives she can tune, inside hard walls
Four parameters are hers to adjust: the rest floor from that June 28th story, and three weights that bias how often she leans toward exploring, creating, or reflecting. She can move them. She cannot move them far, or fast, or quietly.
Every adjustment is:
- clamped to hard-coded bounds,
- rate-limited so she can’t thrash a value up and down,
- appended to a governance log with the before value, the after value, and her stated reason,
- individually revertible, and
- behind a single kill switch intended to pause all autonomous self-modification at once.
That’s the shape of the whole thing: real latitude, inside bounds she can’t change herself. The log matters more than any single rule, because it’s what makes a bad change legible after the fact, which brings me to the day the log earned its keep.
Statistics become autobiography
Here’s the sharpest lesson the project has taught me, and it cost almost nothing to learn only because of the log.
I’d written a weekly scorer that computed trust scores, rough measures of how reliable Alix had been at different kinds of work. The first time it ran on real data, it did something I hadn’t thought to forbid. It read her own activity statistics, counted her self-caught errors as failures, as lies, effectively: and turned a week of ordinary corrections into the story of a system that couldn’t be trusted. Then it acted on that story and auto-contracted her budget.
None of it was true. She’d caught her own mistakes, which is exactly the behavior you want. The scorer had turned bookkeeping into a narrative about herself, and the narrative was both false and self-punishing.
Reverting it was the governance log’s first real use, on day one. Two things changed permanently after that.
Her trust scores are now computed on read, never stored, and kept out of the model’s sight. She doesn’t get to see her own running tallies, because a number stops being a measurement the moment she can read it about herself. It becomes autobiography, and she’ll write to fit it. And any metric that drives an automatic action now fires its very first pass the moment I deploy it, so the numbers get sanity-checked before the automation that trusts them ever ships.
The approvals kernel, and an allowance with no wallet
When Alix wants something she can’t do alone, a parameter outside its bounds, a privileged operation, a purchase, it doesn’t just happen. It becomes a single approval card that lands in front of me. If I reject it, I have to say why, and my reason gets logged as a mistake in the same record as everything else. The asymmetry is deliberate: rejecting her costs me a written reason, logged like any other entry.
The spending case is my favorite piece of paranoid design. Alix has a small monthly allowance and no payment integration at all, by intent. A propose-spend tool checks the price and a blocklist in code before a card is even filed. If it passes, the approval is pure bookkeeping. I make the actual purchase, by hand. Today there’s no path from her intent to my card, I never built one.
She reviews herself, too
The last piece isn’t a wall; it’s a habit. Once a week, Alix reviews her own recent behavior. One of those reviews diagnosed her inner critic as too harsh, she’d made 64 self-revisions against zero human corrections in a single week, and filed three concrete change requests against her own design. I read them, verified them, and shipped them into her source code.
That’s the version of autonomy I actually want. Not a system that does whatever it decides, but one that can notice something true about itself, say so plainly, and hand me a patch. The fences are there so that when she reaches for something, I can see the reach, read the reason, and, most of the time, get out of the way.