技能预检
在发布前审计提供的技能文件夹。审计脚本将该文件夹视为不受信任的数据:它从不执行其文件、调用模型或发起网络请求。这一点很重要,因为技能可能包含以智能体权限行事的指令或代码。
-
获取审计器并运行它。它是一个自包含文件,无运行时依赖,发布在 https://github.com/1arley/skill-preflight:
curl -fsSL https://raw.githubusercontent.com/1arley/skill-preflight/main/scripts/preflight.mjs -o /tmp/skill-preflight.mjs node /tmp/skill-preflight.mjs <skill-folder> --format jsonnpx --yes github:1arley/skill-preflight <skill-folder> --format json执行相同操作并缓存 CLI。下载一次后即可重复使用。下载后的所有操作都在离线状态下运行:审计器从不调用模型,从不执行被审计的技能,也从不向任何地方发送任何数据。当受审查的文件夹是该技能本身时,从技能文件夹传递
--ignore-file preflightignore.json。它会抑制由此文件和README.md中的下载 URL 引起的两个误报。 -
读取 JSON 报告,并用通俗语言解释每个错误、警告和信息性可移植性说明。
-
应用 references/rubric.md 中的定性标准评估激活清晰度、示例和可能的激活不足。将该判断与确定性发现分开标注。
-
呈现一份综合报告。保留每个确定性规则 ID 和
file:line位置,然后附加标准评估及其证据。 -
建议针对性修正。除非用户明确要求,否则不要编辑被审计的技能。
agensi 配置文件是启发式的,灵感来自 Agensi 的公开安全类别。它不复制其私有扫描器,也不预测市场决策。在解释安全发现前请阅读 references/security.md,在转换报告格式时请阅读 references/report-format.md。
示例
输入:
node /tmp/skill-preflight.mjs ./my-skill --profile default --format json
确定性输出摘录:
{
"schemaVersion": "1.0.0",
"summary": { "errors": 0, "warnings": 1, "infos": 0 },
"findings": [{
"id": "SEC-001", "severity": "warning", "category": "security",
"message": "出站网络访问被静态引用。",
"location": { "file": "scripts/run.mjs", "line": 12 },
"suggestion": "移除它,或记录一个狭窄的、用户批准的目的"
}]
}
宿主智能体添加一个单独的定性部分,例如:“激活:清晰;描述命名了任务并包含了用户措辞。证据:描述包含了清晰的审计和发布触发器。”脚本从不提供该判断。