Thank you for your interest in contributing to CodePrysm! This document provides guidelines and information for contributors.
- Rust 1.85 or later
- Docker (for Qdrant vector database)
- just command runner
-
Clone the repository:
git clone https://github.com/codeprysm/codeprysm.git cd codeprysm -
Build the project:
just setup
-
Run tests:
just rust-test
If you find a bug, please open an issue on GitHub with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Your environment (OS, Rust version, etc.)
- Any relevant logs or error messages
Feature requests are welcome! Please open an issue with:
- A clear description of the feature
- The problem it solves or use case
- Any implementation ideas you have
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting:
just rust-test just rust-lint just rust-fmt-check
- Commit your changes with a descriptive message
- Push to your fork
- Open a Pull Request
- All tests must pass
- Code must pass
cargo clippywithout warnings - Code must be formatted with
cargo fmt - Include tests for new functionality
- Update documentation as needed
- Follow Rust idioms and best practices
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and reasonably sized
- Use clear, descriptive commit messages
- Start with a verb (Add, Fix, Update, Remove, etc.)
- Reference issues when applicable (
Fixes #123)
codeprysm/
├── crates/
│ ├── codeprysm-core/ # Graph generation, tree-sitter parsing
│ ├── codeprysm-search/ # Vector search, embeddings
│ ├── codeprysm-mcp/ # MCP server
│ ├── codeprysm-cli/ # Command-line interface
│ ├── codeprysm-config/ # Configuration management
│ └── codeprysm-backend/ # Backend abstraction
├── tests/fixtures/ # Test repositories
├── docs/ # Documentation
└── docker/ # Docker configuration
- Unit tests are in each crate's
src/directory - Integration tests are in each crate's
tests/directory - Test fixtures are in
tests/fixtures/
Run specific test suites:
just rust-test # All tests
just rust-test-integration # Integration tests
just rust-test-integration-lang python # Language-specific tests- Update README.md for user-facing changes
- Update CLAUDE.md for developer guidance changes
- Add/update docs in
docs/for feature documentation
Feel free to open an issue for questions or join discussions on GitHub.
By contributing, you agree that your contributions will be licensed under the MIT License.