名称: 审计内存 描述: 审计Claude Code的CLAUDE.md内存文件,以确保质量、合规性和组织性。用于验证导入语法、检测循环导入和检查层次合规。 参数提示: [项目 | 用户 | 全部] [–强制 | --跳过验证] [–令牌预算] 允许工具: 读取, Bash, Glob, Grep, 任务
审计内存命令
审计Claude Code的CLAUDE.md内存文件,以确保质量、合规性和组织性。
初始化
审计前初始化环境:获取当前UTC日期、捕获项目根路径、确保临时目录存在并清理过时的审计文件。memory-management技能提供权威验证指导(运行此命令时自动加载)。
审计内容
- 导入语法(
@路径/到/文件.md) - 层次合规(企业 > 项目 > 用户)
- 循环导入检测
- 大小指南和渐进披露
- 内容组织
命令参数
| 参数 | 描述 |
|---|---|
| (无) | 审计所有可发现的CLAUDE.md文件 |
项目 |
仅审计项目级文件 |
用户 |
仅审计~/.claude/CLAUDE.md |
全部 |
显式审计所有范围 |
--强制 |
无论修改状态如何都审计 |
--跳过验证 |
跳过查找验证(更快,但可能包含误报) |
--令牌预算 |
仅运行令牌预算分析(跳过完整审计) |
步骤1:发现CLAUDE.md文件
检查根CLAUDE.md、.claude/CLAUDE.md、用户~/.claude/CLAUDE.md(Unix)或%USERPROFILE%\.claude\CLAUDE.md(Windows),以及.claude/memory/*.md。
构建列表,包含范围和级别(根/点-claude/内存/用户)。
步骤2:解析参数
解析范围选择器和--强制标志。过滤文件以匹配请求的范围。
步骤3:呈现审计计划
显示模式、发现的文件、主文件和导入的内存文件。
步骤4:执行审计
对于每个文件,生成memory-component-auditor子代理,带有范围、级别、路径和上次审计日期。在3-5个并行批次中运行。
个别审计后,通过构建导入图执行跨文件循环导入检测。
子代理将发现写入.claude/temp/。主对话线程收集结果并使用其写入/编辑工具更新审计日志。
步骤4.5:验证发现
除非--跳过验证标志存在:
- 生成
audit-finding-validator代理,带有:project_root:捕获的项目根路径audit_type:“内存”audit_files:.claude/temp/audit-*-memory-*.json文件路径列表
- 等待验证完成
- 读取更新后的带有验证结果的JSON文件
- 在聚合前完全过滤掉FALSE_POSITIVE发现
- 注意:过滤的发现记录到
.claude/temp/audit-filtered-findings.json
如果--跳过验证标志存在:
- 完全跳过验证阶段(保持当前速度)
- 呈现所有发现,无需过滤
- 在摘要中注明:“验证:已跳过”
步骤5:最终摘要
报告按范围审计的总数、结果、循环导入检查,并提供详情表格。提供问题修复步骤。
包括验证统计(如果执行了验证):
- 验证执行:是/否
- 已验证发现:X
- 误报过滤:Y
- 已验证发现:Z
- 未验证发现:W
步骤6:令牌预算分析(默认包含)
范围: 仅始终加载的文件(根CLAUDE.md + 带有@前缀导入标记为"始终加载"的文件)
注意: 使用--令牌预算仅运行此步骤(跳过步骤1-5完整审计)。
6.1 获取官方指导
调用memory-management技能(委托给docs-management)获取当前关于内存文件大小的官方指导。官方文档建议保持内存"简洁和聚焦",采用渐进披露 - 特定令牌阈值是仓库特定标准,非官方要求。
6.2 计算每个文件的令牌
对于每个始终加载的文件:
- 读取文件内容
- 估计令牌:
len(内容) / 4(对英语Markdown的近似) - 如果存在,从头中提取声明的令牌预算(例如,
**令牌预算:** ~1,800令牌) - 记录文件路径、实际令牌、声明预算
6.3 计算聚合总数
对所有始终加载文件的令牌求和。不包括按需文件(那些在根中无@前缀,或标记为"上下文相关"的)。
6.4 评估相对于仓库特定阈值
这些阈值是仓库特定标准(见audit-framework.md),非来自官方Claude Code文档:
| 状态 | 令牌范围 | 指导 |
|---|---|---|
| 通过 | ≤12k令牌 | 在仓库预算内 |
| 警告 | 12k-15k令牌 | 接近上限,监控 |
| 失败 | >15k令牌 | 超出预算,需要修复 |
6.5 生成报告
报告包括:
- 前5大文件 按令牌计数,占总数的百分比
- 聚合总数 相对于仓库特定预算
- 声明与实际差异 对于声明预算与实际差异>20%的文件
- 状态(通过/警告/失败)基于聚合总数
6.6 建议修复(如果失败或警告)
如果超出预算,推荐:
- 可以移动到按需加载的文件(非每个会话关键)
- 大文件(>2k令牌)可以使用中心模式拆分
- 参考官方文档的渐进披露指导(通过memory-management技能)
6.7 更新审计日志
在.claude/audit/memory.md中添加令牌预算分析部分,包括:
- 状态和分析日期
- 指标表格(总数、预算、差异)
- 前5大文件表格
- 声明与实际差异表格(如果有差异)
重要注意事项
导入语法
有效:@路径/到/文件.md(例如,@.claude/memory/workflows.md)
层次合规
- 企业(最高优先级)
- 项目根(
CLAUDE.md) - 项目点-claude(
.claude/CLAUDE.md) - 用户(
~/.claude/CLAUDE.md- 最低)
大小指南
| 文件类型 | 推荐大小 |
|---|---|
| 根CLAUDE.md | < 50行核心 + 导入 |
| 内存导入 | < 500行每个 |
跨平台路径
| 平台 | 用户内存 |
|---|---|
| Unix | ~/.claude/CLAUDE.md |
| Windows | %USERPROFILE%\.claude\CLAUDE.md |
审计日志位置
所有审计结果写入.claude/audit/memory.md。
使用/audit-log memory查看当前审计状态。
使用示例
示例1:审计所有内存文件
用户: /审计内存
Claude: 发现CLAUDE.md文件...
## 审计计划
**模式**: SMART
**发现文件**: 12
### 主文件:
1. [项目:根] CLAUDE.md
2. [用户] ~/.claude/CLAUDE.md
### 导入文件:
3. [项目:内存] .claude/memory/workflows.md
...
[生成memory-component-auditor子代理]
## 审计完成
**循环导入检查**: ✓ 未检测到循环
| 范围 | 文件 | 结果 | 分数 |
| --- | --- | --- | --- |
| 项目 | CLAUDE.md | 通过 | 100/100 |
示例2:仅审计项目
用户: /审计内存 项目
Claude: 审计项目级文件...