关于 open-source-license
open-source-license 是用于选择、比较和审查开源许可证,并准备相关文件的指导技能。它依据参考资料开展分析,要求使用规范许可证原文;复杂情形应咨询律师。
主要功能
- 01指导选择许可证
- 02比较许可权限与义务
- 03审查兼容性和合规问题
- 04生成 LICENSE 和 NOTICE 文件
- 05提供源文件头模板
适用场景
- 01为项目选择许可证
- 02比较许可证条款及兼容性
- 03审查第三方许可证义务
- 04准备许可证与署名文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ skala-io/ legal-skills --skill open-source-license安装后在 Claude Code 中输入/open-source-license确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/compliance/checklist.mdcommon-issues.mdcompatibility.mdreferences/licenses/copyleft.mdpermissive.mdspecialty.mdreferences/selection/comparison-matrix.mddecision-tree.mdreferences/templates/license-files.mdnotice-files.mdsource-headers.md详细介绍
最初发表于 Skala Legal Skills
法律免责声明
此技能仅用于提供信息和教育,不构成法律建议。对于所提供的分析和信息,不应将其视为咨询合格律师的替代方案。使用此技能不会建立律师与客户关系。开源许可涉及复杂的法律考量,且可能因司法管辖区而异。法律法规因司法管辖区而异,也会随时间变化。针对具体法律事务寻求建议时,请务必咨询您所在司法管辖区的持牌律师。此技能的创作者和发布者对基于所提供信息采取或未采取的行动不承担任何责任。
开源许可证技能
为开源许可证选择、合规审查和文档起草提供全面指导。
功能
1. 许可证选择
使用决策树,根据用户的目标帮助其选择合适的许可证。
2. 许可证比较
说明不同许可证之间的差异、兼容性和权衡。
3. 合规审查
分析项目是否存在许可证合规问题和兼容性冲突。
4. 许可证起草
使用权威文本生成 LICENSE 文件、NOTICE 文件和源文件头部。
工作流
对于许可证选择问题
- 阅读
references/selection/decision-tree.md - 根据决策树提出澄清问题:
- 主要目标是什么(促进采用还是保持代码开源)?
- 是否需要专利保护?
- 是库还是应用?
- 是否涉及 SaaS/网络使用?
- 给出建议并说明理由
- 列出使用推荐许可证的知名项目
- 询问用户是否需要生成 LICENSE 文件
对于许可证比较问题
- 阅读
references/selection/comparison-matrix.md - 从以下关键维度比较用户指定的许可证:
- 权限(商业使用、分发、修改)
- 条件(署名、著佐权、源代码披露)
- 限制(责任、保证)
- 突出说明关键差异
- 列举使用各许可证的项目示例
对于合规审查
- 阅读
references/compliance/compatibility.md和references/compliance/checklist.md - 找出项目中的所有许可证
- 检查许可证之间的兼容性
- 标记可能影响分发的任何著佐权许可证
- 指出任何缺失的署名或合规缺漏
- 提供可执行的补救措施
- 参考
references/compliance/common-issues.md了解背景信息
对于生成 LICENSE/NOTICE 文件
- 从
references/templates/中阅读适当的模板 - 重要:务必严格使用所提供的权威许可证文本
- 切勿修改许可证条款,也不要从头生成许可证文本
- 仅填写占位符:
[YEAR]、[FULLNAME]、[PROJECT NAME] - 对于 NOTICE 文件,正确汇总第三方署名信息
- 对于文件头部,使用适合相应语言的注释语法
参考文件
| 主题 | 文件 |
|---|---|
| 宽松型许可证(MIT、Apache、BSD、ISC) | references/licenses/permissive.md |
| 著佐权许可证(GPL、LGPL、AGPL、MPL) | references/licenses/copyleft.md |
| 其他许可证(CC、Boost、zlib) | references/licenses/specialty.md |
| 许可证比较表 | references/selection/comparison-matrix.md |
| 许可证选择指南 | references/selection/decision-tree.md |
| 许可证兼容规则 | references/compliance/compatibility.md |
| 合规检查清单 | references/compliance/checklist.md |
| 常见合规错误 | references/compliance/common-issues.md |
| LICENSE 文件模板 | references/templates/license-files.md |
| NOTICE 文件模板 | references/templates/notice-files.md |
| 源文件头部模板 | references/templates/source-headers.md |
关键规则
切勿生成许可证文本
始终使用模板中的规范许可证文本。许可证文本是必须准确无误的法律文件。请勿:
- 改述许可证条款
- 凭记忆生成许可证文本
- 修改标准许可证措辞
- 创建“自定义”许可证
列举项目示例
讨论许可证时,请提及使用这些许可证的知名项目:
- MIT: React、Node.js、jQuery、Rails、Angular
- Apache-2.0: Kubernetes、TensorFlow、Android、Spark
- GPL-3.0: WordPress、GIMP、Bash
- AGPL-3.0: Nextcloud、Mastodon、Grafana
- BSD-3-Clause: Django、Flask、numpy
- MPL-2.0: Firefox、Thunderbird
标记复杂情形
以下情形建议咨询法律顾问:
- 双重许可策略
- 项目进行期间更改许可证
- 使用 copyleft 依赖项的商业项目
- SaaS 环境中的 AGPL
- 跨多个司法管辖区分发
- 涉及专利的敏感情形
快速解答
“我应该使用什么许可证?”
→ 遵循决策树;若追求简洁,默认选择 MIT;若需要专利保护,则选择 Apache-2.0。
“我可以在专有应用中使用 GPL 代码吗?”
→ 通常不可以,除非通过 LGPL 动态链接或独立进程使用。
“MIT 和 Apache-2.0 有什么区别?”
→ Apache-2.0 明确授予专利许可,并包含专利报复条款;MIT 更简单,但不提供专利保护。
“Apache-2.0 与 GPL 兼容吗?”
→ Apache-2.0 与 GPL-3.0 兼容,但与 GPL-2.0 不兼容。
“使用 AGPL 后,我需要开源自己的代码吗?”
→ 只有在修改 AGPL 代码并将其作为网络服务提供时才需要。在内部使用未经修改的 AGPL 工具不会触发 copyleft 要求。
输出格式
生成 LICENSE 文件时:
- 确认许可证选择
- 询问版权持有者名称和年份
- 输出完整的规范许可证文本
- 提醒用户将其放在仓库根目录下,文件名为
LICENSE或LICENSE.txt
审查合规性时:
- 列出所有已识别的许可证
- 展示兼容性分析
- 按严重程度(critical/warning/info)标记问题
- 提供具体的补救步骤