Memory Reflect
Sleep-time reflection: review recent Basic Memory activity and fold lasting decisions...
Install
npx skills add basicmachines-co/basic-memory --skill memory-reflect -g -a claude-code -y- Repository
- basicmachines-co/basic-memory4.4k
- Category
- Writing
- Updated
- 3d ago
- License
- AGPL-3.0
- Context cost
- Mediumabout 1,581 tokens
- Runs scripts
- No, instructions only
What it does
Sleep-time reflection: review recent Basic Memory activity and fold lasting decisions, lessons, and facts into the notes they belong in. Run 1-2x daily, on a heartbeat, or when asked.
Memory Reflect
Review what changed recently and fold what matters into the notes that hold durable knowledge. Raw notes (meeting notes, daily logs, captures, transcripts) record what happened; reflection decides what of it should still be known next month, and puts it where someone will look for it.
Inspired by sleep-time compute: memory forms best between working sessions, not during them.
Project scope
If the project is unknown, discover it with bm_project(command="list").
Pass a nonempty project on every note, folder, context and schema call, even
with one project or a qualified memory:// URL. Use the chosen project's name,
workspace/project, or external ID; <project> below is a placeholder for it.
Recent activity also requires project. Search accepts project for one
project, projects for selected projects, or all_projects=True explicitly.
Discovery and bundled manuals need no project. Keep the same scope when following
returned paths, paginating, or recovering from a refusal.
When to Run
- Scheduled: once or twice a day, or on a heartbeat
- On demand: asked to reflect, consolidate, or review recent work
- After a burst of work: many new notes since the last reflection
Process
1. Gather recent material
# The last reflection is the checkpoint. Titles carry date and time, so the
# newest sorts first.
bm_list(path="reflections", sort="title_desc", page_size=1, project="<project>")
# Everything changed since that date (json gives one row per note). With no
# reflection yet, use since="7d".
bm_project(command="recent", since="2026-10-13", items=["note"], output_format="json", page_size=50, project="<project>")
# Ask for page=2, 3, ... until has_more is false.
# Read each changed note in full before judging it
bm_read(identifier="meetings/2026-10-14-launch-sync", project="<project>")
