Skip to content

emrg: a refuted conclusion is replaced where it stands, not annotated with a correction #2786

Closed

Description

@argszero

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: superseded and 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

  1. argszero commented on Nov 10, 2026

    @argszero
    OwnerAuthor

    Handled by #2787

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions