SKILL.md
readonly只读
name
check
description
只读漂移检测器。将 SPEC.md 与当前代码进行差异比较,并按严重程度分组报告违规情况。不写入任何内容——通过 spec 或 build 技能建议修复方法,但绝不调用它们。当用户要求检查漂移、审计规范、验证不变量,或询问代码是否仍符合规范时触发。表述方式:"check drift"、"audit the spec"、"does the code still match §V"、"check invariants"、"spec vs code"。
check — 漂移报告
纯诊断。报告违规情况。不写入任何内容。用户决定修复方式。
规范悄然偏离代码是 SDD 的第一大失败模式。check 就是检测器。每次 /build 之后和每次发布之前运行它——在这里捕获的漂移只是一个差异;在生产环境中捕获的漂移则是 §B。
加载
- 读取
SPEC.md。如果缺失 → "没有规范,无需检查。" 停止。 - 解析调用参数:
§V→ 仅检查不变量(默认)§I→ 检查接口§T→ 审计任务状态与代码--all→ 全部三项
检查 §V — 不变量
对于每个 V<n>:
- 将不变量转化为关于代码的可验证声明。
- 使用 grep 或读取相关文件。
- 分类:保持 / 违反 / 无法验证。
- 记录地址和文件:行号证据。
检查 §I — 接口
对于每个 I 项:
- 定位实现。
- 分类:
- 匹配 — 代码中的形状与规范中的形状一致。
- 漂移 — 实现存在,但形状不同。
- 缺失 — 实现不存在。
- 额外 — 代码暴露了 §I 中未包含的表面。
检查 §T — 任务
对于每个 T<n>:
- 如果为
x:验证声称的工作是否存在。 - 如果为
~:标记为进行中。 - 如果为
.:标记为待处理。 - 将没有证据的
x行标记为过期。
报告
极简风格。按严重程度分组。
## §V 漂移
V2 违反: auth/mw.go:47 使用了 `<` 而不是 `≤`。参见 §B.1。
V5 无法验证: 没有测试覆盖所有请求路径。
## §I 漂移
I.api 漂移: POST /x 返回 `{result}` 而不是 `{id}`。route.go:112。
I.cmd 缺失: `foo bar` 在 cli/*.go 中不存在。
## §T 漂移
T3 过期: 状态为 `x`,但中间件文件不存在。
## 摘要
2 个违反。1 个缺失。1 个过期。1 个无法验证。
下一步:使用 `bug:` 调用 spec 技能,或修复所引用行处的代码。
修复提示(非操作)
在报告末尾为每个类别添加一行提示:
- 违反 / 漂移 → 调用 spec 技能
bug: <V.n>或修复代码。 - 缺失 → 如果任务存在,则在
§T.n上调用 build 技能;否则调用 spec 技能amend §T。 - 过期 → 调用 spec 技能
amend §T以取消勾选。 - 额外 → 调用 spec 技能
amend §I以记录,或删除代码。
绝不调用修复。仅报告。
非目标
- 零写入。不编辑 SPEC.md。不编辑代码。
- 无子代理。主线程读取。
- 无评分,无等级。每个项目二选一:保持或漂移。






