关于 honey-memory
honey-memory 是用于创建和维护仓库级记忆的 Agent 技能,可减少跨会话重复查找。它聚焦于重新发现成本高且无法从源代码得知的稳定事实,并规定备份、校验和更新方式。
主要功能
- 01以 Markdown 创建或更新仓库记忆
- 02记录架构、约定、命令和决策
- 03排除可从源码推导的信息、秘密及临时状态
- 04检查过时路径和记忆文件问题
- 05指导同次变更更新及按需刷新
适用场景
- 01记录仓库约定和构建命令
- 02保存代码中不明显的决策
- 03代码变更使事实失效后刷新记忆
- 04检查仓库记忆中的过时引用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ green-pt/ honey-for-devs --skill honey-memory安装后在 Claude Code 中输入/honey-memory确认已加载。
详细介绍
Honey Memory
将杠杆 2 应用于降低探索成本。每次冷启动会话都会反复搜索相同内容——身份验证所在位置、构建命令、X 为什么会设计成 Y。提交一个文件,就能用一次缓存读取取代 N 次重新探索的往返,并在之后的每次会话中持续受益。最省的 token,就是无需重新推导的 token。
收益会在每次会话中反复出现。风险是信息过时——错误的缓存事实比没有文件代价更高。因此,文件应保存在 git 中,紧挨着可能使其失效的代码,并在导致其失效的同一变更中修正。
搭建(创建)
- 每个仓库一个文件:根目录下的
PROJECT.md,并提交(不要放在~/.claude中)。 如果仓库已有CLAUDE.md/AGENTS.md,则在其中新增/更新## Memory部分——不要再添加第二个文件。 - 覆盖现有文件前先备份:复制为 →
FILE.original.md。 如果该备份已存在,请停止并询问。绝不覆盖还原点。 - 只写三类事实(通过阅读仓库推导):
- 架构 + 约定,即 Agent 无法轻易通过搜索找到的内容——各项内容 位于何处,以及为什么(设计意图,而非文件列表)。
- 构建 / 测试 / 运行命令、环境变量和注意事项。
- 决策和走过的弯路——已做出的选择、尝试过并放弃的路径。这些 属于设计意图,不会出现在代码中。
- 报告写入了什么以及文件路径。
永不保存
- 可从源代码推导的信息——代码结构、符号位置、过往修复、git 历史。 重新推导比维护更省力,也永远不会过时。
- 机密、令牌、凭据。 该文件会被提交。
- 临时状态——未完成的 TODO、本周状态。这些内容过时得最快。
如果某条事实稳定、重新发现的成本高,而且代码中没有,就写下来。 其他内容都让 Agent 按需推导——这些系统悄然浪费成本,往往就是因为缓存了不该缓存的内容。
更新
Markdown 文件不会自行更新。可靠性 = 纪律,而非基础设施:
- 同次变更规则(首选)。 代码变更导致某条事实失效时,在同一提交中修正 该事实。文件位于 git 中,审查时便能发现偏差。
- 按需刷新。 重新阅读仓库并改写过时条目;展示差异。不要盲目追加—— 追加正是这类文件膨胀、腐坏的原因。
- 刷新前后都要运行检查。
node "${CLAUDE_PLUGIN_ROOT}/bin/check.js" memory(无需模型)会找出文件中提及但已不存在的路径、未加载任何内容的@imports、从两个文件加载的相同规则,以及超过 200 行 / 25KB、会在会话开始时加载的 Claude CodeMEMORY.md。征得用户同意后修复每项发现;未经询问,绝不删除记忆内容。 (如果CLAUDE_PLUGIN_ROOT未展开,bin/check.js位于插件根目录,即本文件上方两级目录。) - 将事实视为已被取代,而非累加:替换旧行,不要在旁边再堆一条新内容。
一个文件还是多个文件
从一个文件开始。只有当文件超过约 150–200 行,或涵盖明显可分离的领域时才拆分—— 此时采用精简索引 + 按需加载的主题文件。低于这个规模时,索引的成本(始终加载的负担)高于它所节省的成本。
保持简洁
将 Honey 杠杆 2 应用于内容——多用片段,少用段落,不要复述代码已经表达的内容。臃肿的记忆文件会给每次会话增加输入负担。 保持 Markdown 易于阅读:你(以及审查者)需要手动编辑,因此不要使用线格式——过时带来的成本高于紧凑格式节省的 token。
边界
可逆——覆盖文件时,FILE.original.md 是还原路径。报告完成前,核实每条已写入的事实都与当前代码一致;未经核实的事实比缺失的事实更糟。