Thank you for your interest in contributing to NerfProbe! We are building the industry standard for specific, scientific LLM degradation detection.
This project uses uv for dependency management and hatchling for building.
- Python 3.11 or higher
uv(Universal Python Packager)
-
Clone the repository:
git clone https://github.com/skew202/nerfprobe-core.git cd nerfprobe-core -
Install dependencies:
uv sync --all-extras --dev
We use pytest for unit and integration testing.
uv run pytestTo run a specific test file:
uv run pytest tests/unit/test_core_probes.pyWe enforce strict code quality standards using ruff and mypy. CI will fail if these checks do not pass.
# Check for linting errors
uv run ruff check .
# Fix auto-fixable errors
uv run ruff check --fix .
# format code
uv run ruff format .uv run mypy src- Research: Identify a specific, cited paper or phenomenon you want to detect.
- Design:
- Create a
Configclass insrc/nerfprobe_core/probes/config.py. - Create a
Probeclass insrc/nerfprobe_core/probes/<tier>/<name>_probe.py. - (Optional) Create a reusable
Scorerinsrc/nerfprobe_core/scorers/.
- Create a
- Register: Add your probe to
src/nerfprobe_core/probes/__init__.py. - Test: Add unit tests in
tests/.
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue a PR with a clear description of the research grounding (links to Arxiv papers are highly encouraged).
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.