← All work

AI-OS · Agent layer

Keeping “done” and “live” from meaning the same thing

14 department agents, read-only knowledge access, a two-repository architecture.

14department agents
2repos (engine/data)
1read-only MCP server

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.

Engine (code) / Data → 14 department agents → “Done ≠ live” rule → Read-only MCP boundary → A system, not a prompt
AI AgentsMCPSystem ArchitecturePrompt Engineering

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.