Client Memory: Conflict Resolution
5 min read
Every new fact about a client — from the advisor, a core system, email, the calendar, a document or the web — is compared with what is already stored before the client memory changes. Remy never resolves a conflict on its own. When a new fact contradicts a stored one, the advisor decides. Nothing is ever deleted, and every change is recorded in the client's change log.
Scope. This page describes the conflict check that runs before every write to the client memory, in chat and in the overnight run. The rules themselves are not hard-coded: they live in two policy files, conflict-policy.md and exclusion-policy.md, which compliance can edit. See Where the rules live below.
The three rules
Three rules decide what happens to every new fact. When in doubt, Remy asks the advisor.
Rule | What it means |
|---|---|
Core systems are the source of truth | A value owned by a core system changes only in that system. Remy follows its updates and never overrides them. If something contradicts a core system, the advisor is pointed to the bank's process. |
Remy never resolves a conflict on its own | If a new fact contradicts what is stored, the advisor decides. |
New facts are confirmed first | New facts from the advisor are always confirmed. Facts from email, calendar, Teams, documents or the web are too — except on topics on the auto-write allowlist. |
The four outcomes
Every new fact ends in one of four states. None of them deletes anything.
Outcome | What happens |
|---|---|
Add | The new fact is written to the right topic, saved with source, date and who said it. Nothing existing is touched. |
Update | The new value becomes the current one. The old value moves to history — it is not deleted. History keeps dates and sources. |
Corroborate | No new fact is written; the existing one gains another source. This also applies when the advisor confirms the stored value — the rejected value is logged. |
Not stored | The new fact is not saved. On an excluded topic the content is not kept. When the advisor declines, the decision is logged so the same fact is not asked again. |
Ask advisor — a step, not an outcome
When the rules say the advisor decides, Remy asks first and the answer sets the end state. Until the advisor answers, the stored value stays current.
Where | How Remy asks |
|---|---|
In chat | A confirmation card is shown before anything is saved. |
Overnight run | A card appears on the morning dashboard. The new fact is held as unconfirmed; if it conflicts, both values are kept and marked disputed. |
The advisor's answer resolves to Add, Update, Corroborate, Not stored — or Stays open, when a core system has to change first (the card shows how) or the advisor needs to check with the client.
How a new fact is evaluated
Remy first works out what the new fact says — client, topic, content, source — and reads the client's memory. It then answers the questions below in order. The first yes decides the outcome.
# | Question | If yes |
|---|---|---|
1 | Is this a core system's own value? | Update |
2 | Is the topic excluded? | Not stored |
3 | Same topic, same content? | Corroborate |
4 | Same topic, different content? | Ask advisor |
If none of them applies, nothing conflicts and the fact is new. Two further questions then decide whether the advisor confirms it first.
# | Question | If yes | If no |
|---|---|---|---|
5 | Was it said by the advisor? | Ask advisor | Continue to 6 |
6 | Is the topic on the auto-write allowlist? | Add | Ask advisor |
Topics saved without asking
Each client's memory is a set of files, one per topic. New facts on a topic on the auto-write allowlist are saved directly; on every other topic the advisor confirms first. The list is set in conflict-policy.md and compliance can change it.
On the auto-write allowlist
File | What it holds |
|---|---|
| Next steps agreed with the client |
| Log of every change to the client's memory |
| Documents received or shared, with dates |
| Overview of the client's memory and its topics |
| Meetings and calls that took place |
| Referrals given or received |
Not on the allowlist — the advisor confirms
File | What it holds |
|---|---|
| Household, personal details, interests, gifts, meeting and communication preferences |
| Goals, target amounts, deadlines, legacy plans |
| Investment likes and dislikes, values screens, fee sensitivity |
| Promises made, advice given and the client's response |
| Open cases that run beyond a meeting |
| Who the client knows, inside and outside the bank |
| Career, income, spending |
| Assets held elsewhere, property, earmarked money |
| Tax residence and tax advisor |
| Fees, assets under management, pipeline, relationship health |
| Screening results |
| KYC status — copied from the core system; changes only there |
Who said what
The same rules seen by source. Only a core system's own values, and new facts on a topic on the auto-write allowlist, go through without asking. Everything else lands with the advisor.
Stored ↓ · New → | Core system | Advisor (chat) | Email, calendar, Teams, document | Web |
|---|---|---|---|---|
Nothing stored yet | Update | Ask advisor | Ask advisor | Ask advisor |
Core system | Update | Ask advisor | Ask advisor | Ask advisor |
Advisor | Ask advisor | Ask advisor | Ask advisor | Ask advisor |
Email, calendar, Teams, document | Ask advisor | Ask advisor | Ask advisor | Ask advisor |
Web | Ask advisor | Ask advisor | Ask advisor | Ask advisor |
For every row: if the content is the same, the outcome is Corroborate; an excluded topic is always Not stored.
Where the rules live
Remy has many policy files, each covering one area of how it works. They are plain Markdown, written for compliance to edit, and shipped as defaults that a bank's own copy overrides. Two of them are read by a conflict check.
File | What it defines |
|---|---|
| The rules, the questions, the auto-write allowlist, the answer options, and how open questions are shown. |
| What is never stored: health, politics, religion, gossip and the bank's own list. |
client-wiki-policies/
SKILL.md how to apply a policy, fixed answer format
policies/
conflict-policy.md used for conflicts
exclusion-policy.md used for conflicts
freshness-policy.md
screening-policy.md
doc-expiry-policy.md
… other policies, not used for conflictsGetting lighter over time
At the start, Remy is the apprentice and asks a lot. Every answer is recorded. Once adoption grows and edits or declines for a topic stay low, asking can be relaxed for that topic, step by step.
Remy never decides on its own to ask less. The answers are reviewed periodically, and only when the evidence supports it is conflict-policy.md updated to relax asking for that topic.