Thank you for your interest in contributing!
- Fork the repository
- Follow SETUP.md to get a working local environment
- Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Open a Pull Request against
main
- Python 3.10+, follow PEP 8
- Use
logging(notprint) for all output - Add docstrings to public functions
- Keep modules focused — each file should have one clear responsibility
config/config.jsonis gitignored — keep it that waycredentials.jsonandtoken.jsonare gitignored- If you add a new credentials field, add it to
config/config.example.jsonwith aYOUR_*placeholder, not a real value - Use
src/utils/config_loader.pyto load config — neveropen()config files directly in new modules
Consider using a pre-commit hook with detect-secrets to prevent accidental secret commits.
- Create a new model class in
src/llms/models/inheriting fromBaseModel - Implement
construct_prompt()andgenerate_analysis() - Add an entry to
MODEL_CLASS_MAPinsrc/llms/llm_client.py - Add a config entry in
config/config.example.jsonwith"name"matching the map key
Open a GitHub issue with:
- What you expected to happen
- What actually happened
- Relevant log output (redact any API keys)
- Your Python version and OS