Use this skill when the user wants to remove facts from active memory without deleting them permanently.
- Use the
update-profile-memoryskill to add facts to activeMEMORY.md. - Use profile skills for repeatable procedures — not for archiving memory.
- Archived facts live under
memory-archive/and are not loaded into chat automatically. Usesearch_filesorread_fileto retrieve them later.
MEMORY.md shape
Active memory is MEMORY.md in the profile workspace:
- A preamble (
# Memory Logand---) must stay intact. - Facts are bullets under dated sections:
## YYYY-MM-DDfollowed by- bullet text.
Copy bullet text verbatim from read_file output when editing. Do not paraphrase.
Archive file shape
Archive files live at memory-archive/YYYY-MM.md (year and month of the archive action, UTC).
New archive file template:
markdown# Archived Memory ---
Each archive append starts with metadata comments, then the archived sections:
markdown<!-- archived: 2026-07-12T10:30:00.000Z --> <!-- reason: user asked to forget old job details --> ## 2026-06-29 - Old preference.
Preserve each bullet's original ## YYYY-MM-DD section header from MEMORY.md.
Workflow
read_fileMEMORY.mdand identify the exact- bulletlines to archive.- Confirm targets with the user when the request is ambiguous.
- Choose
memory-archive/{YYYY-MM}.mdfor the current month. - Check whether the archive file exists before calling
read_file. Withbash, runif test -f memory-archive/{YYYY-MM}.md; then printf 'exists\n'; else printf 'missing\n'; fiin the active profile workspace, replacing{YYYY-MM}with the chosen month. A missing file (or missingmemory-archive/directory) is normal for the first archive:- If the result is
exists,read_filethe archive to preserve its contents. - If the result is
missing, skip the read and create the archive in step 5. - If
bashis unavailable, useread_file; treat only a file-not-found result as a new archive. Stop on permission or other errors rather than overwriting an unread archive.
- If the result is
- Append to the archive first (reduces data-loss risk):
- If the file does not exist,
write_filewith the template plus the append block. - If it exists,
edit_fileto append after the existing content (orwrite_filethe full merged content).
- If the file does not exist,
edit_fileMEMORY.mdto remove each archived- bulletline.- Remove any
## YYYY-MM-DDsection that has no bullets left. - Re-read
MEMORY.mdand the archive file to verify the result. - If archiving was to free space for new memories, confirm
MEMORY.mdis under 4096 bytes before retrying withupdate-profile-memory.
When edit_file reports a missing, duplicate, or overlapping match, read_file again and issue a corrected edit with exact text.
Legacy layout
If you find archives under data/memory-archive/ instead of memory-archive/, use the top-level memory-archive/ path for new writes.


