Thanks for your interest in contributing! This guide will help you get started.
- Python 3.12+
- uv — fast Python package manager
git clone https://github.com/PlateerLab/synaptic-memory.git
cd synaptic-memory
uv sync --extra dev --extra sqlite --extra kuzu --extra qdrant --extra minio# Fast local suite (no external infra — uses Memory/SQLite/Kuzu embedded backends)
uv run pytest tests/ \
--ignore=tests/test_backend_postgresql.py \
--ignore=tests/test_backend_qdrant.py \
--ignore=tests/test_backend_minio.py \
--ignore=tests/test_backend_composite.py \
--ignore=tests/benchmark \
--ignore=tests/qa -v
# Full suite (requires Qdrant + MinIO + PostgreSQL running)
docker-compose up -d qdrant minio
uv run pytest tests/ -vWe use Ruff for linting and formatting:
uv run ruff check --fix
uv run ruff formatBoth checks must pass before merging. CI runs ruff check and ruff format --check automatically.
- Ruff handles all formatting and linting — no additional tools needed.
- Type hints are required for all function signatures.
- Keep imports sorted (Ruff handles this via
isortrules).
- Create a feature branch from
main— do not push directly tomain. - All tests must pass before requesting review.
- Use conventional commit messages:
feat:new featurefix:bug fixdocs:documentation onlyrefactor:code restructuring without behavior changetest:adding or updating testschore:maintenance tasks
- Keep PRs focused — one feature or fix per PR.
- Add tests for new functionality.
src/synaptic/
├── graph.py # Main facade (SynapticGraph)
├── search.py # Hybrid search engine
├── agent_search.py # Intent-based agent search
├── resonance.py # Multi-axis scoring
├── hebbian.py # Co-activation learning
├── consolidation.py # Memory consolidation cascade
├── ontology.py # Type hierarchy & constraints
├── activity.py # Agent activity tracking
├── models.py # Core data models
└── backends/ # Storage backends (Memory, SQLite, Kuzu, PostgreSQL, Qdrant, MinIO)
Open an issue on GitHub — we're happy to help.