# Memory Reflect

Sleep-time reflection: review recent Basic Memory activity and fold lasting decisions...

- Repository: https://github.com/basicmachines-co/basic-memory (4440 stars)
- Category: Writing
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add basicmachines-co/basic-memory --skill memory-reflect -g -a claude-code -y`
Codex: `npx skills add basicmachines-co/basic-memory --skill memory-reflect -g -a codex -y`
Cursor: `npx skills add basicmachines-co/basic-memory --skill memory-reflect -g -a cursor -y`
Gemini CLI: `npx skills add basicmachines-co/basic-memory --skill memory-reflect -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add basicmachines-co/basic-memory`

## Description

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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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

```python
# 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>")
```

The rest: https://github.com/basicmachines-co/basic-memory/blob/HEAD/skills/memory-reflect/SKILL.md
