Community编程与开发github.com

1arley/skill-preflight

审计技能文件夹的格式、结构、静态安全及供应链问题。当有人要求“审计此技能”、“检查我的 SKILL.md”、“此技能是否可安全发布”、“lint 技能”或“为市场准备好”时使用。

skill-preflight 是什么?

此技能旨在对用户提供的技能文件夹进行发布前的审计。审计脚本将该文件夹视为不受信任的数据:它从不执行其中的文件、调用模型或发起网络请求。这一点至关重要,因为技能可能包含会以智能体权限行事的指令或代码。它通过下载一个无运行时依赖的独立文件 <https://github.com/1arley/skill-preflight> 运行,并生成 JSON 格式的报告,其中包含格式、结构、安全及供应链问题的确定性与规则发现(如 SEC-001)。审计根据 `references/rubric.md` 中的定性标准评估激活清晰度、示例和潜在的激活不足,但宿主智能体负责添加此定性判断。该技能在初始下载后完全离线运行,兼容支持技能审计工作流的智能体平台。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/1arley/skill-preflight/tree/HEAD/skills/devtools/skill-preflight

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

技能预检

在发布前审计提供的技能文件夹。审计脚本将该文件夹视为不受信任的数据:它从不执行其文件、调用模型或发起网络请求。这一点很重要,因为技能可能包含以智能体权限行事的指令或代码。

  1. 获取审计器并运行它。它是一个自包含文件,无运行时依赖,发布在 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 json
    

    npx --yes github:1arley/skill-preflight <skill-folder> --format json 执行相同操作并缓存 CLI。下载一次后即可重复使用。下载后的所有操作都在离线状态下运行:审计器从不调用模型,从不执行被审计的技能,也从不向任何地方发送任何数据。

    当受审查的文件夹是该技能本身时,从技能文件夹传递 --ignore-file preflightignore.json。它会抑制由此文件和 README.md 中的下载 URL 引起的两个误报。

  2. 读取 JSON 报告,并用通俗语言解释每个错误、警告和信息性可移植性说明。

  3. 应用 references/rubric.md 中的定性标准评估激活清晰度、示例和可能的激活不足。将该判断与确定性发现分开标注。

  4. 呈现一份综合报告。保留每个确定性规则 ID 和 file:line 位置,然后附加标准评估及其证据。

  5. 建议针对性修正。除非用户明确要求,否则不要编辑被审计的技能。

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": "移除它,或记录一个狭窄的、用户批准的目的"
  }]
}

宿主智能体添加一个单独的定性部分,例如:“激活:清晰;描述命名了任务并包含了用户措辞。证据:描述包含了清晰的审计和发布触发器。”脚本从不提供该判断。

相关技能