agentleFS
taxueseektaxueseek/session-digger/skills/memory-management/SKILL.md

memory-management

Skill34 starsChanged 4 months agoISCView on GitHub

Use when auditing, extracting, pruning, or writing Claude Code memory files. Triggers: "memory management", "记忆管理", "记忆格式", "MEMORY.md", "记忆文件", "how to save memories", "how to organize memories", "记忆归档". Covers memory file format, MEMORY.md index conventions, staleness scoring, claim extraction heuristics, destination routing, mutation rules, archive conventions, and auto-generated memory from `remember.py`.

23 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use agent-agent, agent-analyze-code-quality and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All values are plain strings, no quoting needed unless value contains :

    line 46
  2. Distinctive:

    No nested structures, no lists, no multi-line values

    line 47
  3. Distinctive:

    When writing: create individual .md file first, then append entry

    line 56
  4. Distinctive:

    Rule: Always target the session's originating project, not the current shell cwd.

    line 109

“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Memory Management

Auto-Generated Memory (remember.py)

scripts/remember.py reads the SQLite unified index and writes structured memory files:

OutputContentType
memory/auto-stats.mdSession count, message count, tool calls, error rateproject
memory/auto-env-habits.mdPer-environment session count, error rate, avg message countreference
memory/auto-skill-usage.mdTop domain tools, unused skill listreference
memory/auto-errors.mdCross-environment error rate comparisonreference
memory/MEMORY.mdIndex linking all auto-generated files—

Usage:

python3 scripts/remember.py                    # write all
python3 scripts/remember.py --dry-run          # preview only
python3 scripts/remember.py --only skill       # single category

Auto-generated files follow the same frontmatter format, respect dedup rules, and are rebuilt from scratch on each run (no stale data from partial updates).

Memory File Format

Frontmatter schema (simple key: value, NOT general YAML):

---
name: <string, required>           # short identifier
description: <string, required>    # one-line summary for relevance matching
type: <enum, required>             # value | user | feedback | project | reference | insight
---
  • All values are plain strings, no quoting needed unless value contains :
  • No nested structures, no lists, no multi-line values
  • Body follows after the closing --- delimiter as markdown

MEMORY.md Index Format

  • Plain markdown file, no frontmatter
  • Contains links to individual memory files with brief descriptions
  • Lines after 200 are truncated by Claude Code's loader — keep concise
  • Entry format: - [filename.md](filename.md) — brief description
  • When writing: create individual .md file first, then append entry

Staleness Scoring

Exponential decay: score = 100 * (1 - exp(-age_days * ln(2) / half_life))

TypeHalf-lifeScore 50 atScore 90 at
value365 days365d~1213d
insight180 days180d~598d
user180 days180d~598d
feedback90 days90d~299d
reference60 days60d~199d
project14 days14d~47d
unknown30 days30d~100d

insight 类型用于经验合成(experience-synthesis)产生的跨会话模式:

  • "X 模式下 Y 工具效率最高"
  • "反复出现 Z 模式,应提取为 skill"
  • 有效期同 user 类型,但 deep verification 不适用(insight 无法验证文件/URL 是否存在)

Score-to-action: 0-50 = keep, 50-75 = review, 75-100 = prune.

Deep verification modifiers (additive, capped at 100):

  • +20 if referenced file is missing
  • +30 if referenced function/class not found
  • +10 if URL returns non-200
  • +15 if referenced branch doesn't exist

Claim Extraction Heuristics (Deep Audit)

Claim TypeDetection PatternVerification
File pathContains /, ends with file extensionGlob for existence
Function/classBacktick identifier in camelCase/PascalCase/snake_caseGrep in project
URLStarts with http:// or https://curl HEAD request
BranchAfter "branch" keyword or git pattern in backticksgit branch -a
PackageIn dependency/package contextGrep in manifest files

Skip generic descriptions that aren't verifiable (e.g., "use a database" vs "uses PostgreSQL 15").

Destination Routing

DestinationWhen to UseTarget Path
Memory file (value)Learned value choices — "X is better than Y"Session's project memory/ dir, type=value
Memory fileKnowledge for Claude's future behaviorSession's project memory/ dir
CLAUDE.mdHigh-impact instructions for every conversationSession's project root CLAUDE.md
Knowledge fileHuman-readable notes, decision logsdocs/knowledge/ in project root
SkipSession-specific, not worth preserving—

Priority: Value choices are the most durable memories. When extracting, surface them first. Facts decay (files move, APIs change); values persist (readability > cleverness survives any rewrite).

Rule: Always target the session's originating project, not the current shell cwd.

Mutation Rules

LayoutHow to Write
Index + filesCreate .md file with frontmatter, append to MEMORY.md
Standalone MEMORY.mdConvert to index layout: create first .md file, rewrite MEMORY.md as index
No memory dirCreate memory/, create MEMORY.md, create .md file
Malformed frontmatterRead as type=unknown. Never corrupt existing files.

Archive Convention

  • Location: memory/archive/ subdirectory
  • Files preserved intact (frontmatter + content)
  • MEMORY.md entry removed on archive
  • iter_memories() skips archive/ — invisible to dashboard/audit/tokens
  • Standalone MEMORY.md: archiving not supported (offer delete or keep)
  • Restore: manual move from archive/ + re-add to MEMORY.md

下游协作

触发条件推荐
需要解析会话数据补充记忆jsonl-core
需要从历史会话提炼经验再写入experience-synthesis
需要结合 git 提交交叉引用git-mining

Dedup Heuristics

写入记忆前,先检查是否已存在相似内容:

  1. 同名文件已存在: 对比 body,若 Same → 跳过;若 Superset → 更新旧文件
  2. 不同名但内容相似: 用 keyword overlap (>60% shared rare words) 检测,合并为单一文件
  3. 同一 insight 被 multiple sessions 重复提取: 只保留最近一次(timestamp 最新),追加 source 行到 body 末尾

CLI History Recovery

当 ~/.claude/history.jsonl 中的 sessionId 在 ~/.claude/projects/ 找不到对应 JSONL 时:

  1. 该会话已被 Claude Code 压缩/清理,但 display 字段保留了用户原始 prompt
  2. 从 history.jsonl 提取 display + timestamp,可用于:
    • 识别反复出现的 prompt 模式(用户在问什么)
    • 估算会话丢失率(本环境 60%)
  3. 工具: sd-recall.py schema ~/.claude/history.jsonl 查看可用字段

DO NOT

  • 从零创建新 skill → skill-creator
  • 需要提炼经验模式 → experience-synthesis(先提炼再写入)
  • 需要解析原始会话数据 → jsonl-core
  • 重复写入相同 insight → 先检查同名文件和内容 overlap

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.