Contributing
HunterX is Apache 2.0 licensed and welcomes contributions of all forms.
Getting Started
# Fork and clone
git clone https://github.com/YOUR_USERNAME/HunterX.git
cd HunterX
# Create a virtual environment
python -m venv venv
source venv/bin/activate
# Install in editable mode with all extras
pip install -e ".[all]"
# Create a feature branch
git checkout -b feat/your-feature
Development Workflow
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch from
main - Make your changes following the Development Bible conventions
- Run tests to verify nothing is broken
- Run linting to ensure code style
- Commit with DCO sign-off (
git commit -s) - Push to your fork
- Open a pull request against the
mainbranch
Testing
The v7 test suite lives under tests/{unit,component,integration,architecture,
golden,security,acceptance,performance,engineering}:
# Run the full default suite
pytest -m "not tools"
# Run a specific area
pytest tests/unit tests/component
# Run with coverage
pytest --cov=src/hunterx tests/unit tests/component tests/architecture
Code Style
# Check code style (v7 source in src/, eng/, tests/)
ruff check src eng tests alembic
ruff format --check .
Quality Gates
Contributions must keep the quality gates green — see Quality Gates:
python -m eng.gates # ruff, mypy, pytest, coverage, security, docs, ...
Commit Conventions
Use conventional commit messages:
feat(area): concise description
fix(area): concise description
docs(area): concise description
refactor(area): concise description
test(area): concise description
chore(area): concise description
Example areas: cli, api, mission, tools, findings, reporting,
domain, infrastructure, eng, docs
All commits must include a DCO (Developer Certificate of Origin) sign-off:
git commit -s -m "feat(tools): add a new tool adapter"
Pull Request Guidelines
- Keep PRs focused on a single change
- Add tests for new functionality
- Update documentation if needed
- Ensure CI passes (tests + linting + quality gates)
- Reference related issues in the description
How to Help
| Area | How to Help |
|---|---|
| Tool adapters | Add adapters for open-source security tools |
| Mission orchestration | Improve planning, execution and recovery |
| Documentation | Improve existing docs, fix typos |
| Tests | Write tests for new capabilities and edge cases |
| Community | Answer discussions, review PRs, triage issues |
Resources
- Full contribution guide on GitHub
- Development Bible — engineering standards
- Architecture Enforcement — layering and dependency rules
- Governance