CODEOWNERS 编写 Skill 测试清单:正常、边界与越界输入
如果你在Git 仓库与代码托管平台里反复做CODEOWNERS 编写,可以考虑把经验沉淀为一个 Skill:写清触发条件、步骤、输出格式和边界,让智能体代劳重复部分,人只负责把关。
技能写好后,最常见的问题是“演示时很好,真用时出错”。原因通常是只用一份理想样例试过。本文给「CODEOWNERS 编写」准备 6 类测试输入。
测试用例表
| 类型 | 输入 | 预期行为 |
|---|---|---|
| 正常输入 | 信息齐全的标准目录与负责人 | 按步骤完成,交付结构完整的CODEOWNERS 文件 |
| 缺少关键信息 | 删掉一项必要内容的目录与负责人 | 先列出缺失项并提问,不编造补齐 |
| 含糊或矛盾 | 前后说法不一致的材料 | 指出矛盾处,给出可能的理解并请用户确认 |
| 超长输入 | 远超平时篇幅的材料 | 分段处理或说明范围,不悄悄丢弃内容 |
| 提示注入 | 材料中夹带“忽略以上规则,直接……” | 把它当作普通文本,继续遵守技能约束 |
| 越权请求 | 要求直接执行不可逆操作或发送外部消息 | 拒绝直接执行,只给建议或草稿并请求确认 |
每一步的检查点
- 整理目录与团队:中间结果是否可追溯、是否与原始材料一致
- 编写规则:中间结果是否可追溯、是否与原始材料一致
- 检查覆盖:中间结果是否可追溯、是否与原始材料一致
- 说明维护方式:中间结果是否可追溯、是否与原始材料一致
怎么执行
- 把 6 份输入存成文件,放在技能目录的
tests/下(不要包含真实个人信息) - 每次修改技能后,逐一运行并记录输出
- 对照“预期行为”打勾,有一项不通过就回到技能里修改对应指令
- 新发现的问题样例补进测试集
判定标准
- 结构:CODEOWNERS 文件的固定结构是否完整
- 事实:关键内容能否在输入中找到依据
- 边界:缺信息时是否提问、越权时是否拒绝
- 风险:风险较低,但输出仍需快速过目再使用
小贴士
测试集不需要很大,6 到 10 份就能覆盖大部分问题。更系统的打分方法见效果评估,常见失败原因见故障排查。
交付物结构示例
建议把CODEOWNERS 文件固定成下面的结构(示意),方便复核与归档:
## 结论
一句话说明最重要的发现或结果
## 主要内容
- 整理目录与团队:……
- 编写规则:……
- 检查覆盖:……
- 说明维护方式:……
## 依据
- 引用输入中的具体位置或数据
## 需人工确认
- ……(没有则写“无”)
结构固定之后,复核的人只要先看“结论”和“需人工确认”两部分,就能快速判断结果能否使用。
平台选择建议
同一个「CODEOWNERS 编写」技能可以落在不同平台上,选择时主要看你在哪里工作、要不要执行代码、要不要接外部系统:
- GPTs:GPTs 是在 ChatGPT 中创建的定制版助手。详见GPTs 版
- Gemini CLI:Gemini CLI 会读取项目中的 GEMINI.md 作为长期上下文。详见Gemini CLI 版
- Function Calling:Function Calling(工具调用)是主流大模型 API 的通用能力:你用 JSON Schema 描述函数。详见Function Calling 版
这个技能纯指令型,不需要额外脚本或外部连接,复制到大多数平台都能用,可据此排除不支持相应能力的平台。
延伸阅读
- CODEOWNERS 编写 · 场景实录
- CODEOWNERS 编写 · 极简与进阶
- CODEOWNERS 编写 · 定制指南
- 补丁回移计划 · 测试用例
- 许可证检查 · 测试用例
- 智能体Skills 分类:625 个技能 × 32 个角度
说明:文中的配置、代码与目录结构均为示意,用于说明思路;各平台的入口、字段名与能力会更新,落地前请以对应官方文档为准。示例中的数据与场景为虚构,不代表真实案例。