Thank you for your interest in contributing. This document covers the process for all repositories under the Cerid AI organization.
- Check the existing issues and pull requests to avoid duplicate work.
- For significant changes, open an issue first to discuss the approach.
- Review the
CLAUDE.mdin each repo for AI-assisted development conventions.
Each repository has its own setup instructions in its README.md. General requirements:
- Python repos: Python 3.11+, Docker & Docker Compose v2+
- Frontend: Node 22+, see
.nvmrcin each package - Secrets: Use the repo's
.env.exampleas a template; never commit.envfiles
- Fork the repo and create a branch from
main. - Follow the existing code style — each repo uses
rufffor Python,eslint/prettierfor TypeScript. - Add or update tests to cover your changes.
- Ensure all CI checks pass before requesting review.
- Fill out the pull request template completely.
- PRs that break tests or skip the template will not be merged.
make lint # ruff check
make typecheck # mypy strict
make test # pytestnpm run lint
npm run typecheck
npm run testUse Conventional Commits:
feat: add new MCP tool for knowledge graph traversal
fix: correct VPIN calculation on empty orderbook
docs: update quick start instructions
refactor: split ingestion router into service layer
test: add hallucination agent edge case coverage
Do not open public issues for security vulnerabilities. See SECURITY.md for the responsible disclosure process.
By contributing, you agree that your contributions will be licensed under the same license as the repository you are contributing to (Apache 2.0 for open repos; proprietary terms apply to closed repos).