# Kylin Prompt - 法律合规文档

> **版本**: 1.1
> **最后更新**: 2026-06-20
> **适用范围**: 所有使用 kylin/prompt 扩展包的防沉迷提示系统

---

## 一、适用法律法规

### 1.1 《中华人民共和国未成年人保护法》(2021.6.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第七十二条 | 处理不满十四周岁未成年人个人信息的，应当征得未成年人父母或其他监护人同意 | 监护人绑定提示（`guardian_bind` 场景） |
| 第七十五条 | 网络游戏服务提供者应当要求未成年人以真实身份信息注册并登录网络游戏 | 适龄提示按年龄分组（未满 8 周岁/8-16 周岁/16-18 周岁/已满 18 周岁） |
| 第七十五条 | 网络游戏服务提供者应当采取措施防止未成年人沉迷网络游戏 | 时段限制提示（`time_limit`）、消费限额提示（`payment_limit`） |
| 第七十六条 | 网络游戏服务提供者不得在每日二十二时至次日八时向未成年人提供网络游戏服务 | 强制下线提示（`kick`） |

### 1.2 国家新闻出版署《关于进一步严格管理 切实防止未成年人沉迷网络游戏的通知》(2021.8.30)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第一条 | 严格限制向未成年人提供网络游戏服务的时间 | 仅周五/六/日及法定节假日 20:00-21:00 |
| 第二条 | 规范向未成年人提供付费服务 | 8-16 岁单次≤50元/月≤200元；16-18 岁单次≤100元/月≤400元 |
| 第三条 | 严格落实网络游戏用户账号实名注册和登录 | 登录提示（`login` 场景） |
| 第四条 | 加强行业监管 | 举报渠道提示（`report_channel` 场景） |

### 1.3 T/CADPA 14-2021《网络游戏适龄提示》团体标准

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第 4 条 | 适龄提示标识应出现在游戏注册/登录界面 | 提示语按年龄组定制（`age_groups` 四级分类） |
| 第 5 条 | 适龄提示标识应包含年龄范围和适用年龄组 | 提示文案含年龄组标识 |
| 第 6 条 | 健康游戏忠告应包含"适度游戏、拒绝沉迷"等 | 健康游戏忠告（`health_advice` 场景） |

### 1.4 《互联网信息服务深度合成管理规定》(2023.1.10)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第六条 | 深度合成服务提供者应当对使用其服务生成的信息内容进行标识 | `AIPromptCompliance::markAIGenerated()` 标注 `[AI生成]` |
| 第十七条 | 深度合成服务提供者应当提示使用者依法告知被编辑的个人 | AI 提示语需合规，标注 AI 生成内容 |
| 第十八条 | 深度合成服务提供者应当建立健全辟谣机制 | 深度合成内容需标注来源 |

### 1.5 《中华人民共和国个人信息保护法》(2021.11.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第十四条 | 收集个人信息需取得用户同意 | 提示文案需包含隐私政策告知 |
| 第十七条 | 需告知用户信息处理目的 | 登录提示需包含隐私政策链接 |
| 第三十一条 | 处理不满十四周岁未成年人个人信息需监护人同意 | 监护人绑定提示 |

### 1.6 《中华人民共和国网络安全法》(2017.6.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第十二条 | 网络信息服务应支持多语言 | `PromptInternationalization` 支持 zh/en/ja/ko 四语言 |
| 第二十一条 | 采取监测、记录网络运行状态、网络安全事件的技术措施 | `PromptAudit` Trait + `PromptService::audit()` 记录审计日志 |
| 第二十四条 | 用户提供真实身份信息 | 人脸识别提示（`face_verify` 场景） |
| 第四十一条 | 收集个人信息应当遵循合法、正当、必要原则 | 仅收集提示功能必需的信息 |

### 1.7 等保 2.0 (GB/T 22239) 8.1.4.6

| 要求 | 合规要点 |
|------|----------|
| 审计日志 | `PromptAudit` Trait 提供审计日志记录能力，提示语修改操作需记录 |

---

## 二、行业规范

### 2.1 游戏行业适龄提示

- 依据 **中国音数协游戏工委《网络游戏适龄提示》**，提示语需覆盖 9 种场景
- 提示语缓存 1 小时（`cache_ttl = 3600`），确保性能
- 提示语支持远程配置（数据库存储），支持热更新
- 降级机制：数据库无数据时使用默认文案（`getDefaultPrompt()`）

### 2.2 提示场景覆盖

| 场景 | 说明 | 适用年龄组 |
|------|------|------------|
| `login` | 登录提示 | 全部 |
| `time_limit` | 时段限制提示 | 0-2（未满 18 周岁） |
| `duration_warning` | 时长预警提示 | 0-2（未满 18 周岁） |
| `payment_limit` | 消费限额提示 | 0-2（未满 18 周岁） |
| `kick` | 强制下线提示 | 0-2（未满 18 周岁） |
| `health_advice` | 健康游戏忠告 | 全部 |
| `guardian_bind` | 监护人绑定提示 | 0-1（未满 16 周岁） |
| `face_verify` | 人脸识别提示 | 全部 |
| `report_channel` | 举报渠道提示 | 全部 |

### 2.3 提示语管理

- 提示语支持 4 级年龄分组（`age_groups`：0=未满8周岁/1=8-16周岁/2=16-18周岁/3=已满18周岁）
- 提示语支持 3 种弹窗类型：`modal`（模态框）/`toast`（轻提示）/`banner`（横幅）
- 降级机制：数据库无数据时使用默认文案（`getDefaultPrompt()`）
- 国际化支持：zh/en/ja/ko 四语言（`PromptInternationalization`）

### 2.4 AI 提示语合规

- AI 生成的提示语必须标注 `[AI生成]` 标识（`AIPromptCompliance::markAIGenerated()`）
- 判断是否为 AI 生成（`AIPromptCompliance::isAIGenerated()`）
- 去除 AI 标记（`AIPromptCompliance::removeAIMark()`）
- 合规声明（`AIPromptCompliance::complianceNotice()`）

### 2.5 权限控制

- `PromptPolicy` 继承 `CrudPolicy`，权限命名 `prompt.view/create/update/delete`
- 管理类操作（缓存清除、AI 标注）需通过 `auth:sanctum` 鉴权

---

## 三、合规检查清单

### 3.1 适龄提示

- [x] 四级年龄分组（`age_groups`：0/1/2/3）
- [x] 9 种提示场景全覆盖
- [x] 默认文案兜底（`getDefaultPrompt()`）
- [x] 健康游戏忠告（`health_advice` 场景）

### 3.2 AI 合规

- [x] AI 生成标注 `[AI生成]`（`AIPromptCompliance::markAIGenerated()`）
- [x] AI 生成判断（`isAIGenerated()`）
- [x] AI 标记去除（`removeAIMark()`）
- [x] 合规声明（`complianceNotice()`）

### 3.3 国际化

- [x] 四语言支持（zh/en/ja/ko）
- [x] 语言环境自动检测（`getLocalizedContent()`）
- [x] 翻译接口（`translate()`）

### 3.4 审计日志

- [x] `PromptAudit` Trait 提供审计能力
- [x] `PromptService::audit()` 记录缓存清除事件
- [x] 审计日志写入 `kylin/audit-log`

### 3.5 权限控制

- [x] `PromptPolicy` 继承 `CrudPolicy`
- [x] 管理类操作需鉴权（`auth:sanctum`）

### 3.6 缓存机制

- [x] 提示语缓存 1 小时（`cache_ttl = 3600`）
- [x] 缓存清除接口（`clearCache()`）

---

## 四、代码检测报告

### 4.1 检测结果

| 检测项 | 状态 | 说明 |
|------|------|------|
| 年龄分组提示 | ✅ 已通过 | `age_groups` 四级分类，`getPrompt()` 按年龄组获取 |
| 场景覆盖 | ✅ 已通过 | 覆盖 9 种场景 |
| CDC 合规 | ✅ 已通过 | 依据 T/CADPA 14-2021 和未成年人保护法 |
| 缓存机制 | ✅ 已通过 | `cache_ttl = 3600`，支持 Redis 缓存 |
| 降级机制 | ✅ 已通过 | 数据库无数据时降级到 `getDefaultPrompt()` 默认文案 |
| 提示语管理 | ✅ 已通过 | 数据库表 `kp_prompts` 支持远程配置 |
| 提示语国际化 | ✅ 已通过 | `PromptInternationalization` 支持 zh/en/ja/ko 四语言 |
| 提示语审计 | ✅ 已通过 | `PromptAudit` Trait + `PromptService::audit()` |
| 提示语权限 | ✅ 已通过 | `PromptPolicy` 继承 `CrudPolicy`，权限命名 `prompt.*` |
| AI 提示语合规 | ✅ 已通过 | `AIPromptCompliance` 标注 `[AI生成]`、判断、去除、合规声明 |
| Facade | ✅ 已修复 | 新增 `KylinPrompt` Facade |
| Controller | ✅ 已修复 | 新增 `PromptController`，提供 HTTP 接口 |
| 路由 | ✅ 已修复 | 新增 `routes/api.php`，公开查询 + 鉴权管理 |
| 年龄便捷方法 | ✅ 已修复 | 新增 `getAgePrompt()`、`getAllPrompts()`、`getHealthAdvice()`、`getAgeGroup()` |

### 4.2 审计事件清单

| 事件 | 说明 | 法律依据 |
|------|------|------|
| `prompt_cache_cleared` | 提示语缓存清除 | 《网络安全法》第二十一条 |
| `prompt_updated` | 提示语更新（通过 `PromptAudit` Trait） | 等保 2.0 8.1.4.6 |
| `prompt_created` | 提示语创建（通过 `PromptAudit` Trait） | 等保 2.0 8.1.4.6 |
| `prompt_deleted` | 提示语删除（通过 `PromptAudit` Trait） | 等保 2.0 8.1.4.6 |

### 4.3 审查结论

**本包所有合规功能已实现。** 适龄提示（4 级年龄分组、9 种场景）、AI 合规标注、国际化（4 语言）、审计日志、权限控制、缓存机制核心功能完整。

---

## 五、免责声明

本合规文档基于现行法律法规编制，仅供参考。提示语内容需经法务审核后发布。适龄提示标准可能随政策调整，用户应及时更新提示语文案。
