Contributing to HunterX
August 11, 2026 · View on GitHub
Thank you for your interest in contributing to HunterX. This document outlines the process for contributing code, documentation, and other improvements.
All contributions are welcome — whether fixing a typo, adding a skill, writing tests, or implementing a new provider.
Welcome
HunterX is released under the Apache 2.0 license. All contributors must agree to the Developer Certificate of Origin (DCO). Every commit must include a Signed-off-by line.
Getting Started
- Fork the repository on GitHub.
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/HunterX.git - Add the upstream remote:
git remote add upstream https://github.com/nullc0d30/HunterX.git - Create a branch for your work (see Branch Naming).
- Make your changes.
- Run tests locally before pushing.
Development Setup
pip install -r requirements.txt
Install pre-commit hooks to automatically check code style:
pre-commit install
Pre-commit hooks run Ruff and other checks on every commit.
Code Style
- Linter: Ruff
- Line length: 120 characters
- Target Python: 3.11+
- Type hints: Required for all function signatures and public methods.
Run the linter before committing:
ruff check .
Testing
All contributions must maintain or increase the test pass rate. There are currently 623 tests in the test suite.
Run tests:
pytest tests/ -v
No regressions are allowed. If your change fixes a bug, add a test that reproduces the bug and verify it passes.
Pull Request Process
- Ensure your branch is up to date with
main. - Open a pull request against the
mainbranch. - Use the pull request template — fill in all sections.
- Link the issue your PR addresses (if applicable).
- Add a changelog entry in
CHANGELOG.mdunder the appropriate section. - Ensure all commits include a DCO sign-off (
Signed-off-by:). - Ensure all CI checks pass (lint, test, build).
A maintainer will review your PR. You may be asked to make changes before it is merged.
Commit Messages
Use Conventional Commits format:
<type>: <short description>
<optional body>
Types:
| Type | Usage |
|---|---|
feat: | A new feature |
fix: | A bug fix |
docs: | Documentation changes |
test: | Adding or updating tests |
refactor: | Code refactoring |
chore: | Maintenance, tooling, CI |
Example:
feat: add AWS S3 bucket enumeration skill
Branch Naming
Use descriptive branch names with a type prefix:
feat/description— new featuresfix/description— bug fixesdocs/description— documentation changes
Examples: feat/s3-enumeration, fix/ollama-timeout, docs/api-reference
Code Review
Reviewers will check for:
- Correctness: Does the code do what it claims?
- Security: Are there any injection vectors or unsafe patterns?
- Style: Does it follow Ruff conventions and type hints?
- Tests: Are there sufficient tests covering the change?
- Documentation: Are public APIs and behaviors documented?
- Performance: Is the approach efficient for the expected workloads?
Be prepared to iterate. All reviews are conducted respectfully and constructively.
DCO (Developer Certificate of Origin)
Every commit must include a Signed-off-by line in the commit message, certifying that you have the right to submit the code under the project's license.
To sign off a commit:
git commit -s -m "feat: add S3 bucket enumeration skill"
This adds:
Signed-off-by: Your Name <your.email@example.com>
For more information, see developercertificate.org.