Thank you for your interest in contributing to Proofloop!
- Check if the issue already exists in GitHub Issues
- If not, create a new issue using the bug report template
- Include reproduction steps, expected vs actual behavior, and environment details
- Open a feature request issue using the template
- Describe the problem you're solving and your proposed solution
- Be open to discussion about alternative approaches
- Fork the repository
- Create a feature branch from
main - Make your changes
- Ensure all checks pass:
make lint # Linter make typecheck # Type checking make test # Tests
- Submit a pull request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/proofloop.git
cd proofloop
# Install dependencies
uv sync --all-extras
# Install pre-commit hooks
pre-commit install
# Run checks
make check- Python 3.11+
- Type hints required
- Use
logurufor logging - Follow existing patterns in the codebase
- See CLAUDE.md for detailed guidelines
The project follows Domain-Driven Design (DDD):
src/domain/- Business logic, entities, value objectssrc/application/- Use cases, orchestrationsrc/infrastructure/- External adapters (Claude SDK, Git, MCP)src/cli/- Command-line interface
- Add tests for new functionality
- Maintain test coverage (90% target)
- Use pytest with async support
make test # Run tests
make test-cov # Run with coverage reportOpen a discussion for questions or ideas.