# Development

## Commands

```sh
make dev
make test
make build
make lint
make tidy
```

## Package Layout

```text
cmd/server/
internal/app/
internal/config/
internal/http/
internal/service/parser/
internal/service/parser/go/
internal/store/
internal/store/mongo/   # artifact chunking (code_graph_artifact_parts, snapshot_graph_parts)
internal/telemetry/
```

## Parser Rules

- Keep language analyzers behind `LanguageAnalyzer`
- Emit graph artifacts using shared graph IR
- Do not write directly to embedding stores
- Large graph payloads are split automatically in the MongoDB store (`MONGO_ARTIFACT_MAX_PART_MB`); callers still receive a full `graph.Artifact` on read
