Skip to main content
Thank you for your interest in contributing to Humancheck! This guide will help you get started with contributing to the project.

Getting Started

Development Setup

  1. Clone the repository:
  2. Install dependencies:
  3. Set up pre-commit hooks (optional but recommended):
  4. Initialize configuration:
  5. Run tests:

Project Structure

Development Workflow

Creating a New Feature

  1. Create a new branch:
  2. Make your changes:
    • Write code
    • Add tests
    • Update documentation
  3. Run tests and linting:
  4. Commit your changes:
  5. Push and create PR:

Commit Message Guidelines

Follow conventional commits format:
  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • test: Test additions or changes
  • refactor: Code refactoring
  • style: Code style changes (formatting, etc.)
  • chore: Build process or auxiliary tool changes
Example:

Code Standards

Python Style

  • Follow PEP 8
  • Use Black for formatting (line length: 100)
  • Use type hints wherever possible
  • Write docstrings for all public functions and classes

Example Code Style

Adding New Framework Adapters

To add support for a new AI framework:
  1. Create adapter file:
  2. Register in __init__.py:
  3. Add tests:
  4. Update documentation:
    • Add example in examples/
    • Update README.md
    • Add to adapter documentation

Testing

Running Tests

Writing Tests

  • Write tests for all new features
  • Aim for >80% code coverage
  • Use pytest fixtures for common setup
  • Test both success and error cases
Example:

Documentation

Updating Documentation

  • Keep README.md up to date
  • Add docstrings to all public APIs
  • Update examples when adding features
  • Add inline comments for complex logic

Documentation Structure

The documentation is in the humancheck-docs repository:
  • Main docs: /docs directory
  • API reference: Auto-generated from OpenAPI spec
  • Examples: /examples directory

Pull Request Process

  1. Ensure tests pass:
  2. Update documentation if needed
  3. Create pull request:
    • Clear title and description
    • Reference any related issues
    • Include screenshots for UI changes
  4. Code review:
    • Address reviewer feedback
    • Keep discussions professional and constructive
  5. Merge:
    • Squash commits if requested
    • Delete branch after merge

Reporting Issues

Bug Reports

Include:
  • Description of the bug
  • Steps to reproduce
  • Expected vs actual behavior
  • Environment (OS, Python version, etc.)
  • Relevant logs or error messages
Use the GitHub issue template when creating a bug report to ensure all necessary information is included.

Feature Requests

Include:
  • Clear description of the feature
  • Use case and motivation
  • Example API or usage
  • Any alternatives considered

Code of Conduct

Our Standards

  • Be respectful and inclusive
  • Welcome newcomers
  • Focus on constructive feedback
  • Respect different viewpoints
  • Prioritize community well-being

Unacceptable Behavior

  • Harassment or discrimination
  • Trolling or insulting comments
  • Publishing private information
  • Unprofessional conduct

Areas Where We Need Help

Framework Adapters

Add adapters for new AI frameworks (OpenAI Assistants, CrewAI, etc.)

Connectors

Build connectors for new notification channels (Email, Discord, Teams)

Documentation

Improve docs, add examples, write tutorials

Testing

Increase test coverage, add integration tests

Dashboard

Enhance the Streamlit dashboard UI/UX

Routing

Add advanced routing rules and ML-powered routing

Questions?

Need help? We’re here to assist:

License

By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Humancheck! 🎉