Agent Skills
返回列表
💻

许可证分析

开发编程 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/license-analysis-skillhub

技能介绍

依赖树中的隐性合规债务

现代软件项目很少只依赖几个直接库。当你打开 package.json 或 go.mod,看到的往往只是冰山一角。在成百上千的传递依赖中,一个不起眼的 LGPL 库或甚至完全没有声明许可证的包,都可能在你打包分发或发布 SaaS 服务时引爆合规危机。没有许可证等于“保留所有权利”,而强 Copyleft 协议的静态链接则会直接“感染”你的专有代码。这个技能就是为了在代码合入主干前,把这些隐藏在依赖图深处的许可证风险挖出来。

核心能力与工作流

该技能通过五个关键步骤构建完整的合规防线:

  • 扫描完整依赖树:解析 package.json、requirements.txt 等多种清单,不仅识别直接依赖,还深入解析可选、开发和对等依赖,捕捉所有传递依赖。
  • 规范化与提取许可证:从包元数据、LICENSE 文件或 SPDX 标识符中提取协议,统一转换为标准 SPDX 名称。对无许可证、自定义协议或多协议声明进行明确标记。
  • 兼容性矩阵评估:根据项目的分发模型(SaaS、二进制分发、开源库、内部工具)进行两两兼容性检查。例如,Apache-2.0 的专利授权与 GPLv2 冲突,而 AGPL 甚至会在网络交互时触发分发义务。
  • Copyleft 传染风险标记:针对 GPL、AGPL、LGPL 和 MPL 库,评估具体的使用模式(静态链接、动态链接、独立进程、网络交互)是否触发传染。
  • 生成结构化合规报告:输出包含许可证清单、兼容性分析、风险等级标记、归属声明要求以及具体修复建议的报告,可直接用于法务审查或项目文档。

适用边界与注意点

虽然自动化扫描能覆盖绝大多数代码依赖,但仍需注意以下边界:

  • 非代码资产:字体、图片等资源可能采用 CC-BY-SA 或 CC-BY-NC 等知识共享协议,代码扫描工具通常无法覆盖。
  • 代码片段来源:从 Stack Overflow 复制的实质性代码片段受 CC-BY-SA 4.0 约束,AI 生成代码的版权归属也可能不清晰。
  • 协议变更:依赖库可能在版本更新时更改协议(如 Elasticsearch 从 Apache-2.0 转向 SSPL),需锁定已知良好版本并持续监控。

使用场景

  • 发布 npm 开源包前,需要确认全部传递依赖中不存在 GPL/AGPL 等会污染 MIT 项目的强 copyleft 库
  • 闭源商业应用准备集成第三方图表库,需要判断 GPL-3.0 协议是否与专有分发模式冲突
  • CI 流水线新增依赖时,需要自动标记无许可证声明的包并生成 THIRD-PARTY-NOTICES 文件
  • SaaS 服务上线前,需要排查传递依赖中是否存在 AGPL 协议,避免网络交互触发分发义务

适合人员

  • 开源库作者:发布包前需要确认全量依赖的许可证兼容性,避免下游使用者收到 copyleft 警告
  • 商业应用工程师:为闭源软件引入第三方库时,需要判断 GPL/AGPL 是否要求整个项目开源
  • 技术合规工程师:需要为项目生成可直接提交法务审查的许可证清单与合规分析报告
  • 技术负责人:依赖升级后需要确认新引入包的许可证是否变更(如转向 SSPL 等限制性协议)