Files
agent-radar/schema/license-tiers.yaml
T

82 lines
3.0 KiB
YAML

# ============================================================
# 许可证成色分级 → 镜像可见性规则
# ------------------------------------------------------------
# 这是新增项目时的**第一判断项**:先定级,再决定源码镜像能不能公开。
# 定错级的代价:L3 项目被公开镜像,等于替对方做了一次未经授权的公开分发。
#
# 判定顺序自上而下,命中即停。
# ============================================================
tiers:
- level: L1
label: 完全开源
redistributable: true
visibility: public
match_spdx:
- MIT
- Apache-2.0
- BSD-2-Clause
- BSD-3-Clause
- ISC
- MPL-2.0
- GPL-2.0
- GPL-3.0
- LGPL-3.0
- Unlicense
note: "可自由镜像与再分发,保留原许可证声明即可。"
- level: L2
label: 有限开源
redistributable: true
visibility: public
match_spdx:
- AGPL-3.0
- SSPL-1.0
- BUSL-1.1
- Elastic-2.0
note: "有附加限制(网络使用即触发开源义务、或限制商业化托管)。可公开镜像,但档案中必须记录限制条款。"
- level: L3
label: 源码可得 · 非开源
redistributable: false
visibility: private
match_spdx:
- NOASSERTION
- OTHER
- LicenseRef-scanned
note: |
SPDX 无法识别的自定义许可,典型为 source-available。
必须人工读 LICENSE 原文确认,再决定是否归 L3 或 L4。
判为 L3 时镜像**一律私有**,仅作个人代码级研究,不构成公开分发。
- level: L4
label: 不可得
redistributable: false
visibility: none
match_spdx:
- ""
- null
note: "无 LICENSE 文件或明确 proprietary。不镜像,档案里只留仓库链接与 commit 快照。"
# ---------- 人工复核触发条件 ----------
# 命中以下任一情形,脚本必须停下来要求人工确认,不得自动定级:
manual_review_triggers:
- "SPDX 为 NOASSERTION 且 LICENSE 文件超过 200 行(条款复杂,容易漏掉分发限制)"
- "同一仓库存在多个 LICENSE 文件(如 LICENSE + LICENSES/ 目录,可能混合许可)"
- "README 自称 open source 但 SPDX 不是 OSI 认证标识(名实不符,需显式记录)"
- "LICENSE 中出现 SaaS / hosting / white-label / marketplace / resale 任一关键词"
# ---------- 已定级样本(供后续同类项目参照) ----------
precedents:
- repo: Devin-AXIS/iPolloWork
level: L3
visibility: private
license_name: "iPolloWork Source Available License 1.0"
decided_at: 2026-09-01
reason: |
条款原文要求:任何售卖、转售、收费服务、SaaS、托管、白标、市场分发或
面向客户的使用,无论个人还是企业,均需事先书面授权;且面向用户的前端
必须保留 iPolloWork 名称、Logo 与产品归属。公开镜像落入「托管/市场分发」
的解释空间,故设为私有。