Published October 29, 2026

The Company Brain Tuvlo runs on

Eight markdown files, one rule for who wins when they conflict, and a weekly agent that checks them against reality.

Tuvlo is a one-person company with more than one AI agent acting on its behalf: a weekly scheduled routine that reports on progress, and — eventually — separate skills for content and marketing work. All of them need to agree on the same facts: what Tuvlo is, what it’s called internally even to itself, what’s actually decided versus still open, and what’s currently true about the business versus what used to be true before a direction change.

That’s a coordination problem, not a content problem. The fix was a Company Brain: a small set of plain-text files, read by every agent before it does anything, with one rule about what happens when something elsewhere disagrees with them.

The problem: agents drift from the facts, separately

Before the Brain existed as a deliberate design, the risk was obvious: ask an agent to write a status update, and it either re-derives company facts from whatever’s in its context window that day, or quietly carries forward something that used to be true. Ask two agents the same question a month apart and you can get two different answers to “what does Tuvlo sell,” not because anyone decided to change the answer, but because nothing forced either agent to check.

This gets worse, not better, when the company’s direction actually changes. Tuvlo started as a SaaS micro-app toolkit for e-commerce operators, expanding toward a full “Business Operating System.” On 2026-10-28, that plan was dropped in favor of what you’re reading right now — a blog about how AI agents and automation actually get built. A change like that touches the tagline, the audience, the roadmap, the brand voice, and the visual design brief all at once. If even one of those lives somewhere an agent doesn’t check, it keeps producing SaaS-era copy indefinitely, and nobody notices until a reader does.

The design: eight files, one cross-cutting rule

company-brain/ is a directory of markdown files, each one a domain: why Tuvlo exists (foundation.md), who it’s for (positioning.md), what it actually publishes (product.md), sequencing (roadmap.md), how it writes (brand-voice.md), how it behaves (operating-principles.md), legal and domain facts (entity.md), and a decision log of open questions and resolved ones (open-questions.md). No database, no CMS — a git repo, because the thing that matters most is that a change to any of it is a reviewable diff, not a row update nobody looked at.

Three decisions make this hold together under change, which is the actual hard part:

  • One rule for conflicts. operating-principles.md states it directly: “when agent instructions conflict with this Company Brain, the Brain wins by default. Surface the conflict for human resolution — don’t silently override either way.” The same rule applies to the Brain’s own files against each other: if one file still assumes the old SaaS plan, it’s stale, and the fix is to update it, not to route around it quietly in whatever output an agent happens to produce. That instruction lives in the root CLAUDE.md every agent working in this repo reads first, so it isn’t optional per-agent behavior — it’s structural.
  • Facts are marked by confidence, not asserted as settled. entity.md is the most consequence-sensitive file — legal structure, domain ownership, trademark status — and it says explicitly which of its own claims aren’t yet confirmed (“whether tuvlo.ai/tuvlo.se are actually registered and under whose account,” “current status of the EUTM application”). An agent reading it can’t accidentally present a pending trademark application as a granted one, because the file won’t let it.
  • Decisions keep their reasoning, including retired ones. open-questions.md is a log, newest first, and a decision that gets superseded stays in the log with what it was and why it changed — the 2026-10-28 pivot entry lists exactly what it retired (the old roadmap, the reseller model, the e-commerce-specific audience) instead of just deleting those files’ old content and leaving no trace of the reasoning.

On top of that sits a scheduled cloud agent — the CEO routine — that runs weekly, reads the whole Brain, checks the roadmap against what it can actually verify, and writes a dated report to reports/. It deliberately does the least it could do to be useful: it writes a file, it doesn’t post to Slack or file tickets anywhere. The routine’s actual prompt isn’t stored in this repo at all — it lives in a cloud routine config that can change without a commit — so the Brain’s job isn’t to describe what the routine does today, only what’s true about the company it’s checking.

What it actually produces

The clearest proof is the direction change itself. When Tuvlo pivoted from SaaS toolkit to content site, every file that depended on the old plan — tagline, audience, roadmap phases, the design brief, the brand-voice tone table — got rewritten in the same pass, each one stating what it replaced and why. Nothing was left half-updated for someone to trip over later.

The second proof is this article. It’s the first use case the Brain commits Tuvlo to publishing, and an agent could produce an accurate first draft of it directly from product.md’s description of what a use case needs to cover and brand-voice.md’s rules for how to say it — without Andreas writing the facts down twice, once for the Brain and once for the article.

The cost is real and worth naming, not glossing over: plain markdown in git has no query interface. Nothing indexes it. Every agent has to know which file is relevant and read it directly, and the only thing keeping it internally consistent is a human reviewing diffs. That works today because there are roughly eight files. It’s not a design that survives getting much bigger without turning into something more structured — which is a decision for whenever that actually becomes true, not before.