# Contributing to Polymathy
Thank you for your interest in contributing to Polymathy! This guide will help you get started.
## Ways to Contribute
<div class="grid cards" markdown>
- :material-bug:{ .lg .middle } __Report Bugs__
---
Found a bug? Open an issue with reproduction steps
- :material-lightbulb:{ .lg .middle } __Suggest Features__
---
Have an idea? Start a discussion or open a feature request
- :material-code-braces:{ .lg .middle } __Submit Code__
---
Fix bugs or implement features via pull requests
- :material-file-document:{ .lg .middle } __Improve Docs__
---
Help make our documentation better
</div>
## Quick Start
1. Fork the repository
2. Clone your fork
3. Create a feature branch
4. Make your changes
5. Submit a pull request
```bash
# Fork via GitHub, then:
git clone https://github.com/YOUR-USERNAME/polymathy.git
cd polymathy
git checkout -b feature/your-feature-name
# Make changes...
git commit -m "Add your feature"
git push origin feature/your-feature-name
# Open a PR on GitHub
```
## What We're Looking For
### High Priority
- Bug fixes with test coverage
- Performance improvements
- Documentation improvements
- Test coverage expansion
### Welcome Contributions
- New features (discuss first)
- Code refactoring
- CI/CD improvements
- Example code
## Before You Start
### For Bug Fixes
1. Check existing issues
2. Create an issue if none exists
3. Reference the issue in your PR
### For New Features
1. Open a discussion or issue first
2. Wait for feedback from maintainers
3. Proceed only after approval
## Pull Request Process
1. **Create focused PRs** - One feature/fix per PR
2. **Write tests** - Cover new code with tests
3. **Update docs** - Document new features
4. **Follow style** - Run `cargo fmt` and `cargo clippy`
5. **Pass CI** - All checks must pass
## Code of Conduct
- Be respectful and constructive
- Welcome newcomers
- Focus on the code, not the person
- Accept constructive criticism gracefully
## Getting Help
- **Questions**: Open a Discussion on GitHub
- **Bugs**: Open an Issue
- **Security**: Email maintainers directly
## Next Steps
- [Development Setup](development.md) - Set up your development environment
- [Code Style](code-style.md) - Our coding conventions