Skip to main content

license-add

把常见的开源许可证(MIT/Apache-2.0/GPL-3.0/LGPL-3.0/MPL-2.0/BSD-2-Clause/BSD-3-Clause/CC0-1.0)从本 skill 的 references/ 拷贝到目标项目,并用脚本自动替换 [year] [fullname] 等占位符。用户说"加 license"、"copy license"、"添加许可证"、"license 拷过来"、"这个项目要加 MIT" 时触发。默认复制到当前项目根目录的 LICENSE 文件。

Zur Installation springen

Quellinformationen

Repository
ID-VerNe/skill-forge
Letzte Quellaktivität
5. September 2026 um 22:49
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
12
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
10 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
license-add
version
1.0.0
description
把常见的开源许可证(MIT/Apache-2.0/GPL-3.0/LGPL-3.0/MPL-2.0/BSD-2-Clause/BSD-3-Clause/CC0-1.0)从本 skill 的 references/ 拷贝到目标项目,并用脚本自动替换 [year] [fullname] 等占位符。用户说"加 license"、"copy license"、"添加许可证"、"license 拷过来"、"这个项目要加 MIT" 时触发。默认复制到当前项目根目录的 LICENSE 文件。
# License Add 把常用开源许可证加到目标项目根目录。模板源文件内置在本 skill 的 `references/` 目录(来自 GitHub API licenses 接口的官方标准文本),不依赖网络,不依赖已装项目。 ## 核心规则 ### 1. 选哪个 license —— 按用户场景 默认偏好(无特殊要求时按此顺序建议): | key | 许可证 | 类型 | 一句话 | |-----|--------|------|--------| | `mit` | MIT | permissive | 个人项目默认,最简最短 | | `apache-2.0` | Apache 2.0 | permissive | 含明确专利授权,大厂 / 需要专利保护时用 | | `gpl-3.0` | GPL-3.0 | copyleft | 要求衍生作品同许可开源 | | `lgpl-3.0` | LGPL-3.0 | weak copyleft | 库可以用在闭源项目里 | | `mpl-2.0` | MPL-2.0 | weak copyleft | 文件级 copyleft,混合项目友好 | | `bsd-2-clause` | BSD 2-Clause | permissive | 类 MIT,去掉"不可署名担保"措辞 | | `bsd-3-clause` | BSD 3-Clause | permissive | BSD-2 加上"禁止背书"条款 | | `cc0-1.0` | CC0 1.0 | public domain | 放弃版权,公共领域 | - 用户指定就用指定的;没说就默认 MIT 并说明原因(最简单、最常见、无需额外义务)。 - GPL 系的 `lgpl-3.0`、`mpl-2.0`、`cc0-1.0` 是 GitHub API 的收窄版正文,不含 FSF/CC 官方的完整附注段落,标准做法下够用。 ### 2. 占位符 —— 必须替换 以下模板里带占位符,copy 后**必须**替换,不许原样留着: | 许可证 | 占位符 | 位置 | |--------|--------|------| | `mit` | `[year] [fullname]` | 第 3 行版权行 | | `bsd-2-clause` | `[year], [fullname]` | 第 3 行版权行 | | `bsd-3-clause` | `[year], [fullname]` | 第 3 行版权行 | | `apache-2.0` | `[yyyy] [name of copyright owner]` | 仅附录(正文无占位符) | | `gpl-3.0` | `<year> <name of author>` | 仅 HOW TO APPLY 附注(正文无占位符) | | `lgpl-3.0` / `mpl-2.0` / `cc0-1.0` | 无 | 正文无版权行,无需替换 | - **year**:默认当前年份(如 2026)。用户给了年份(或版权起始年份如 "2024-2026")就用用户的。 - **fullname**:默认优先用 git 全局配置 `git config user.name`,取不到再问用户。用户给了就用用户的。 - **apache-2.0 附录**:`[yyyy] [name of copyright owner]` 在 `APPENDIX: How to apply the Apache License to your work.` 段的示例里,可替换可保留(这是给"如何附加声明"的示例,不是必须改的正文)。默认不动,除非用户要求。 - **gpl-3.0 附录**:`<year> <name of author>` 同理,是 HOW TO APPLY 示例,默认不动。 ### 3. 拷贝位置与文件名 - 默认目标:当前工作目录根下的 `LICENSE`。 - 用户指定目录就用指定目录(先确认存在,不存在则创建)。 - 文件名默认 `LICENSE`;用户可指定 `LICENSE.txt` / `COPYING` / `LICENSE.md` 等。 - 目标已存在 `LICENSE` 时:先读出来给用户看是什么,**确认覆盖才写**,不许静默覆盖。 ## 工作流 1. **确认参数**:license key(默认 mit)、目标目录(默认当前目录)、year(默认当前年)、fullname(默认 git user.name)、文件名(默认 LICENSE)。 - 缺哪个问哪个;用户在原始请求里已给的不要重复问。 2. **执行**:运行 ```bash python "C:\Users\VerNe\Downloads\Documents\skill-forge\license-add\scripts\add-license.py" \ --license mit --dir "<目标目录>" \ --year 2026 --name "ID-VerNe" [--filename LICENSE] [--dry-run] ``` - 用 `--dry-run` 先预览将要写的内容(脚本打印替换后的文本且不落盘)。 - 脚本内部从 `scripts/../references/` 定位模板,不依赖当前目录。 3. **验证**:写完后读目标文件确认: - 内容是所选许可证正文; - 版权行占位符已替换为真实 year/fullname(适用于有占位符的许可证); - 行尾是 LF(脚本统一输出 LF,Windows 下不要让它变 CRLF)。 4. **报告**:告知用户写到了哪个文件、哪个许可证、版权行内容。**不要**修改目标项目里的其它文件(比如不要顺手改 README 或加 CITATION.cff,除非用户要求)。 ## 环境要求 - `python`(用户环境已全局可用;任意 Python 3 亦可,仅标准库、无第三方依赖)。 ## 常见问题 - **用户没给 fullname**:先试 `git config user.name`(在目标目录里跑)。拿不到就问:"版权行写谁的名字?" - **目标目录不存在**:创建(脚本 `os.makedirs`)。 - **想把 license 加进仓库再提交**:本 skill 只负责拷贝文件,commit 交给 `commit-message-writing` skill。
Auf GitHub ansehen