📦 Slim Project Memory — Slim 项目内存
v1.0.1在项目的项目内存文件超过~300行时使用,当从头开始新项目时,或当用户提到上下文膨胀、丢失env URL等情况时。
运行时依赖
安装命令
点击复制技能文档
Slim Claude MD 重新结构或初始化项目的CLAUDE.md,以保持其小巧、可持续和凭证安全。
何时使用 CLAUDE.md超过~300行,用户希望使其变小 从头开始新项目,需要结构化方法 用户提到:上下文膨胀、丢失环境URL、会话指向错误环境、CLAUDE.md变成日记本、“组织项目内存” 会话在执行实际工作之前消耗太多令牌用于项目上下文
此技能产生的内容 运行后,目标项目将具有: 一个精简的CLAUDE.md(≤ ~300行)- 作为路由器/索引,而不是百科全书。 包含硬性规则、分支/环境拓扑(无秘密)、指向主题文档、常用命令、今日状态、维护协议和会话协议。 一个被git忽略的CLAUDE.local.md - 包含所有实时DB连接字符串、凭证、托管服务名称、API密钥和其他秘密形状的事实。 在任何DB或托管操作之前阅读。 一个主题文档树(architecture/、features/、pipeline/、scripts/、recaps/)- 包含以前塞入CLAUDE.md的参考材料。 每个文件按需加载。 一个内置的维护协议,位于CLAUDE.md内,以便将来的会话知道新事实属于哪里以及结构不会衰退。 .gitignore更新以排除CLAUDE.local.md。
模式检测 首先运行以下命令来决定哪条路径要采取: [ -f CLAUDE.md ] && wc -l CLAUDE.md || echo "no CLAUDE.md yet" 没有CLAUDE.md或少于~50行 → 新模式(以下A节)。 CLAUDE.md存在且有大量内容(≥ 100行) → 现有模式(以下B节)。 边界情况(50-100行):询问用户要采用哪种模式。 还要检查: .gitignore是否存在? CLAUDE.local.md是否已经存在或已经在.gitignore中? 是否存在docs/目录?
A节 - 新模式(新项目) A1. 收集项目事实 询问用户(一批问题): 项目名称 - 用于CLAUDE.md的H1 一行描述 - 用于字幕 生产URL(如果有) 分支和环境 - 典型模式: 单分支(main only)- 单人项目,简单部署 双分支(develop → main)- 小团队,手动生产 三分支(develop → staging → main)- 最常见 四分支(develop → staging → canary → main)- 生产级别,具有金丝雀门 托管 - Railway、Vercel、Fly、AWS、自托管等 项目使用什么类型的秘密? - DB URL、API密钥、OAuth秘密等(类别,而不是值) 如果用户想要默认值:develop → staging → main,Railway托管,DB + API密钥部分在CLAUDE.local.md中。 A2. 创建目录结构 mkdir -p docs/architecture docs/features docs/pipeline docs/scripts docs/recaps docs/plans 如果项目没有数据管道或不大量使用脚本,则不创建pipeline/或scripts/。 A3. 从模板写入CLAUDE.md 读取references/CLAUDE-template.md,替换占位符为A1中的值。 内联从references/housekeeping-protocol.md中读取的维护协议。 写入项目根目录。 A4. 从模板写入CLAUDE.local.md 读取references/CLAUDE-local-template.md,替换占位符为分支/环境结构。 将实际秘密值留为占位符。 写入项目根目录。 A5. 更新.gitignore 添加(如果尚未存在): # Claude代码本地内存 - 包含实时凭证。 # Hermes自动加载CLAUDE.md,但永远不会提交。 CLAUDE.local.md 如果.gitignore尚不存在,也添加项目堆栈的标准忽略项(node_modules/、.next/、__pycache__ /、target/等)- 但要保守,并告诉用户添加了什么。 A6. 验证 wc -l CLAUDE.md git check-ignore -v CLAUDE.local.md # 应该匹配 git status --short # CLAUDE.local.md不应该出现 ls docs/ A7. 交接 告诉用户: “CLAUDE.md和CLAUDE.local.md已准备好。CLAUDE.local.md被git忽略。” “打开CLAUDE.local.md并填入实际凭证 - 我将它们留为占位符。” “随着您构建项目,将新事实添加到相关的docs/文件中,而不是直接添加到CLAUDE.md中。” 不要提交任何内容。用户拥有第一次提交。
B节 - 现有模式(精简膨胀的CLAUDE.md) B1. 首先阅读案例研究 阅读references/cruise-intelligence-case-study.md,以刷新如何将真实的2,275行CLAUDE.md映射到docs/的知识。 您不需要复制确切的映射 - 每个项目都是不同的 - 但看到模式可以帮助您提出合理的家园。 B2. 审计当前状态 wc -l CLAUDE.md # 当前大小 ls .gitignore && grep -c CLAUDE.local.md .gitignore # 是否被忽略? ls -d .claude 2>/dev/null # 现有的.claude/目录? ls docs/ 2>/dev/null # 现有的docs/? [ -f CLAUDE.local.md ] && wc -l CLAUDE.local.md || echo "no CLAUDE.local.md yet" 如果CLAUDE.md超过2000行,则以块为单位读取CLAUDE.md,以便在提取时上下文完整。