Nothing Touches Production Without a Trail
In EKOM, there is no code path from a chat message to a production write. Every change is a versioned patch. Every patch has a reason. Every reason has a record.

The Illusion
Editing product data should be simple. Change the value. Save. Done.
That's how every tool works. That's how spreadsheets work. That's how humans think about data changes.
And it's exactly the wrong model for AI-operated systems.
The Tension
When a human edits a product title, they know what they changed and why. The context lives in their head.
When an agent edits a product title, the context lives nowhere. Unless you build it into the system.
A direct edit is a fact without a story. It tells you what the value is now. It doesn't tell you what it was before, why it changed, who approved the change, or how to undo it.
For one product, this doesn't matter. For a batch of 200 products modified by an AI agent, it's a compliance nightmare.
The Turning Point
The atomic unit of work in EKOM isn't an edit. It's a Patch.
A Patch is a structured object: field diffs with before and after values, a reason code explaining why, a risk level, a confidence score, a status that tracks its lifecycle from proposed to approved to deployed, and a rollback pointer linking to the previous version.
Every change (whether initiated by an agent, a user, or an automated policy) flows through this system. There is no code path from a chat message to a production catalog write.
The Risk
Without patches, you get three problems that compound over time.
No reversibility. An agent fills "material" with the wrong value. How do you undo it? With direct edits, you're guessing. With patches, you revert. The previous value is restored.
No accountability. Enterprise brands ask "what changed?" With direct edits, you audit database logs. With patches, every change is an audit event: who proposed it, who approved it, when it deployed, what the previous value was.
No staged deployment. With direct edits, changes are live the moment they're made. With patches, you preview what would change before it changes. Sandbox mode shows the diff without applying it.
The Principle
Make the atomic unit of work a Patch, not a direct edit, and every downstream system gets the same structured contract.
Approval, deployment, audit, rollback: they all operate on the same object. The patch is the contract between agents and the catalog.
This is a deliberate architectural constraint. It makes the system slower than "just write to Shopify." But it makes the system safe, auditable, and reversible.
For production catalog data, that tradeoff is correct.
The Future
Every AI system that operates on real data will eventually need this pattern. Not because it's elegant, but because it's necessary.
The alternative is silent corruption. Changes without context. Mutations without memory.
Nothing touches production without a trail. That's not a feature. That's the foundation.