Skill.md
Claude Code 记忆架构实现指南
Claude Code 的记忆系统有一个硬上限:MEMORY.md 只加载前 200 行(来自 src/memdir/memdir.ts: MAX_ENTRYPOINT_LINES = 200)。项目做久了,索引往往会膨胀超限,导致 Claude 悄悄"忘掉"末尾的记忆条目——你告诉过它的技术栈、偏好、项目约束——全部消失,不报错,不提示。
这个 skill 基于 Claude Code 源码(services/autoDream/、services/extractMemories/、src/memdir/),将混乱的记忆目录重构为 autoDream 能正确读写的 2 层架构。
核心架构
| 层级 | 文件 | 作用 |
|---|---|---|
| Layer 1 | MEMORY.md | 永久加载的指针索引,≤200 行,每行只有一个 - [Title](file.md) — hook |
| Layer 2 | *.md 主题文件 | 按需加载的实际知识,带 YAML frontmatter(name、description、type) |
没有第 3 层。autoDream 不维护 archive/ 目录——过期事实原地删除,记忆目录永远是当前真相。
支持的重构场景
- MEMORY.md 超过 200 行,末尾条目被截断
- 索引里混入了大段内容(背景、历史决策、代码片段)
- 主题文件缺少 frontmatter 或
description过于模糊,导致 autoDream 创建重复文件 - 接手旧项目,记忆里有过期事实(数据库版本、已废弃的依赖等)
- autoDream 运行后出现近重复文件
如何使用
对 Claude 说:
- "帮我整理 MEMORY.md"
- "我的记忆文件太乱了,重构一下"
- "MEMORY.md 快 200 行了,清理一下"
- "这个文件 description 写得太模糊,帮我改"
附带工具
scripts/memory_audit.py — 扫描记忆目录,输出健康报告:行数、断链指针、缺失 frontmatter、无效 type、超过 30 天未更新的文件。
局限性
这个 skill 基于 Claude Code 源码中观察到的行为。autoDream 是实验性功能,Anthropic 可能调整内部实现。如果你使用的 Claude Code 版本较旧,部分细节(如 MAX_ENTRYPOINT_LINES 的具体值)可能不同,建议先用 audit 脚本实际测量。