# Contributing to Siumai

Thank you for your interest in contributing! 🎉

## Quick Start

1. Fork the repository
2. Clone your fork: `git clone https://github.com/your-username/siumai.git`
3. Create a branch: `git checkout -b feature/your-feature-name`
4. Make your changes
5. **Run code quality checks**:
   - `cargo fmt` - Format code
   - `cargo clippy` - Check for code issues
   - `cargo test` - Run all tests
6. Submit a pull request

## How to Contribute

- 🐛 **Bug Reports**: Use the Bug Report template
- ✨ **Feature Requests**: Use the Feature Request template
- 🤖 **New Providers**: Use the Provider Request template
- 📚 **Documentation**: Use the Documentation template

## Development Guidelines

- Follow standard Rust conventions
- **Run `cargo fmt` before marking PR as ready** - Ensure consistent formatting
- **Run `cargo clippy` before marking PR as ready** - Fix all warnings and errors
- **Run `cargo test` before marking PR as ready** - Ensure all tests pass
- Add tests for new features
- Update documentation when needed
- Test with real API keys when possible

## Code Quality Requirements

Before marking your pull request as **ready for review**, you **must** run:

```bash
# Format code according to Rust standards
cargo fmt

# Check for code issues and style violations
cargo clippy

# Run all tests to ensure nothing is broken
cargo test
```

All clippy warnings must be resolved and all tests must pass before your PR can be merged.

💡 **Tip**: You can create a Draft PR while still working on your changes, and only run these checks when you're ready for review.

## Commit Messages

Use conventional commits:

- `feat:` new features
- `fix:` bug fixes
- `docs:` documentation changes

## Getting Help

- 💬 [GitHub Discussions](https://github.com/YumchaLabs/siumai/discussions)
- 🐛 [Issues](https://github.com/YumchaLabs/siumai/issues)

## License

By contributing, you agree that your contributions will be licensed under the MIT License.
