Install
openclaw skills install @chenxyzcyxpp/skill-development-standardSkill 开发规范——SKILL.md 撰写铁律、三层测试验证与发布前门禁检查清单。撰写新 skill、修订整理已有 skill、以面试官身份审阅他人 skill、发布/git push/PR 前自查时使用。核心目标是确保 skill 对 AI agent 可执行、对人类专家可审阅。
openclaw skills install @chenxyzcyxpp/skill-development-standardskill.md 的本质是执行程序,不是交接报告。它同时被两类读者消费:AI agent(照步骤执行)与人类专家(审阅方法是否正确)。本规范解决三个核心问题——写得好:杜绝"溯源型元叙述"等污染,让 agent 拿到确定性指令,让专家一眼看穿方法对错,而非被迫考古;测得对:用三层测试验证 skill 能跑、能触发、有效果;发得稳:用门禁检查清单守住发布前的每一道关。
规范源自实际评审教训:skill 草稿中出现"原报告展示的样本外 R²≈0.52""原引用的 ΔR² 是在旧口径下测得的"等句子。这类句子让 agent 无法执行(悬空引用 + 口径含糊),也让专家被迫做三件事:判断哪句有效、寻找读者拿不到的外部报告核验、在旧口径与新口径之间当裁判。
Don't use for: 项目交接文档、复盘报告、论文等叙事型文档——那些场景可以且应该写历史与溯源。
skill.md 里每个数字、参数、口径,就是当前唯一权威值。"这个数从哪来、何时测得、在哪个口径下测的"属于 commit message 或 references/ 文件,不进正文。
正文一律使用祈使句、确定式。版本演进史归 git log;若必须标注版本,写在 frontmatter 的 version 字段,不写进正文叙述。
同一参数存在多种口径时,二选一:
禁止出现"旧口径测得 X,新口径下会不同"这类暗示句——它告诉执行者"这个数可能不对",却不告诉它现在该用哪个。
正文出现以下任一词汇,默认该句属于污染,需重写或删除,除非是显式场景分支: 原、旧、曾、此前、对比、改为、之前版本、原报告
skill.md 正文与 skill 生成的输出文件是两层,溯源规则相反:
对金融、数据类 skill 尤其如此:正文追求可执行,产物追求可追溯。
| 规则 | 说明 |
|---|---|
| 只写事实,不写来源 | 数字/参数在 skill 中即当前权威值;来源、测时、口径归 commit message 或 references/ |
| 只写现在,不写过去 | 祈使句 + 单一现在时;版本史进 git,版本号进 frontmatter |
| 参数只留当前口径 | 要么定一个写死定义,要么写成自足的显式分支;禁止新旧口径对账句 |
| 删掉不影响执行的句子,即污染 | 用"一句话检验法"判断,见下 |
| 溯源词是警报 | 正文出现"原/旧/曾/此前/对比/改为"之一,默认重写或删除 |
| 溯源分层 | 正文不写来源(执行层),输出产物必须带来源(合规层) |
对 skill.md 中每一句话执行检验:
问:这句话删掉,AI agent 执行会出错吗?
- 删掉会出错 → 保留,但重写成"现在式、确定式"(补上当前值/当前定义)
- 删掉没影响 → 删除。它是装饰或溯源,属于噪音
辅助警报:句子里含"原/旧/曾/此前/对比/改为" → 大概率污染。
脏版(含溯源污染):
原报告展示的"样本外 R²≈0.52",原引用的 ΔR²=+0.0074 是在旧口径下测得的,本版本统一采用新口径,因此 R² 值与此前报告展示的略有差异。
净版(可执行):
评估标准:样本外 R² 按口径 V3 计算,定义见 2.3 节。 基准模型样本外 R² = 0.52;加入因子 X 后 ΔR² = +0.0074。 判定线:ΔR² ≥ +0.005 视为因子有效。
改动要点:数字保留、口径定义前移、判定线写死、溯源句全删——历史进 git,口径进正文定义,agent 拿到确定性指令。
审阅他人文档或合并两份版本时,目标是有效性零损失 + 表述全净化(曾用此法把 27KB 溯源型文档净化为 15KB 可执行 skill,全部实测数字原样保留):
references/research-history.md,正文只留当前权威值。历史进 references,不进正文。溯源词扫描的误报豁免:技术/功能术语不是污染——"numpy 回退/东财回退"(机制)、"原始绝对值"(方法论术语)、"历史波动率"(指标名)、"三指数对比"(功能名)、"自备历史语料"(输入)。只删叙事/对账句(原报告/旧口径/此前/曾/修复),保留功能与指标术语。
skill 写完必须测试,核心思路是一个 Skill 测三层:能不能跑、能不能触发、有没有用。
确保 skill 本身能正常工作:
| 检查项 | 具体内容 |
|---|---|
| 路径正确性 | references/、scripts/、templates/ 等引用文件能否读到 |
| 脚本可执行 | 关联的 shell/Python 脚本能否正常运行 |
| 输出格式 | 生成的产物是否符合预期格式(文件路径、内容结构) |
| 步骤完整性 | 关键步骤有没有遗漏,流程能不能走通 |
测试入口准确性,准备一组真实用户可能会说的表达:
| 测试维度 | 具体做法 |
|---|---|
| 正向测试(应该触发) | 准备 2-3 条真实用户可能说的自然语言,看 skill 是否被正确加载 |
| 反向测试(不该触发) | 准备语义接近但不相关的需求,看是否误触发 |
| 边界测试 | 模糊表达、缩写、口语化说法是否能准确命中 |
典型问题诊断:
用同一个任务对比启用与不启用 skill 的结果:
评分角度参考:
| 维度 | 说明 |
|---|---|
| 准确性 | 事实错误、逻辑漏洞是否减少 |
| 一致性 | 多次运行输出是否稳定,下限是否抬升 |
| 符合预期 | 输出是否更贴近用户真正想要的东西 |
| 效率 | 执行速度、是否需要额外修改 |
与 deliverable-qa(交付物质量审查)联动:本清单定义 skill 专项检查维度,deliverable-qa 提供两档执行框架(快速门禁 / 深度审查)。
--- 开头,name/description 存在,description ≤ 1024 字符