# 内容来源与兼容性政策

版本：2026-07-29-v1

## 兼容性底线

用户学习进度使用 `wordId:senseId` 作为义项身份，并按词书分别保存。为避免换源后
已学单词出现新义项、义项状态错配或热力图重算，本项目将以下内容视为兼容性身份：

1. 词书 ID、词书内单词顺序和成员；
2. 每个词书条目引用的有序义项 ID；
3. 词池中的单词 ID、拼写及有序义项 ID。

`data/content-identity-lock.json` 保存这些身份的哈希。每次构建与部署前都会运行
`npm run verify:content-identity`；任何变化都会阻止发布。中文措辞、释义、例句、
音标和经授权的音频可在不改变 ID 的情况下修订。

## 历史来源隔离

`data/kaoyan-source.json` 是早期导入的历史文件，缺少可验证的商业权利链，
已在 `data/source-policy.json` 中标记为隔离：只允许内部来源审计，不得公开分发、
不得继续生成内容、不得用于付费商业发布。它不会被复制到网页发布目录。

## 当前发布策略

- 免费测试版保留既有文字内容，避免更改用户状态。
- 为避免发音功能倒退，免费测试版暂时保留既有 Wikimedia Commons 音频和有道发音回退；
  浏览器本地语音合成作为最终回退。缺少逐文件权利元数据的音频会在审计中持续标记，
  不能因此进入付费版本。
- `tools/enrich-audio-rights.mjs` 会从 Wikimedia Commons 官方 API 补充作者、许可证和
  文件页；网络不可用或仍无法确权的条目保持原播放能力并列入待处理清单。
- 英译中维护任务已切换到本地 Argos/OPUS 模型（CC BY 4.0）；当前模型不支持的中译英
  维护任务暂时保留历史接口，并在来源政策和审计报告中显式标记。
- Tatoeba、Wiktionary/Kaikki 和 WordNet 例句在界面中显示可用的来源信息。
- `data/content-rights-audit.json` 持续列出需要授权、独立重写或补充署名的项目。
- 付费发布前，审计报告中的所有高风险文字项目必须清零或取得书面商业授权。

## 内容修订流程

1. 保持 `wordId`、`senseId` 和词书引用不变；
2. 记录来源网址、作品、作者、许可证、获取时间和修改方式；
3. 对独立创作内容记录生成/撰写人、复核人和版本；
4. 运行内容身份校验、内容权利审计和全量测试；
5. 对已发布内容保留旧版本哈希与变更记录。
