diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..ab75d03e5 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,30 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Build Commands +- `make build` - Build application binary +- `make install` - Install application +- `make proto-gen` - Generate Protobuf files +- `make mod-tidy` - Run go mod tidy + +## Test Commands +- `make test` - Run unit tests +- `make test-unit` - Run all unit tests +- `make test-race` - Run tests with race detection +- For single test: `go test -v -run TestName ./path/to/package` + +## Lint Commands +- `make lint` - Run golangci-lint and formatting checks +- `make format` - Format code using gofumpt, misspell and gci + +## Code Style Guidelines +- **Imports**: Group by standard library, third-party, then project-specific with blank lines +- **Error Handling**: Use custom errors from `types/errors.go` with `sdkerrors.Register` +- **Naming**: camelCase for variables, PascalCase for functions/exported types, prefix errors with `Err` +- **Organization**: Follow Cosmos SDK module pattern (`x/{module}/`, `types/`, `keeper/`) +- **Types**: Prefer explicit types over interface{}, use pointers for mutable state +- **Documentation**: Document public APIs thoroughly with standard Go doc comments +- **Formatting**: Run `make format` before committing + +This project follows standard Go conventions and Cosmos SDK patterns with clear organization and consistent error handling. \ No newline at end of file