用途:降低智能体每次冷会话的“重新发现”成本。把稳定、重新推导代价高、且不在代码里的事实写进一份提交到仓库的记忆文件,让后续会话一次读取即可,避免反复 grep 同一批信息。
主要能力与写入内容:每个仓库一份 PROJECT.md,放在根目录并提交(不是 ~/.claude)。若仓库已有 CLAUDE.md/AGENTS.md,则在其下新增或刷新 ## Memory 段落,不另建第二个文件。只写三类事实:一是智能体难以低成本 grep 的架构与约定(东西放在哪、为什么这样设计,写意图而非文件清单);二是构建/测试/运行命令、环境与坑点;三是决策与死路(做过的选择、试过并否决的路径),这类意图不在代码中。
使用方式:覆盖已有文件前先备份为 FILE.original.md;若备份已存在则停止并询问,绝不覆盖还原点。写完报告写入内容与文件路径。更新靠纪律而非基础设施:同一变更规则——代码改动使某事实失效时,在同一提交中修正该事实;按需刷新——重读仓库并重写过期条目,展示 diff,不要盲目追加;事实应视为被取代而非累积,替换旧行而不是并列新增。
规模与风格:先从一个文件开始,超过约 150–200 行或覆盖明显可分离的领域时,再改为薄索引加按需加载的主题文件;低于该阈值时索引的常驻加载成本大于收益。内容保持简洁,用片段而非段落,不叙述代码已表达的内容,保持人类可读的 markdown,便于人工与评审直接编辑。
限制与边界:不要存储任何可从源码推导的内容(代码结构、符号位置、历史修复、git 历史),不要存储密钥、令牌、凭据(文件会被提交),不要存储临时状态(未完成 TODO、本周进度)。判断标准是:稳定 + 重新发现昂贵 + 不在代码中,才写入。写入前须对照当前代码验证每条事实,未验证的事实比缺失更糟。该技能本身不自动更新文件,可靠性依赖人工纪律。