Welcome — this project is steered by the Active Inference Institute and welcomes contributions from researchers, engineers, and AI agents alike.
- Open or comment on an issue describing what you want to do.
- Fork → branch → code → test → PR.
- Run
uv run python scripts/release_check.pybefore pushing. - Keep PRs scoped: one logical change per PR.
git clone https://github.com/<you>/ActiveBlockference.git
cd ActiveBlockference
uv venv --python 3.11
uv pip install -e ".[dev,docs]"
uv sync --locked --extra dev
uv run pytest --cov=blockference --cov-fail-under=90git checkout -b feat/<short-description>
# or fix/<...>, docs/<...>, refactor/<...>- Library code lives in
blockference/. - Tests live in
tests/and mirror the package layout. - Notebooks in
notebooks/are for exploration; promote stable code into the package.
uv run ruff format blockference tests
uv run ruff check blockference testsIf you change a public surface, update:
- The relevant module docstring.
docs/api.md.docs/architecture.mdif you change layering.- The folder-local
README.mdtable.
Describe the change, motivation, and verification in the pull request conversation. Include pytest output and screenshots when visual behaviour changed.
A reviewer will look at correctness, scope, and doc/test parity.
See the table in the root AGENTS.md. Each folder also
ships its own AGENTS.md with local rules.
Open at https://github.com/ActiveInferenceInstitute/ActiveBlockference/issues with:
- Reproducer (minimal Python snippet or notebook cell).
- Expected vs. observed behaviour.
- Versions (
python -V,pip show cadCAD radcad).pymdpis optional and should be reported only when the adapter extra is being debugged.
Be kind. Default to assuming good faith. This community values rigour and warmth — both are required.