# Presenting reusable memories Memories arrive from `tht memory search "" --session --json`, already ordered by similarity. You argue them, the reviewer decides. NEVER apply them on your own. **ALWAYS pass `--session `**: the CLI excludes memories already decided in this session (applied or rejected), so you don't re-propose what the reviewer has already discarded (even after a Phase 2 reopen). For each memory to present in the checklist, include in the option's `label` and/or `description`: - **What it says**: type + subject + detail (e.g. "table_promoted: fact_seeablazione — main table for ablazioni"). - **Where it comes from**: question_context and origin session_id. - **Why it might apply here**: overlap of concepts/tables with the current question (fields tables/concepts), similarity score. - **Out-of-context risk**: what was in the original session that might not hold here (different period, different population, changed schema). Rules: - Propose at most **5** candidates. Include ONLY memories of the 3 reusable types: `concept_clarified`, `table_promoted`, `table_excluded`. Query-specific decisions (e.g. `question_rewritten`, `sql_approved`) are NOT to be proposed: they don't transfer to other questions. - All candidate memories go in **a single** `reviewer_decide(multi:true, advance:true, allow_empty:true)`: each selected option is applied (register the decision with the appropriate type, citing the memory id in the rationale), each deselected option is **recorded as `memory_rejected` by the gate** (so the next `tht memory search --session` won't re-propose it). To enable this, EVERY memory option MUST carry the field `mem_id:"mem-"` (besides `type`/`subject`/ `rationale`). The checklist starts pre-selected with the recommended memories. With `allow_empty:true` an **empty selection is accepted** (no memory applied; the deselected ones are still recorded as rejected) and the phase advances — no separate gate. - For "inspect": show the memory's full JSON record in the prose before presenting the checklist, if the reviewer asks. - If no memory clears score 0.5, say so and close the phase quickly (with `reviewer_confirm kind:"phase"` if the list is empty).