---
title: recall-discipline
description: "The recall-discipline block of the CLI's guide."
---

## 1. The block, verbatim

Search before you answer from memory. Start every task that could touch a past decision, an incident, a preference, or a person with `memory_search` (MCP) or `memhtml search --dense` (CLI), phrased as prose. For a context pack rather than a hit list use `memory_recall` / `memhtml recall` and ALWAYS pass a character budget (`budget_chars`, `--budget`; 6000 covers most questions), so one long page cannot fill your window.

A hit is the ranker's guess, never a citation. Its `snippet` is the chunk that best matched YOUR query, which may not be the sentence you need. Open the one or two paths you will rely on with `memory_read` / `memhtml read` before you quote, attribute, or act on a memory. Pass one of a hit's `entities` (`type:name`) back as the `entity` scope to make the next call a second hop rather than a guess about spelling.

Recalled memories say what was true when they were written. Before you recommend a file, flag, endpoint, or schedule a memory names, verify it still exists. An absent path was archived, not deleted: retry with `include_archived` / `--include-archived` before concluding the fact is gone, and `memory_resolve` / `memhtml resolve` walks a superseded path forward to its live successor. Cite a path only when `stop_reason` is `live`, and prefer the pinned `memhtml://at/{commit}/{path}` form when the citation must not move.

Reinforce after use. When a memory helped, call `memory_reinforce` / `memhtml reinforce` with `positive`; when it misled, `negative`. That signal is the salience arm's only outcome channel, and a hit you merely saw does not count: only an opened path and an explicit signal move it.

Write what is durable, one fact per memory. A decision and its reason, a correction to something stored, an incident and what fixed it, a stated preference, a fact about a person or a system you had to look up. Not transcripts, not summaries of a session, not anything you can re-derive from the code in front of you. State the claim in one sentence, put the evidence and the source in the body, and prefer `memory_correct` / `memhtml correct` over a second memory when you are replacing a fact rather than adding one.

## 2. Commands it names

* [`memhtml read`](/reference/commands/read/)
* [`memhtml search`](/reference/commands/search/)
* [`memhtml recall`](/reference/commands/recall/)
* [`memhtml correct`](/reference/commands/correct/)
* [`memhtml resolve`](/reference/commands/resolve/)
* [`memhtml reinforce`](/reference/commands/reinforce/)

## 3. Provenance

A loader generates this page from `apps/cli/src/commands.ts` while the site builds, so no file in the repository holds it: the block is authored beside `COMMANDS` and is served verbatim by `memhtml manifest`, so this page and the live answer are the same bytes. Change the registry and this page changes with it.