Thank you for your interest in contributing to Claude PP!
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/claude_peepee.git - Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Run tests:
make test - Commit and push
- Open a Pull Request
# Install dependencies
go mod download
# Build
make build
# Run tests
make test
# Run linter
make lint- Follow Effective Go
- Use
gofmtfor formatting - Add comments for exported functions
- Keep functions small and focused
IMPORTANT: All contributions must follow security best practices:
- Never hardcode secrets - No API keys, passwords, or tokens in code
- Use parameterized queries - Never interpolate user input into SQL
- Validate input - Check size limits and sanitize user data
- Handle errors properly - Don't leak sensitive info in error messages
- Add tests - Include security-focused test cases
Use clear, descriptive commit messages:
Add feature X for Y purpose
- Detailed point 1
- Detailed point 2
- One feature per PR - Keep changes focused
- Include tests - All new code should have test coverage
- Update documentation - Keep README and docs current
- No breaking changes - Maintain backwards compatibility
- Security review - Flag any security-sensitive changes
# Run all tests
CGO_ENABLED=1 go test -tags "fts5" ./...
# Run with verbose output
CGO_ENABLED=1 go test -tags "fts5" -v ./...
# Run specific package tests
CGO_ENABLED=1 go test -tags "fts5" -v ./internal/store/...Include:
- Claude PP version (
claude_peepee version) - Go version (
go version) - Operating system
- Steps to reproduce
- Expected vs actual behavior
DO NOT open public issues for security vulnerabilities!
See SECURITY.md for responsible disclosure.
By contributing, you agree that your contributions will be licensed under the MIT License.