# 贡献、引用和许可证

LLMS 索引： [llms.txt](/llms.txt)

---

## 条目格式

每条新经验使用以下字段：

```text
标题：症状 → 契约 → 修复/排除
来源：仓库、URL、commit/tag、文件和行/函数
许可证：项目许可证；是否允许复制代码
适用：平台、引擎、SDK、build、设备
证据：命令、日志、截图、反汇编或测试
结论：已证实 / 排除 / 未定 / 撤回
不可推广：哪些地址、格式、时序或设备特例不能搬
回归：最小测试和完整验收路线
```

## 经验来源分级

### 自己的实践

可以公开总结。应写清楚项目、平台、版本、实验过程、失败尝试、最终证据和不能推广的边界。失败经验同样有
价值，因为它能防止后来者重复走错方向。

### 公开外部来源

可以引用公开 README、Markdown、issue、commit 和源码，但必须保留 URL、仓库名、commit/tag、访问日期、许可证和
实际阅读范围。引用外部事实时，不能把自己的推断写成外部项目的原话或已验证结果。

### 私有来源

私有仓库、私有分支、私有会话、未公开附件、用户设备日志、私有补丁和他人未授权的代码不得进入公开手册，也
不得通过改名、删掉链接或复制片段来规避。若其中包含有价值的通用经验，只能由作者重新抽象成不含私有细节、
不含可识别数据、且不暗示外部项目已公开的独立条目；来源标为“本项目独立实践”，不能伪造公开出处。

## 代码复用规则

- MIT/BSD/zlib/Apache 等允许复用的代码，也要保留版权和许可证声明。
- GPL/LGPL 或许可证不明的代码，只记录设计、接口语义和独立重实现方案，除非项目许可证兼容且经过明确审核。
- 不复制游戏本体、shader binary、keys、RomFS 或用户数据。
- 外部代码的“同名函数”必须先做 ABI、对象布局、线程模型和资源生命周期对照。
- 引用外部仓库时记录 URL、commit/tag、访问日期和实际使用范围。
- 公开手册不收录私有仓库、私有会话或未授权材料；即使它们对本地排障有帮助，也只能保留在不公开的内部工作记录中。

## GitHub 推送前检查

```sh
git diff --check
rg -n 'prod\.keys|\.xci|\.nsp|RomFS|patched_.*main|BEGIN.*PRIVATE' docs/ README.md
git status --short
```

大型游戏资料、密钥、设备日志和临时缓存必须留在仓库外。公开仓库只推手册、工具、测试和可审计的源码。

## 未来发布

仓库名必须描述知识库而非平台，例如 `static-recomp-handbook`、`recomp-field-manual` 或 `native-recomp-guide`；
不要在仓库名中绑定 Android、macOS、某部手机或某个游戏。
