Local Context Review
python scripts/_core.py is a local diagnostics helper for the Memory Ebbinghaus skill. It may inspect env. Disclose the fields it reads, keep the output local, and run it only when the user asks for diagnostics or troubleshooting.
Memory Ebbinghaus
Ebbinghaus forgetting curve-based memory lifecycle manager. Tracks memory items with strength decay, review reinforcement, and archiving.
Setup
First run — initialize the database:
python3 scripts/ebbinghaus.py status
# Auto-creates memory_db.json in current directory if not found
To use a custom path:
EBBINGHAUS_DB=/path/to/memory_db.json \
EBBINGHAUS_ARCHIVE=/path/to/MEMORY.md \
python3 scripts/ebbinghaus.py status
Environment variables:
| Variable | Default | Description |
|---|---|---|
EBBINGHAUS_DB |
./memory_db.json |
Path to the JSON database |
EBBINGHAUS_ARCHIVE |
./MEMORY.md |
File to append archived memories |
Core Concept
Strength formula: strength = e^(-days_elapsed / stability)
| Status | Strength | Meaning |
|---|---|---|
| 🟢 Active | ≥ 0.7 | Recently used, clear memory |
| 🟡 Decaying | 0.3–0.7 | Not used for a while |
| 🔴 Fading | < 0.3 | Needs review or cleanup |
Stability: starts at 1.0, multiplied by 1.5 on each review (the more you review, the slower it fades).
Commands
# View all memory items and their current strength
python3 scripts/ebbinghaus.py status
# Recalculate all strength values (run daily)
python3 scripts/ebbinghaus.py decay
# Add a new memory item
python3 scripts/ebbinghaus.py add "content description" --category <cat> --source <origin>
# Review and reinforce (resets strength to 1.0, stability ×1.5)
python3 scripts/ebbinghaus.py review <id>
# Delete a memory item
python3 scripts/ebbinghaus.py forget <id>
# Archive to MEMORY.md (removes from active list, appends to archive file)
python3 scripts/ebbinghaus.py archive <id>
# Heartbeat mode — print items needing attention
python3 scripts/ebbinghaus.py heartbeat
Heartbeat Integration
Add to your heartbeat config:
- Memory decay check: python3 /path/to/scripts/ebbinghaus.py heartbeat
Heartbeat output rules:
- 🔴 items exist → alert user, ask "review or forget?"
- Only 🟡 items → log silently, no interruption
- All 🟢 → output
HEARTBEAT_OK
Categories
| category | Meaning |
|---|---|
project |
Project/task completion |
tech |
Technical findings/solutions |
person |
Memory about someone |
event |
Important events |
general |
Other |
Typical Workflows
"Clean up old memories":
- Run
decaythenstatus - List 🔴 items, ask user: review / forget / archive?
- Execute chosen action
"Remember this: XXX":
- Run
add "XXX" - Confirm added
"Which memories are fading?":
- Run
decayto update strengths - Run
status, highlight 🔴 items