Thank you for your interest in contributing to AdversaryPilot! This guide will help you get started.
git clone https://github.com/aviralsrivastava/AdversaryPilot.git
cd AdversaryPilot
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Requires Python 3.11+.
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=adversarypilot --cov-report=term-missing
# Run a specific test file
pytest tests/test_compliance_framework.py -vAll tests must pass before submitting a PR. Current target: 626+ tests.
We use Ruff for linting and formatting:
ruff check src/ tests/
ruff format src/ tests/Configuration is in pyproject.toml:
- Target: Python 3.11
- Line length: 100
mypy src/adversarypilot/Strict mode is enabled. All public APIs should have type annotations.
- Add the technique entry to
src/adversarypilot/taxonomy/catalog.yamlwith all required fields (id, name, domain, phase, surface, access_levels, goals, cost, stealth_profile, execution_mode, atlas_refs, compliance_refs, tags, description) - Add benchmark priors to
src/adversarypilot/planner/priors.pyif the technique has published ASR data - Add tool mappings to
src/adversarypilot/hooks/generator.pyif garak/promptfoo support exists - Add tests in
tests/ - Update the technique count in
README.md
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes with tests
- Ensure all tests pass and linting is clean
- Submit a PR with a clear description of the change
Use GitHub Issues for bug reports and feature requests. For security vulnerabilities, please use responsible disclosure — email the maintainer directly.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.