SuperAPI AI 工具集

spec-evolution

测试与质量

查看项目

更新于 10-20 00:07

技能介绍

用途

本技能用于审计本仓库技能与根提示词的交付面完整性。其定位是“机械化演进回路”的选择端:变异端产出新规则候选,选择端判断哪条候选更好;本技能只做选择端中机械可证的部分,把“哪条规则需要修”从模型的意见换成脚本的退出码。技能的核心立论是:凡不能被一条命令复现的“改进建议”,一律不产生 finding。

触发条件

  • 独立调用(主路径):用户或智能体显式执行全量审计(7 技能 + 根提示词),可用 --skills 缩窄范围。
  • goal-loop P5 增量挂载:交付归档阶段复查本次交付触及的 skills/<n>/,不做全量扫描。

结构性排除(不适用):评价“这个技能该不该存在”“职责是否重叠”“设计是否过重”,因其无客观信号;评价判据阈值本身是否合理(如“1000 行是否应为 800 行”)。

硬不变式

  • 零 LLM、零网络:判定器不得调用任何模型,不得访问网络;同一份输入永远得到同一份输出。
  • 只读:采集与判定不修改任何文件,修改由人类裁决后另行发起。
  • 事实与发现分离:采集器只回答“是什么”,判定器才回答“哪里不对”;二者分属不同进程,禁止合并。
  • 人类裁决不外判:报告由判定器写到“人类裁决”标题即停止;任何由模型代填的裁决内容均视为门禁违规(GI-4 断言防护)。

使用方式

快速开始:

python3 skills/spec-evolution/scripts/collect-facts.py --out /tmp/facts.json
python3 skills/spec-evolution/scripts/judge.py --facts /tmp/facts.json \
        --json /tmp/findings.json --report /tmp/report.md
echo "exit=$?"        # 0 = 无 BLOCKER/HIGH;1 = 存在 BLOCKER/HIGH;2 = 用法或输入错误

缩窄范围(P5 增量复查时用于缩短耗时):

python3 skills/spec-evolution/scripts/collect-facts.py --no-gates --skills goal-loop,doc-governance --out /tmp/facts.json

注意:--no-gates 会跳过 S1 门禁事实采集,因而 C-09 在本轮不执行;报告对该项输出“未采集门禁事实 —— C-09 未执行”而非“无失败”,退出码也不再反映既有门禁状态。放行前的最终复查必须不带 --no-gates。

判据

ID 判据 严重度
C-01 技能无 tests/ 或其中无 test_*.py HIGH
C-02 技能无架构设计书 docs/explanation/architecture/<n>-design.md MID
C-03 技能交付面缺 references/ / scripts/ / templates/,或存在但为空 MID
C-04 description 字符数 > 500(软性建议值,非硬限) MID
C-05 description 字符数 ≥ 1024(Agent Skills 规范硬限) HIGH
C-06 单文件行数 > 1000 MID
C-07 技能在 4 个注册面中存在缺登记 HIGH
C-08 技能内存在跨技能相对链接 HIGH
C-09 既有门禁任一非零退出 BLOCKER
C-10 根提示词相对基线净增长 MID

十条判据的完整定义、严重度语义与已知表达上限见 references/checks-spec.md。

锚点契约

每条 finding 携带可被人直接核验的锚点。锚点路径不存在时判定器自身报错退出 2(防锚点幻觉)。三种形式与校验规则见 references/anchor-contract.md。

退出码

码 含义
0 无 BLOCKER/HIGH(可含 MID advisory;C-09 未采集时该项不参与判定)
1 存在 BLOCKER/HIGH
2 用法或输入错误(含锚点路径不存在 = 锚点幻觉)

权威定义在 scripts/judge.py 与 references/checks-spec.md。

红线

  • 不得自动修复 finding——那会让本技能沦为“自动改自己规则的规则”,即 ball of mud 的机器化版本。
  • 不得往 contexts/AGENTS.md 增加条款——该文件准入判据禁止净增长。
  • 不得把本技能接入 CI 或引入第三方依赖。