memory

v2026.09.24

Persistent memory: observations, session summaries, search

GitHub
安装命令
npx skhub add aaaaqwq/memory
Markdown
SKILL.md

Memory

Persistent memory system: automatic capture of observations, session summaries, memory search

When to use

  • "what did I do yesterday?" / "what happened last week?"
  • "remember this" / "save this decision"
  • "memory stats" / "show memory"
  • "search memory" / "find sessions about X"

Architecture

PostToolUse hook → observations (local JSONL)
SessionEnd hook → session summary (local + git)
SessionStart hook → inject context (auto)

Hybrid storage:

  • Observations (raw) → ~/.claude-memory/observations/ (local)
  • Session summaries → $PROJECT_ROOT/memory/sessions/ (git)

Paths

WhatPath
Observations (local)~/.claude-memory/observations/
Sessions (local)~/.claude-memory/sessions/
Sessions (git)$PROJECT_ROOT/memory/sessions/
Session index$PROJECT_ROOT/memory/index.md
Search tool~/.claude-memory/hooks/memory-search.sh
Hook scripts~/.claude-memory/hooks/
Config~/.claude-memory/config.json

How to execute

Search observations

# By type
~/.claude-memory/hooks/memory-search.sh --type crm_update --days 7

# By project
~/.claude-memory/hooks/memory-search.sh --project $PROJECT_ROOT --days 30

# By tags
~/.claude-memory/hooks/memory-search.sh --tags crm,leads --days 14

# Text search
~/.claude-memory/hooks/memory-search.sh --query "Acme Corp" --days 30

# Full details
~/.claude-memory/hooks/memory-search.sh --query "Acme" --full

# By session
~/.claude-memory/hooks/memory-search.sh --session abc12345

Statistics

~/.claude-memory/hooks/memory-search.sh --stats

List sessions

~/.claude-memory/hooks/memory-search.sh --sessions

Save a decision manually

echo '{"id":"obs-'$(date +%Y%m%d)'-'$(openssl rand -hex 4)'","timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","session_id":"CURRENT_SESSION","type":"decision","tool":"manual","summary":"DECISION_DESCRIPTION","context":{},"project":"$PROJECT_ROOT","tags":["TAG1"]}' >> ~/.claude-memory/observations/observations-$(date +%Y-%m-%d).jsonl

Read a specific session

cat $PROJECT_ROOT/memory/sessions/YYYY-MM-DD-SESSION_ID.md

Observation types

TypeWhen
featureNew functionality
bugfixBug fix
decisionArchitectural/business decision
discoveryNew knowledge about the system
changeGeneral change (git, PR)
outreachCommunication through channels
crm_updateCRM data change
configConfiguration change
skill_updateSkill change
retrospectiveQuality assessment: what worked, what didn't, what to change

Retrospective (convention)

At the end of a session or after a significant task, Claude records a retrospective observation:

echo '{"id":"obs-'$(date +%Y%m%d)'-'$(openssl rand -hex 4)'","timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","session_id":"SESSION_ID","type":"retrospective","tool":"manual","summary":"RETROSPECTIVE TEXT","context":{},"project":"$PROJECT_ROOT","tags":["retro"]}' >> ~/.claude-memory/observations/observations-$(date +%Y-%m-%d).jsonl

What to record:

  • What went wrong and why
  • Which skill/tool didn't work or is incomplete
  • What should be changed for the next session
  • Important insights about the process

Summary format: one sentence, specific. For example:

  • "telegram-send: need to check bot access before bulk sending"
  • "change-review was skipped before PR — add a reminder"
  • "CSV parsing via csv.DictReader breaks on empty rows — use pandas"

When to record:

  • Session had errors or rework
  • Found a gap in a skill or tool
  • Made a decision that affects future sessions

Retrospective automatically:

  • Gets included in session summary (section ## Retrospective)
  • Gets injected into the next session (section ## Last retro in context)

Privacy

4 layers of protection:

  1. <private>...</private> tags → stripped before saving
  2. Pattern matching (token, password, api_key, Bearer)
  3. Sensitive files (.env, credentials.json, token.json) → ignored
  4. Sensitive commands (export TOKEN/SECRET) → redacted

Maintenance

Rotation (manual, once a month)

mkdir -p ~/.claude-memory/observations/archive
find ~/.claude-memory/observations -name "observations-*.jsonl" -mtime +30 -exec mv {} ~/.claude-memory/observations/archive/ \;

Disk usage

du -sh ~/.claude-memory/
du -sh $PROJECT_ROOT/memory/

Commit session summaries

cd $PROJECT_ROOT
git checkout -b update/memory-sessions-$(date +%Y-%m-%d)
git add memory/
git commit -m "Add session summaries for $(date +%Y-%m-%d)"
git push -u origin update/memory-sessions-$(date +%Y-%m-%d)
gh pr create --title "Memory: session summaries $(date +%Y-%m-%d)" --body "Auto-generated session summaries"
gh pr merge --squash --delete-branch
git checkout main && git pull

Hooks (automatic)

HookEventWhat it does
session-start.shSessionStartInject context from past sessions
post-tool-use.shPostToolUse (Edit/Write/Bash)Records observations
session-end.shSessionEnd + PreCompactGenerates session summary

Related skills

  • daily-briefing — morning context (includes memory)
  • show-today — today's tasks
  • query-leads — CRM search
  • log-activity — activity logging (complements observations)
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

MIT

源路径

skills/memory

默认分支

main

最新提交

b996aac

Tree SHA

07e787b