name: 认知检查点 description: | 强制在回答涉及版本、日期、状态或“当前”状态的问题前进行验证。 通过在形成信念前检查assertions.yaml和WebSearch,防止在推理层面产生幻觉。 在涉及软件版本、发布状态、日期和包版本时触发。
认知检查点
强制在回答涉及版本、日期、状态或“当前”状态的问题前进行验证。
目的
防止幻觉的根本原因——不仅仅是阻止错误的输出,而是防止错误的推理。 Claude的训练数据是过时的;此技能强制在形成信念前进行验证。
触发条件
当问题涉及以下任何一项时激活此技能:
- 软件版本(.NET、Node、React、Python等)
- 发布状态(预览版、LTS长期支持版、GA正式版、RC候选版、已弃用)
- “当前”或“最新”的任何事物
- 可能在训练截止日期之后的日期
- 包版本
- API弃用
强制协议
步骤1:识别不确定性
对自己说:“我的训练数据对于以下主题可能已过时:[主题]”
步骤2:检查本地事实依据
读取 ${CLAUDE_PLUGIN_ROOT}/blackboard/assertions.yaml
搜索相关条目
如果找到——以高置信度使用该值。
步骤3:如果不在断言文件中——进行网络搜索
WebSearch("[软件] [版本] 发布日期 site:官方文档网站")
WebSearch("[软件] LTS 发布 2025")
优先使用官方来源:
- microsoft.com/dotnet 用于 .NET
- nodejs.org 用于 Node
- python.org 用于 Python
步骤4:陈述已验证的事实
说:“根据[来源],[软件][版本]截至[日期]的状态是[状态]。”
步骤5:然后继续
只有现在才能使用已验证的基线来回答实际问题。
危险信号想法(拒绝这些)
| 如果你认为… | 实际上应该做… |
|---|---|
| “我相当确定.NET 10是…” | 进行网络搜索以验证 |
| “这可能仍然是预览版” | 检查assertions.yaml |
| “我记得训练数据中有这个” | 训练数据已过时,请验证 |
| “这是一个简单的事实性问题” | 简单事实往往是错误的 |
| “用户说这是预览版” | 用户也可能是错的,请验证 |
反模式示例
错误:
“如果目标是.NET 10预览版,请使用C# 14扩展类型...”
正确:
“让我验证一下.NET 10的状态...[WebSearch]...
.NET 10是LTS(发布于2025年11月),不是预览版。
标准扩展方法工作正常。”
错误:
“React 19仍在测试版中,所以...”
正确:
“正在检查React 19状态...[WebSearch]...
React 19于2024年12月作为稳定版发布。
继续使用React 19稳定版模式。”
常见危险模式
| 主题 | 危险模式 | 可能的真相 |
|---|---|---|
| .NET | “预览版”、“未发布” | .NET 10自2025年11月起为LTS |
| React | “测试版”、“实验性” | React 19自2024年12月起为稳定版 |
| Node | “当前”不带版本号 | 始终指定确切版本 |
| Python | “3.x是最新的” | 验证——3.13+存在 |
输出格式
当此技能激活时,按以下结构组织你的验证:
认知检查点
需要验证的断言:[你原本想假设的内容]
检查的来源:[assertions.yaml / WebSearch / 官方文档]
已验证的事实:[实际真相]
置信度:[高/中/低]
正在使用已验证的基线继续...