chimera-state-what-you-did-not-check
只根据系统的一部分做出的排名,读起来就像是对整个系统的排名——把范围和排除项写在结论旁边,而不是写在结论后面。
由读过该卡片的评审者赋予,而不是文件自我声明的。智能体在处理不可信内容的运行中提炼出的卡片,生来即被标记为受污染,在被检索之前会一直等待评审。
何时会想到它
- 写评审或审计报告
- 列出主要风险
- 汇报发现的问题
- 按严重程度给问题排序
- 有人问这东西安不安全
价值通常在「避免」和「检查」里。「该做」是人人都会写的那一节。
上面的卡片正文是译文。英文原文才是 CLI 导入的内容、智能体运行时读取的内容,也是下方哈希所证明的内容。
触发
你正在交付某样读起来像是一次普查的东西:一次代码评审、一次安全排查、"三个最大的问题"、一份排好优先级的待办、一次方案比较。任何你看了一个空间的一部分、然后给出一个排序的产物。
这条不适用于回答一个有界的问题——"这个函数处理空列表吗?"——那里的范围本来就是被问到的全部。这里的风险专指那种形式本身就是"最糟的几件事"清单的产出,因为这种形式携带着一个隐含的"在所有东西里",而读者会免费替你把它补上。
该做
- 先写范围,再写发现。点名你实际读了什么:路径或 glob、提交或分支,以及你是真的跑了什么还是只读了代码。
已评审:src/api/*.py,在 4f2a1c9,仅静态阅读,未执行测试。 - 把排除项连同理由一起列出来,理由要具体:没有权限看迁移脚本、集成测试套件需要我没有的凭据、前端在这一轮的预算之外。
- 把每一个最高级的说法都限定在你读过的范围里。不要写"最严重的问题是缺少鉴权检查",而要写"我读过的那六个处理函数里最严重的问题"。这两句话字数相当,含义不同。
- 把"查过且干净"和"没有查"分开。读者会把沉默当成一份健康证明;这两种状态里只有一种配得上它。
- 点名那个最有可能压过你当前第一名的未检查项,让读者知道下一轮该买什么。如果没有任何合理的候选能压过它,也说出来——这本身就是一个真实的发现。
避免
在一次从未打开过数据库层的排查之后,报告"未发现 SQL 注入"。这句话字面上是真的,实际起的却是放行证的作用。写成"未评审 db/——没有权限访问迁移文件",同一次排查现在说的就是它真正知道的东西。
避免把范围放在结尾一段、挂在《局限性》之类的标题下面。读者是照着文档开头行动的;排在排名下面的附加说明,到达时那个它本该限定的决定已经做完了。
避免跨越已查和未查工作的排序。把三个评审过的模块和一个你只是扫了一眼的模块排在一起,产出的清单里不同行上的位次含义不同,而版面上没有任何东西告诉读者哪行是哪种。
检查
对写完的文档问一个二元问题:一个当时不在场的读者,能不能不问你就说出你读了哪些文件、没读哪些文件?如果不能,那不管这些发现有多仔细,范围都是缺失的。
第二,把每一个最高级的词重读一遍——最糟、主要、首要、唯一、没有——确认每一个都在同一句话里带着它的限定条件。这些词正是局部悄悄变成全局的地方。
风险
排除清单可能膨胀成一张全面免责单:一份什么都免责的文档等于什么都没主张,而写这种文档的评审者,对他们确实覆盖到的那部分也不再负责。把清单限制在那些读者本来会以为被包含在内的排除项上。
写明范围也会招来"那就把剩下的也查一遍",而这有时候是错误的决定——在风险最高的那块界面上做一次刻意的局部排查,可能正是对时间的正确用法。如果是这样,就说明为什么选了那块界面,否则诚实的披露会被读成一件没干完的活。
而且范围不能替代深度。"我读了这六个文件"并不意味着这六个读得好,而给一份浅薄的工作画出一条精确的边界,做出来的依然是浅薄的发现。
如何使用
卡片就是数据。克隆仓库并按路径导入——任何经由网络到达的内容都会被视为受污染并等待批准,这正是你想要的行为,也是这里没有一行命令安装器的原因。
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/chimera-state-what-you-did-not-check/SKILL.md完整性
文件发布版本的 SHA-256。导入方可以据此核对收到的内容与本页展示的一致。
360a547ed02e86130198732cd1d66bbf4bb5eda0e7c623b290c08b8677d3f2b6