# Contributing

> How to contribute with code and with the docs — docs-as-code, Definition of Done and automatic screenshots.

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

# Contributing

How to give back to the project — with **code** and with the **documentation itself**.

## Documentation: docs-as-code
The docs are **Markdown in the repository**, reviewed by PR (like code). This site's conventions are in
`_BLUEPRINT.md` and the README:
- **Diátaxis:** one **mode per page** (tutorial / how-to / explanation / reference) — don't mix.
- **Single source:** each fact has one owner; the other pages **link** instead of re-explaining.
- **Verify at the source:** when they diverge, the **code** is the truth (not the Javadoc); flag the divergence.

## Definition of Done (API change)
Every API change is only "done" when:
- [ ] the corresponding **reference page** has been updated;
- [ ] affected examples still **compile** against the current API;
  glossary §35.1.

## Screenshots that don't grow stale
The docs images are **generated automatically** from the example screens via `Main.getScreenShot(...)` + the
testing framework ([Testing](/docs/best-practices/testes)) — with `DeviceConfig.isTesting = true` for
deterministic rendering. When you change a screen, regenerate the golden instead of attaching a manual screenshot.

## Code
Standard flow: **issue → PR → review**. Include tests (`dev.crossfly.test`) and keep the
single-threaded UI behavior and the `Thread` + `Component.onUI` pattern for background work.

## See also
- [Community and support](/docs/resources/community-and-support) · [Roadmap](/docs/resources/roadmap)
