Review Flagged Memories - alexherrero/agentm GitHub Wiki
Note
Goal: Work through flagged notes โ a probable duplicate, a same-key contradiction, an unfiled capture, or anything filed at low confidence โ and the dream cycle's possible twins, shared keys and proposed facets, using the generated needs-review page instead of hunting through the vault by hand.
Prereqs: a vault with a memory/ tree (any populated class works) and python3 on PATH. Regenerating the page needs no running daemon.
-
Open the needs-review page, or regenerate it first. It lives at
<memory-root>/memory/mocs/needs-review.md. The nightly dream cycle rebuilds it; you can also rebuild it on demand:python3 harness/skills/memory/scripts/needs_review.py --vault <memory-root> --write
Drop
--writeto print the count without touching the file, or add--jsonfor the machine-readable form. The page groups every flagged note into up to four sections, in the order a reviewer should meet them: Probable duplicates, Same key, different body, Unfiled captures, Filed at low confidence. Each line names the note and explains its presence โ a duplicate names its twin, an unfiled capture names its wait time.Below the notes' own sections, a line reads "The sections below come from the dream cycle of
<date>. Nothing acts on them but you." Up to three more sections follow: Possible twins, Shared keys, different bodies, and Proposed facets. The printed count adds them afterfrom dreaming:. -
Work the duplicates and contradictions first. You find a probable duplicate filed beside its twin. Open both notes and choose one action:
- Merge them by hand.
- Leave the newer one to age out on its own.
A same-key entry means two notes assert different values for the same thing. Decide which one is current, then supersede the outdated one:
- Set its
lifecycle: superseded. - Add its
superseded_by:, naming the note that replaces it.
The current note needs no change โ its
supersedes:back-link is optional. See Memory daemon reference for both fields. -
Type the unfiled captures. These arrived through the capture front door with nobody standing behind a type. Take these actions:
- Read the note.
- Give it a real
type:if the contract's default guess is wrong. - Let the next enrichment pass (
agentmd enrich) pick it up.
The line says which of two waits it is.
awaiting the batchmeans the nightly enrichment batch has not judged the note yet.judged below the floor on <date>means the batch read it and scored it under its floor. The next move is yours.An unfiled note is already indexed and searchable, carrying a rank penalty until enrichment clears it. Reviewing it sooner just gets it there sooner.
-
Confirm or re-file whatever's left at low confidence. These notes have a real type, but were filed below the pass's confidence floor. Take no action if the note reads right as filed โ enrichment raises
filing_confidencetohighonce it judges the note at or above its own floor. If the note is wrong, choose one action:- Edit the note directly.
- Supersede it.
You make no changes to the needs-review page itself. Leaving one alone is not neutral forever: a note already judged below the floor once, then judged below it again after its body, the enrichment prompt, or the filing contract changes, sinks to
lifecycle: dormanton that second pass. A pinned note and the two rule types,preferenceandconvention, are exempt and stay listed here instead of sinking. See Memory daemon reference ยง Enrichment. -
Work the dream cycle's sections. The nightly
dream.pyrun found these pairs and labels. It merges, supersedes and registers nothing itself:-
Possible twins are two notes whose bodies are at least 92% alike. Merge them by hand, or supersede the one that should go with
lifecycle: supersededandsuperseded_by:, as in step 2. -
Shared keys, different bodies are notes that carry the same
slug:and say different things. Decide which one is current and supersede the other. -
Proposed facets are diary labels that recurred on three or more days in the last thirty. If one is a facet, register it under
facets:instandards/storage-rules.md. If it isn't, leave it.
-
Possible twins are two notes whose bodies are at least 92% alike. Merge them by hand, or supersede the one that should go with
-
Re-run step 1 to confirm the count dropped. A note entry clears when you re-judge the note it points at:
- Raise it to
activeat high confidence. - Hand-edit it.
- Supersede it.
The page is overwritten whole on every regeneration โ there is nothing to clear on the page itself. The dream sections are the exception to an on-demand rebuild. They come from the last cycle's findings, so they clear on the next cycle that no longer finds the pair or the label. To see that sooner, run the cycle yourself:
python3 harness/skills/memory/scripts/dream.py --vault-path <memory-root>
- Raise it to
- Read the morning note and the nightly scorecard โ the morning note's What needs you shows counts and the first five items of several of these lists every morning, and the scorecard's "needs review" line tracks the same count.
-
Memory daemon reference โ the enrichment pass, and the
filing_confidence/lifecyclefields these flags read. -
Memory daemon reference ยง the Python cycle โ what the nightly
dream.pyrun checks and where it leaves its findings. - Vault write protocol โ what a write stamps by default, and the baseline trust level for a plain capture.