pr_01m47d15m3e54sn21z27rpy5n9/CONTRIBUTING.md
| 1 | # Contributing to g1t |
| 2 | |
| 3 | g1t is built the way it asks others to build: issues and pull requests on |
| 4 | [g1t.sh/syntaqx/g1t](https://g1t.sh/syntaqx/g1t), checks that prove a change |
| 5 | done, and a merge queue that keeps `main` passing. |
| 6 | |
| 7 | ## A change ships with its docs |
| 8 | |
| 9 | Documentation is part of the product, held to the same bar as the code. |
| 10 | A pull request that changes what someone can do, see or call changes the |
| 11 | docs in the same pull request: |
| 12 | |
| 13 | | If you change | Update | |
| 14 | | --- | --- | |
| 15 | | Something a person does on g1t.sh | The guide for it in `apps/docs/src/content/docs/guides/` | |
| 16 | | An API route, a field, or an MCP tool | `apps/api/src/operations.rs` descriptions (they feed the OpenAPI document and the API reference), `reference/mcp.md`, and any guide that shows the call | |
| 17 | | How agents behave | `guides/g1t-agents.md`, and `apps/web/public/llms.txt` | |
| 18 | | Settings, limits or prices | The page that names them, and the table it is in | |
| 19 | | A new feature | A section in the guide that owns it, linked from the docs home if it is a new task | |
| 20 | |
| 21 | The style, in short: plain sentences, second person, no marketing words, |
| 22 | sentence-case headings, a numbered list for steps, a table for options, and |
| 23 | every API mention with its exact route or tool name. Examples are copyable |
| 24 | and real. Nothing is documented that the code does not do. |
| 25 | |
| 26 | Check the docs build before you push: |
| 27 | |
| 28 | ```sh |
| 29 | cd apps/docs && npm run build |
| 30 | ``` |
| 31 | |
| 32 | ## Before you push |
| 33 | |
| 34 | - `cargo test` in the crate or service you changed. |
| 35 | - `npx tsc -b --force` in `apps/web` (the incremental build misses changes |
| 36 | in `packages/contracts`). |
| 37 | - Look at what you changed in a browser. Screenshots catch what type |
| 38 | checks do not. |