关于 add-checkpoints
用于分析 Skill 并生成 automated-assessment 框架所需 checkpoints.yaml 的 Skill。适合需要将可验证规范转为自动检查点的维护者,并包含适用性评估、验证和结果说明流程。
主要功能
- 01定位 Skill 文件与资源
- 02评估检查点适用性
- 03提取可验证要求
- 04生成机械检查与 LLM 评审
- 05添加项目类型前置条件
- 06验证检查点并报告结果
适用场景
- 01为有明确文件结构要求的 Skill 生成检查
- 02将命名规范转为自动验证项
- 03检查配置规则或元数据标准
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ netresearch/ automated-assessment-skill --skill add-checkpoints安装后在 Claude Code 中输入/add-checkpoints确认已加载。
附带文件evals/evals.json
详细介绍
为技能添加检查点
分析某项技能,并为自动化评估框架生成适当的 checkpoints.yaml。
命令
/add-checkpoints # Analyze current skill directory
/add-checkpoints typo3-docs # Analyze a specific installed skill
/add-checkpoints --dry-run # Show what would be generated, don't write
工作流
- 定位技能 — 查找 SKILL.md、references/、scripts/、assets/
- 分析适用性 — 判断检查点是否适用(参见下方标准)
- 提取要求 — 解析 SKILL.md,找出可验证的规则和模式
- 生成检查点 — 创建
checkpoints.yaml,包含机械检查和 LLM 审查 - 添加前置条件 — 确定此技能适用于哪些项目类型
- 验证 — 运行
${CLAUDE_PLUGIN_ROOT}/skills/automated-assessment/scripts/validate-checkpoints.sh,然后在示例项目上运行${CLAUDE_PLUGIN_ROOT}/skills/automated-assessment/scripts/run-checkpoints.sh。将其警告视为发现项:警告会指出下方列出的缺陷类别。blocked结果表示运行器拒绝了命令,检查点因此没有运行;这是 YAML 中的缺陷,而非示例项目中的问题。 - 报告 — 说明生成的内容及原因,或解释为何检查点不适用
适用性标准
如果技能定义了以下内容,则适用于检查点:
- 文件结构要求(目录、配置文件、清单)
- 内容模式(必须包含 X、不得包含 Y)
- 命名约定(前缀、后缀、大小写规则)
- 工具配置(PHPStan 级别、代码检查规则、CI 步骤)
- 元数据标准(许可证、作者、版本格式)
如果技能仅提供以下内容,则不适用于检查点:
- 没有可验证输出的概念性指导
- 没有持久化产物的交互式工作流
- 运行时行为模式(性能、缓存策略)
请说明适用性并给出理由。
检查点生成规则
机械检查
从 SKILL.md 中提取以下模式:
- “必须存在”/“必需” →
file_exists - “不得”/“永远不要”/“避免” →
file_not_exists或not_contains - “必须包含”/“应该有” →
contains或regex - 版本/格式约束 →
json_path或command
前置条件
根据技能适用范围推导:
- TYPO3 扩展 →
file_exists: ext_emconf.php - Docker 项目 →
file_exists: Dockerfile - Go 项目 →
file_exists: go.mod - 技能仓库 →
file_exists: .claude-plugin/plugin.json - 通用(任何项目) → 无前置条件
ID 约定
使用 ../automated-assessment/references/migration-guide.md 中为该技能设定的前缀,或根据技能名称推导出 2 个字母的前缀。
严重级别分配
error:“必须”、“必需”、“永远不要” → 阻止发布warning:“应该”、“建议” → 提示info:“考虑”、“锦上添花” → 可选
三类缺陷——检查每个生成的检查点是否存在这些问题
报告不实内容的检查点比没有检查点更糟。这三类问题都会造成这种情况,在已发布的项目中都能找到,而且在 YAML 中都不明显。完整证据和正确写法:
../automated-assessment/references/checkpoints-schema.md
→ “导致检查点错误报告的三类缺陷”。
- 供应商代码泄漏——
find、file_existsglob 或前置条件没有排除vendor/、node_modules/、.Build/。运行器的自动排除仅适用于内容检查的 glob 目标;其他地方都需要你自行写明排除项。一个泄漏的前置条件曾对一个没有 RTE 代码的扩展运行了全部 14 项 typo3-ckeditor5 检查。 - 相对于技能的脚本路径——
bash scripts/check-foo.sh。检查点会在受测代码库中运行,而那里不存在技能的scripts/;此外,允许列表也会拒绝带路径前缀的命令。将逻辑内联(非简单操作可用php -r '...');保留已发布的脚本作为人工入口。 - 管道接入 head 的退出状态陷阱——
... | head -1 && echo ... && exit 1 || exit 0会在每个项目上都报告失败,因为输入为空时head仍会以 0 退出。让匹配结果决定退出状态(使用grep -q,或直接使用不带命令的regex_not)。
校准锚点
每个检查点都以 YAML 注释记录预测的缺陷类别和退役条件。若缺失,最高评为 info。参见 automated-assessment/references/calibration.md。
LLM 评审
仅用于无法通过命令判定的内容。以命令开头的提示词属于 mechanical;只有添加 # mechanical-counterpart: <ID> 时,才同时保留两者。
- 代码质量判断 →
domain: code-quality - 文档完整性 →
domain: documentation - 架构决策 →
domain: architecture
输出
在技能目录中生成 checkpoints.yaml(架构:../automated-assessment/references/checkpoints-schema.md),并在资源目录中生成一份副本。
参考资料
- 架构:
../automated-assessment/references/checkpoints-schema.md - 迁移指南:
../automated-assessment/references/migration-guide.md - 现有检查点:
assets/*-checkpoints.yaml(用作示例)