···11+# Zoekt Coding Agent Guidelines
22+33+## Build & Test Commands
44+- Build: `go build ./cmd/...`
55+- Run all tests: `go test ./... -short`
66+- Run a single test: `go test -run=TestName ./path/to/package`
77+- Run specific test with verbose output: `go test -v -run=TestName ./path/to/package`
88+- Benchmark: `go test -bench=BenchmarkName ./path/to/package`
99+- Fuzzing: `go test -fuzz=FuzzTestName -fuzztime=30s ./package`
1010+- Smoke test: Check a specific repo: `go run ./cmd/zoekt-git-index /path/to/repo`
1111+1212+## Code Style Guidelines
1313+- Import format: standard Go imports (stdlib, external, internal) with alphabetical sorting
1414+- Error handling: explicit error checking with proper returns (no ignored errors)
1515+- Naming: Go standard (CamelCase for exported, camelCase for private)
1616+- Tests: Table-driven tests preferred with descriptive names
1717+- Documentation: All exported functions should have comments
1818+- Shell scripts: Use shfmt with `-i 2 -ci -bn` flags
1919+- Proto files: Run buf lint and format checks
2020+- Memory optimization: As a code search database, Zoekt is memory-sensitive - be conscious of struct field ordering and memory usage in core structures
2121+2222+## Documentation Resources
2323+- Design overview: `doc/design.md` - Core architecture and search methodology
2424+- Indexing details: `doc/indexing.md` - How the indexing process works
2525+- Query syntax: `doc/query_syntax.md` - Search query language reference
2626+- FAQ: `doc/faq.md` - Common questions and troubleshooting