# Contributing

> How to develop and test the gateway — local checks, hermetic CI, and where to start.

Development happens in the main repository.

- Full guide: [CONTRIBUTING.md](https://github.com/inja-online/llm-gateway/blob/master/CONTRIBUTING.md)
- Security reporting: [SECURITY.md](https://github.com/inja-online/llm-gateway/blob/master/SECURITY.md)
- Capability matrix tests: `proxy/capability_matrix_test.go`
- Media fixtures: `testdata/fixtures/media/`

## Local checks

```bash
go test ./...
go test -race ./...
go vet ./...
```

Default CI is air-gapped (`httptest` only; no `-tags live`). See the [SDK matrix](/llm-gateway/reference/sdk-compatibility/) for how we cover official client shapes without live vendor keys.

## Docs site

The site under `website/` is Astro + Nimbus. From that directory:

```bash
npm ci
npm run dev    # http://localhost:4321/llm-gateway/
npm run build
```

## Related

- [Changelog](/llm-gateway/project/changelog/)  
- [Deprecation policy](/llm-gateway/reference/deprecation-policy/) — when field drops need a version bump