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

Learning Path: Contributor

For: Developers who want to contribute code, documentation, or improvements to ReasonKit

This learning path guides you through contributing to the ReasonKit open source project.

🎯 Goal

Make your first contribution to ReasonKit and become an active contributor.

πŸ“š Path Overview

Phase 1: Setup (30 minutes)

  1. Development Setup - Get the development environment running
  2. Architecture Overview - Understand the codebase structure
  3. Code Style - Learn ReasonKit’s coding standards

Outcome: You can build and run ReasonKit from source.

Phase 2: Quality Gates (30 minutes)

  1. Testing - Run and write tests
  2. Quality Gates - Understand the 5 mandatory gates
    • Build: cargo build --release
    • Lint: cargo clippy -- -D warnings
    • Format: cargo fmt --check
    • Test: cargo test
    • Bench: cargo bench (no >5% regression)

Outcome: You can verify your changes meet quality standards.

Phase 3: First Contribution (1-2 hours)

  1. Contributing Guidelines - How to contribute
  2. Pull Request Process - Submit your first PR
  3. Code Review Process - What to expect

Outcome: You’ve made your first contribution.

Phase 4: Deep Dive (2-4 hours)

  1. Architecture - Deep understanding of system design
  2. Custom ThinkTools - How ThinkTools work internally
  3. Performance Optimization - Performance best practices
  4. Rust Supremacy Doctrine - Why Rust-first

Outcome: You can contribute to core functionality.

πŸ› οΈ Development Workflow

Daily Development

# Clone repository
git clone https://github.com/reasonkit/reasonkit-core
cd reasonkit-core

# Build
cargo build --release

# Run tests
cargo test

# Run quality gates
./scripts/quality_metrics.sh

# Run benchmarks
cargo bench

Making Changes

  1. Create a branch:

    git checkout -b feature/your-feature-name
    
  2. Make changes following code style guidelines

  3. Run quality gates:

    cargo build --release
    cargo clippy -- -D warnings
    cargo fmt --check
    cargo test
    
  4. Commit with clear message:

    git commit -m "feat: Add your feature description"
    
  5. Push and create PR:

    git push origin feature/your-feature-name
    

πŸ“‹ Contribution Areas

Good First Issues

  • Documentation improvements
  • Test coverage additions
  • Bug fixes in non-critical paths
  • CLI UX improvements
  • Example scripts

Advanced Contributions

  • New ThinkTool modules
  • Performance optimizations
  • LLM provider integrations
  • Storage backend improvements
  • Protocol engine enhancements

🎯 Quality Standards

All contributions must pass:

  1. βœ… Build - Compiles without errors
  2. βœ… Lint - No clippy warnings
  3. βœ… Format - Code formatted with rustfmt
  4. βœ… Test - All tests pass
  5. βœ… Bench - No performance regressions

Quality Score Target: 8.0/10 minimum

πŸŽ“ Next Steps

After completing this path:

  • Find an issue that matches your skills
  • Make your first contribution
  • Join the Discord community
  • Become a maintainer

Estimated Time: 4-7 hours
Difficulty: Intermediate to Advanced
Prerequisites: Rust programming experience, familiarity with Git