Thanks for your interest in improving PROVE. This guide covers local setup, the checks CI runs, and how to propose changes.
docker compose up -d # Neo4j (required for the full test suite + app)
uv sync # install deps (including dev group)
just dev # run the app on :7860CI runs the same three checks — run them locally first:
uv run ruff check src tests # lint
uv run ruff format --check src tests # formatting
uv run pytest tests/ -m "not e2e" # unit tests (no services needed)- Unit tests need no running services — Neo4j and the LLM APIs are mocked.
-m "not e2e"deselects the Playwright browser suite. Those tests need a live server (just dev) andBASE_URL; run them withuv run pytest tests/e2eonly when you've changed frontend/layout behavior.- Apply formatting with
uv run ruff format src tests. - New behavior should come with a test. Pure-logic code is tested with mocks
(see
tests/test_qa.py); avoid adding tests that require live LLM API calls.
- Python ≥ 3.11. Formatting and lint are enforced by
ruff(config inpyproject.toml). - No
print— usefrom src.core import logger. - Keep functions small and explicit; prefer standard-library solutions over new dependencies. Each new dependency should justify itself.
- Keep PRs focused — one logical change per PR.
- Write a clear description of what changed and why.
- Reference any related issue.
Open an issue using the templates in .github/ISSUE_TEMPLATE/. For security
issues, see SECURITY.md — do not open a public issue.