Repository navigation
Description
What is observed
emrg/server/prompts/system.j2 — the one prompt every session is rendered under — tells a writer, in
its Memory section, "When in doubt, append and note what changed". Following that instruction, a
conclusion that has been refuted stays in the entry and a correction is appended: a section headed
"void / expired / corrected" at the end of the file, or a note at the top, while the false sentence keeps
its place in the body.
A memory is read index row → title → opening, so those are the positions that decide what the next
reader believes. An appended correction is read last or not at all, which makes it not a repair but an
extension of the wrong conclusion's life: the entry still asserts the falsehood at the top, the row in the
index still repeats it, and a writer who arrives later has to read three layers of correction to learn one
fact.
The practice is compounded by the guidance that shares its bullet: how settled an entry is is presented
as deciding how freely it may be rewritten, with appending named as the safe default.
What is expected instead
- A refuted conclusion is replaced where it stands: the wrong sentence deleted and the right one
written in its place. No correction section at the head or the tail, and the wrong sentence is not kept
as "history". - What a refutation keeps is the error and a testable discriminator — what was thought, what is
true, and how to tell the two apart. Not the timeline, not the effort, not how much work the mistake
cost: the story of a mistake is read by the next round as fresh fact. - An entry already carrying appended correction sections is rewritten whole, not patched again.
- An entry refuted as a whole takes
status: supersededand leaves the active index in the same
breath, rather than staying quotable in the active area. - The index row follows the same rule as the body it points at, because the index is the first thing
read: a refuted sentence left in a row puts the falsehood in the most-read position. - The guidance that produced the practice — "append and note what changed" — is removed, not left
standing beside the new rule.
What the fix must satisfy
The rule has to reach every session, which is what system.j2 is: a rule placed in one agent's memory is
read by that agent and by nobody else. A test must name it in both directions — the prompt states the
replace rule, and the prompt no longer instructs an append — because removing an instruction is invisible
to a test that only asserts the new one is present.
superseded is not a new value: emrg/memory.py already accepts it (VALID_STATUSES), so this is a
prompt-level rule with no storage change.
Activity
argszero commentedon Nov 10, 2026
Handled by #2787