# Contributing

## Setup

```bash
npm install        # also installs git hooks (lefthook) via the prepare script
```

## Before you commit

Hooks run automatically (format + lint on commit, typecheck on push). To run the full gate
yourself:

```bash
npm run ci         # format:check + lint + typecheck (client+server) + check:server + tests + build
```

## Standards

All conventions — formatting, error handling, API/wire format, security, logging, testing —
live in **[docs/CODE_STANDARDS.md](docs/CODE_STANDARDS.md)**. Follow the canonical pattern for
each; new code must pass the CI gate.

## Commits

Conventional-commit style (`feat:`, `fix:`, `chore:`, `refactor:`, `ci:`, `style:`, `test:`).
Keep mechanical reformatting in its own commit.
