kevo/CLAUDE.md
Jeremy Tregunna b03176f136
feat: implement config and WAL packages
- Implement config package with serializable configuration and manifest
- Implement WAL with durability guarantees and fragmentation support
- Fix mutex deadlock bug in WAL sync operations
- Add comprehensive tests for both packages
2025-04-19 14:51:17 -06:00

33 lines
1.2 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Build Commands
- Build: `go build ./...`
- Run tests: `go test ./...`
- Run single test: `go test ./pkg/path/to/package -run TestName`
- Benchmark: `go test ./pkg/path/to/package -bench .`
- Race detector: `go test -race ./...`
## Linting/Formatting
- Format code: `go fmt ./...`
- Static analysis: `go vet ./...`
- Install golangci-lint: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest`
- Run linter: `golangci-lint run`
## Code Style Guidelines
- Follow Go standard project layout in pkg/ and internal/ directories
- Use descriptive error types with context wrapping
- Implement single-writer architecture for write paths
- Allow concurrent reads via snapshots
- Use interfaces for component boundaries
- Follow idiomatic Go practices
- Add appropriate validation, especially for checksums
- All exported functions must have documentation comments
- For transaction management, use WAL for durability/atomicity
## Version Control
- Use git for version control
- All commit messages must use semantic commit messages
- All commit messages must not reference code being generated or co-authored by Claude