mcpField
C
context-audit

context-audit

github.com/garrytanAgent 工作流31.4k62 次安装今天更新
代码仓库

关于 context-audit

这是一项仅生成报告的技能,用于审计每轮加载的文件,并按估算的 Token 节省量排列有证据支持的建议。它检查冗余、矛盾和过时内容等问题,但不会修改文件。

主要功能

  1. 01列出每轮加载的文件
  2. 02按说明的依据估算 Token
  3. 03查找冗余与矛盾
  4. 04按节省量排列引用证据的建议
  5. 05避免直接修改渲染文件
  6. 06通过原生评估检查报告

适用场景

  1. 01编辑后检查上下文开销
  2. 02查找重复或冲突的指令
  3. 03识别可移入技能的内容
  4. 04生成带引用证据的上下文审计报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/garrytan/gbrain --skill context-audit

安装后在 Claude Code 中输入/context-audit确认已加载。

附带文件routing-eval.jsonl

详细介绍

context-audit — 始终加载的上下文栈的令牌卫生

**约定:**请参阅 conventions/brain-first.md ——开始新一轮审计前,先检查脑库中是否已有审计报告 (gbrain recall "context audit report"),以便计算自上次运行以来的令牌变化, 并避免再次标记用户已拒绝处理的问题。

**约定:**请参阅 conventions/quality.md—— 每项发现都必须注明文件和证据;不得提出没有来源依据的主张。

这是做什么的

每轮都会加载的文件,都会在每一轮产生开销:令牌、延迟,以及—— 超过一定程度后——指令遵循质量。始终加载的文件会不断累积内容 (只追加的发行说明、没人重读的已提升记忆块、在三个文件中重复陈述并逐渐相互矛盾的规则)。此技能会一次性审计整个始终加载的上下文栈,并返回按令牌节省量排序、列出优先级且附有证据的行动清单。

它是审计员,不是外科医生。它负责测量、发现、排序并提出建议。 由用户(或用户随后明确调用的技能)应用变更。

范围:什么算作“始终加载”

列出此运行环境实际上每轮都会加载的内容——不要假设清单固定不变。典型的上下文栈如下:

文件作用应在何处修复
项目级 CLAUDE.md / AGENTS.md说明、路由、不变量文件本身(可直接编辑)
用户全局 CLAUDE.md跨项目指令文件本身(可直接编辑)
自动记忆 MEMORY.md已提升的记忆块记忆库(降级/过期)
SOUL.md、USER.md、ACCESS_POLICY.md、HEARTBEAT.md、渲染后的 AGENTS.md引导渲染的身份文件访谈答案库/模板——绝不修改渲染后的文件
运行环境的系统提示词片段(身份/工具文件)依运行环境而定该运行环境的来源文件

技能、参考文档以及按需加载的内容不属于审计对象的范围—— 但它们可以作为技能提取发现的目标 (只与某个工作流有关的内容应从始终加载的上下文栈移至技能)。

约定

此技能保证:

  • **仅生成报告。**不会编辑任何受审计文件,不会写入任何页面,也不会自动修复任何内容——包括 🟢 零风险发现。输出的是一份建议清单,由用户自行审慎应用。
  • **渲染文件安全。**任何涉及引导渲染文件的建议,都会以答案库或模板变更的形式表达 (gbrain bootstrap interview --set KEY "...",然后运行 gbrain bootstrap render --only <FILE> --force),绝不会建议直接编辑文件。 具体方法请参阅 skills/soul-audit/SKILL.md。
  • **估算必须说明依据,绝不凭空编造。**令牌数量取自确定性预处理(wc -c 字节数/2.8——Claude 系列分词器处理含有大量路径和代码片段的 Markdown 时,每个令牌约为 2.6–3.5 个字节;2.8 是根据实测的始终加载 Markdown 校准出的中间值,参见 #4988)。报告会列出除数,方便读者重新推算每个数值。如果宿主客户端报告了精确的分项上下文明细(例如 Claude Code /context),该数值优先于估算——请引用该数值,并据此计算上下文栈总量。
  • **原生评判。**草拟报告会通过 gbrain eval cross-modal 进行质量把关——不调用原始模型 API,也不硬编码模型 ID。
  • **成本说明。**默认评判使用一个低成本模型(用户的实用型模型,使用全部三个槽位,--cycles 1——成本仅为几美分)。只有用户明确要求“完整”或“多模型”审计时,才会运行三个提供商的前沿模型面板(每轮成本约为默认模式的 3 倍或更高)。

流程

1. 列出上下文栈(确定性)

列出此运行环境始终加载的文件,并测量每个文件:

# bytes/2.8 (calibrated for Claude-family tokenizers on markdown, #4988); integer ceil: (n*10+27)/28
for f in CLAUDE.md AGENTS.md SOUL.md USER.md ACCESS_POLICY.md HEARTBEAT.md MEMORY.md; do
  [ -f "$f" ] && echo "$f: $(wc -c < "$f") bytes (~$(( ( $(wc -c < "$f") * 10 + 27 ) / 28 )) tokens)"
done

记录总量。如果脑库中已有先前的审计报告,则计算变化量 (自上次运行以来令牌总量的净增减,以及哪些文件发生了变化)。

2. 阅读并分析(由 Agent 执行——尚未调用模型)

完整阅读堆栈中的每个文件。按以下六个维度进行评估:

  1. Token 效率——每单位行为价值消耗的 token 数
  2. 冗余——同一规则或事实是否在多个文件中重复陈述
  3. 矛盾——文件之间是否存在冲突的规则、数字或政策
  4. 是否适合做成技能——只对特定工作流有用的内容 (可提取项:移至技能,按需加载)
  5. 过时——过时的事实、对已移除功能的引用、不再值得占用位置的提升记忆块
  6. 清晰度——是否能在不改变行为的前提下压缩指令,或指令是否含糊到可能导致误判
3. 按风险对每项发现分类
  • 🟢 零风险——纯粹删除完全重复或无效的内容
  • 🟡 低风险——压缩内容,或在触发条件明确时提取为技能
  • 🔴 中等风险——可能改变边缘情况行为的修改

以上三类均为建议。风险类别用于告知用户应谨慎到什么程度——不代表授权此技能采取行动。

4. 使用原生评估运行器评判草稿

将草稿报告写入临时文件,然后进行评审:

# Resolve the cheap judge from the user's model tiers — never hardcode an ID.
# (`gbrain models` shows all resolved tiers if the config key is unset.)
JUDGE=$(gbrain config get models.tier.utility)

gbrain eval cross-modal \
  --task "Context-stack token-hygiene audit: every finding cites file + quoted evidence; savings are estimated (bytes/2.8, divisor stated in the report), never invented; findings ranked by token savings; every rendered-file recommendation targets the interview answer bank or template, never a direct edit; risk class on every row" \
  --output /tmp/context-audit-draft.md \
  --slug context-audit-report \
  --cycles 1 \
  --slot-a-model "$JUDGE" --slot-b-model "$JUDGE" --slot-c-model "$JUDGE"

完整多模型评审组(仅在用户明确选择时启用——用户要求进行“完整”/“多模型”审计时):省略 --slot-*-model 覆盖参数,以使用运行器原生的三家提供商默认设置。

退出代码:0 PASS——交付。1 FAIL——修正草稿中被指出的弱点(通常是缺少引用的断言或针对渲染后文件的编辑建议),然后重新评审。2 INCONCLUSIVE(提供商/密钥问题)——交付报告,但醒目标注为“未经评审”。

5. 交付

在对话中打印报告(见“输出格式”)。如果用户希望保存报告,则交由 brain-ops 技能将其存放在 openclaw/(Agent 状态笔记)下——此技能本身不会写入页面。

对堆栈进行重大修改后重新运行,或按计划定期运行,属于用户可自行设置的运行器路由惯例(见 cron-scheduler 技能)——此处不会自动运行,也不保证运行频率。

输出格式

# Context Audit — YYYY-MM-DD

Stack total: ~NN,NNN tokens across N files (drift since last audit: +/-N,NNN)
Estimate basis: bytes/2.8 | host-reported exact total (e.g. `/context`): NN,NNN or n/a
Findings: N (~NN,NNN tokens recoverable) | Contradictions: N
Judge verdict: PASS (single-model, utility tier) | receipt: <path>

| # | Save (tok) | Risk | File | Finding | Evidence | Recommended fix (and WHERE it lives) |
|---|-----------|------|------|---------|----------|--------------------------------------|
| 1 | ~2,400    | 🟢   | ...  | redundancy: X restated | "quoted line" | delete from A; canonical copy stays in B |
| 2 | ~1,100    | 🟡   | SOUL.md | stale: ... | "quoted line" | update answer bank key VOICE_REGISTER, re-render — NOT a SOUL.md edit |
...

## Contradictions (fix these first, savings aside)
- FILE-A says "..." but FILE-B says "..." — resolve toward <one>, delete the other.

## Skill-extraction candidates
- <content> only matters when <workflow> — extract via skill-creator, load on demand.

按节省的 token 数从高到低排序——矛盾项除外,无论规模大小都应优先指出(它们影响的是正确性,而不只是 token 数)。每一行都必须包含证据(引文或行号),并注明修复应放在何处:源文件、答案库/模板、记忆存储,或新技能。

失败时的处理

对于任何 gbrain 错误 code、退出代码、[AGENT] 块或通知块,请遵循Agent 操作员协议。此技能特有的处理方式:

  • gbrain eval cross-modal 退出代码为 1(FAIL):修正被指出的弱点并重新运行;不得将未通过的审计作为通过结果交付。
  • 未配置评审模型或提供商密钥:说明审计仅进行了结构评估,并指出缺少哪个密钥;不得捏造评分。
  • 付费多模型审计遇到 no_pricing 或费用上限:回退到默认的单个低成本评审模型,并告知用户原因。

反模式

  • 编辑任何经过审计的文件。 仅报告,不采取操作——即使是 🟢 零风险删除,也只是建议,而不是操作。“自动修复”的承诺与渲染文件保护规则相矛盾,超出约定范围。
  • 建议直接编辑渲染文件。 编辑 SOUL.md / USER.md / ACCESS_POLICY.md / HEARTBEAT.md 会在下次执行 gbrain bootstrap render 时被覆盖。应修改答案库或模板,然后重新渲染。
  • 调用原始模型 API 进行判断。 评估运行器负责管理提供商配置、收据和结论汇总——应通过 gbrain eval cross-modal 调用。
  • 硬编码模型 ID。 根据用户的模型等级解析评审模型;技能正文中的模型名称会过时。
  • 默认运行完整的多模型评审组。 这需要明确选择加入;出于成本考虑,默认采用单个低成本模型进行评审。
  • 将按需加载的内容当作始终加载的内容来审计。 技能和参考文档不会产生每轮开销;标记它们会夸大节省量。
  • 编造令牌数量。 运行预检;估算值须标记为 ~N 并注明除数,而且始终以主机报告的精确数值为准。
  • 自行重写身份内容。 如果问题涉及身份文件的内容(人设错误、个人资料过时),应转交 soul-audit——该访谈是此类内容的唯一撰写来源。

去重

  • soul-audit — 通过访谈审计身份内容:SOUL.md/USER.md 应该写什么,内容来源于用户自己的表述。context-audit 负责令牌和结构卫生:每轮中技术栈的开销,以及内容重复或自相矛盾之处。像“USER.md 中的个人资料已过时”这样的发现应转交 soul-audit;“USER.md 重复了 SOUL.md 中已有的 800 个令牌”则留在这里。两者都遵守同一渲染文件规则。
  • skill-optimizer — 根据基准优化单个技能的正文,并可对其进行修改。context-audit 从不修改内容,且只检查始终加载的文件;技能只作为提取目标出现。
  • functional-area-resolver — 用于压缩过大的路由表(>=12KB)。如果发现问题涉及路由部分,context-audit 可以将其列为建议的修复方案,但绝不会应用该方案。
  • skillpack-check — 检查安装和运行时健康状况(DB、工作进程、迁移),不检查上下文大小或提示词内容。
  • cross-modal-review — 针对任意工作成果的一般性第二意见关卡。context-audit 使用同一个底层运行器,但将其作为自身固定的判断步骤,并采用针对审计的通过标准;请求“对这段代码给出第二意见”应转交该工具,而不是留在这里。

评论

支持 Markdown