Agent Skills
返回列表
🔒

SPDX 许可头审计与规范化

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/audit-and-normalize-spdx-license-headers-before-releasing-or-open-sourcing-a-repository

技能介绍

问题:顶层 LICENSE 不够用

在仓库根目录放一个 LICENSE 文件,然后默认所有源码都被覆盖,这在文件级许可判定上并不严谨:审查者或下游使用者无法确定某个具体文件适用哪份许可。混用多种许可的项目、包含第三方代码的仓库,这个问题更突出。REUSE 规范的做法是要求每个文件都带 SPDX-License-Identifier 头,并在仓库根部用 LICENSES/ 目录存放所引用许可证的全文。

核心能力与关键步骤

这个技能封装了 FSFE 维护的 REUSE 工具,在发布或开源前做一次标准化的许可审计。工作流大致是:

  • 扫描合规性:遍历仓库文件,标记缺失 SPDX 头、或声明与 LICENSES/ 目录不一致的位置
  • 补全与验证:为缺失声明的文件插入标准 SPDX 头;已有的头会与规范格式比对
  • 拉取许可证文本:把 SPDX 头引用的许可证全文放进 LICENSES/ 目录
  • 输出补救清单或 SPDX 导出:给维护者一份具体的待办列表,或生成 SPDX 格式的许可清单

适用边界与注意点

  • 需要 Python 3.10+;libmagic 与 VCS 工具是可选项,前者用于更精确的文件类型识别
  • 这是标准化审计,不替代法务审查:它不判断许可证间的兼容性,也不评估某个依赖的许可是否允许商用
  • 许可证文本拉取依赖网络,离线环境需要提前准备缓存
  • 对已打 SPDX 头的第三方仓库,同样可以跑一遍 lint 做核对

使用场景

  • 准备把内部项目开源,需要逐文件确认 SPDX 许可声明并补齐缺失的头信息
  • 发布仓库前做许可检查,确保 LICENSES/ 目录收录了所有被引用许可证的全文
  • 接手许可声明混乱的历史项目,需要生成具体的补救清单逐项修复 SPDX 头
  • 需要向法务或下游使用者提供仓库的 SPDX 许可清单导出,用于合规审计

适合人员

  • 准备将商业代码开源的后端工程师,需要在发布前确认每个文件都有合规的 SPDX 许可声明
  • 负责开源合规审查的法务顾问,需要快速定位仓库中缺失 SPDX 头或声明不一致的文件
  • 维护多许可证混合项目的开源负责人,需要在合并第三方代码前验证许可声明的一致性
  • 用 REUSE 规范管理仓库的 DevOps 工程师,需要定期跑许可审计并生成 SPDX 导出