Every save is compared with what you already hold
Noticing a clash is the librarian's habit, built into the tool
The Problem
Left alone, any store of notes fills up with repeats and contradictions. People learn to ignore the mess. A model cannot ignore it. It reads all of it, and it gets confused by it.
You end up with three versions of the same decision, and the model quotes the oldest.
How Stompy Helps
You say "lock this". The model does the writing, and you decide what is worth keeping.
When something is saved, Stompy compares it with what you already hold. The save always goes through. In the same reply, the model gets the closest existing entries and one question: does this relate to, depend on or contradict any of them? It can answer, or carry on. Only a genuine contradiction, or a replacement of something you locked, is put to you. Related entries you had forgotten surface this way too.
Pile-ups happen to every store. What matters is that they get noticed and cleared out, not left to grow. Our own early store once piled up millions of repeated entries. We cleared them out, and almost everything since has run lean, because it was curated rather than logged.
The mechanism is described in a peer-reviewed paper, "Delta AI Evaluation Architecture for Bandwidth-Optimized Data Fusion in Federated Tactical Networks", presented at ICMCIS 2026 in Bath, United Kingdom, on 12 to 13 May 2026.
Limits, plainly. The check flags and asks. It does not judge what is true and does not decide what is worth keeping. The default write stores the entry first and compares afterwards, so a duplicate is not something that is never stored; it is something that gets pointed out. The limit, plainly: only what you lock is kept.
Integration Walkthrough
Lock as usual
The save always goes through. The reply names the closest existing entries.
lock_context(project="my-project",topic="refund_window",content="Refunds are accepted within 30 days of delivery.")
Review what was flagged as a real clash
Only genuine contradictions are put to you. List the ones waiting.
list_conflicts(project="my-project", status_filter="pending")
Decide which side stands
Keep one, keep the other, merge them or dismiss the flag. Add a note so the reason is on file.
resolve_conflict(project="my-project",conflict_id="...",resolution="keep_b",notes="The 30 day window replaced the 14 day one in the new terms.")
Or from a terminal
The same list and the same resolution, from the command line.
stompy conflict list --status pendingstompy conflict resolve <id> --resolution keep_b
What You Get
- Related entries you had forgotten surface when you save something new
- Only genuine contradictions are put to you, not every repeat
- You choose which side stands and the reason is kept with it
- The model reads a cleaner record, so its answers wobble less on stale material
Start your own record
Join the waitlist and we will tell you when your place is ready.