Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

  1. Fork the repository.
  2. Create a branch based on the feature: git checkout -b feat/my-new-tool.
  3. Implement your logic and add unit tests.
  4. Validate using rk validate if modifying protocols.
  5. Submit a PR targeting the main branch.

5. Quality Gates

Before a PR is merged, it must pass 5 quality gates:

  1. Build: Must compile without warnings.
  2. Lint: cargo clippy must return zero errors.
  3. Format: cargo fmt check must pass.
  4. Test: 100% test pass rate.
  5. Bench: No performance regressions > 5% in core loops.

6. Community & Communication

  • GitHub Discussions: Join #discussions for real-time questions.
  • RFCs: For major architectural changes, please submit an RFC in the docs/process/rfcs directory.