Thanks for your interest in contributing!
Your PR will be closed without explanation if CI is broken. Run these locally first:
# 1. Lint + format
ruff check .
ruff format --check .
# 2. Type check
mypy --config-file pyproject.toml features/ shared/ mcp_server/ rag/ hooks/ wiki/ lifecycle/ graph/ core/
# 3. Tests
pytest tests/ -v --timeout=30All three must pass. No exceptions.
git clone https://github.com/Cipher208/a-memory.git
cd mcp-ariel-memory
pip install -e ".[dev,binary]"We use Conventional Commits:
feat: add new memory compression algorithm
fix: resolve race condition in ReflexBuffer
docs: update API reference for memory_recall
chore: update CI dependencies
test: add Hypothesis tests for scoring
refactor: extract shared utilities from hooks
Format: <type>(<scope>): <description>
Types: feat, fix, docs, chore, test, refactor, perf, ci, build
- Fork the repo and create a branch from
master - Make your changes
- Run the full check suite (ruff, mypy, pytest)
- Add tests for new functionality
- Use Conventional Commits in your commit messages
- Submit a PR using the PR template
- If CI fails, your PR will be closed
- Code correctness
- Test coverage for new features
- Type annotations (mypy passes)
- No regressions (all 338 tests pass)
- Documentation updates if behavior changes
Use the issue templates for bug reports and feature requests. For security vulnerabilities, see SECURITY.md.