AI-OS · Agent layer
Keeping “done” and “live” from meaning the same thing
14 department agents, read-only knowledge access, a two-repository architecture.
Problem
Running many projects at once with AI agents has a known failure mode: the agent states what it isn't sure of as if it were certain. Ask it a project's status and it reads a doc and says “done”, but the feature may be committed and never pushed.
Constraint
Code and memory change at different speeds and carry different privacy needs; keeping them in one place makes both worse.
Approach
I split the system into two repositories: ENGINE (kernel rules, role definitions for 14 agents, the dispatch router) and DATA (memory, knowledge, project state). One rule loads into every session: before an agent reports a project's status, it must check whether the repository has unpushed commits. If it does, the live product is not the product the documentation describes. Access to the knowledge vault goes through a read-only MCP server, so the boundary between reading and mutating is enforced by the tool, not a prompt instruction.
Result
Not prompt-writing, system design: what agents can access and what they must never assume is settled by architecture.
Need something like this?
Send two or three lines: what you have, what is broken or missing, and when you need it. I reply within 12 hours, Monday to Saturday.