Contributor Onboarding Guide
Thank you for helping us build the future of verifiable AI. This guide will help you set up your development environment and understand the ReasonKit codebase.
1. Environment Setup
1.1 Prerequisites
- Rust:
rustup(1.75+) - Docker: For running Qdrant and Redis.
- Just: Command runner (optional, but recommended).
- Taskwarrior: For task tracking (internal).
1.2 Installation
git clone https://github.com/ReasonKit/reasonkit-core.git
cd reasonkit-core
cargo build
2. Project Structure
src/: Core reasoning engine logic.protocols/: Standard YAML/TOML ThinkTool definitions.schemas/: JSON schemas for traces and validation.benches/: Performance benchmarks.fuzz/: Adversarial and random input testing.
3. Development Workflow
ReasonKit follows a strict GitOps and Task-Driven workflow.
3.1 Conventional Commits
All commits must follow the spec:
feat(core): add new validation step
fix(python): resolve trace parsing bug
3.2 Running Tests
# Run all unit tests
cargo test
# Run specific module tests
cargo test thinktool::modules
# Run quality gates
./scripts/quality_metrics.sh
4. Making a Change
- Fork the repository.
- Create a branch based on the feature:
git checkout -b feat/my-new-tool. - Implement your logic and add unit tests.
- Validate using
rk validateif modifying protocols. - Submit a PR targeting the
mainbranch.
5. Quality Gates
Before a PR is merged, it must pass 5 quality gates:
- Build: Must compile without warnings.
- Lint:
cargo clippymust return zero errors. - Format:
cargo fmtcheck must pass. - Test: 100% test pass rate.
- Bench: No performance regressions > 5% in core loops.
6. Community & Communication
- GitHub Discussions: Join
#discussionsfor real-time questions. - RFCs: For major architectural changes, please submit an RFC in the
docs/process/rfcsdirectory.