智能体与技能设计顾问
动手写技能代码之前,先把定位、边界、scope 定清楚——这件事本技能帮你做。它读入拟提交技能的元数据,先逐字段核对平台 frontmatter 口径(name 正则、version 格式、展示名长度、英文描述纯 ASCII),再拿你的描述跟一份「已有技能列表」算同质化重叠分,最后吐一份固定的设计就绪清单。它是分析 / 核查 / 框架工具,不替代平台审核,也不替你写代码。
何时使用
| 用户说法 | 是否触发 |
|---|---|
| 帮我看看这个技能能不能过审 / 提交前体检 | 是 |
| 我的技能名合规吗、version 怎么写 | 是 |
| 这个技能和已有的 XX 是不是撞了(同质化) | 是 |
| 给我一份设计就绪清单再动手 | 是 |
| 直接给投资评级 / 法律意见 / 医疗诊断 | 否(需资质结论,不在范围内) |
| 真实调用平台接口、抓取线上技能库、自动改写提交 | 否(不联网、不改输入) |
输入
三类子命令各有输入:
- audit:一份拟提交技能的元数据
meta.json,字段含name/version/display_name/display_name_en/description_zh/description_en/description/tags/capability(可缺,缺失即该字段 fail)。 - overlap:
--proposed proposed.json(含name/description/tags)+--existing existing.json(对象数组,每项{name, description, tags})。existing由用户提供,本技能不联网抓取平台。 - checklist:无输入,直接输出固定清单。
子命令
audit · frontmatter 合规审计
python3 scripts/design_advisor.py audit --input meta.json
python3 scripts/design_advisor.py audit --input meta.json --json
逐字段输出 [PASS]/[WARN]/[FAIL] 字段:说明,末行汇总「fail N / warn M」。硬规则(正则 / 长度 / ASCII / 非空)违规即 fail;description 的「使用案例」标记(例如/比如/如:)计数 <3 仅 warn,不硬 fail。
overlap · 同质化重叠检测
python3 scripts/design_advisor.py overlap --proposed proposed.json --existing existing.json
python3 scripts/design_advisor.py overlap --proposed proposed.json --existing existing.json --json
对每条已有技能算重叠分:score = shared_tags×2 + round(jaccard_bigram(proposed.desc, exist.desc), 3)。bigram = 描述去空白与标点后的连续 2 字集合;jaccard = |A∩B| / |A∪B|。按分降序输出,并标注 shared_tags 与 shared_keywords(仅展示、不进硬断言)。
checklist · 设计就绪清单
python3 scripts/design_advisor.py checklist
python3 scripts/design_advisor.py checklist --json
输出固定 7 类(红线 / 定位 / scope切分 / 输入输出 / 脚本与测试 / 边界声明 / 上架材料)共 21 条清单,末行列条目总数。
规则表(audit 字段口径)
| 字段 | 级别 | 触发条件 |
|---|---|---|
name |
fail | 缺,或不符合 ^[a-z0-9-]+$(小写字母/数字/连字符) |
version |
fail | 缺,或不符合 x.y.z(如 1.0.0) |
display_name |
fail | 缺,或字符数 >16 |
display_name_en |
fail | 缺,或字符数 >30,或含非 ASCII 字符 |
description_en |
fail | 缺,或含非 ASCII 字符,或字符数 >1000 |
description_zh |
fail | 缺,或字符数 >1000 |
description |
fail | 缺,或字符数 >1000 |
tags |
fail | 缺或非空数组之外(必须为非空) |
capability |
fail | 缺或非空之外(必须非空) |
description 使用案例标记 |
warn | 例如/比如/如: 计数 <3(软检查,不硬 fail) |
输出与退出码
- 退出码
0:audit 无硬 fail / overlap / checklist 成功; - 退出码
1:audit 发现硬规则 fail(有字段违规); - 退出码
2:用法或读取错误(文件不存在、缺子命令、未知子命令、JSON 解析失败)。
--json 输出:audit → ok/fail_count/warn_count/fields{字段:status,message}/case_markers;overlap → proposed/count/overlaps[{name,shared_tags,jaccard,score,shared_keywords}];checklist → categories/total_items/checklist[]。
使用示例
# 1. 一份全字段合规、含 ≥3 使用案例标记的元数据
python3 scripts/design_advisor.py audit --input test-samples/meta_ok.json
# → 9 字段全 PASS,使用案例标记 ≥3,退出码 0,fail 0
# 2. 一份埋了多个硬违规的元数据
python3 scripts/design_advisor.py audit --input test-samples/meta_bad_name.json
# → name FAIL(含大写),退出码 1,fail ≥1
# 3. 与已有技能列表算同质化重叠
python3 scripts/design_advisor.py overlap --proposed test-samples/proposed.json --existing test-samples/existing.json
# → 按重叠分降序,同标签高重叠者排前
# 4. 输出设计就绪清单
python3 scripts/design_advisor.py checklist
# → 7 类 / 21 条,退出码 0
注意事项
- 只做设计层机械核查:frontmatter 规则、重叠分、清单都是按用户提供的输入做确定性计算,不引入外部数据。
- 不替代平台审核:本技能不给「一定能过审 / 一定评分高」的结论;重叠分(shared_tags + jaccard)只是同质化参考,不是平台评分口径。
- 输入即口径:已有技能列表由用户自己提供,可能不完整;重叠分需结合人工判断。
- 不联网、不写文件:默认只向 stdout 打印,不改输入文件、不访问网络。
边界声明
只做拟提交技能的设计层机械核查与提示(frontmatter 字段规则、同质化重叠分、设计就绪清单);不替代平台审核、不给「一定能过审 / 一定评分高」的结论;不输出需资质的结论(投资评级 / 法律意见 / 医疗诊断等);已有技能列表由用户提供,不联网抓取平台;不碰去标识 / 去水印、不绕过 AI 检测;不写文件、不修改输入;重叠分仅依赖 shared_tags 与 jaccard 两个可手算量,非平台评分。