# 贡献

> 如何贡献代码和文档——docs-as-code、Definition of Done 和自动截图。

Source: https://crossfly.dev/zh/docs/resources/contributing — CrossFly documentation. Full docs as one file: https://crossfly.dev/llms-full.txt

# 贡献

如何回馈项目——用**代码**，也用**文档本身**。

## 文档：docs-as-code
文档是**仓库中的 Markdown**，通过 PR 审阅（和代码一样）。本站的约定见
`_BLUEPRINT.md` 和 README：
- **Diátaxis：** 每页**一种模式**（tutorial / how-to / 解释 / reference）——不要混用。
- **单一来源：** 每个事实都有一个所有者；其他页面**链接**过去而非重复解释。
- **在源头核实：** 出现分歧时，**代码**才是真相（而非 Javadoc）；标记出该分歧。

## Definition of Done（API 变更）
每一次 API 变更只有在满足以下条件时才算"完成"：
- [ ] 对应的**参考页面**已更新；
- [ ] 受影响的示例仍能针对当前 API **编译**通过；
  术语表 §35.1。

## 不会过时的截图
文档中的图片是通过 `Main.getScreenShot(...)` + 测试框架（[测试](/docs/best-practices/testes)）
从示例屏幕**自动生成**的——并设置 `DeviceConfig.isTesting = true` 以获得
确定性渲染。修改某个屏幕时，请重新生成 golden，而不是手动附上截图。

## 代码
标准流程：**issue → PR → review**。包含测试（`dev.crossfly.test`），并保持
UI 的单线程行为以及后台工作的 `Thread` + `Component.onUI` 模式。

## 另请参见
- [社区与支持](/docs/resources/community-and-support) · [Roadmap](/docs/resources/roadmap)
